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.

3 comments:

Anonymous said...

Hi,

Do you successfully have changed a hostname of oracle apps by these steps? I've used steps like this but at the end, I have some problem with starting forms and encounter the following errors in jinitiator console:

java.lang.NoClassDefFoundError: org/apache/regexp/RESyntaxException

at oracle.ewt.lwAWT.lwText.LWTextField.getText(LWTextField.java:196)

at oracle.ewt.lwAWT.lwText.LWTextField._getDisplayString(LWTextField.java:787)

at oracle.ewt.lwAWT.lwText.LWTextField._calculateCanvasWidth(LWTextField.java:714)

at oracle.ewt.lwAWT.lwText.LWTextField.layoutCanvas(LWTextField.java:398)

at oracle.ewt.EwtComponent.layout(Unknown Source)

at java.awt.Container.doLayout(Unknown Source)

All the other jar files downloaded successfully except regexp.jar.

The classpath is:

echo $CLASSPATH
/usr/java14/lib/tools.jar:/usr/java14/lib/dt.jar:/usr/java14/jre/lib/charsets.jar:/usr/java14/jre/lib/rt.jar:/gldb/apps/d01/oracle/prodcomn/java/appsborg2.zip:/gldb/apps/d01/oracle/prodcomn/java/regexp.jar:/gldb/apps/d01/oracle/prodora/8.0.6/forms60/java:/gldb/apps/d01/oracle/prodcomn/java/org/apache/regexp:/gldb/apps/d01/oracle/prodcomn/java

Do you have any idea?

Regards,
Ghafarkhani

oraclesoon said...

Your issue is more like a Java NoClassDefFoundError. Try to uninstall old jinitiator and install the latest version of Jinitiator and supporting JRE + Browser.

Anonymous said...

great post. i will be back to read some more.