Blog dedicated to Oracle Applications (E-Business Suite) Technology; covers Apps Architecture, Administration and third party bolt-ons to Apps

Tuesday, April 28, 2009

Query to see workflow queues status

select
OWNER, NAME, ENQUEUE_ENABLED, DEQUEUE_ENABLED
from
DBA_QUEUES
where
NAME like 'WF%';

OWNER NAME ENQUEUE DEQUEUE
------------------------------ ------------------------------ ------- -------
APPLSYS WF_WS_JMS_IN YES YES
APPLSYS WF_INBOUND_QUEUE YES YES
APPLSYS WF_OUTBOUND_QUEUE YES YES
APPLSYS WF_IN YES YES
APPLSYS WF_DEFERRED_QUEUE_M YES YES
APPLSYS WF_SMTP_O_1_QUEUE YES YES
APPLSYS WF_ERROR YES YES
APPLSYS WF_OUT YES YES
APPLSYS WF_DEFERRED YES YES
APPLSYS WF_REPLAY_IN YES YES
APPLSYS WF_REPLAY_OUT YES YES
APPLSYS WF_JMS_IN YES YES
APPLSYS WF_JMS_OUT YES YES
APPLSYS WF_CONTROL YES YES
APPLSYS WF_NOTIFICATION_IN YES YES
APPLSYS WF_JAVA_DEFERRED YES YES
APPLSYS WF_JAVA_ERROR YES YES
APPLSYS WF_NOTIFICATION_OUT YES YES
APPLSYS WF_WS_JMS_OUT YES YES
APPLSYS WF_JMS_JMS_OUT YES YES
APPLSYS WF_WS_SAMPLE YES YES

21 rows selected.

MSCNPS64 Program was terminated by signal 11 etc

Maran reported this error in ASCP after a fresh clone:

Memory Based Snapshot 64 bit Sun –program errors out in apps11i.

Error Details:

$MSC_TOP/bin/MSCNPS64
Program was terminated by signal 11

Based on previous experience, I checked the values of these environment variables:

APS64_ORACLE_HOME
APS64_ORA_NLS33
ORA_NLS33

All of them were sourced in.

However Oracle recommends that only APS64_ORACLE_HOME and APS64_ORA_NLS33 needs to be set. So I removed ORA_NLS33 and bounced the Concurrent Manager with only these set:

APS64_ORACLE_HOME
APS64_ORA_NLS33

The ASCP Plan crossed the stage where MSCNPS64 is called. However it failed during Loader Worker with this error:

APP-MRP-22130: Cannot connect to database

Cause: The current routine cannot connect to the database.

Action: Contact your system administrator or customer support representative.

Concurrent program returned no reason for failure.
ORACLE error 1012 in FDPCLS

Cause: FDPCLS failed due to ORA-01012: not logged on
.

The SQL statement being executed at the time of the error was: and was executed from the file .
$MSC_TOP/bin/MSCPLD.sh
Program exited with status 1

So this time, I removed APS64_ORA_NLS33 and set ORA_NLS33, which is how it runs in Production:

APS64_ORACLE_HOME
ORA_NLS33

The plan crossed the Loader worker stage but failed during Memory Based Planner MSONWS64:

Memory Based Planner 64-bit Sun
Program exited with status 1.

We have faced this error before when we ran out of RAM and swap. However we were on a new server with 62GB free memory. So lack of memory could not be the issue.

I checked the value of ulimit for open file descriptors and found:

ulimit -n
65536

On Production this value was very low 256.

655536 is the maximum limit. However I have seen issues when it is set to maximum, so I reduced it by 2.

ulimit -n 65534

When Plan was relaunched, it ran fine.

Maran ran it again to make sure the fix really worked.

Monday, April 27, 2009

Difference between acronym and abbreviation

Be aware of the difference between an acronym and an abbreviation.
Remember, an acronym is a combination of letters making a word that you can
pronounce as a word. For example UNICEF is an acronym for United Nations Children's Fund. One kind of an abbreviation, however, is a set of uppercase
letters (without periods) that you can pronounce only as letters and never
as a word. Examples are CBS (C-B-S), NFL (N-F-L), YWCA (Y-W-C-A), and
AFL-CIO (A-F-L, C-I-O).

Gareth Roberts maintains a list of acronyms / abbreviations related to Apps on his blog here.

Sunday, April 26, 2009

Testing whether utl_file_dir is set

I found some sample code provided by Oracle for testing utl_file_dir

Metalink Note 45327.1 gives some good procedures to test whether pl/sql code calling utl_file package is able to write to the directories defnied in utl_file_dir

Metalink Note 1016653.4 gives this code to test to verify setup for UTL_FILE Package
DECLARE
fHandle UTL_FILE.FILE_TYPE;
vText varchar2(10);
BEGIN
fHandle := UTL_FILE.FOPEN('/usr/tmp','utlfile.txt','w');
vText := 'TEST'; UTL_FILE.PUTF(fHandle,vText);
UTL_FILE.FCLOSE(fHandle);
EXCEPTION WHEN UTL_FILE.INVALID_PATH THEN
RAISE_APPLICATION_ERROR(-20100,'Invalid Path');
WHEN UTL_FILE.INVALID_MODE THEN
RAISE_APPLICATION_ERROR(-20101,'Invalid Mode');
WHEN UTL_FILE.INVALID_OPERATION then
RAISE_APPLICATION_ERROR(-20102,'Invalid Operation');
WHEN UTL_FILE.INVALID_FILEHANDLE then
RAISE_APPLICATION_ERROR(-20103,'Invalid Filehandle');
WHEN UTL_FILE.WRITE_ERROR then
RAISE_APPLICATION_ERROR(-20104,'Write Error');
WHEN UTL_FILE.READ_ERROR then
RAISE_APPLICATION_ERROR(-20105,'Read Error');
WHEN UTL_FILE.INTERNAL_ERROR then
RAISE_APPLICATION_ERROR(-20106,'Internal Error');
WHEN OTHERS THEN
UTL_FILE.FCLOSE(fHandle);
END;
/

Friday, April 24, 2009

Maintain multilingual tables ORA-12705 ORA-01858

Akhilesh reported this error today:

While running Maintain multilingual tables from the Maintain Applications Database Entities menu, all
workers failed with below errros:-

ATTENTION: All workers either have failed or are waiting:

FAILED: file RLANLINS.sql on worker 1.
FAILED: file RGNLINS.sql on worker 2.
FAILED: file GLNLINS.sql on worker 3.
FAILED: file ALRNLINS.sql on worker 4.
FAILED: file AXNLINS.sql on worker 5.
FAILED: file XLANLINS.sql on worker 6.
FAILED: file AUNLINS.sql on worker 7.
FAILED: file SSPNLINS.sql on worker 8.
FAILED: file ADNLINS.sql on worker 9.
FAILED: file HXTNLINS.sql on worker 10.

ATTENTION: Please fix the above failed worker(s) so the manager.

Errors in the worker log are simillar as below :-

sqlplus -s APPS/***** @/erppgrp1/erpapp/appl/rla/11.5.0/sql/RLANLINS.sql

PL/SQL procedure successfully
completed.


MESG
--------------------------------------------------------------------------------
LANGUAGE=HUNGARIAN
PACKAGE=
SQLERRM=ORA-12705: Cannot access NLS data files or invalid environment specified


select to_date('ERROR')
*
ERROR at line 1:
ORA-01858: a non-numeric character was found where a numeric was expected

I opened the sql $HXT_TOP/sql/HXTNLINS.sql to find out which sql was throwing the ORA-12705 error and found that this line was causing the issue:

ALTER SESSION SET NLS_LANGUAGE = 'HUNGARIAN';

ORA-12705: Cannot access NLS data files or invalid environment

This was happening from 806 ORACLE_HOME. Seeing this, Akhilesh remembered a similar issue with NLS before and tried to run this command from 10.2.0 ORACLE_HOME logged in as SYSDBA:

ALTER SESSION SET NLS_LANGUAGE = 'HUNGARIAN';

Session Altered

After this when we tried to re-execute in 806 home, it worked there too.

ALTER SESSION SET NLS_LANGUAGE = 'HUNGARIAN';

Session Altered.

We tried exiting the session and tried with new sessions, and it worked fine.

Akhilesh said that he had faced this issue in a different context and the issue would re-occur once we bounce the instance. He said that in the other place, this error stopped after upgrading to 10.2.0.4.

However this seems very strange and we'll revisit this once the instance is booted. I have also taken truss outputs of 806 sqlplus process and 1020 sqlplus process:

10.2.0 truss:

read(0, 0xFFFFFFFF7CDFCA20, 1024) (sleeping...)
read(0, " A L T E R S E S S I".., 1024) = 47
open("/erppgrp1/oracle/10.2.0/nls/data/9idata/lx40011.nlb", O_RDONLY) = 12
read(12, "03\0\0\0\n 03\0\0\0 N a".., 92) = 92
read(12, "\0\0\0\0\0\001 (\0\001 ,".., 19980) = 19973
close(12) = 0
write(10, "01 &\0\006\0\0\0\0\011 i".., 294) = 294
read(11, "02 !\0\006\0\0\0\0\0\b\0".., 2064) = 545
write(1, "\n", 1) = 1
lseek(3, 512, SEEK_SET) = 512
read(3, "019E\0\0\0\0\0\0\0\0\0\0".., 512) = 512
lseek(3, 1024, SEEK_SET) = 1024
read(3, "\016\0 -\0 @\0 R\0 g\07F".., 512) = 512
lseek(3, 3584, SEEK_SET) = 3584
read(3, "\015\0 S\0\0\086\0 T\0\0".., 512) = 512
lseek(3, 512, SEEK_SET) = 512
read(3, "019E\0\0\0\0\0\0\0\0\0\0".., 512) = 512
lseek(3, 1024, SEEK_SET) = 1024
read(3, "\016\0 -\0 @\0 R\0 g\07F".., 512) = 512
lseek(3, 3584, SEEK_SET) = 3584
read(3, "\015\0 S\0\0\086\0 T\0\0".., 512) = 512
write(1, " S e s s i o n a l t e".., 16) = 16
write(1, "\n", 1) = 1
write(1, "\n", 1) = 1
write(1, " S Q L > ", 5) = 5
read(0, 0xFFFFFFFF7CDFCA20, 1024) (sleeping...)
read(0, " e x i t\n", 1024) = 5
write(10, "\0\r\0\006\0\0\0\0\003\t".., 13) = 13
read(11, "\011\0\006\0\0\0\0\0\t\0".., 2064) = 17
lseek(4, 512, SEEK_SET) = 512
read(4, "17A5\0\0\0\0\0\0\0\0\0\0".., 512) = 512
lseek(4, 1024, SEEK_SET) = 1024
read(4, "\016\0 *\0 R\0 h\081\09E".., 512) = 512
lseek(4, 4608, SEEK_SET) = 4608
read(4, "\00F\0A0\0\0\0 b\0A1\0\0".., 512) = 512
lseek(4, 512, SEEK_SET) = 512
read(4, "17A5\0\0\0\0\0\0\0\0\0\0".., 512) = 512
lseek(4, 1024, SEEK_SET) = 1024
read(4, "\016\0 *\0 R\0 h\081\09E".., 512) = 512
lseek(4, 4608, SEEK_SET) = 4608
read(4, "\00F\0A0\0\0\0 b\0A1\0\0".., 512) = 512
write(1, " D i s c o n n e c t e d".., 95) = 95
write(1, " W i t h t h e P a r".., 52) = 52
write(10, "\0\n\0\006\0\0\0\0 @", 10) = 10
close(10) = 0
close(11) = 0
close(8) = 0
close(6) = 0
close(5) = 0
close(3) = 0
close(4) = 0
_exit(0)


8.0.6 truss:
read(0, 0xFF1F6FA0, 1024) (sleeping...)
read(0, " a l t e r s e s s i o".., 1024) = 44
write(9, "\092\0\006\0\0\0\0\011 i".., 146) = 146
read(9, "01C3\0\006\0\0\0\0\0\b\0".., 2064) = 451
close(3) = 0
close(4) = 0
open("/erppgrp1/erpapp/8.0.6/sqlplus/mesg/sp1hu.msb", O_RDONLY) Err#2 ENOENT
open("/erppgrp1/erpapp/8.0.6/sqlplus/mesg/sp1us.msb", O_RDONLY) = 3
fcntl(3, F_SETFD, 0x00000001) = 0
lseek(3, 0, SEEK_SET) = 0
read(3, "1513 "011303\t\t\0\0\0\0".., 256) = 256
open("/erppgrp1/erpapp/8.0.6/sqlplus/mesg/sp2hu.msb", O_RDONLY) Err#2 ENOENT
open("/erppgrp1/erpapp/8.0.6/sqlplus/mesg/sp2us.msb", O_RDONLY) = 4
fcntl(4, F_SETFD, 0x00000001) = 0
lseek(4, 0, SEEK_SET) = 0
read(4, "1513 "011303\t\t\0\0\0\0".., 256) = 256
write(1, "\n", 1) = 1
lseek(3, 512, SEEK_SET) = 512
read(3, "01 >\0\0\0\0\0\0\0\0\0\0".., 512) = 512
lseek(3, 1024, SEEK_SET) = 1024
read(3, "\016\0 -\0 @\0 R\0 g\07F".., 512) = 512
lseek(3, 3584, SEEK_SET) = 3584
read(3, "\015\0 S\0\0\086\0 T\0\0".., 512) = 512
lseek(3, 512, SEEK_SET) = 512
read(3, "01 >\0\0\0\0\0\0\0\0\0\0".., 512) = 512
lseek(3, 1024, SEEK_SET) = 1024
read(3, "\016\0 -\0 @\0 R\0 g\07F".., 512) = 512
lseek(3, 3584, SEEK_SET) = 3584
read(3, "\015\0 S\0\0\086\0 T\0\0".., 512) = 512
write(1, " S e s s i o n a l t e".., 16) = 16
write(1, "\n", 1) = 1
write(1, "\n", 1) = 1
write(1, " S Q L > ", 5) = 5
read(0, 0xFF1F6FA0, 1024) (sleeping...)
read(0, " e x i t\n", 1024) = 5
write(9, "\01C\0\006\0\0\0\0\011 k".., 28) = 28
read(9, "\0\v\0\006\0\0\0\0\0\t", 2064) = 11
lseek(4, 512, SEEK_SET) = 512
read(4, "02B4\0\0\0\0\0\0\0\0\0\0".., 512) = 512
lseek(4, 1024, SEEK_SET) = 1024
read(4, "\013\0 '\0 5\0 M\0 ]\0 l".., 512) = 512
lseek(4, 5632, SEEK_SET) = 5632
read(4, "\00E\091\0\0\0 \\092\0\0".., 512) = 512
lseek(4, 512, SEEK_SET) = 512
read(4, "02B4\0\0\0\0\0\0\0\0\0\0".., 512) = 512
lseek(4, 1024, SEEK_SET) = 1024
read(4, "\013\0 '\0 5\0 M\0 ]\0 l".., 512) = 512
lseek(4, 6144, SEEK_SET) = 6144
read(4, "\010\0AB\0\0\0 h\0AC\0\0".., 512) = 512
write(1, " D i s c o n n e c t e d".., 146) = 146
write(1, "\n", 1) = 1
write(9, "\0\n\0\006\0\0\0\0 @", 10) = 10
close(9) = 0
lwp_sigmask(SIG_SETMASK, 0x00000002, 0x00000000) = 0xFFBFFEFF [0x0000FFFF]
sigaction(SIGINT, 0xFFBF93A0, 0xFFBF9440) = 0
lwp_sigmask(SIG_SETMASK, 0x00000000, 0x00000000) = 0xFFBFFEFF [0x0000FFFF]
close(6) = 0
close(5) = 0
close(3) = 0
close(4) = 0
_exit(0)

Will update this post when we learn the root cause.

Thursday, April 23, 2009

New features in Oracle RDBMS 10.2.0.4

I found this from a presentation on new features in Oracle RDBMS 10.2.0.4 for SAP

RAC Features
Non-blocking Thread Architecture for CRS Background Processes
• Improved Cluster Stacks:
• AIX 5.3 / 6.1 – GPFS 3.2
• Faster Detection of Node Failures
• Improved Recovery Times after Node Failures
• Linux – OCFS 1.4
• Included in SLES10 SP2 and RHEL5.2
• New Features include Online Resizing, Sparse Files, Shared writable mmap, Preparation for Cluster LVM (Stretched Cluster)


Cost Based Optimizer
• Multi Column Statistics (MCS)
• Dynamic Sampling

Benefit of MCS
• Allows detection of column correlation for concatenated indexes
• Important especially for bind variable usage
Example: create index aaa_1 on aaa (www, xxx, yyy);
create index aaa_2 on aaa (www, xxx, zzz);
select * from aaa where www = :a0 and xxx = :a1 and yyy = :a2;
• Without MCS wrong index aaa_2 may be chosen !
• MCS enabled in 10.2.0.4 through following parameters
• _fix_control=5765456:7
• _fix_control=6221403:ON


Benefit of Dynamic Sampling
• Allows better calculation of optimizer statistics due to non-existing or outdated statistics for tables
• Statistics are collected during query execution by sampling data
• Dynamic Sampling enabled in 10.2.0.4 through following parameter
• Optimizer_dynamic_sampling = 6

Opatch 10.2.0.4 and OCM
• Patchset 10.2.0.4 includes OPatch 10.2.0.4
• version 10.2.0.4.2 or 10.2.0.4.3 (depending on platform)
• includes OCM (Oracle Configuration Manager)

Tuesday, April 21, 2009

ERROR: Please check the jri clone stage directory

Sreenivas reported this error while merging application tier file systems:

Executing merge appl top for JRI merge

ERROR: Please check the jri clone stage directory
Number of java directories in clone stage for jri merge are incorrect
adjcopy needs atleast two directories to merge jri files i.e., -masterArchive and -deltaArchives

Bug 3804082 says:

$OA_JAVA/META-INF/JRIMETA.DAT does not exist in clone directory of any server.

However this file was present.

In an OTN forum, Sreenivas found the advise to copy $COMMON_TOP/clone directory from all source nodes.

This time adcfgclone.pl ran fine:

Executing merge appl top for JRI merge

 merge jri files with command :

 JRI log file located at, $APPL_TOP/admin/$TWO_TASK/out/jri_logfile.txt

 JRI report file located at, $APPL_TOP/admin/$TWO_TASK/out/jri_report.txt

 Copying master archive from $COMMON_TOP/clone/bin/../appl/webserver1/java/* to $COMMON_TOP/java

 Completed copying master archive to  $COMMON_TOP/java

s_allowed_addresses obsoleted by s_oacore_trusted_nodes

Recently while comparing the changes propagated by Autoconfig, I came across this variable s_allowed_addresses, which was present in all the *.conf files in $IAS_CONFIG_HOME/Apache/Apache/conf. I had never seen this variable. A search on Metalink showed up Bug 4428490 which says:

For all properties files, %s_allowed_addresses% parameter is well replaced by the trusted nodes and oprocmgr.conf file is updated correctly, but httpd_pls.conf is not updated by autoconfig for the trusted nodes, doesn't take care of the s_oacore_trusted_nodes parameter.

So s_allowed_addresses has been obsoleted by s_oacore_trusted_nodes parameter.

Oracle is buying Sun

If you go to www.sun.com, you'll see the news that Oracle is buying Sun:

Sun and Oracle today announced a definitive agreement for Oracle to acquire Sun for $9.50 per share in cash. The Sun Board of Directors has unanimously approved the transaction. It is anticipated to close this summer.

As per wikipedia:

MySQL project's source code is available under terms of the GNU General Public License, as well as under a variety of proprietary agreements. MySQL is owned and sponsored by a single for-profit firm, the Swedish company MySQL AB, now a subsidiary of Sun Microsystems, which holds the copyright to most of the codebase. On April 20th, 2009 Oracle Corp., which develops and sells the proprietary Oracle database, announced a deal to acquire Sun Microsystems.

This leads to an interesting question.

Sun has MySQL in its kitty. So, Oracle becomes owner of MySQL automatically. MySQL is an Oracle competitor. What is Oracle going to do with MySQL now ? I would presume that Oracle will support MySQL for one more version and then give an upgrade path from MySQL to Oracle for the MySQL customers. That is exactly what is being done with Peoplesoft, JD Edwards products which it acquired previously.

Let me know your thoughts through comments.

hs_err_pid.log file on desktop

After booting up my laptop today, I found 3 files on my desktop:

hs_err_pid2568.log
hs_err_pid4416.log
hs_err_pid6092.log

All 3 of them had contents similar to this:

An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : EXCEPTION_ACCESS_VIOLATION occurred at PC=0x6D20573D
Function name=Java_sun_awt_windows_DrawGlyphVectorGDI_drawGlyphVectorGDI
Library=C:\Program Files\Oracle\JInitiator 1.3.1.29\bin\fontmanager.dll

Current Java thread:
at sun.awt.font.NativeFontWrapper.getFontMetrics(Native Method)
at sun.awt.font.FontDesignMetrics.initMatrixAndMetrics(Unknown Source)
at sun.awt.font.FontDesignMetrics.(Unknown Source)
at sun.awt.font.FontDesignMetrics.(Unknown Source)
at sun.awt.SunToolkit.getFontMetrics(Unknown Source)
at sun.awt.windows.WToolkit.getFontMetrics(Unknown Source)
at java.awt.Component.getFontMetrics(Unknown Source)
at javax.swing.text.PlainView.calculateLongestLine(Unknown Source)
at javax.swing.text.PlainView.updateMetrics(Unknown Source)
at javax.swing.text.PlainView.updateDamage(Unknown Source)
at javax.swing.text.PlainView.insertUpdate(Unknown Source)
at javax.swing.plaf.basic.BasicTextUI$RootView.insertUpdate(Unknown Source)
at javax.swing.plaf.basic.BasicTextUI$UpdateHandler.insertUpdate(Unknown Source)
at javax.swing.text.AbstractDocument.fireInsertUpdate(Unknown Source)
at javax.swing.text.AbstractDocument.insertString(Unknown Source)
at javax.swing.JTextArea.append(Unknown Source)
at sun.plugin.ConsoleWindow$19.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

Dynamic libraries:
0x00400000 - 0x00419000 C:\Program Files\Internet Explorer\iexplore.exe
0x7C900000 - 0x7C9AF000 C:\WINDOWS\system32\ntdll.dll
0x7C800000 - 0x7C8F6000 C:\WINDOWS\system32\kernel32.dll
0x77C10000 - 0x77C68000 C:\WINDOWS\system32\msvcrt.dll
0x7E410000 - 0x7E4A1000 C:\WINDOWS\system32\USER32.dll
0x77F10000 - 0x77F59000 C:\WINDOWS\system32\GDI32.dll
0x77F60000 - 0x77FD6000 C:\WINDOWS\system32\SHLWAPI.dll
0x77DD0000 - 0x77E6B000 C:\WINDOWS\system32\ADVAPI32.dll
0x77E70000 - 0x77F02000 C:\WINDOWS\system32\RPCRT4.dll
0x77FE0000 - 0x77FF1000 C:\WINDOWS\system32\Secur32.dll
0x7E290000 - 0x7E401000 C:\WINDOWS\system32\SHDOCVW.dll
0x77A80000 - 0x77B15000 C:\WINDOWS\system32\CRYPT32.dll
0x77B20000 - 0x77B32000 C:\WINDOWS\system32\MSASN1.dll
0x754D0000 - 0x75550000 C:\WINDOWS\system32\CRYPTUI.dll
0x5B860000 - 0x5B8B5000 C:\WINDOWS\system32\NETAPI32.dll
0x77120000 - 0x771AB000 C:\WINDOWS\system32\OLEAUT32.dll
0x774E0000 - 0x7761D000 C:\WINDOWS\system32\ole32.dll
0x77C00000 - 0x77C08000 C:\WINDOWS\system32\VERSION.dll
0x771B0000 - 0x7725A000 C:\WINDOWS\system32\WININET.dll
0x76C30000 - 0x76C5E000 C:\WINDOWS\system32\WINTRUST.dll
0x76C90000 - 0x76CB8000 C:\WINDOWS\system32\IMAGEHLP.dll
0x76F60000 - 0x76F8C000 C:\WINDOWS\system32\WLDAP32.dll
0x773D0000 - 0x774D3000 C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83\comctl32.dll
0x7C9C0000 - 0x7D1D7000 C:\WINDOWS\system32\SHELL32.dll
0x5D090000 - 0x5D12A000 C:\WINDOWS\system32\comctl32.dll
0x5AD70000 - 0x5ADA8000 C:\WINDOWS\system32\uxtheme.dll
0x75F80000 - 0x7607D000 C:\WINDOWS\system32\BROWSEUI.dll
0x71600000 - 0x71612000 C:\WINDOWS\system32\browselc.dll
0x77B40000 - 0x77B62000 C:\WINDOWS\system32\appHelp.dll
0x76FD0000 - 0x7704F000 C:\WINDOWS\system32\CLBCATQ.DLL
0x77050000 - 0x77115000 C:\WINDOWS\system32\COMRes.dll
0x7E1E0000 - 0x7E282000 C:\WINDOWS\system32\urlmon.dll
0x77A20000 - 0x77A74000 C:\WINDOWS\System32\cscui.dll
0x76600000 - 0x7661D000 C:\WINDOWS\System32\CSCDLL.dll
0x77920000 - 0x77A13000 C:\WINDOWS\system32\SETUPAPI.dll
0x10000000 - 0x1000D000 C:\WINDOWS\system32\SCTOOL~1.DLL
0x73DD0000 - 0x73ECE000 C:\WINDOWS\system32\MFC42.DLL
0x00F40000 - 0x00F50000 C:\Program Files\Common Files\Adobe\Acrobat\ActiveX\AcroIEHelper.dll
0x78130000 - 0x781CB000 C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.1433_x-ww_5cf844d2\MSVCR80.dll
0x60000000 - 0x6004A000 C:\Program Files\Real\RealPlayer\rpbrowserrecordplugin.dll
0x763B0000 - 0x763F9000 C:\WINDOWS\system32\comdlg32.dll
0x4EC50000 - 0x4EDF6000 C:\WINDOWS\WinSxS\x86_Microsoft.Windows.GdiPlus_6595b64144ccf1df_1.0.2600.5581_x-ww_dfbc4fc4\gdiplus.dll
0x7C3A0000 - 0x7C41B000 C:\WINDOWS\system32\MSVCP71.dll
0x7C340000 - 0x7C396000 C:\WINDOWS\system32\MSVCR71.dll
0x6D440000 - 0x6D44C000 C:\Program Files\Java\jre6\bin\jp2ssv.dll
0x6DAB0000 - 0x6DAC2000 C:\Program Files\Java\jre6\lib\deploy\jqs\ie\jqs_plugin.dll
0x71AB0000 - 0x71AC7000 C:\WINDOWS\system32\WS2_32.dll
0x71AA0000 - 0x71AA8000 C:\WINDOWS\system32\WS2HELP.dll
0x71A50000 - 0x71A8F000 C:\WINDOWS\system32\mswsock.dll
0x662B0000 - 0x66308000 C:\WINDOWS\system32\hnetcfg.dll
0x71A90000 - 0x71A98000 C:\WINDOWS\System32\wshtcpip.dll
0x7E720000 - 0x7E7D0000 C:\WINDOWS\system32\SXS.DLL
0x71800000 - 0x71888000 C:\WINDOWS\system32\shdoclc.dll
0x010B0000 - 0x01375000 C:\WINDOWS\system32\xpsp2res.dll
0x75CF0000 - 0x75D81000 C:\WINDOWS\system32\mlang.dll
0x71AD0000 - 0x71AD9000 C:\WINDOWS\system32\wsock32.dll
0x76EE0000 - 0x76F1C000 C:\WINDOWS\system32\RASAPI32.DLL
0x76E90000 - 0x76EA2000 C:\WINDOWS\system32\rasman.dll
0x76EB0000 - 0x76EDF000 C:\WINDOWS\system32\TAPI32.dll
0x76E80000 - 0x76E8E000 C:\WINDOWS\system32\rtutils.dll
0x76B40000 - 0x76B6D000 C:\WINDOWS\system32\WINMM.dll
0x77C70000 - 0x77C94000 C:\WINDOWS\system32\msv1_0.dll
0x76D60000 - 0x76D79000 C:\WINDOWS\system32\iphlpapi.dll
0x722B0000 - 0x722B5000 C:\WINDOWS\system32\sensapi.dll
0x769C0000 - 0x76A74000 C:\WINDOWS\system32\USERENV.dll
0x7D1E0000 - 0x7D49C000 C:\WINDOWS\system32\msi.dll
0x7DC30000 - 0x7DF23000 C:\WINDOWS\system32\Mshtml.dll
0x746C0000 - 0x746E7000 C:\WINDOWS\system32\msls31.dll
0x76BF0000 - 0x76BFB000 C:\WINDOWS\system32\PSAPI.DLL
0x746F0000 - 0x7471A000 C:\WINDOWS\system32\msimtf.dll
0x74720000 - 0x7476C000 C:\WINDOWS\system32\MSCTF.dll
0x76390000 - 0x763AD000 C:\WINDOWS\system32\IMM32.DLL
0x325C0000 - 0x325D2000 C:\Program Files\Microsoft Office\OFFICE11\msohev.dll
0x75C50000 - 0x75CCD000 C:\WINDOWS\system32\jscript.dll
0x02390000 - 0x02742000 C:\WINDOWS\system32\Macromed\flash\flash.ocx
0x72D20000 - 0x72D29000 C:\WINDOWS\system32\wdmaud.drv
0x72D10000 - 0x72D18000 C:\WINDOWS\system32\msacm32.drv
0x77BE0000 - 0x77BF5000 C:\WINDOWS\system32\MSACM32.dll
0x77BD0000 - 0x77BD7000 C:\WINDOWS\system32\midimap.dll
0x3FB90000 - 0x3FCDA000 C:\WINDOWS\system32\msxml6.dll
0x71B20000 - 0x71B32000 C:\WINDOWS\system32\MPR.dll
0x75F60000 - 0x75F67000 C:\WINDOWS\System32\drprov.dll
0x71C10000 - 0x71C1E000 C:\WINDOWS\System32\ntlanman.dll
0x71CD0000 - 0x71CE7000 C:\WINDOWS\System32\NETUI0.dll
0x71C90000 - 0x71CD0000 C:\WINDOWS\System32\NETUI1.dll
0x71C80000 - 0x71C87000 C:\WINDOWS\System32\NETRAP.dll
0x71BF0000 - 0x71C03000 C:\WINDOWS\System32\SAMLIB.dll
0x75F70000 - 0x75F7A000 C:\WINDOWS\System32\davclnt.dll
0x04420000 - 0x0442D000 C:\WINDOWS\system32\nfsnp.dll
0x04430000 - 0x04445000 C:\WINDOWS\system32\nfsccfg.dll
0x73BA0000 - 0x73BB3000 C:\WINDOWS\system32\sti.dll
0x74AE0000 - 0x74AE7000 C:\WINDOWS\system32\CFGMGR32.dll
0x66880000 - 0x6688C000 C:\WINDOWS\system32\ImgUtil.dll
0x5E310000 - 0x5E31C000 C:\WINDOWS\system32\pngfilt.dll
0x767F0000 - 0x76817000 C:\WINDOWS\system32\schannel.dll
0x6D430000 - 0x6D43A000 C:\WINDOWS\system32\ddrawex.dll
0x73760000 - 0x737AB000 C:\WINDOWS\system32\DDRAW.dll
0x73BC0000 - 0x73BC6000 C:\WINDOWS\system32\DCIMAN32.dll
0x6BDD0000 - 0x6BE06000 C:\WINDOWS\system32\dxtrans.dll
0x76B20000 - 0x76B31000 C:\WINDOWS\system32\ATL.DLL
0x6BE10000 - 0x6BE6A000 C:\WINDOWS\system32\dxtmsft.dll
0x76200000 - 0x76271000 C:\WINDOWS\system32\mshtmled.dll
0x66E50000 - 0x66E90000 C:\WINDOWS\system32\iepeers.dll
0x73000000 - 0x73026000 C:\WINDOWS\system32\WINSPOOL.DRV
0x71D40000 - 0x71D5B000 C:\WINDOWS\system32\Actxprxy.dll
0x6CC60000 - 0x6CC68000 C:\WINDOWS\system32\dispex.dll
0x6D350000 - 0x6D35D000 C:\Program Files\Oracle\JInitiator 1.3.1.29\bin\npjinit13129.dll
0x6D130000 - 0x6D15B000 C:\Program Files\Oracle\JInitiator 1.3.1.29\bin\beans.ocx
0x76F20000 - 0x76F47000 C:\WINDOWS\system32\DNSAPI.dll
0x76FB0000 - 0x76FB8000 C:\WINDOWS\System32\winrnr.dll
0x16080000 - 0x160A5000 C:\Program Files\Bonjour\mdnsNSP.dll
0x6D300000 - 0x6D316000 C:\Program Files\Oracle\JInitiator 1.3.1.29\bin\jpishare.dll
0x04D00000 - 0x04DDC000 C:\PROGRA~1\Oracle\JINITI~1.29\bin\hotspot\jvm.dll
0x6D220000 - 0x6D227000 C:\PROGRA~1\Oracle\JINITI~1.29\bin\hpi.dll
0x6D380000 - 0x6D38D000 C:\PROGRA~1\Oracle\JINITI~1.29\bin\verify.dll
0x6D250000 - 0x6D268000 C:\PROGRA~1\Oracle\JINITI~1.29\bin\java.dll
0x6D390000 - 0x6D39D000 C:\PROGRA~1\Oracle\JINITI~1.29\bin\zip.dll
0x6D020000 - 0x6D12B000 C:\Program Files\Oracle\JInitiator 1.3.1.29\bin\awt.dll
0x6D1E0000 - 0x6D21C000 C:\Program Files\Oracle\JInitiator 1.3.1.29\bin\fontmanager.dll
0x5ED00000 - 0x5EDCC000 C:\WINDOWS\system32\OPENGL32.dll
0x68B20000 - 0x68B40000 C:\WINDOWS\system32\GLU32.dll
0x0F910000 - 0x0FB59000 C:\WINDOWS\system32\ig4icd32.dll
0x59A60000 - 0x59B01000 C:\WINDOWS\system32\DBGHELP.dll

Local Time = Thu Apr 16 10:59:33 2009
Elapsed Time = 0
#
# The exception above was detected in native code outside the VM
#
# Java VM: Java HotSpot(TM) Client VM (1.3.1_20-b03 mixed mode)
#

Metalink Note 797535.1 describes the same problem and says this:

Tabbed Browsing was introduced in IE7. Jinitiator has a problem with this configuration. The forms applet needs to be in it’s own browser. Our application cannot run in one browser with multiple tabs.

Please set your tabbed browsing settings so that pop-ups open in a new window. Please see attachment for seetings.

However I am not using IE7, but IE6. So what could be the cause ?

Metalink Note 259436.1 also describes same issue and this time even the Jinitiator version matches. However I have only one video card and not two, as stated in the note.

I'll update this post, when I learn more.

Friday, April 17, 2009

nfs mount: mount: I/O error

Recently while trying to NFS mount a directory from DB Server to app server, I got the following error:

mount -F nfs -o rw,soft,intr devserver.justanexample.com:/apps11i/appl /apps11i/appl

nfs mount: mount: I/O error

/var/adm/messages showed:

Apr 18 01:25:23 devserver nfs: [ID 434519 kern.warning] WARNING: NFS server initial call to devserver.justanexample.com failed: I/O error

A truss also did not provide any additional messages.

On a hunch I went to the DB server where the mount existed. Logged in as root and gave the command:

share /apps11i/appl

I went back to the App server and executed the mount command again, and it worked fine:

mount -F nfs -o rw,soft,intr devserver.justanexample.com:/apps11i/appl /apps11i/appl

Clicking on forms doesn't do anything

After applying these patches:

6117031 (11i.ATG_PF.H RUP6 SSO 10g Integration),
7594318 (Post patchset 19 patch)
7657973 (Post patchset 19 patch)

Forms would launch, but if you clicked on any option, nothing happened. The Java console showed this message

Oracle JInitiator: Version 1.3.1.29
Using JRE version 1.3.1.29-internal Java HotSpot(TM) Client VM
User home directory = C:\temp

Proxy Configuration: Manual Configuration

Proxy: 3.25.44.25:80

Proxy Overrides:

JAR cache enabled
Location: C:\temp\Oracle Jar Cache
Maximum size: 50 MB
Compression level: 0



----------------------------------------------------
c: clear console window
f: finalize objects on finalization queue
g: garbage collect
h: display this help message
l: dump classloader list
m: print memory usage
q: hide console
s: dump system properties
t: dump thread list
x: clear classloader cache
0-5: set trace level to
----------------------------------------------------

Downloading http://dev1.justanexample.com:8001/OA_JAVA/oracle/apps/fnd/jar/fndforms.jar to JAR cache

Downloading http://dev1.justanexample.com:8001/OA_JAVA/oracle/apps/fnd/jar/fndformsi18n.jar to JAR cache

Downloading http://dev1.justanexample.com:8001/OA_JAVA/oracle/apps/fnd/jar/fndewt.jar to JAR cache

Deleted fndctx.jar-3cd0984a-713a63fc.zip from JAR cache

Deleted fndctx.jar-3cd0984a-713a63fc.idx from JAR cache

Deleted fndlist.jar-5324cc35-21961026.zip from JAR cache

Deleted fndlist.jar-5324cc35-21961026.idx from JAR cache

Deleted fndutil.jar-2e72b999-574bc255.zip from JAR cache

Deleted fndutil.jar-2e72b999-574bc255.idx from JAR cache

Deleted fndforms.jar-639fdaa0-169de86d.zip from JAR cache

Deleted fndforms.jar-639fdaa0-169de86d.idx from JAR cache

Deleted fndformsi18n.jar-2143833e-36e66d1b.zip from JAR cache

Deleted fndformsi18n.jar-2143833e-36e66d1b.idx from JAR cache

Deleted fndewt.jar-2b839873-402a1b1d.zip from JAR cache

Deleted fndewt.jar-2b839873-402a1b1d.idx from JAR cache

Downloading http://dev1.justanexample.com:8001/OA_JAVA/oracle/apps/fnd/jar/fndswing.jar to JAR cache

Downloading http://dev1.justanexample.com:8001/OA_JAVA/oracle/apps/fnd/jar/fndbalishare.jar to JAR cache

Downloading http://dev1.justanexample.com:8001/OA_JAVA/oracle/apps/fnd/jar/fndaol.jar to JAR cache

Downloading http://dev1.justanexample.com:8001/OA_JAVA/oracle/apps/fnd/jar/fndctx.jar to JAR cache

Downloading http://dev1.justanexample.com:8001/OA_JAVA/oracle/apps/fnd/jar/fndlist.jar to JAR cache


Deleted fndswing.jar-4f168def-660401db.zip from JAR cache

Deleted fndswing.jar-4f168def-660401db.idx from JAR cache

Deleted fndbalishare.jar-12c298d4-2ca5bb35.zip from JAR cache

Deleted fndbalishare.jar-12c298d4-2ca5bb35.idx from JAR cache

Deleted fndaol.jar-49d32a6f-185cc2cf.zip from JAR cache

Deleted fndaol.jar-49d32a6f-185cc2cf.idx from JAR cache

connectMode=Socket

serverHost=appadev1.justanexample.com

serverPort=9001

Forms Applet version is : 60827

Downloading http://dev1.justanexample.com:8001/OA_JAVA/oracle/apps/fnd/jar/fndutil.jar to JAR cache

java.lang.NoSuchMethodError
at oracle.forms.handler.BlockScroller.onCreate(Unknown Source)
at oracle.forms.engine.Runform.onCreateHandler(Unknown Source)
at oracle.forms.engine.Runform.processMessage(Unknown Source)
at oracle.forms.engine.Runform.processSet(Unknown Source)
at oracle.forms.engine.Runform.onMessageReal(Unknown Source)
at oracle.forms.engine.Runform.sendDeferredMessages(Unknown Source)
at oracle.forms.engine.Runform.onMessage(Unknown Source)
at oracle.forms.engine.Runform.sendInitialMessage(Unknown Source)
at oracle.forms.engine.Runform.startRunform(Unknown Source)
at oracle.forms.engine.Main.createRunform(Unknown Source)
at oracle.forms.engine.Main.start(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

We learnt that this instance, was an old clone and didn't have patchset 19 on it. After applying Patchset 19 and then applying the post patches, the problem was resolved.

Thursday, April 16, 2009

MSRFWOR ORA-01403: no data found

Refresh Snapshot failed in Source instance with ORA-01403 No Data found error. Here's the request log:

+---------------------------------------------------------------------------+
Master Scheduling/MRP: Version : 11.5.0

Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.

MSRFWOR module: Refresh Snapshots
+---------------------------------------------------------------------------+

Current system time is 16-APR-2009 09:39:30

+---------------------------------------------------------------------------+

**Starts**16-APR-2009 09:39:30
**Ends**16-APR-2009 09:39:31
ORA-01403: no data found
+---------------------------------------------------------------------------+
Start of log messages from FND_FILE
+---------------------------------------------------------------------------+
The degree of parallelism for Refreshing snapshots is set to: 0
ORA-01403: no data found
+---------------------------------------------------------------------------+
End of log messages from FND_FILE
+---------------------------------------------------------------------------+


+---------------------------------------------------------------------------+
Executing request completion options...


Output is not being printed because:
The print option has been disabled for this report.


Finished executing request completion options.

+---------------------------------------------------------------------------+
Concurrent request completed
Current system time is 16-APR-2009 09:39:32

+---------------------------------------------------------------------------+

I checked Metalink Note 727547.1 which advises checking for a blank msc_inst_partitions on APS instance

SELECT * FROM msc_inst_partitions;

However partitions were present.

This note pointed to another note 353674.1 which asks to check for a blank mrp_ap_apps_instances on source. This table had a single row.

Here's the solution they provide:

1. Using Order Management Responsibility - Scheduling/ATP and Scheduling Setup/Instance - Change
the GMT Difference field to some other value - Save - Change the GMT Difference Field back to its
original value - Save.

This can also be accessed by Advanced Planning Administrator Responsibility - Admin/Instances and
follow the balance of step 1.

2. Verify there is a record in table mrp_ap_apps_instances (there should also be a corresponding record in msc_apps_instances):

select count(*)
from mrp_ap_apps_instances;

There should be at least one row here.

3. Rerun a complete refresh of data collections.

Out of the above:

2. Verify there is a record in table mrp_ap_apps_instances (there should also be a corresponding record in msc_apps_instances):

Sounded most promising. And when we checked on source and APS for instance_id:

On Source:

SQL> select instance_id from apps.mrp_ap_apps_instances;

INSTANCE_ID
-----------
1

On APS:

SQL> select instance_id from apps.msc_apps_instances
2 /

INSTANCE_ID
-----------
22

That's why it was giving ORA-1401 No Data found.

We first updated APS:

update apps.msc_apps_instances
set instance_id=1;

commit;

However we got error:

Invalid instance id (22), plan data pull errored.

So we updated the instance_id back to 22 in APS and also updated the source to 22:

APS:

update apps.msc_apps_instances
set instance_id=22;

Source:

update apps.mrp_ap_apps_instances
set instance_id=22;

Refresh snapshot completed normal on source.

However, the plan failed on memory based snapshot:

Memory based snapshot 64 bit sun failed
message:
calculate plan buckets 21
APP-FND-01564: ORACLE error 1405 in main

Cause: main failed due to Error while trying to retrieve text for error ORA-01405
.

The SQL statement being executed at the time of the error was: begin msc_snapshot_pk . calculate_plan_buckets ( :plan_id , :err_mesg: and was executed from the file /apps/11510/aps64_src/msc/115/src/mscnsp.pc.
APP-MRP-22075: An internal error has occurred (main, 1, , )
@ERRORTEXT Cause: The current routine encountered the specified@ERRORTEXT x Action: Contact your customer supportrepresentative.
Oracle Home Set to ORACLE_HOME=$MSO_TOP/bin/nls8174
return value 0
Oracle NLS33 Set to ORA_NLS33=$MSO_TOP/bin/nls8174/ocommon/nls/admin/data
return value 0

Still an open issue.

Wednesday, April 15, 2009

April 2009 CPU impact

April 2009 CPU has been announced. Details for 11i/R12 are in Metalink 787703.1.

As per Metalink Note 786800.1, if you are on 10.2.0.4 Solaris SPARC-64 bit, you have to apply patch 8290506.

There are no new patches for IAS or Developer 6i. You are ok, if you applied October 2008 CPU for these technology components.

Only two ATG patches 7836886 and 7582828 are needed for E-Biz.

Patch 7836866 has only one script called $FND_TOP/patch/115/sql/fnddefpw.sql

This script will list the default (seeded) applications users that still have their default passwords.
You should change all the default passwords, even if the user is "END_DATEd".

Patch 7582828 has 5 OA Framework class files

OANavigateFlatPageCO.class
OAHomePageHelper.class
OAPageLayoutHelper$MenuSelectioninfo.class
OAPageLayoutHelper.class
PreferencesPageCO.class

We can at best guess what these files do and do a basic testing of OA Framework pages.

Friday, April 10, 2009

adcfgclone.pl hangs

Raju pinged me today and told me that adcfgclone.pl appsTier command was hanging after displaying this:

First Creating a new context file for the cloned system.
The program is going to ask you for information about the new system

Doing a truss did not give any additional information.

I opened adcfgclone.pl in vi and put in print messages at various places to find out where it was stopping. After a few runs I concluded that it was stopping at this line:

my $cmd="$JAVA -classpath $CLASSPATH oracle.apps.ad.context.CloneContext -e $CTXORIG -validate -pairsfile $pairsfile -stage $clonestage -passwd $PWD $isMer
ge $isDbTechStack $gConfig{'perlBin'} -perl5lib $ENV{'PERL5LIB'}";

When $cmd was executed it stopped.

I tried executing this command manually but it would give errors like /tmp/adparsfile_2822 doesn't exist.

I searched further in adcfgclone.pl script to find out about pairsfile:

Create the pairsfile with defaults ctx values
# s_hostname, user, group
# my $pairsfile = "$tempdir/adpairsfile_$$.lst"; unlink ($pairsfile);
open(PAIRSF, ">$pairsfile");

However it wasn't creating the anything like /tmp/adpairsfile*

That function open in the line open(PAIRSF, ">$pairsfile"), made me think of open files and open file descriptors. I thought of checking the ulimit on file descriptors.

ulimit -n
2048

I increased it:

ulimit -n 8192

and executed the command:

adcfgclone.pl appsTier

Voila, adcfgclone.pl did not hang any more, it proceeded ahead and asked for instance name.

It was hanging because it had run out of open file descriptors. In other words 2048 files were already open, that's why it could not open a new file. Increasing the ulimit allowed it to open the adpairsfile as the 2049th file.

MSCPDP Planning Data Pull errors with ORA-01403 No Data Found

Planning Data Pull was erroring out with ORA-01403 No Data Found error.

All the settings like DB link, profile options, values in msc_apps_instances were ok.

On Akhilesh suggestion, we dropped and recreated the DB links - both from Source to APS and APS to Source.

It started working after that.

Thursday, April 9, 2009

11.5.5 java.lang.RuntimeException: Cannot get Connection to the Database

Sadiq called me for an issue with an 11.5.5 instance in which clicking on Diagnostics or other tabs in CRM HTML Administrator responsibility showed this error:

Exception:

java.lang.RuntimeException: Cannot get Connection to the Database
at oracle.apps.fnd.sso.Utils.getConnection(Utils.java:222)
at _oa__html._fndvald._jspService(_fndvald.java:83)
at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java)
at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java)
at oracle.jsp.JspServlet.doDispatch(JspServlet.java)
at oracle.jsp.JspServlet.internalService(JspServlet.java)
at oracle.jsp.JspServlet.service(JspServlet.java)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
at org.apache.jserv.JServConnection.processRequest(JServConnection.java:314)
at org.apache.jserv.JServConnection.run(JServConnection.java:188)
at java.lang.Thread.run(Thread.java:595)

aoljtest failed on Verify DBC

Request URI:/OA_HTML/jsp/fnd/aolj_verify_dbc_content.jsp

Exception:
java.lang.NoClassDefFoundError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:168)
at oracle.jsp.app.JspClassLoader.loadClass(JspClassLoader.java)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at _oa__html._jsp._fnd._aolj__verify__dbc__content._jspService(_aolj__verify__dbc__content.java:575)
at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java)
at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java)
at oracle.jsp.JspServlet.doDispatch(JspServlet.java)
at oracle.jsp.JspServlet.internalService(JspServlet.java)
at oracle.jsp.JspServlet.service(JspServlet.java)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
at org.apache.jserv.JServConnection.processRequest(JServConnection.java:314)
at org.apache.jserv.JServConnection.run(JServConnection.java:188)
at java.lang.Thread.run(Thread.java:595)

http://server:port/OA_HTML/jtflogin.jsp did not show the jtf login page and gave errors.

This is definitely a problem with the DBC file. Sadiq hand built it but the error did not resolve. Guest password is Oracle in dbc file, It is Oracle in the GUEST_USER_PASSWORD profile also.

I have asked him to bounce database based on metalink note 250624.1.

Metalink Note 178437.1 has these steps for jtflogin:

Login: Cannot access jtflogin.jsp nor jtfdefaultlogin.jsp:
You are trying to log into the html stack via jtflogin.jsp or jtfdefaultlogin.jsp.

Jtflogin.jsp does not display the page and returns message 'error in error page'.

Jtfdefaultlogin.jsp also does not display the page and returns message like 'system error' followed by several java messages, the most significant
being 'oracle.apps.jtf.base.session.ServletSessionManagerException'.

You have also tried to run the diagnostics via jtfqalgn.htm and the database connectivity tests fail

Cause #1:
There can be several reasons for this problem scenario, including configuration files not being correct for httpd.conf, jserv.conf,
jserv.properties, and zone.properties.

The following solution is for correcting one specific condition where your .dbc file has been manually edited, looks correct but the
connectivity issue persists.

To eliminate this possibility, please perform the following procedure:

Why do we want to do this procedure ?

Because if you have ever manually edited the .dbc file, you may have unknowingly inserted/deleted
some character/space/line feed/carriage return/tab/etc.

Do not manually edit your .dbc file. Results are unpredictable and can take a long time to diagnose.

Resolution:
Perform the following query:

SQL> select * from fnd_application_servers;

The query should return one (1) row. If the query returns more than one row, delete the row(s) that is/are most apparently incorrect. You will probably be able to recognize the invalid row(s) by the IP address column (server_address) that points to an invalid host database tier.

The authentication string in this table (column server_id) must match the same string in your 'host_sid'.dbc file (APPL_SERVER_ID).

Make a backup copy of your .dbc file.

To insure that everything is in synch, run the adgendbc.sh script located in your $COMMON_TOP\admin\install directory. This script takes no parameters except '-deinstall' which you probably do not want to do. This script will assign a new authentication string (server_id), update your .dbc file and update your fnd_application_servers table.

It's OK if you get an error message related to unique key constraint (read the script file).

Double check the information in your .dbc file and fnd_application_servers table. It should be in synch. Display or print the .dbc file. Please do not use an editor because you may forget the rule and save it.

This is still not solved. I'll update this post once I learn more.

Tuesday, April 7, 2009

How to find out what webserver is running on remote server

Vivek Gite has a nice article here on how to fingerprint/identify web server.  You can do it from your unix server with curl command:

$ curl -I http://windows.justanexample.com/
HTTP/1.1 403 Forbidden
Content-Length: 218
Content-Type: text/html
Server: Microsoft-IIS/6.0
Date: Tue, 07 Apr 2009 17:26:05 GMT

Here's an excerpt from man entry for curl

DESCRIPTION

curl is a tool to transfer data from or to a  server,  using one of the supported protocols (HTTP, HTTPS, FTP, FTPS, SCP, SFTP, TFTP, DICT, TELNET, LDAP or  FILE).   The  command is designed to work without user interaction.

curl offers a busload of useful tricks like  proxy  support,user authentication, ftp upload, HTTP post, SSL connections, cookies, file transfer resume and  more. The amount of features will make your head spin!

I'll update this post with more curl examples.

Redirect URL to login page in IBM Websphere

Jim asked me whether I knew anything about IBM Websphere. He had a problem where he wanted the application's login page to appear whenever the primary URL like http://websphere.justanexample.com is accessed. The login page was http://websphere.justanexample.com/BusinessApp/AppLogin.html

I worked with Sai to learn that IBM Websphere used IBM HTTPServer as the Web Server.
As per http://www-01.ibm.com/software/webservers/httpservers/:

IBM HTTP Server is based on the Apache HTTP Server (httpd.apache.org), developed by the Apache Software Foundation.

So it has the same files like httpd.conf like the Apache in 11i. If we changed the Document Root to point to the login folder, it was causing other issues like images were not being rendered as they referred to relative path.

So we did the next best thing. We created a new file index.html in the DocumentRoot directory which redirected to http://websphere.justanexample.com/BusinessApp/AppLogin.html

Here's the code:

ld: fatal: library -ljava: not found

Akhilesh reported these errors when they were relinking 10g RDBMS ORACLE_HOME:

$ORACLE_HOME/lib32:/opt/ORCLcluster/lib/ -Y P,:/opt/SUNWcluster/lib:/opt/ORCLcluster/lib/:/usr/ccs/lib:/usr/lib -Qy -lc -laio `cat $ORACLE_HOME/lib32/sysliblist` -R$ORACLE_HOME/lib32 -lm
ld: fatal: library -ljava: not found
ld: fatal: library -ljvm: not found
ld: fatal: File processing errors. No output written to $ORACLE_HOME/sysman/lib/libnmemso.so
*** Error code 1
make: Fatal error: Command failed for target `$ORACLE_HOME/sysman/lib/libnmemso.so'
Current working directory $ORACLE_HOME/sysman/lib
*** Error code 1
make: Fatal error: Command failed for target `libnmemso'
chmod 755 $ORACLE_HOME/bin
/usr/ccs/bin/make -f $ORACLE_HOME/sysman/lib/ins_sysman.mk relink_sharedobj SHAREDOBJ=libnmemso
/usr/ccs/bin/ld -o $ORACLE_HOME/sysman/lib/libnmemso.so -dy -M $ORACLE_HOME/sysman/lib32/libnmemso.def -G -z text -L$ORACLE_HOME/lib32 -L$ORACLE_HOME/lib -L$ORACLE_HOME/sysman/lib32/ -R$ORACLE_HOME/lib32/:$ORACLE_HOME/lib/:$ORACLE_HOME/sysman/lib32/ $ORACLE_HOME/sysman/lib32/libnmem.a $ORACLE_HOME/sysman/lib32/libnmer.a $ORACLE_HOME/sysman/lib32/libnmeu.a $ORACLE_HOME/sysman/lib32/libnmt.a $ORACLE_HOME/sysman/lib32/libnml.a $ORACLE_HOME/sysman/lib32/libnmee.a $ORACLE_HOME/sysman/lib32/libnmefmgr.a $ORACLE_HOME/sysman/lib32/libnmevr.a $ORACLE_HOME/sysman/lib32/libnmehu.a $ORACLE_HOME/sysman/lib32/libnmehl.a $ORACLE_HOME/sysman/lib32/libnmepm.a $ORACLE_HOME/sysman/lib32/libnmedc.a $ORACLE_HOME/sysman/lib32/libnmedt.a $ORACLE_HOME/sysman/lib32/libnmedm.a $ORACLE_HOME/sysman/lib32/libnmedr.a $ORACLE_HOME/sysman/lib32/libnmeb.a $ORACLE_HOME/sysman/lib32/libnmec.a $ORACLE_HOME/sysman/lib32/libnmesched.a $ORACLE_HOME/sysman/lib32/libnmectl.a $ORACLE_HOME/sysman/lib32/libnmejc.a $ORACLE_HOME/sysman/lib32/libnmej.a -L/erppgrt1/oracle/10.2.0/jdk/jre/lib/sparc/client -L/erppgrt1/oracle/10.2.0/jdk/jre/lib/sparc -z lazyload -ljava -ljvm -z nolazyload $ORACLE_HOME/sysman/lib32/libnmeclumgr.a $ORACLE_HOME/sysman/lib32/libnmecluster.a $ORACLE_HOME/sysman/lib32/libnmexml.a $ORACLE_HOME/sysman/lib32/libnmo.a -lxml10 -lcore10 -lnls10 -lcore10 -lnls10 -lcore10 -lunls10 -lclntsh -lnnz10 -lthread -lsocket -lnsl -lm -ldl -lkvm -lkstat -lelf -laio -lposix4 -R /opt/SUNWcluster/lib:$ORACLE_HOME/lib32:/opt/ORCLcluster/lib/ -Y P,:/opt/SUNWcluster/lib:/opt/ORCLcluster/lib/:/usr/ccs/lib:/usr/lib -Qy -lc -laio `cat $ORACLE_HOME/lib32/sysliblist` -R$ORACLE_HOME/lib32 -lm
ld: fatal: library -ljava: not found
ld: fatal: library -ljvm: not found
ld: fatal: File processing errors. No output written to $ORACLE_HOME/sysman/lib/libnmemso.so
*** Error code 1
make: Fatal error: Command failed for target `$ORACLE_HOME/sysman/lib/libnmemso.so'
Current working directory $ORACLE_HOME/sysman/lib32
*** Error code 1
make: Fatal error: Command failed for target `libnmemso'

I found metalink note 418557.1 which describes similar issue:

Cause

As the error indicates:

'/usr/bin/ld: cannot find -ljava
collect2: ld returned 1 exit status
Opatch is not able to find libjava.so file in the variable JRE_LIB_DIR in file env_sysman.mk and giving error

'/usr/bin/ld: cannot find -ljava'


Solution

To implement the solution, execute the following steps:

Continue with the patch installation when you receive thie error and complete it.

Search for file libjava.so on the system
For example you find it under the following directory

$ORACLE_HOME/jdk/jre/lib/i386

Backup and edit $ORACLE_HOME/sysman/lib/env_sysman.mk

Change : JRE_LIB_DIR=%JRE_HOME%/bin
To : JRE_LIB_DIR=$(ORACLE_HOME)/jdk/jre/lib/i386

Issue the failed relink command:

% make -f ins_sysman.mk relink_sharedobj SHAREDOBJ=libnmemso

However we did not have i386 directory inside $ORACLE_HOME/jdk/jre/lib, as we are on Solaris. Instead we had sparc and sparcv9 directories. The sparc directory had 32 bit libjava.so and sparcv9 had 64-bit libjava.so. Since our DB is 64-bit, sparcv9 would be the directory.

When we opened the $ORACLE_HOME/sysman/lib/env_sysman.mk file we found that the line was pointing to a directory in gold instance from which the current instance was cloned:

JRE_LIB_DIR=/gold11i/jdk/jre/lib/sparcv9

We changed this to the correct development path

JRE_LIB_DIR=/dev11i/jdk/jre/lib/sparcv9

and relinked again. It worked fine this time without issues.

Monday, April 6, 2009

APP-FND-01630: Cannot open file $APPLTMP/OFAAA5uaODo.t for reading

Recently MSCPLD (ASCP Loader) failed with these errors:

Advanced Supply Chain Planning: Version : 11.5.0

Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.

MSCPLD module: Loader Worker With Direct Load Option
+---------------------------------------------------------------------------+

Current system time is 06-APR-2009 20:34:10

+---------------------------------------------------------------------------+


===================================================================
Debug Mode : Disabled
Output to Terminal : No
Argument Method : Database Fetch
Trace Mode : Disabled

===================================================================
Argument 1 (CTRL_FILE) = $APPLCSF/out/data01/mbpoutput/MSLD_RESERVATIONS.ctl
Argument 2 (DATA_FILE) = $APPLCSF/out/data01/mbpoutput/MSLD_RESERVATIONS.dat
Argument 3 (DISCARD_FILE) = $APPLCSF/out/data01/mbpoutput/MSLD_RESERVATIONS.dis
Argument 4 (BAD_FILE) = $APPLCSF/out/data01/mbpoutput/MSLD_RESERVATIONS.bad
Argument 5 (LOG_FILE) =
Argument 6 (NUM_OF_ERRORS) = 0

===================================================================
Creating dummy log file ...
Parent Program Name: MSCMON
This IS part of a Plan run.
usdsop: exec failed during spawnsqlldr: No such file or directory
Program exited with status 1
APP-FND-01630: Cannot open file $APPLTMP/OFAAA5uaODo.t for reading

Cause: USDINS encountered an error when attempting to open file $APPLTMP/OFAAA5uaODo.t for reading.

Action: Verify that the filename is correct and that the environment variables controlling that filename are correct.

Action: If the file is opened in read mode, check that the file exists. Check that you have privileges to read the file in the file directory. Contact your system administrator to obtain read privileges.

Action: If the file is opened in write or append mode, check that you have privileges to create and write files in the file directory. Contact your system administrator to obtain create and write privileges.

We checked permissions, utl_file_dir, profile option utl_file_log and various other settings. Everything was configured correctly.

Then we checked FND_EXECUTABLES for what is being called by MSCPLD

SQL> utables
Name Null? Type
----------------------------------------- -------- ----------------------------
APPLICATION_ID NOT NULL NUMBER(15)
EXECUTABLE_ID NOT NULL NUMBER(15)
EXECUTABLE_NAME NOT NULL VARCHAR2(30)
LAST_UPDATE_DATE NOT NULL DATE
LAST_UPDATED_BY NOT NULL NUMBER(15)
CREATION_DATE NOT NULL DATE
CREATED_BY NOT NULL NUMBER(15)
LAST_UPDATE_LOGIN NOT NULL NUMBER(15)
EXECUTION_METHOD_CODE NOT NULL VARCHAR2(1)
EXECUTION_FILE_NAME VARCHAR2(61)
SUBROUTINE_NAME VARCHAR2(30)
ICON_NAME VARCHAR2(30)
EXECUTION_FILE_PATH VARCHAR2(510)

SQL> select EXECUTABLE_NAME,EXECUTION_FILE_NAME
2 from fnd_executables
3 where EXECUTABLE_NAME='MSCPLD';

EXECUTABLE_NAME
------------------------------
EXECUTION_FILE_NAME
-------------------------------------------------------------
MSCPLD
MSCPLD.sh

When we checked the contents of MSCPLD.sh, it was having these lines:

#!/bin/ksh
#
# $Header: MSCPLD.sh 115.0 2004/02/26 21:05:53 shhan noship $
#
# Shell script to support direct path option in
# sql*loader this sets the oracle_home to server oracle home
#
# make sure following environment variables are setup correct
# and point to the server oracle home
# ORACLE_HOME
# LD_LIBRARY_PATH
# PATH

# please uncomment after setting

export ORACLE_HOME=/prod11i/oracle/10.2.0
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME/bin:$PATH

$MSC_TOP/bin/MSCSLD $*
~

The ORACLE_HOME was pointing to Production path of 10g DB home.

After we corrected this to /dev11i/oracle/10.2.0, it worked fine.

Thursday, April 2, 2009

Forms doesn't launch from self service

Srinivas contacted me about this issue today.  After converting an instance into shared application file system aka shared APPL_TOP, forms were not launching from self service.

I opened a putty session in one window and tailed the apache access log.  On another window I opened Internet Explorer and arranged both side by side.  I logged in successfully. The OA framework page showing responsibilities came up.  I chose System Administrator and clicked on Concurrent Requests.  Internet Explorer stopped there progress bar froze at midway.  Apache access log showed HTTP-403:

192.168.122.10 - - [02/Apr/2009:18:12:03 -0400] "GET /pls/apps11i/fnd_icx_launch.launch?resp_app=SYSADMIN&resp_key=SYSTEM_ADMINISTRATOR&secgrp_key=STANDARD&start_func=FND_FNDCPQCR_SYS&other_params= HTTP/1.1" 403 244 0

I checked the $IAS_CONFIG_HOME/Apache/Apache/conf/httpd_pls.conf file and found these lines:

Allow from apps11i.justanexample.dev.com

This was incorrect.  It should have been:

Allow from apps11i.dev.justanexample.com

Once I corrected this and bounced Apache, no more HTTP-403 errors appeared and forms launched correctly