Managing Oracle E-Business Suite R12.2
This is a sub-post to Installing Oracle E-Business Suite R12.2.
After installing R12.2.0 you can start to manage the installation.
There are a few things you need to be aware of and that will also come in handy for your R12.2.2 upgrade.
Login
Use the following URL:
Or if you use localhost:
Login:
User Name: sysadmin
Password: sysadmin
VIS.SH Script
Login as oracle.
We need a vis.sh script to set environment so we can run administrative commands for startup and shutdown.
However in the new R12.2 architecture the environment changes between fs1 and fs2 depending on the latest adop session.
To enable run file system (fs1):
. /oracle/VIS/EBSapps.env run
To enable patch file system (fs2):
. /oracle/VIS/EBSapps.env patch
To ensure opatch works correctly do the following or include in vis.sh:
# OPATCH_PLATFORM_ID=226; export OPATCH_PLATFORM_ID
This should already be set in vis.sh script.
In order to always get the correct run environment use the R12.2.2 env file with our own script:
Create a script like this for vis.sh:
# vi vis.sh
#/usr/bin/bash
. $HOME/EBSapps.env run
DBFS=/oracle/VIS/11.2.0
OID=VIS_hpserver
DBSCRIPTS=$DBFS/appsutil/scripts/$OID
PATCH_TOP=$APPL_TOP_NE/../patch;export PATCH_TOP
OPATCH_PLATFORM_ID=226; export OPATCH_PLATFORM_ID
alias addbctl=$DBSCRIPTS/addbctl.sh
alias addlnctl=$DBSCRIPTS/addlnctl.sh
alias adstrtal=$ADMIN_SCRIPTS_HOME/adstrtal.sh
alias adstpall=$ADMIN_SCRIPTS_HOME/adstpall.sh
alias adadminsrvctl=$ADMIN_SCRIPTS_HOME/adadminsrvctl.sh
alias adopmnctl=$ADMIN_SCRIPTS_HOME/adopmnctl.sh
alias adcmctl=$ADMIN_SCRIPTS_HOME/adcmctl.sh
alias runenv=". $HOME/EBSapps.env run"
alias patchenv=". $HOME/EBSapps.env patch"
alias dbenv=". $DBFS/$OID.env"
alias vis=". $HOME/vis.sh"
alias ops="ps -fed | grep VIS | wc -l"
alias opsl="ps -fed | grep VIS
# chmod +x vis.sh
Run it like this in $HOME:
# cd
# . vis.sh
Or add it to $HOME/.bashrc:
if [ -f $HOME/vis.sh ]; then
. $HOME/vis.sh
fi
You can also add two functions for running full start and stop:
startall(){
$DBSCRIPTS/addlnctl.sh start VIS
$DBSCRIPTS/addbctl.sh start
echo Oracle122 | $ADMIN_SCRIPTS_HOME/adstrtal.sh apps/apps
}
stopall(){
echo Oracle122 | $ADMIN_SCRIPTS_HOME/adstpall.sh apps/apps
$DBSCRIPTS/addbctl.sh stop
$DBSCRIPTS/addlnctl.sh stop VIS
}
You might get a warning but it can be ignored:
stty: standard input: Invalid argument
EBSapps.env
This is the environment script created from the R12.2.2 patch. This is good to use for R12.2.0 as well.
Create the file in $HOME.
To enable run file system (fs1):
. $HOME/EBSapps.env run
To enable patch file system (fs2):
. $HOME/EBSapps.env patch
Create the file from this source:
#!/bin/sh
#
# *===========================================================================+
# |
# | Copyright (c) 2001, 2009, 2011 Oracle and/or its affiliates.
# | All rights reserved.
# |
# +===========================================================================+
# |
# | FILENAME
# | EBSapps_ux.env
# |
# | DESCRIPTION
# | This env file displays the following information:
# | – Location of RUN File System
# | – Location of PATCH File System
# | – Location of Non-Editioned File System
# | – DB Hostname and SID
# |
# | It gives provision to source the RUN or PATCH file system.
# |
# | On Shared APPL_TOP, this script sources the RUN or PATCH env file, based on
# | the hostname of the Application tier node from which this script is run.
# |
# |
# | USAGE
# | PLATFORM
# | Unix Generic
# |
# | NOTES
# |
# | HISTORY
# |
# +===========================================================================+
# $Header: EBSapps_ux.env 120.0.12020000.8 2013/05/10 13:20:28 ttsharma noship $
node_info_file=’/oracle/VIS/fs2/FMW_Home/Oracle_EBS-app1/applications/oacore/APP-INF/node_info.txt’
CHOICE="xxx"
if [ ! -f $node_info_file ]
then
other_node_info_file=’/oracle/VIS/fs1/FMW_Home/Oracle_EBS-app1/applications/oacore/APP-INF/node_info.txt’
if [ ! -f $other_node_info_file ]
then
printf "\nNode info file $node_info_file is not found."
printf "\nEBSapps.env: exiting with status 1 (Fail)\n\n"
return 1;
else
node_info_file=$other_node_info_file
fi
fi
host_name=`hostname|sed ‘s/\..*//g’`
CTXFILE=`grep -i $host_name:CONTEXTFILE $node_info_file | sed ‘s/^.*[^=]=//g; s/ *$//g’`
if [ ! -f $CTXFILE ]
then
printf "\nContext file $CTXFILE is not found."
printf "\nEBSapps.env: exiting with status 1 (Fail)\n\n"
return 1;
fi
if [ $# -gt 1 ]
then
printf " Too many arguments specified."
printf "\n Allowed arguments are \"run\" or \"patch\"\n"
return 1
fi
if [ $# -eq 1 ]
then
INPUT_CHOICE=`echo $1|tr ‘[A-Z]’ ‘[a-z]’`
if [ "xx${INPUT_CHOICE}" != "xx" ]
then
if [ "${INPUT_CHOICE}" = "run" -o "${INPUT_CHOICE}" = "patch" ]
then
CHOICE=`echo ${INPUT_CHOICE}|cut -c1`
shift
else
printf " Invalid argument \"$1\""
printf "\n Valid arguments are \"run\" or \"patch\"\n"
shift
return 1
fi
fi
fi
edition_type=`grep "\"s_file_edition_type\"" $CTXFILE | sed ‘s/^.*s_file_edition_type[^>.]*>[ ]*\([^<]*\)<.*/\1/g; s/ *$//g’`
currentFS=`grep "\"s_current_base\"" $CTXFILE | sed ‘s/^.*s_current_base[^>.]*>[ ]*\([^<]*\)<.*/\1/g; s/ *$//g’`
otherFS=`grep "\"s_other_base\"" $CTXFILE | sed ‘s/^.*s_other_base[^>.]*>[ ]*\([^<]*\)<.*/\1/g; s/ *$//g’`
neFS=`grep "\"s_ne_base\"" $CTXFILE | sed ‘s/^.*s_ne_base[^>.]*>[ ]*\([^<]*\)<.*/\1/g; s/ *$//g’`
context_name=`grep "\"s_contextname\"" $CTXFILE | sed ‘s/^.*s_contextname[^>.]*>[ ]*\([^<]*\)<.*/\1/g; s/ *$//g’`
if [ "$edition_type" = "patch" ]
then
RUN_BASE=$otherFS
PATCH_BASE=$currentFS
else
RUN_BASE=$currentFS
PATCH_BASE=$otherFS
fi
NON_EDITIONED_BASE=$neFS
#### Display the E-Business Suite related information #####
printf "\n E-Business Suite Environment Information\n"
printf " —————————————-\n"
printf " RUN File System : $RUN_BASE/EBSapps/appl\n"
printf " PATCH File System : $PATCH_BASE/EBSapps/appl\n"
printf " Non-Editioned File System : $NON_EDITIONED_BASE\n"
DB_HOST=`grep "\"s_dbhost\"" $CTXFILE | sed ‘s/^.*s_dbhost[^>.]*>[ ]*\([^<]*\)<.*/\1/g; s/ *$//g’`
DB_DOMAIN=`grep "\"s_dbdomain\"" $CTXFILE | sed ‘s/^.*s_dbdomain[^>.]*>[ ]*\([^<]*\)<.*/\1/g; s/ *$//g’`
DB_QUALIFIED_DOMAIN_NAME="$DB_HOST.$DB_DOMAIN"
SID=`grep "\"s_dbSid\"" $CTXFILE | sed ‘s/^.*s_dbSid[^>.]*>[ ]*\([^<]*\)<.*/\1/g; s/ *$//g’`
printf " DB Host: $DB_QUALIFIED_DOMAIN_NAME Service/SID: $SID\n"
#### Prompt to select and set the RUN or PATCH environment #####
if [ "$CHOICE" = "xxx" ]
then
printf "\n E-Business Suite Environment Setting\n"
printf " ————————————\n"
printf " – Enter [R/r] for sourcing Run File System Environment file, or\n"
printf " – Enter [P/p] for sourcing Patch File System Environment file, or \n"
printf " – Enter anything else to exit\n"
printf "\n Would you like to set the E-Business Suite environment [R/P]:"
read CHOICE
CHOICE=`echo $CHOICE|tr ‘[A-Z]’ ‘[a-z]’`
fi
CONTEXT_ENV_FILE_NAME="APPS"$context_name".env"
if [ "$CHOICE" = "r" ]
then
if [ ! -f $RUN_BASE/EBSapps/appl/$CONTEXT_ENV_FILE_NAME ]
then
printf "\nEnvironment file $RUN_BASE/EBSapps/appl/$CONTEXT_ENV_FILE_NAME is not found."
printf "\nEBSapps.env: exiting with status 1 (Fail)\n\n"
return 1;
else
printf "\n Sourcing the RUN File System …\n\n"
. $RUN_BASE/EBSapps/appl/$CONTEXT_ENV_FILE_NAME
fi
elif [ "$CHOICE" = "p" ]
then
if [ ! -f $PATCH_BASE/EBSapps/appl/$CONTEXT_ENV_FILE_NAME ]
then
printf "\Environment file $PATCH_BASE/EBSapps/appl/$CONTEXT_ENV_FILE_NAME is not found."
printf "\nEBSapps.env: exiting with status 1 (Fail)\n\n"
return 1;
else
printf "\n Sourcing the PATCH File System …\n\n"
. $PATCH_BASE/EBSapps/appl/$CONTEXT_ENV_FILE_NAME
fi
fi
#### Reset the edition_type variable so that it is not set as an env variable ####
edition_type=""
CTXFILE=""
CHOICE=""
Startup
Login as oracle.
# . ./vis.sh
# addlnctl start VIS
# addbctl start
# adstrtal apps/apps
Enter the WebLogic Server password: Oracle122
Wait with login until you have around 130 oracle VIS processes running:
# ps -fed | grep VIS | wc -l
Shutdown
Login as oracle.
# . ./vis.sh
# adstpall apps/apps
Enter the WebLogic Server password: Oracle122
Before shutting down the database be sure that background jobs are fully shut down:
# ps -fed | grep VIS
Wait until you only have processes with "ora_????_VIS" processes and the "tnslsnr VIS" process remaining.
If there are processes hanging you can kill then manually; but wait for a few minutes:
# kill -9 {process id}
Or do something like this in case there is many hanging processes:
# ps -fed | grep oracleVIS | while read a b c;do kill -9 $b;done
Now shutdown the database:
# addbctl stop
# addlnctl stop VIS
Login as root.
To halt the system:
# shutdown -h now
Session Timeout
Login to apps as sysadmin
Update system profile:
ICX:Session Timeout = 300
SQLNET Security
If you want to connect from an external computer you need to remove security on the tnslistener:
# vi /oracle/VIS/11.2.0/network/admin/VIS_hpserver/sqlnet_ifile.ora
tcp.validnode_checking = no
Bounce tns listener:
# addlnctl stop VIS
# addlnctl start VIS
If this is not set you will get ORA-12537: TNS:connection closed
Cold Backup
The easiest way to make a backup is to make a cold backup; which means to fully shut down the system and copy all the files.
Shutdown system:
# adstpall apps/apps
Enter the WLSADMIN password: Oracle122
# addbctl stop
# addlnctl stop VIS
Besure everything is shut down before making cold backup.
Make backup:
# cd /oracle
# cp -r –preserve VIS {backupdir}/VISv{version}
Start system again:
# addbctl start
# addlnctl start VIS
# adstrtal apps/apps
Enter the WLSADMIN password: Oracle122
Patching using ADOP
This is just a short list to remember how to run this beast.
In general I specify workers=1 to save memory but if you have enough just remove this statement.
Normal patch application:
# adop phase=prepare,apply patches={patch[,patch…]}
# adop phase=finalize
# adop phase=cutover
# adop phase=cleanup
Hotpatch:
# adop phase=apply hotpatch=yes patches={patch[,patch…]}
Clone – copy file system between fs1 and fs2
# adop phase=fs_clone
Retry (if failed)
# adop phase=apply patches={patch[,patch…]} restart=yes abandon=no
Abort (if failed and cannot be fixed):
# adop phase=abort
If you are low on memory you can reduce the number of workers:
# adop phase=apply {hotpatch=yes} patches={patch[,patch…]} workers=1
Managing Concurrent Manager
Check status of concurrent manager:
# adcmctl status apps/apps
Manually starting concurrent manager:
# adcmctl start apps/apps
Manually stopping concurrent manager:
# adcmctl stop apps/apps
Manually force stopping concurrent manager – in case it is not shutting down:
# adcmctl abort apps/apps wait=y
Top Linux Command
This is useful is you are not sure what is running or not.
Basic command:
# top
Monitor a single user:
# top -u oracle
Inside top you can also change sort order
Type shift+f
Select a sort order and type enter…
Like: k+enter for %CPU
Xming
Instead of using Konsole you can use a xming on your PC:
http://sourceforge.net/projects/xming/
Create a text file with xlaunch extension per user like this (example for root):
Containing:
<?xml version="1.0"?>
<XLaunch xmlns="http://www.straightrunning.com/XmingNotes"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.straightrunning.com/XmingNotes XLaunch.xsd"
WindowMode="MultiWindow"
ClientMode="StartProgram"
Program="xterm"
ClientStart="PuTTY"
PW="oracle"
RemoteHost="hpserver"
RemoteUser="root"
Display="2"
Clipboard="true"
/>
Double-click on the file and you get:
As this window is running on your PC you will be able to copy and paste between Windows and Linux.
- Copy from Linux to Windows: Select text in xming window and paste in Windows using ctrl-v
- Copy from Windows to Linux: Copy text in Windows and paste in xming using middle mouse button
Installing KDE Partition Manager
Download from: http://rpmfind.net/linux/rpm2html/search.php?query=kde-partitionmanager
yum -y install cmake
yum -y install kdelibs-devel
yum -y install libuuid-devel
yum -y install libblkid-devel
yum -y install parted-devel
unzip partitionmanager*
cd partitionmanager
mkdir build
cd build
cmake ..
make
make install
KDE Partition Manager should now be available in the KDE application menu.
Weblogic
Not that you would need this; but just in case:
Click GO on top left:
Username: weblogic
Password: Oracle122
Workflow Manager
In case the manager is inactive:
System Administrator>Concurrent>Manager>Administer
Administer Concurrent Managers |
|
Name |
Workflow Agent Listener Service |
System Administrator>Concurrent>Requests
Concurrent Program |
|
Name |
Workflow Background Process |
Parameters |
|
Item Type |
|
Minimum Threshold |
|
Maximum Threshold |
|
Process Deferred |
Yes |
Process Timeout |
Yes |
Process Stuck |
Yes |
Schedule |
|
Run the Job |
Periodically |
Start At |
{default} |
Re-run |
5 Minutes |
Apply the Interval |
From the Completion of prior run |
Increment date parameters each run |
No |
Errors
WebADI Issues
- BNE_UIX_PHYSICAL_DIRECTORY is not configured: Clear system profile option “BNE UIX Physical Directory”
- BNE:EXCEL2000 is an invalid Viewer Key: Set both system profile “GL : Default Desktop Viewer” to: Excel 2010
- After changing the above bounce the middle tier
FSCloneApply
Normally I don’t refer to a lot of errors but this one is a nasty one and there is no references anywhere.
You will get errors like this is you did not ensure file system 2 port pool starts with 2.
FSCloneApply
*******FATAL ERROR*******
PROGRAM : txkADOPPreparePhaseSynchronize.pl
FUNCTION: main::migrateCloneComponentApply [ Level 1 ]
ERRORMSG: adclone.pl did not go through successfully.
[ERROR] Error occurred while executing
txkADOPPreparePhaseSynchronize.pl
[ERROR] Error occurred while CONFIG_CLONE PATCH FS with RUN FS using command: txkADOPPreparePhaseSynchronize.pl
Creating new WLS domain.
Running pasteConfig.sh
Script Executed in 1902 milliseconds, returning status 255
Script failed, exit code 255
SEVERE : CLONE-20372 Server port validation failed.
SEVERE : CLONE-20372 Ports of following servers – AdminServer(7001) – are not available.
SEVERE : CLONE-20372 Provide valid free ports.
oracle.as.t2p.exceptions.FMWT2PPasteConfigException: PasteConfig failed.
Make sure that the move plan and the values specified in moveplan are correct.