Thursday, November 30, 2006

Run AutoConfig to change hostname for E-Business Suite

Oracle E-Business Suite is dependent on hostname. User can easily change the IP of the machine, but user cannot anyhow change the hostname of the machine. To change the hostname, we need to run AutoConfig on E-Business Suite.

First, startup dbTier. AppTier is not required at all in the whole process.

FOR DATABASE TIER:
Note:338003.1 How to change the hostname and/or port of the Database Tier using AutoConfig

1. Login as oracle user.

2. De-register the current database server.
perl $ORACLE_HOME/appsutil/bin/adgentns.pl appspass=apps contextfile=$CONTEXT_FILE -removeserver

3. Update AutoConfig Context file with new host information. Edit $CONTEXT_FILE directly.
* Copy $CONTEXT_FILE to a new context file.
cp /opt/oracle/product/10.1.0/db/appsutil/PROD_<oldhost>.xml
/opt/oracle/product/10.1.0/db/appsutil/PROD_<newhost>.xml
* Edit /opt/oracle/product/10.1.0/db/appsutil/PROD_<newhost>.xml directly.
- Replace all <oldhost> to <newhost>
- Replace all <olddomain.com> to <newdomain.com>

4. Change hostname.
- Execute "system-config-network" to change the new hostname for the machine.
- Edit /etc/hosts with "newhost.newdomain.com ip newhost".

(After changing hostname, you'll not be able to startup any graphical application such as xclock due to "Xlib: connection to :0.0 refused by server". You can press "ctrl + alt + backspace" to kill x server.)

5. Execute AutoConfig for dbTier.
cd $ORACLE_HOME/appsutil/bin/
./adconfig.sh contextfile=$ORACLE_HOME/appsutil/PROD_<newhost>.xml


FOR APPS TIER:
Note:341322.1 How to change the hostname of an Applications Tier using AutoConfig

1. Login as applmgr user.

2. De-register the current apps server.
perl $AD_TOP/bin/adgentns.pl appspass=apps contextfile=$CONTEXT_FILE -removeserver

3. Update AutoConfig Context file with new host information. It is easier to edit $CONTEXT_FILE directly.
* Copy $CONTEXT_FILE to a new context file.
cp /opt/oracle/apps/prodappl/admin/PROD_<oldhost>.xml
/opt/oracle/apps/prodappl/admin/PROD_<newhost>.xml
* Edit /opt/oracle/apps/prodappl/admin/PROD_<newhost>.xml directly.
- Replace all <oldhost> to <newhost>
- Replace all <olddomain.com> to <newdomain.com>

4. Execute AutoConfig for appTier.
cd $AD_TOP/bin
./adconfig.sh contextfile=/opt/oracle/apps/prodappl/admin/PROD_<newhost>.xml appspass=apps


FINISHING TASK:

AutoConfig doesn't convert E-Business Suite completely. Some settings may remain unchanged or reset to default. So, it is required to go check the configuration as described in Cloning Guide.

Identified steps are:

1. As applmgr, vi /opt/oracle/apps/prodappl/admin/adgetlnxver.sh to ensure ctxfile is pointing to correct PROD_<newhost>.xml file.
ctxfile="/opt/oracle/apps/prodappl/admin/PROD_htb.xml"

2. As applmgr user, vi $IAS_ORACLE_HOME/Apache/Jserv/etc/jserv.properties to ensure:
wrapper.bin.parameters=-Djava.awt.headless=true
wrapper.bin.parameters=-DAdaptorCatalog=/opt/oracle/apps/prodappl/au/11.5.0/java/catalog.xml
wrapper.bin.parameters=-DClientMode=local

3. As oracle user, do the following:
$ sqlplus apps/apps
sql> update icx_parameters set session_cookie_domain='newdomain.com';
sql> conn applsys/apps
sql> select profile_option_value from fnd_profile_option_values where profile_option_value like '%oldhost%';
sql> update fnd_profile_option_values set profile_option_value='/opt/oracle/db/proddb/9.2.0/appsutil/outbound/PROD_newhost' where profile_option_value like '%oldhost%';

3 rows will be updated.
sql> exit;

Done. You can startup AppTier now and access E-Business Suite login page at http://newhost.newdomain.com:8000.

Tuesday, November 21, 2006

Ask VMWare to generate unique id (UUID)

Last month, the company updated the physical network configuration. The VMWare instance experienced a mysterious problem - VMWare instance could access the outside world, but outside world could not ping it.

I have tested static IP, DHCP, configured this VMWare instance to use valid IP of other machine (while shutting that machine down), extracted the old backup version of this VMWare instance, etc. A colleague told me he encountered this issue before. What to do is, while this VMWare instance executes "ping ..." to outside world, then outside world can ping it but with 50% packet lost. This is still mysterious and not acceptable.

I recalled, when VMWare starts up the vm instance, it would ask whether to generate unique id (universally unique identifier) for the vmware instance. This step gives the virtual machine's Ethernet card a new MAC address, to prevent address conflicts with other people using this virtual machine.

However I have chosen the option to always keep the uuid, how do I ask VMWare to ask me to create the uuid again?

Reference: http://www.vmware.com/support/gsx3/doc/manage_uuid_gsx.html

1. In the folder that contains VMWare files, look for .vmx file. It is a plain text file that contains setting of the vm instance.
2. Copy .vmx to other name, e.g. file2.vmx.
3. Edit file2.vmx to remove the line, which contains “uuid.action”.Start VMWare to load file2.vmx, VMWare will ask you to create uuid again.

Wednesday, November 15, 2006

SSL-enabled AS1013

By default, AS1013 is already SSL-enabled with dummy certificate. And it is listening port 4443.
So you can access your web application via https://HOST:4443. Click the bottom right hand side lock icon in IE to view the certificate is dummy.

In Linux, reference http://download-west.oracle.com/docs/cd/B25221_04/web.1013/b25211/ssl.htm to properly generate a valid SSL certificate via Oracle Wallet Manager (owm).

However, the document stops at successfully installation of certificate only. It doesn't explain how to access the web application simply via httpS://HOST (without specifying port).

We need to do the following:

1. Edit AS/Apache/Apache/conf/ssl.conf to load the correct certificate. For example,
SSLWallet = (where you install the SSL certificate) e.g /etc/ORACLE/WALLETS/oracle

2. Redirection 4443 to 443.
In Linux, ports below 1024 need to be executed by root priviledge. The simplest way is to use iptables command to redirect uncommon 4443 to common SSL port 443.

Edit /etc/rc.d/rc.local to include the following:
iptables -t nat -A PREROUTING -p tcp --dport 443 -i eth0 -j REDIRECT --to-port 4443

3. If you want to force the web server to always serve https. Meaning, when user access http://HOST/anything, they will be routed to httpS://HOST/anything automatically.
(Reference:http://forums.oracle.com/forums/thread.jspa?messageID=1430117?)

Edit AS/Apache/Apache/conf/httpd.conf to include the following:
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [L,R]

Friday, November 03, 2006

Oracle AS class loading sequence

We use a simple JSP page to show the classpath in Application Server.
<html>
<body>
<p>Show CLASSPATH: [<%= System.getProperty("java.class.path") %>]</p>
</body>
</html>


Show CLASSPATH: [oc4j.jar:
/opt/oracle/AS1012/j2ee/home/lib/ejb.jar:
/opt/oracle/AS1012/j2ee/home/lib/servlet.jar:
/opt/oracle/AS1012/j2ee/home/lib/ojsp.jar:
/opt/oracle/AS1012/j2ee/home/lib/jndi.jar:
/opt/oracle/AS1012/j2ee/home/lib/jdbc.jar:
/opt/oracle/AS1012/j2ee/home/iiop.jar:
/opt/oracle/AS1012/j2ee/home/iiop_gen_bin.jar:
/opt/oracle/AS1012/j2ee/home/lib/jms.jar:
/opt/oracle/AS1012/j2ee/home/lib/jta.jar:
/opt/oracle/AS1012/j2ee/home/lib/jmxri.jar:
/opt/oracle/AS1012/j2ee/home/lib/javax77.jar:
/opt/oracle/AS1012/j2ee/home/lib/javax88.jar:
/opt/oracle/AS1012/j2ee/home/../../opmn/lib/ons.jar:
/opt/oracle/AS1012/j2ee/home/../../opmn/lib/optic.jar:
/opt/oracle/AS1012/j2ee/home/../../lib/dms.jar:
/opt/oracle/AS1012/j2ee/home/../../dms/lib/dms.jar:
/opt/oracle/AS1012/j2ee/home/../../diagnostics/lib/ojdl.jar:
/opt/oracle/AS1012/j2ee/home/../../dms/diagnostics/lib/ojdl.jar:
/opt/oracle/AS1012/j2ee/home/lib/connector.jar:
/opt/oracle/AS1012/j2ee/home/lib/bcel.jar:
/opt/oracle/AS1012/j2ee/home/lib/cos.jar:
/opt/oracle/AS1012/j2ee/home/lib/jsse.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/lib/jsse.jar:
/opt/oracle/AS1012/j2ee/home/lib/jnet.jar:
/opt/oracle/AS1012/j2ee/home/lib/jcert.jar:
/opt/oracle/AS1012/j2ee/home/lib/activation.jar:
/opt/oracle/AS1012/j2ee/home/lib/mail.jar:
/opt/oracle/AS1012/j2ee/home/../../javavm/lib/jasper.zip:
/opt/oracle/AS1012/j2ee/home/../../lib/xmlparserv2.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/lib/xmlparserv2.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/orai18n.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/orai18n.jar:
/opt/oracle/AS1012/j2ee/home/lib/jaxp.jar:
/opt/oracle/AS1012/j2ee/home/lib/jaas.jar:
/opt/oracle/AS1012/j2ee/home/jazn.jar:
/opt/oracle/AS1012/j2ee/home/../../jdbc/lib/classes12dms.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jdbc/lib/classes12dms.jar:
/opt/oracle/AS1012/j2ee/home/../../jdbc/lib/nls_charset12.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jdbc/lib/nls_charset12.jar:
/opt/oracle/AS1012/j2ee/home/jaxb-rt-1.0-ea.jar:
/opt/oracle/AS1012/j2ee/home/../../soap/lib/soap.jar:
/opt/oracle/AS1012/j2ee/home/../../webservices/lib/wsserver.jar:
/opt/oracle/AS1012/j2ee/home/../../webservices/lib/wsdl.jar:
/opt/oracle/AS1012/j2ee/home/../../rdbms/jlib/aqapi.jar:
/opt/oracle/AS1012/j2ee/home/lib/jem.jar:
/opt/oracle/AS1012/j2ee/home/../../javacache/lib/cache.jar:
/opt/oracle/AS1012/j2ee/home/lib/http_client.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/jssl-1_1.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/jssl-1_1.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/repository.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/repository.jar:
/opt/oracle/AS1012/j2ee/home/lib/jaasmodules.jar:
/opt/oracle/AS1012/j2ee/home/../../sqlj/lib/runtime12ee.jar:
/opt/oracle/AS1012/j2ee/home/../../sqlj/lib/translator.jar:
/opt/oracle/AS1012/j2ee/home/lib/crimson.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/ojpcs.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/ojpcs.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/ojpcp.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/ojpcp.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/ojpse.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/ojpse.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/ojpsmime.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/ojpsmime.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/ojpcms.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/ojpcms.jar::
/opt/oracle/AS1012/j2ee/home/applib:
/opt/oracle/AS1012/jdbc/lib/classes12dms.jar:
/opt/oracle/AS1012/diagnostics/lib/ojdl.jar:
/opt/oracle/AS1012/jlib/oraclepki.jar:
/opt/oracle/AS1012/jlib/ojpse.jar:
/opt/oracle/AS1012/jlib/ldapjclnt10.jar:
/opt/oracle/AS1012/jlib/netcfg.jar:
/opt/oracle/AS1012/jlib/jssl-1_1.jar:
/opt/oracle/AS1012/jlib/javax-ssl-1_1.jar:
/opt/oracle/AS1012/jlib/orai18n.jar:
/opt/oracle/AS1012/owm/jlib/owm-3_0.jar:
/opt/oracle/apps/prodcomn/java:
/opt/oracle/apps/prodcomn/java/xmlparserv2.zip:
/opt/oracle/apps/prodcomn/java/ieoservers.zip:
/opt/oracle/apps/prodcomn/java/jbojdbcpatch.zip:
/opt/oracle/apps/prodcomn/java/cache.zip:
/opt/oracle/apps/prodcomn/java/bc4jdatum817.zip:
/opt/oracle/apps/prodcomn/java/jdev-rt.zip:
/opt/oracle/apps/prodcomn/java/fndoam.zip:
/opt/oracle/apps/prodcomn/java/nls_charset11.zip:
/opt/oracle/apps/prodcomn/java/jbodatum111.jar:
/opt/oracle/apps/prodcomn/java/aqapi.zip:
/opt/oracle/apps/prodcomn/java/ieoall.zip:
/opt/oracle/apps/prodcomn/java/xdoparser.zip:
/opt/oracle/apps/prodcomn/java/sax2.zip:
/opt/oracle/apps/prodcomn/java/appsborg.zip:
/opt/oracle/apps/prodcomn/java/F1J7Swing.jar:
/opt/oracle/apps/prodcomn/java/bipres.zip:
/opt/oracle/apps/prodcomn/java/jdbc14.zip:
/opt/oracle/apps/prodcomn/java/servlet.zip:
/opt/oracle/apps/prodcomn/java/ojdigsig.zip:
/opt/oracle/apps/prodcomn/java/loadjava.zip:
/opt/oracle/apps/prodcomn/java/jdbc12.zip:
/opt/oracle/apps/prodcomn/java/graphbuilder.zip:
/opt/oracle/apps/prodcomn/java/appsborg2.zip:
/opt/oracle/apps/prodcomn/java/xmlparserv2-904.zip:
/opt/oracle/apps/prodcomn/java/fwkToolbox.zip:
/opt/oracle/apps/prodcomn/java/nls_charset12.zip:
/opt/oracle/apps/prodcomn/java/owa.zip:
/opt/oracle/apps/prodcomn/java/HTBGateway.zip:
/opt/oracle/apps/prodcomn/java/jdbc111.zip:
/opt/oracle/apps/prodcomn/java/jmscommon.zip:
/opt/oracle/AS1012/BC4J/lib:
/opt/oracle/AS1012/BC4J/lib/collections.jar:
/opt/oracle/AS1012/BC4J/lib/bc4jdomorcl.jar:
/opt/oracle/AS1012/BC4J/lib/bc4jimdomains.jar:
/opt/oracle/AS1012/BC4J/lib/bc4jmt.jar:
/opt/oracle/AS1012/BC4J/lib/bc4jct.jar:
/opt/oracle/AS1012/BC4J/lib/bc4jmtejb.jar:
/opt/oracle/AS1012/BC4J/lib/bc4jctejb.jar:
/opt/oracle/AS1012/BC4J/lib/adfm.jar:
/opt/oracle/AS1012/BC4J/lib/adfmtl.jar:
/opt/oracle/AS1012/BC4J/lib/adfmweb.jar:
/opt/oracle/AS1012/jlib/ojmisc.jar:
/opt/oracle/AS1012/ord/jlib/ordim.jar:
/opt/oracle/AS1012/ord/jlib/ordhttp.jar:
/opt/oracle/AS1012/jlib/jdev-cm.jar:
/opt/oracle/AS1012/lib/dsv2.jar:
/opt/oracle/AS1012/lib/xsu12.jar::
/opt/oracle/AS1012/j2ee/home/applications/SessionTest/sessiontest/WEB-INF/classes:
/opt/oracle/AS1012/j2ee/home/applications/SessionTest/sessiontest/WEB-INF/lib/htbclnt.jar
]

... in fact, how do you feel? I feel very bad about so many irrelevant libaries were loaded in AS by default. No wonder AS has huge memory requirement. And next bad thing is, my application (SessionTest) libraries only appear at the end of the CLASSPATH.

This has caused one major problem. For example, if my application needs a particular version of classes12dms.zip JDBC library (because Oracle has released so many version of JDBC drivers, I have problem with RMI Serialization), AS will never be able to load my needed classes12dms.zip because there are so many JDBC libraries existing ahead.

So, I need to force AS to load my application libraries (in classes and lib folder).

In JDeveloper1012, we'll go New->General->Deployment Descriptors->orion-web.xml. Update the file with:
<orion-web-app servlet-webdir="/">
<web-app-class-loader search-local-classes-first="true"/>
</orion-web-app>


Then, deploy the application again. And we'll see what happens to the class loading sequence:

Show CLASSPATH: [:
/opt/oracle/AS1012/j2ee/home/applications/SessionTest/sessiontest/WEB-INF/classes:
/opt/oracle/AS1012/j2ee/home/applications/SessionTest/sessiontest/WEB-INF/lib/htbclnt.jar
:
oc4j.jar:/opt/oracle/AS1012/j2ee/home/lib/ejb.jar:
/opt/oracle/AS1012/j2ee/home/lib/servlet.jar:
/opt/oracle/AS1012/j2ee/home/lib/ojsp.jar:
/opt/oracle/AS1012/j2ee/home/lib/jndi.jar:
/opt/oracle/AS1012/j2ee/home/lib/jdbc.jar:
/opt/oracle/AS1012/j2ee/home/iiop.jar:
/opt/oracle/AS1012/j2ee/home/iiop_gen_bin.jar:
/opt/oracle/AS1012/j2ee/home/lib/jms.jar:
/opt/oracle/AS1012/j2ee/home/lib/jta.jar:
/opt/oracle/AS1012/j2ee/home/lib/jmxri.jar:
/opt/oracle/AS1012/j2ee/home/lib/javax77.jar:
/opt/oracle/AS1012/j2ee/home/lib/javax88.jar:
/opt/oracle/AS1012/j2ee/home/../../opmn/lib/ons.jar:
/opt/oracle/AS1012/j2ee/home/../../opmn/lib/optic.jar:
/opt/oracle/AS1012/j2ee/home/../../lib/dms.jar:
/opt/oracle/AS1012/j2ee/home/../../dms/lib/dms.jar:
/opt/oracle/AS1012/j2ee/home/../../diagnostics/lib/ojdl.jar:
/opt/oracle/AS1012/j2ee/home/../../dms/diagnostics/lib/ojdl.jar:
/opt/oracle/AS1012/j2ee/home/lib/connector.jar:
/opt/oracle/AS1012/j2ee/home/lib/bcel.jar:
/opt/oracle/AS1012/j2ee/home/lib/cos.jar:
/opt/oracle/AS1012/j2ee/home/lib/jsse.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/lib/jsse.jar:
/opt/oracle/AS1012/j2ee/home/lib/jnet.jar:
/opt/oracle/AS1012/j2ee/home/lib/jcert.jar:
/opt/oracle/AS1012/j2ee/home/lib/activation.jar:
/opt/oracle/AS1012/j2ee/home/lib/mail.jar:
/opt/oracle/AS1012/j2ee/home/../../javavm/lib/jasper.zip:
/opt/oracle/AS1012/j2ee/home/../../lib/xmlparserv2.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/lib/xmlparserv2.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/orai18n.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/orai18n.jar:
/opt/oracle/AS1012/j2ee/home/lib/jaxp.jar:
/opt/oracle/AS1012/j2ee/home/lib/jaas.jar:
/opt/oracle/AS1012/j2ee/home/jazn.jar:
/opt/oracle/AS1012/j2ee/home/../../jdbc/lib/classes12dms.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jdbc/lib/classes12dms.jar:
/opt/oracle/AS1012/j2ee/home/../../jdbc/lib/nls_charset12.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jdbc/lib/nls_charset12.jar:
/opt/oracle/AS1012/j2ee/home/jaxb-rt-1.0-ea.jar:
/opt/oracle/AS1012/j2ee/home/../../soap/lib/soap.jar:
/opt/oracle/AS1012/j2ee/home/../../webservices/lib/wsserver.jar:
/opt/oracle/AS1012/j2ee/home/../../webservices/lib/wsdl.jar:
/opt/oracle/AS1012/j2ee/home/../../rdbms/jlib/aqapi.jar:
/opt/oracle/AS1012/j2ee/home/lib/jem.jar:
/opt/oracle/AS1012/j2ee/home/../../javacache/lib/cache.jar:
/opt/oracle/AS1012/j2ee/home/lib/http_client.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/jssl-1_1.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/jssl-1_1.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/repository.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/repository.jar:
/opt/oracle/AS1012/j2ee/home/lib/jaasmodules.jar:
/opt/oracle/AS1012/j2ee/home/../../sqlj/lib/runtime12ee.jar:
/opt/oracle/AS1012/j2ee/home/../../sqlj/lib/translator.jar:
/opt/oracle/AS1012/j2ee/home/lib/crimson.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/ojpcs.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/ojpcs.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/ojpcp.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/ojpcp.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/ojpse.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/ojpse.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/ojpsmime.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/ojpsmime.jar:
/opt/oracle/AS1012/j2ee/home/../../jlib/ojpcms.jar:
/opt/oracle/AS1012/j2ee/home/../../oracle/jlib/ojpcms.jar::
/opt/oracle/AS1012/j2ee/home/applib:
/opt/oracle/AS1012/jdbc/lib/classes12dms.jar:
/opt/oracle/AS1012/diagnostics/lib/ojdl.jar:
/opt/oracle/AS1012/jlib/oraclepki.jar:
/opt/oracle/AS1012/jlib/ojpse.jar:
/opt/oracle/AS1012/jlib/ldapjclnt10.jar:
/opt/oracle/AS1012/jlib/netcfg.jar:
/opt/oracle/AS1012/jlib/jssl-1_1.jar:
/opt/oracle/AS1012/jlib/javax-ssl-1_1.jar:
/opt/oracle/AS1012/jlib/orai18n.jar:
/opt/oracle/AS1012/owm/jlib/owm-3_0.jar:
/opt/oracle/apps/prodcomn/java:
/opt/oracle/apps/prodcomn/java/xmlparserv2.zip:
/opt/oracle/apps/prodcomn/java/ieoservers.zip:
/opt/oracle/apps/prodcomn/java/jbojdbcpatch.zip:
/opt/oracle/apps/prodcomn/java/cache.zip:
/opt/oracle/apps/prodcomn/java/bc4jdatum817.zip:
/opt/oracle/apps/prodcomn/java/jdev-rt.zip:
/opt/oracle/apps/prodcomn/java/fndoam.zip:
/opt/oracle/apps/prodcomn/java/nls_charset11.zip:
/opt/oracle/apps/prodcomn/java/jbodatum111.jar:
/opt/oracle/apps/prodcomn/java/aqapi.zip:
/opt/oracle/apps/prodcomn/java/ieoall.zip:
/opt/oracle/apps/prodcomn/java/xdoparser.zip:
/opt/oracle/apps/prodcomn/java/sax2.zip:
/opt/oracle/apps/prodcomn/java/appsborg.zip:
/opt/oracle/apps/prodcomn/java/F1J7Swing.jar:
/opt/oracle/apps/prodcomn/java/bipres.zip:
/opt/oracle/apps/prodcomn/java/jdbc14.zip:
/opt/oracle/apps/prodcomn/java/servlet.zip:
/opt/oracle/apps/prodcomn/java/ojdigsig.zip:
/opt/oracle/apps/prodcomn/java/loadjava.zip:
/opt/oracle/apps/prodcomn/java/jdbc12.zip:
/opt/oracle/apps/prodcomn/java/graphbuilder.zip:
/opt/oracle/apps/prodcomn/java/appsborg2.zip:
/opt/oracle/apps/prodcomn/java/xmlparserv2-904.zip:
/opt/oracle/apps/prodcomn/java/fwkToolbox.zip:
/opt/oracle/apps/prodcomn/java/nls_charset12.zip:
/opt/oracle/apps/prodcomn/java/owa.zip:
/opt/oracle/apps/prodcomn/java/HTBGateway.zip:
/opt/oracle/apps/prodcomn/java/jdbc111.zip:
/opt/oracle/apps/prodcomn/java/jmscommon.zip:
/opt/oracle/AS1012/BC4J/lib:
/opt/oracle/AS1012/BC4J/lib/collections.jar:
/opt/oracle/AS1012/BC4J/lib/bc4jdomorcl.jar:
/opt/oracle/AS1012/BC4J/lib/bc4jimdomains.jar:
/opt/oracle/AS1012/BC4J/lib/bc4jmt.jar:
/opt/oracle/AS1012/BC4J/lib/bc4jct.jar:
/opt/oracle/AS1012/BC4J/lib/bc4jmtejb.jar:
/opt/oracle/AS1012/BC4J/lib/bc4jctejb.jar:
/opt/oracle/AS1012/BC4J/lib/adfm.jar:
/opt/oracle/AS1012/BC4J/lib/adfmtl.jar:
/opt/oracle/AS1012/BC4J/lib/adfmweb.jar:
/opt/oracle/AS1012/jlib/ojmisc.jar:
/opt/oracle/AS1012/ord/jlib/ordim.jar:
/opt/oracle/AS1012/ord/jlib/ordhttp.jar:
/opt/oracle/AS1012/jlib/jdev-cm.jar:
/opt/oracle/AS1012/lib/dsv2.jar:
/opt/oracle/AS1012/lib/xsu12.jar:]

Yes. Mission accomplished. AS is loading my application libraries first.