Search Blog Post

Tuesday, July 29, 2014

ORA-07445: exception encountered: core dump [qkxrPXformUnm()+88] [SIGSEGV]


Problem:
Recently we encountered ORA-07445 error in our single node EBS (12.1.3) environment with 11.2.0.3 database on SunOS 5.11 (64-bit platform).

As we know the ORA-7445 is an unhandled exception error due to an OS exception which should result in the creation of a core file.  An ORA-7445 is a generic error, and can occur from anywhere in the Oracle code. The precise location of the error is identified by the core file and/or trace file it produces.

In our case, after reviewing the trace file, the error is raised from EBS for an apps query involving ORDER BY reference.

Alert log contents:
Thu Jul 17 21:44:43 2014
Exception [type: SIGSEGV, Address not mapped to object] [ADDR:0x2000000020] [PC:0x1044777D8, qkxrPXformUnm()+88] [flags: 0x0, count: 1]
Errors in file /<Dump_Location>/IGA_ora_24885.trc  (incident=131168):
ORA-07445: exception encountered: core dump [qkxrPXformUnm()+88] [SIGSEGV] [ADDR:0x2000000020] [PC:0x1044777D8] [Address not mapped to object] []

Cause:
The issue is caused by Bug 12834800 - ORA-7445 [QKXRPXFORMUNM()+92] and I found a supporting document on metalink 1355848.1 , according to the doc. any query involving ORDER BY reference by position to an expression may fail with an ORA-7445.

Solution:
As a workaround, it is suggested to disable virtual column replacement or avoid using order by reference and specify the select list expression explicitly instead.
To disable virtual column replacement:
  •  alter session set "_replace_virtual_columns" = false;
FYI: Parameter "_replace_virtual_columns" influences the explain plan in using or not the function based index. Setting "_replace_virtual_columns" = false doesn't affect the database functionality, but it will change the execution plan for the queries where a function based index is inolved.

Two values are possible for this parameter:
"_replace_virtual_columns" = FALSE  - explain plan will use the function based index
"_replace_virtual_columns" = TRUE   - explain plan will not use the function based index
                     
                                   OR
  •  Apply Patch:12834800
Note: Both the workaround require DB bounce.

Please apply the patch first in non-production environment, and perform the below test case to reproduce the issue at will.

SQL> create table test (vendor_name varchar2(10));

Table created.

SQL> CREATE INDEX TEST_INDEX ON TEST (UPPER(VENDOR_NAME));

Index created.

SQL> select to_char(sysdate,'DD-MM-YYYY HH:MM:SS') as "Today's Date" from dual;

Today's Date
-------------------
29-07-2014 08:30:42

SQL> SELECT UPPER (V.vendor_name) C_SORT_VENDOR_NAME FROM test V GROUP BY V.vendor_name ORDER BY 1 ASC;

SELECT UPPER (V.vendor_name) C_SORT_VENDOR_NAME
                                 *
ERROR at line 1:
ORA-03113: end-of-file on communication channel
Process ID: 12511
Session ID: 577 Serial number: 24385

$ tail -20f alert_IGAPATCH.log
Tue Jul 29 08:34:39 2014
Exception [type: SIGSEGV, Address not mapped to object] [ADDR:0x2000000020] [PC:0x1044777D8, qkxrPXformUnm()+88] [flags: 0x0, count: 1]
Errors in file /IGAPATCHapps/IGAPATCH/db/diag/rdbms/igapatch/IGAPATCH/trace/IGAPATCH_ora_12511.trc  (incident=103721):
ORA-07445: exception encountered: core dump [qkxrPXformUnm()+88] [SIGSEGV] [ADDR:0x2000000020] [PC:0x1044777D8] [Address not mapped to object] []


HTH
Thanks for reading..!!
Any suggestions or enhancements are most welcome.

Sunday, July 27, 2014

APP-FND-01564: ORACLE error 6502 in afscpcon

Problem: 
While trying to access forms through the EBS R12 login page, we received this error and for some reason I couldn't figure out for few hours what this error could be, as this environment was a fresh clone from our production environment.

Unable to login into Oracle Applications, the following error occurs.

ERROR: You have encountered an unexpected error. Please contact the System Administrator for assistance.Click here for exception details.

Exception Details.
oracle.apps.fnd.framework.OAException: Could not load application module
'oracle.apps.fnd.sso.login.server.MainLoginPageAM'.

## Detail 0 ##
oracle.apps.fnd.framework.OAException: Application: ICX, Message Name: ICX_SESSION_FAILED.


Cause:
I re-visited all the applications post clone steps and hence I found out what's the issue, as per the client's requirement we had to end date all the users except the list provided by them. Looks like one of my fellow DBA unknowingly end dated "GUEST" user.

The problem arises during the session validation after the session creation. The responsibilities for the GUEST user were disabled so that the connection could not be established.

Guest user is end dated which can be checked using the Sqlplus below:

SQL> SELECT user_name,TO_CHAR(start_date,'DD-MON-YYYY'),TO_CHAR(end_date,'DD-MON-YYYY') FROM FND_USER WHERE user_name = 'GUEST'; 


Solution:
  • Guest user is then enabled via Sqlplus by setting the end_date column to null.
UPDATE fnd_user  SET end_date = null where WHERE username='GUEST';
  • Login into Oracle Applications directly using Forms interfac
Go to Define user screen -> query GUEST user -> set end_date to null -> save the form -> exit

Note: Never End Date Guest User in Oracle Applications

To summarize
Oracle internally uses a login named GUEST, prior to invoking validation of actual username. Some people regard this as a security threat, but it isn’t. We as DBA’s can change the “guest” password from its default value after installation.

"GUEST" user login to connects to the database and validate with fnd_user table and authenticate your sessions, so GUEST user should ALWAYS be active.
By default, its password is oracle.

HTH
Thanks for reading..!!

APP-FND-01542: This Applications Server is not authorized to access this database.

Problem:
While trying to access forms in our newly upgraded EBS environment from release 11.5.10.2 to 12.1.1, we had this error while accessing forms directly through the below url:

http://<hostname.domain>:<Port_No>/forms/frmservlet
















 Solution:
After digging into this issue for 1 hour, I found out that this can be fixed by setting the profile “s_appserverid_authentication" to OFF in application context file.
  1. Backup your current context file.
    cd $INST_TOP/appl/admin
    -cp <Context_Name.xml> <Context_Name.xml.org>   -- { Context_Name.xml = SID_hostname }
  2. Change the value for profile “s_appserverid_authentication” to OFF
  3.  Run Autoconfig on application tier.
    cd $ADMIN_SCRIPTS_HOME
    sh adautocfg.sh
  4.  Now try to login to application directly through forms.
    When using Forms Servlet Mode:
    http://hostname.domain:port/forms/frmservlet

    When using Forms Socket Mode:
    http://hostname.domain:port/OA_HTML/frmservlet

    Query to get URL in Applications:
    • select profile_option_value from fnd_profile_option_values where
    profile_option_value like '%http%';
    • select home_url from icx_parameters
  5.  There are three modes of authentication you can configure your applications by setting the parameter
    s_appserverid_authentication to ON :
    s_appserverid_authentication to Partial
    s_appserverid_authentication to SECURE : activates full server security (SECURE mode)
    s_appserverid_authentication to OFF : deactivates server security.

Running Autoconfig is the preferred method of updating "s_appserverid_authentication"
If we are unable to run Autoconfig during troubleshooting,we can run the following commands instead from $FND_TOP/secure directory:

Disable:
java oracle.apps.fnd.security.AdminAppServer apps/apps
\
AUTHENTICATION OFF DBC=host_<context_name>.dbc

Enable:
To activate basic server security, from the command line, enter:

jre oracle.apps.fnd.security.AdminAppServer apps/apps
\
AUTHENTICATION ON DBC= host_<context_name>.dbc

To activate full server security (SECURE mode), from the command line, enter:
jre oracle.apps.fnd.security.AdminAppServer apps/apps
\
AUTHENTICATION SECURE DBC= host_<context_name>.dbc

Check the status:
java oracle.apps.fnd.security.AdminAppServer apps/apps
\
STATUS DBC= host_<context_name>.dbc 


References:
APP-FND-01542 when logging directly into forms via the f60cgi in 11.5.10          (Doc ID 293609.1)
ADI APP-FND-01542: This Applications Server Is Not Authorized To Access This          (Doc ID 197792.1)
APP-FND-01516 Error Raised When Starting Forms From Homepage          (Doc ID 403397.1)
How To Access Forms Directly In Oracle Applications R12          (Doc ID 552301.1)


HTH
Thanks for reading..!!

FRM-92050 failed to connect to Server /forms/servlet -1

Problem:
Recently while upgrading one of our Oracle EBS environment from release 11.5.10.2 to Release 12.1.1, we had this issue while trying to any Form using MS Internet Explorer Browser Version 10 from R12 EBS front end url.












Cause:
The required Forms 10.1.2.3 servlet components may not have been deployed properly when Forms 10.1.2.3 was first installed in your Oracle E-Business Suite Release 12 environment (Bug 8608695).

Solution:
To fix this I disabled XSS filter under IE Security settings and it started working fine.

Internet Explorer -> Internet Options -> Security -> Click on Internet -> Custom Level -> Disable XSS filter

But this is just a temporary fix, if you want to fix this issue once in for all, you may have to
re-deploy forms.ear file.

Let's take a look at the steps needed to deploy a new formsapp.ear in Oracle E-business Suite Release 12.
  1. Source the environment file and stop all the applications or services running on application tier.
    cd $APPL_TOP
    . ./APPS<CONTEXT_NAME>.env
  2.   Now we need to change the ocj4jadmin password

    $ cd $INST_TOP/ora/10.1.3/j2ee/forms/config/
    $ cp system-jazn-data.xml system-jazn-data.xml.ori
    Now open this .xml file and search for string "credentials
     <credentials>{903}9VrhYTuhd7DyBJf7J/4KwbSEIlETQJOO</credentials> -- before the change
    <credentials>!welcome</credentials> -- after the change

    Note: The "!" in "!welcome"is required. The password for the oc4jadmin user is changed to "welcome"

    This step can be skipped if you know the password for oc4jadmin, so folks start recording all your password. Also, before changing oc4jadmin password please try oafm or secret as passwords once.
  3.  Run Deployment Script
    txkCfgOC4JApp.pl is a perl script that installs the .ear file in the proper location and configures the Forms J2EE group correctly.

    Note: Before running this perl script make sure no Java processes are running.

    $ cd $FND_TOP/bin/txkrun.pl -script=CfgOC4JApp
    Enter Application name for re-deployment ? forms
    Enter Oc4j Instance password for re-deployment ? welcome (or current password)
    Run Autoconfig <Yes/No> ? No
  4. Run AutoConfig on the instance by running the command:
    $ADMIN_SCRIPTS_HOME/adautocfg.sh
  5. Start the appropriate services on the instance by running the command:
    $ADMIN_SCRIPTS_HOME/adstrtal.sh <apps user/apps password>

HTH
Thanks for reading..!!