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

Thursday, December 16, 2010

Multiple FFP invalid objects after installing R12.1.3

We got 250+ invalid objects whose name started with FFP:

FFP55375_01011990 FFP50508_01011900 FFP50512_01011900 FFP52744_01071999 FFP50510_01011900 FFP52724_01071999 FFP55355_01011990 FFP55058_01011990 FFP60833_01012000 FFP60793_01012004 FFP60963_01012000 FFP60964_01012000 FFP60606_01011990 FFP60607_01011990

A quick search on My Oracle support revealed some articles with similar errors for 11i:

Applied Patch 9062727 (11i.Hr_pf.K.Delta.5) And Left With FFP<######> Invalid Packages [ID 1096417.1]

The above article pointed to this article:

How to compile fast formula from the server (via FFXBCP) (Doc ID 167689.1) and I executed this command:

$ FFXBCP apps/apps 0 Y %% %%
Log filename : L5826316.log


Report filename : O5826316.out

All the FFP invalids were resolved after executing the above command.

Monday, December 6, 2010

ORA-00904: "AD_PA_MISC"."GET_TOTAL_TIME": invalid identifier

I upgraded a freshly installed R12.1.1 Vision instance to 12.1.3 by applying patch 9239090. Howerver I got errors wherever adtimrpt.sql was executed after a patch similar to this:

sqlplus -s APPS/APPS @/jaer12/appl/ad/12.0.0/sql/adtimrpt.sql 550206 adt550206

The spooled file would give this error:

Product Information page
1
rpad(ad_pa_misc.get_total_time(inner.session_id,
*
ERROR at line 5:
ORA-00904: "AD_PA_MISC"."GET_TOTAL_TIME": invalid identifier

I checked the instance for availability of package AD_PA_MISC, and found that it was non existant.

So I checked what files created this package by

cd $AD_TOP/patch/115/sql
grep ad_pa_misc *
adpamisb.pls:REM | Body for ad_pa_misc package
adpamisb.pls:CREATE or REPLACE package body ad_pa_misc as
adpamisb.pls:END ad_pa_misc;
adpamiss.pls:REM | Specification for ad_pa_misc package
adpamiss.pls:CREATE OR REPLACE package ad_pa_misc as
adpamiss.pls:end ad_pa_misc;

So adpamiss.pls is the package specification and adpamisb.pls is the package body.

I connected as apps and executed adpamisb.pls and adpamiss.pls

This has created the missing ad_pa_misc package. I re-executed the failing sql again and it succeded this time:

sqlplus -s APPS/APPS @/jaer12/appl/ad/12.0.0/sql/adtimrpt.sql 550206 adt550206

Spooling to adt550206.lst


Spooling to adt550206.csv

Wednesday, November 24, 2010

List of all tables which are updated during ASCP Collections

I found this Article in My Oracle Support which has a list of all the tables which get populated during ASCP collections:Troubleshooting Missing Data Collection Entities [ID 558477.1]

Tuesday, November 16, 2010

How to start and stop telnet in Solaris 10

To check status of telnet

$ svcs telnet
STATE STIME FMRI
disabled Mar_18 svc:/network/telnet:default

To stop telnet

svcadm disable telnet

To start telnet

svcadm enable telnet

Wednesday, October 27, 2010

ORA-00600: internal error code, arguments: [kccpb_sanity_check_2], [1651], [1603]

Today Imdad pinged about this issue in Database:

ALTER DATABASE MOUNT
Wed Oct 27 09:22:13 2010
Setting recovery target incarnation to 2
Wed Oct 27 09:22:13 2010
Errors in file /jic1001/oracle/10.2.0/admin/jic1001_jic1001/bdump/jic1001_lgwr_28101.trc:
ORA-00600: internal error code, arguments: [kccpb_sanity_check_2], [1651], [1603], [0x000000000], [], [], [], []
Wed Oct 27 09:22:13 2010
Errors in file /jic1001/oracle/10.2.0/admin/jic1001_jic1001/bdump/jic1001_lgwr_28101.trc:
ORA-00600: internal error code, arguments: [kccpb_sanity_check_2], [1651], [1603], [0x000000000], [], [], [], []
Wed Oct 27 09:22:13 2010
LGWR: terminating instance due to error 470
Instance terminated by LGWR, pid = 28101

Solution was to recover the database by recreating controlfile.

Friday, August 6, 2010

ORA-39083: Object type ROLE_GRANT failed to create with error:

I got this error when I was trying to do a full import of a dump file.

$ impdp "'/ as sysdba'" full=y directory=data_pump_dir dumpfile=fullexport.dmp logfile=fullimport.log

Import: Release 11.2.0.1.0 - Production on Sat Aug 7 01:02:52 2010

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Master table "SYS"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting "SYS"."SYS_IMPORT_FULL_01": "/******** AS SYSDBA" full=y directory=data_pump_dir dumpfile=fullexport.dmp logfile=fullimport.log
Processing object type SCHEMA_EXPORT/ROLE_GRANT
ORA-39083: Object type ROLE_GRANT failed to create with error:
ORA-01919: role 'QUALYS_ROLE' does not exist
Failing sql is:
GRANT "QUALYS_ROLE" TO "SYS" WITH ADMIN OPTION

Job "SYS"."SYS_IMPORT_FULL_01" completed with 1 error(s) at 01:03:06


I checked the dump file and it was only 141 KB in size. Then I checked the export log file and realized that I had forgotten to put full=y while doing expdp. So it was just a schema export of SYS and did not have the full database.

Once I realized this and took an export with expdp full=y command, the import completed successfully.

Thursday, August 5, 2010

ORA-28000: the account is locked at OCI call OCISessionBegin

If you ever get this error in OTM/FTI Transportation Intelligence screens:

State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 17001] Oracle Error code: 28000, message: ORA-28000: the account is locked at OCI call OCISessionBegin. [nQSError: 17014] Could not connect to Oracle database. (HY000)

Your HDOWNER user is locked out at database stage. Unlock the user

Login as the unix owner of ROD database. Make sure your ORACLE_HOME and other environment variables are set correctly.

sqlplus /nolog
conn / as sysdba
alter user HDOWNER account unlock;

Wednesday, August 4, 2010

Zebra printer and pasta driver

Shiva described a Zebra printer issue to me. They had configured Zebra007 printer on Dev and Test, and it printed fine. However when the same printer was configured on Production instance, it did not print anything. I worked with Puneet and Sateesh to check the windows printer queue. Whenever a print job was executed in Dev or Test (non-Production) instances, the label printed correctly. However when they tried to print from Production, it would not print anything, though a pasta*.tmp appeared in windows printer queue for 2 seconds.

I also got a sample file example.zpl from Sateesh to find out the contents, This file was a plain text file which contained print control characters. This is an ingenious way to print without installing expensive proprietary drivers from vendors. If such a file is sent as a raw file to printer, the printer interprets the special characters and prints labels correctly. So they were using Pasta printing to print a text file. This didn't make sense, as pasta is typically used to convert (preprocess) pdf files generated by XML Publisher (now known as BI Publisher) into postscript format and send to printer.

I examined the $FND_TOP/resource/pasta.cfg in Production and non-Production instances. They were different. Non-production pasta files had everything commented, whereas Production pasta file had this entry:

$ cd $FND_TOP/resource
$ cat pasta.cfg
/* $Header: pasta.cfg 115.23 2003/03/28 22:57:31 mnagakur noship $ */

[DEFAULT]

preprocess=/usr/local/bin/pdf2ps {infile} {outfile}
printCommand=lp -c -d{printername}
errorlogfile=pasta_pdf2.log

I realized then that, the printing was successful in development, as pasta was not doing any kind of preprocessing and printing the file. It failed in Production because the text file containing printer commands was going through preprocessing:

/usr/local/bin/pdf2ps example.zpl pasta8282.ps

Error: /undefined in .CT~~CD,~CC^~CT~
Operand stack:

Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1 3 %oparray_pop 1 3 %oparray_pop 1 3 %oparray_pop 1 3 %oparray_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval--
Dictionary stack:
--dict:1129/1686(ro)(G)-- --dict:0/20(G)-- --dict:70/200(L)--
Current allocation mode is local
Current file position is 17
GPL Ghostscript 8.54: Unrecoverable error, exit code 1

The solution was to create a new pasta driver pasta_zebra.cfg where the preprocess line would be commented:

$ cat pasta_zebra.cfg
/* $Header: pasta.cfg 115.23 2003/03/28 22:57:31 mnagakur noship $ */

[DEFAULT]

; preprocess=/usr/local/bin/pdf2ps {infile} {outfile}
printCommand=lp -c -d{printername}
errorlogfile=pasta_pdf.log

I tested this on commandline with this command:

FNDPSTAX -pnZebra007 -f/tmp/example.zpl -c1 -Fpasta_zebra.cfg

And it printed the first correct label from Production instance.

This command would be the final result of the printing inside E-Business Suite.

Tuesday, August 3, 2010

connect / as sysdba ORA-01031 Insufficient privileges

On a freshly installed 11gR2 Oracle Database, I set the following environment variables:

ORACLE_BASE
ORACLE_HOME
ORACLE_SID
TNS_ADMIN
TWO_TASK
LD_LIBRARY_PATH

However when I tried to connect to it:

sqlplus /nolog
conn / as sysdba
ORA-1031 Insufficient Privileges

A search on My Oracle Support showed this:

Error: ORA 1031
Text: insufficient privileges
-------------------------------------------------------------------------------
Cause: An attempt was made to change the current username or password without
the appropriate privilege. This error also occurs if attempting to
UPDATE a table with only SELECT privileges, if attempting to CONNECT
INTERNAL, or if attempting to install a database without the necessary
operating system privileges.
Action: Ask the database administrator to perform the operation or grant the
required privileges.

However I got my answer from this article:

UNIX: Checklist for Resolving Connect AS SYSDBA Issues [ID 69642.1]

It turned out that unsetting the environment variable TWO_TASK resolved the issue:

unset TWO_TASK
sqlplus /nolog
conn / as sysdba
Connected.

Wednesday, July 28, 2010

Oracle Transportation Management (OTM) installation on Solaris 10

We got a new project which uses OTM. Here are the high level steps for installation of OTM:

1. Go to edelivery.oracle.com, enter your information and login.
2. Select E-Business Suite in dropdown
3. Scroll Down to Oracle Transportation Management
4. Download OTM and Weblogic Server
5. Download RDBMS 11gR2 Server and Client from Oracle Technology Network
6. Install 11gR2 Database and create a blank database
7. Install Weblogic Server
8. Install OTM
9. Execute the file $OTM_HOME/install/gc3env.sh
10. Go to $OTM_HOME/glog/oracle/script8 and edit a file called create_all.sql modify the line which reads:
41 SELECT DECODE(UPPER(nvl('&&4','Y')),'Y','./import_content.sh','N','imp
ort_content.cmd') ws_content_import

Change ./import_content.sh to . ./import_content.sh

If you don't do this, this script fails. This issue is documented in My Oracle Support Articles:
Installation or Oracle Transportation Management 6.0 on Solaris [ID 974412.1]
Cannot Log on to a new OTM 6.0 Installation [ID 975529.1]

Monday, July 19, 2010

No fields appear after username in Workflow configuration page

I got a mail about an issue after April 2010 CPU patches. Nothing was appearing after the user field in Workflow Configuration page in Oracle Applications Manager

Solution was given by Imran:

"NOTE: - Execute the steps given in 1082747.1 - defective share.zip After applying this patch"

The issue was related to the missing class files under $JAVA_TOP/oracle/bali/share/nls folder, after restoring them the issue was fixed.

Wednesday, July 14, 2010

dbms_utility.port_string

While going through a trace file I came across this SQL:

SELECT DBMS_UTILITY.PORT_STRING FROM DUAL;

Dbms_utility.port_string allows to find out what hardware and OS an Oracle instance runs on:

SQL> SELECT DBMS_UTILITY.PORT_STRING FROM DUAL

PORT_STRING
--------------------------------------------------------------------------------
SVR4-be-64bit-8.1.0

This was run on a Solaris box which has Solaris 10 64-bit OS with 64-bit SPARC processors.

Wednesday, July 7, 2010

Oracle July 2010 CPU Article ID

While searching for something else on My Oracle Support I found this:

ORACLE CRITICAL PATCH UPDATE ADVISORY - JULY 2010 [ID 1127913.1]

Purpose

NOTE: THIS IS NOT AN OFFICIAL DOCUMENT - PLACEHOLDER ONLY

ORACLE CRITICAL PATCH UPDATE ADVISORY - JULY 2010

NOTE: THIS IS NOT AN OFFICIAL DOCUMENT - PLACEHOLDER ONLY

Monday, June 28, 2010

Gather Schema Statistics

Gurtej asked this question: While submitting gather schema stats for APPS ...what should be the estimate percent and degree should be ? How should GSS be scheduled in Production. Currently it is scheduled like this:
APPS, 10, 8, NOBACKUP, , LASTRUN, GATHER, , Y

Here's the answer gleaned from various articles in My Oracle Support:

There is no set schedule for gathering schema statistics. On some systems the program should be run weekly. On other systems once per month will be often enough. The schedule will vary greatly depending on the amount and nature of the data and how often the data changes.

It will be necessary to try different schedules over time and monitor performance to determine the most effective schedule.

As a general rule, run Gather Schema Statistics under the following circumstances:

1. After there has been a significant change in data in either content or volume.

2. After importing data.

3. Any time end-users notice a deterioration in performance in routine day-to-day business transactions or when running concurrent programs.

Estimate Percentage / Modification threshold defines the percentage which should be used to initiate gather stats for those objects which have actually changed beyond the threshold. The default is 10% (i.e. meaning any table which has changed via DML more than 10%, stats will be collected, otherwise it will be skipped

Further Reading: Tuning All layers of E-Business Suite:

Thursday, June 3, 2010

OracleNavigate.Responsibility was not found on this server

We got this error in one of the instances cloned freshly on clicking on the
System Administration responsibility:

Not Found
The requested URL /pls/$ORACLE_SID/OracleNavigate.Responsibility was not found on this server.

Fix:

Change Self Service Personal Home Page mode profile option on site level to Framework Only

Wednesday, May 26, 2010

vi line too long error

Most of the times while viewing big log files in vi editor, you would get "Line too Long" error. A simple solution to this problem is to use the fold command:

fold -80 yourfile.log > folded.log

What code is called by DBUA

We have standardized on DBUA for all our upgrades and do not use the manual upgrade process. Manual upgrade process is preferred by DBAs for the amount of control it gives them. However, manual is prone to more human errors. As per My Oracle Support Article ID 870814.1, when you start an upgrade through DBUA it performs the following checks:

=> Invalid user accounts or roles
=> Invalid data types or invalid objects
=> De-supported character sets
=> Adequate resources, including rollback segments, tablespaces, and free disk space
=> Missing SQL scripts needed for the upgrade
=> Listener running (if Oracle Enterprise Manager Database Control upgrade or configuration is requested)
=> Oracle Database software linked with Database Vault option. If Database Vault is enabled, then DBUA will return an error asking you to disable Database Vault prior to upgrade. See "Disable Oracle Database Vault"
=> Stale optimizer statistics
=> Time zone file versions
=> Enterprise Manager Database control Repository exists in the database or not

However, when DBUA gets stuck or reports errors in its pretty face GUI, we do not know what has gone wrong. If you upgrade to 11g the DBUA logs are present in $ORACLE_BASE/cfgtoollogs/dbua. But the logs do not really tell you what scripts were called. So I decided to check what's in dbua.

cd $ORACLE_HOME/bin
file dbua
dbua: executable shell script

I opened dbua in vi and towards the end it has:

CLASSPATH=$DBMA_CLASSPATH:$JRE_CLASSPATH:$EWT_CLASSPATH:$SWING_CLASSPATH:$SHARE_
CLASSPATH:$GDK_CLASSPATH:$ASSISTANTS_COMMON_CLASSPATH:$HELP_CLASSPATH:$ICE_BROWS
ER_CLASSPATH:$NETCFG_CLASSPATH:$I18_CLASSPATH:$XMLPARSER_CLASSPATH:$JDBC_CLASSPA
TH:$SRVM_CLASSPATH:$EM_CLASSPATH:$INSTALLER_CLASSPATH

#run dbma
$JRE_DIR/bin/java $JRE_OPTION $IBM_STREAM_NIO -Dsun.java2d.font.DisableAlgorithm
icStyles=true $INSTALL_LIB_LOCATION -DORACLE_HOME=$OH -mx128m -classpath $CLASS
PATH oracle.sysman.assistants.dbma.Dbma $*

So it calls a java class oracle.sysman.assistants.dbma.Dbma

All the code that is being called seems to be inside $ORACLE_HOME/assistants/dbua

There's a file called mep.cfg in this directory, which has the minimum values for init.ora parameters, obsolete parameter list, changed parameter list etc.

There is a file called dbma.jar in /gpsatc10/oracle/11.2.0/assistants/dbua/jlib

This jar file has all the code which is called by DBUA. These are java classes. I downloaded the jar file and unzipped it on my PC. However class files are binary in nature and you can't really see all the code. I'll try to map the information in the log file with the java classes and update this article in future.

Thursday, April 29, 2010

Open docx, xlsx, pptx formats in MS Office 2000 - 2003

How to open docx, xlsx, pptx files in MS Office 2000 ? This was a question posed by Anand. A few google search revealed Microsoft Office Compatibility Pack.

By installing the Compatibility Pack in addition to Microsoft Office 2000, Office XP, or Office 2003, you will be able to open, edit, and save files using the file formats in newer versions of Word, Excel, and PowerPoint . The Compatibility Pack can also be used in conjunction with the Microsoft Office Word Viewer 2003, Excel Viewer 2003, and PowerPoint Viewer 2003 to view files saved in these new formats.

Wednesday, April 21, 2010

java.security.cert.CertificateException: sun.security.pkcs.ParsingException: ObjectIdentifier() -- data isn't an object ID (tag = 48)

Sameer had reported this error whenever he tried to use any web application which used Sun JRE:

Java Plug-in 1.6.0_19
Using JRE version 1.6.0_19-b04 Java HotSpot(TM) Client VM
User home directory = C:\Documents and Settings\MyUser
----------------------------------------------------
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
o: trigger logging
q: hide console
r: reload policy configuration
s: dump system and deployment properties
t: dump thread list
v: dump thread stack
x: clear classloader cache
0-5: set trace level to
----------------------------------------------------


java.security.cert.CertificateException: sun.security.pkcs.ParsingException: ObjectIdentifier() -- data isn't an object ID (tag = 48)
at sun.security.provider.X509Factory.engineGenerateCertificates(Unknown Source)
at java.security.cert.CertificateFactory.generateCertificates(Unknown Source)
at com.sun.deploy.security.WIExplorerCertStore.generateCertificate(Unknown Source)
at com.sun.deploy.security.WIExplorerCertStore.loadCertificates(Native Method)
at com.sun.deploy.security.WIExplorerCertStore.load(Unknown Source)
at com.sun.deploy.security.WIExplorerCertStore.load(Unknown Source)
at com.sun.deploy.security.TrustDecider.isAllPermissionGranted(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.isTrustedByTrustDecider(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.getTrustedCodeSources(Unknown Source)
at com.sun.deploy.security.CPCallbackHandler$ParentCallback.strategy(Unknown Source)
at com.sun.deploy.security.CPCallbackHandler$ParentCallback.openClassPathElement(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath$JarLoader.getJarFile(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath$JarLoader.access$700(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath$JarLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.deploy.security.DeployURLClassPath$JarLoader.ensureOpen(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath$JarLoader.(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.deploy.security.DeployURLClassPath.getLoader(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath.getLoader(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath.getResource(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: sun.security.pkcs.ParsingException: ObjectIdentifier() -- data isn't an object ID (tag = 48)
at sun.security.pkcs.PKCS7.parse(Unknown Source)
at sun.security.pkcs.PKCS7.(Unknown Source)
at sun.security.provider.X509Factory.parseX509orPKCS7Cert(Unknown Source)
... 33 more
Caused by: java.io.IOException: ObjectIdentifier() -- data isn't an object ID (tag = 48)
at sun.security.util.ObjectIdentifier.(Unknown Source)
at sun.security.util.DerInputStream.getOID(Unknown Source)
at sun.security.pkcs.ContentInfo.(Unknown Source)
at sun.security.pkcs.PKCS7.parse(Unknown Source)
... 36 more
java.lang.reflect.InvocationTargetException
at com.sun.deploy.util.DeployAWTUtil.invokeAndWait(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.runOnEDT(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.SecurityException: trusted loader attempted to load sandboxed resource from http://ovoupmom.admin.net.ge.com:8180/OVPM/client/tsc.jar
at com.sun.deploy.security.CPCallbackHandler$ParentCallback.check(Unknown Source)
at com.sun.deploy.security.CPCallbackHandler$ParentCallback.access$1400(Unknown Source)
at com.sun.deploy.security.CPCallbackHandler$ChildElement.checkResource(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath$JarLoader.checkResource(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath$JarLoader.getResource(Unknown Source)
at com.sun.deploy.security.DeployURLClassPath.getResource(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.defineClassHelper(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.access$100(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
at java.lang.Class.getConstructor0(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$12.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Exception: java.lang.reflect.InvocationTargetException

Today I finally nailed it. At first we thought it was due to IE8. So we reinstalled IE8. The error remained. Then I saw that Sameer had Sun JRE 1.6.0_19. We already know of issues of E-Business Suite with versions 18, 19 and 20. So I got that uninstalled. We kept the version 1.6.0_15. The error did not appear again and the applications using Sun JRE started working again.

What really happens when you enable maintenance mode before applying patches

Maintenance Mode was introduced in AD.I patchset. Here's what the readme of AD.I (Article ID: 233044.1):

Maintenance mode provides a clear separation between normal runtime operation of Oracle Applications and system downtime for maintenance. Enabling the maintenance mode feature shuts down the Workflow Business Events System and sets up function security so that no Oracle Applications functions are available to users. Used only during AutoPatch sessions, maintenance mode ensures optimal performance and reduces downtime when applying a patch. For more information, refer to Preparing your System for Patching in Oracle Applications Maintenance Utilities.

You may also refer to Article ID 291901.1, which has more information about Maintenance Mode.

Interestingly R12 has some additional steps to enable maintenance mode. Plese refer to Article ID 558274.1: Instructions for configuring maintenance mode for R12.

Wednesday, April 7, 2010

Replacement for ftp to updates.oracle.com

Ever since Metalink was decommissioned, Oracle also decommissioned the ftp site updates.oracle.com. Since then many DBAs have asked me how to download patches directly on the server.

Oracle has mentioned in Article ID 468460.1:

It is possible to download Oracle software directly to the local machine.

----->It is possible only by using a web browser (like Firefox or Internet Explorer).

----->It is not possible to use FTP, because Oracle does not provide software via FTP.

----->It is not possible to use wget, because downloading software requires a browser that accepts cookies.

In summary, downloading Oracle software directly to the local machine is possible only through a web browser.

I had devised a way to use wget which used to work fine with old metalink but doesn’t work properly with the new My Oracle Support.

You can use Firefox or Opera installed on your Unix server to download patches. Here are the steps to use Opera to download patches.

Set DISPLAY to your vnc port

opera &

Click on Tools > Preferences > Advanced > Network > Proxy Servers button

Enter the values for your proxy server.

I have found that Opera is unable to launch flash on Solaris 10, even after installing flash player on unix. So here's how you do it without flash:

Go to site: http://supporthtml.oracle.com

Login with your “My Oracle Support” username and password.

Once you login, type this in the address bar:

https://updates.oracle.com/Orion/SimpleSearch/get_form?email=vikramdas@justanexample.com&userid=O-vikramdas@justanexample.com&

Replace vikramdas@justanexample.com with your email/My Oracle Support userid

You’ll get the patch search page from where you can search and download patches.

Thursday, March 18, 2010

JSP Error Exception: java.sql.SQLException: Closed Connection

Manoj called me today about this issue. After clone, when application username (SYSADMIN) and password was keyed in by him and he reached the URL

http://justanexample.com/OA_HTML/fndvald.jsp

The following error was shown:

JSP Error

Exception:

java.sql.SQLException: Closed Connection

jserv.log showed:

java.sql.SQLException: Closed Connection
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
at oracle.jdbc.driver.OracleConnection.rollback(OracleConnection.java:1459)
at _oa__html._fndvald._jspService(_fndvald.java:121)
at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)
at oracle.jsp.JspServlet.doDispatch(JspServlet.java:267)
at oracle.jsp.JspServlet.internalService(JspServlet.java:186)
at oracle.jsp.JspServlet.service(JspServlet.java:156)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
at org.apache.jserv.JServConnection.processRequest(JServConnection.java:456)
at org.apache.jserv.JServConnection.run(JServConnection.java:294)
at java.lang.Thread.run(Thread.java:619)

I checked the Database alert log and found that everytime we tried to log in the following error was logged in the DB alert log:

Errors in file /justanexample/dbdata/admin/udump/justanexample_ora_27477.trc:
ORA-07445: exception encountered: core dump [00000001025F3090] [SIGSEGV] [Address not mapped to object] [0x100C100010000] [] []

The trace file showed more details:

ksedmp: internal or fatal error
ORA-07445: exception encountered: core dump [00000001025F3090] [SIGSEGV] [Address not mapped to object] [0x100C100010000] [] []
Current SQL statement for this session:
alter session set max_dump_file_size=unlimited
----- PL/SQL Call Stack -----
object line object
handle number name
441590590 428 package body APPS.FND_TRACE
441e4f050 350 package body APPS.FND_AOLJ_UTIL
441e4f050 236 package body APPS.FND_AOLJ_UTIL
43e89dd08 1 anonymous block

Manoj bounced the database once and these errors stopped coming in alert log. We were able to login to the applications without issues.

Thursday, March 4, 2010

'Io exception: NL Exception was generated' running IRCA

Shahed pinged me about this during SOA installation:

$ sh irca.sh
Integration Repository Creation Assistant (IRCA) 10.1.3.1.0
(c) Copyright 2006 Oracle Corporation. All rights reserved.

Enter database "host port serviceName" [localhost 1521 orcl]: justanexample 1521 soa11g
Enter sys password:
Running IRCA for all product(s):
connection="justanexample 1521 soa11g", , orabpelUser=ORABPEL, esbUser=ORAESB, orawsmUser=ORAWSM

ERROR: Failed to establish database connection due to the following error:
ORA-01017: invalid username/password; logon denied

Please check your connection parameters and try again.

I tried it and got different result:

$ sh irca.sh
Integration Repository Creation Assistant (IRCA) 10.1.3.1.0
(c) Copyright 2006 Oracle Corporation. All rights reserved.

Enter database "host port serviceName" [localhost 1521 orcl]: "justanexample 1521 soa11g"
Enter sys password:
Running IRCA for all product(s):
connection=""justanexample 1521 soa11g"", , orabpelUser=ORABPEL, esbUser=ORAESB, orawsmUser=ORAWSM

ERROR: Failed to establish database connection due to the following error:
Io exception: NL Exception was generated
Please check your connection parameters and try again.

A search on My Oracle Support showed up Article [ID 580448.1]

Cause

A valid connection 'as sysdba' could not be established to the Oracle RDBMS instance.

Testing a connection from a JDeveloper client to the target RDBMS shows that a SYSTEM schema can
create a connection, but SYS is also unable to create a regular rdbms connection. Therefore
JDeveloper is having the same problem making a 'SYS as sysdba' connection over jdbc thin.

Solution

Create a password file and ensure that your RDBMS allows remote connections as sysdba.

Issue was resolved after creating passwordfile by running orapwd :
Usage: orapwd file= password= entries= force= ignorecase= nosysdba=

Thursday, January 28, 2010

Mystery of the incorrect password

Recently I reset the password of a site on an old laptop. The password was man@best. At a friend's place I tried logging on to the site with the password man@best. However the password wouldn't work. My gut feeling said that the password would work on the old laptop. However I could not exactly say why. Once I got back home, sure enough the password worked when entered through the old laptop. I then realized that the left shift key of the old laptop had ceased to function. I use my left thumb to press left shift key and index finger to press the @ key. However on the old laptop since the left shift key was not functional, the password was actually man2best. Pressing the left shift key had no effect and instead of typing @ it was typing the letter 2. Since the password field shows stars or dots, I couldn't tell. I was glad to uncover this mystery.

Saturday, January 23, 2010

11gR2 requires 4 additional patches on Solaris 10

Recently Sundeep contacted me when he was trying to install 11gR2 and the runInstaller gave failed message for 4 OS patches.

I went through 11gR2 install guide for Solaris SPARC (64-bit) available on http://download.oracle.com/docs/cd/E11882_01/install.112/e10863/toc.htm#i1011296.

In our environment, we are on correct Solaris patchset. However, these 4 patches are required in addition to being on the current patchset:

4.1 Operating System Requirements
The following are the operating system requirements for Oracle Database 11g Release 2 (11.2):
Solaris 10 U6 (5.10-2008.10)
To determine the distribution and version of Solaris installed, enter the following command:
# uname -r
5.10
In this example, the version shown is Solaris 10 (5.10). If necessary, refer to your operating system documentation for information about upgrading the operating system.
To determine the update level of Solaris installed, enter the following command:
$ cat /etc/release

Solaris 10 10/08 s10s_u6wos_07b SPARC
Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
Use is subject to license terms.
Assembled 27 October 2008
4.2 Package Requirements
The following packages (or later versions) are required for Oracle Database 11g Release 2 (11.2):
SUNWarc
SUNWbtool
SUNWhea
SUNWlibC
SUNWlibm
SUNWlibms
SUNWsprot
SUNWtoo
SUNWi1of
SUNWi1cs
SUNWi15cs
SUNWxwfnt
SUNWcsl
119963-14 or later (SunOS 5.10: Shared library patch for C++)
120753-06 or later (SunOS 5.10: Microtasking libraries (libmtsk) patch)
139574-03 or later (SunOS 5.10)
The following patch is optional and may be required depending on your needs:
124861-15 or later (SunOS 5.10 Compiler Common patch for Sun C C++)
You may also require additional font packages for Java, depending on your locale. Refer to the following Web site for more information:
http://java.sun.com/j2se/1.4.2/font-requirements.html
To determine whether the required packages are installed, enter commands similar to the following:
$ pkginfo -i SUNWarc SUNWbtool SUNWhea SUNWlibc SUNWlibms SUNWsprot \
SUNWtoo SUNWi1of SUNWi1cs SUNWi15cs SUNWxwfnt

system SUNWarc Lint Libraries (usr)
system SUNWbtool CCS tools bundled with SunOS
system SUNWhea SunOS Header Files
system SUNWi15cs X11 ISO8859-15 Codeset Support
system SUNWi1cs X11 ISO8859-1 Codeset Support
system SUNWi1of ISO-8859-1 (Latin-1) Optional Fonts
system SUNWlibms Math & Microtasking Libraries (Usr)
system SUNWsprot Solaris Bundled tools
system SUNWtoo Programming Tools
system SUNWxwfnt X Window System platform required fonts
ERROR: information for "SUNWlibc" was not found
If a package is not installed, then install it. Refer to your operating system or software documentation for information about installing packages.

4.3 Compiler Requirements
Sun One Studio 12 (C and C++ 5.9) is supported with Pro*C/C++, Oracle Call Interface, Oracle C++ Call Interface, and Oracle XML Developer's Kit (XDK) for Oracle Database 11g Release 2.

Make sure that the above are installed on your Solaris 10 box before installing 11gR2.