Tag Archives: setup

Setup and Install the Oracle EBS Integrated SOA Gateway for R12.2.x

https://blogs.oracle.com/ebusinesssuiteintegration
1317697.1Functional Diagram of the Integrated SOA Gateway in Oracle e-Business Suite

Registering the Integrated SOA Gateway included in the Oracle E-Business Suite R12.2.x instances is actually reasonably simple, but the documents make it sound much worse than it really is, simply by being several hundred pages of documentation.

The reason to do this is to expose the RESTful services interface for EBS so that other web applications can do useful things, such as check usernames for validity, lookup business process (workflow) statuses, and even query for completion of processes, such as concurrent programs.  The built-in library of accessable Services is quite vast and enables lots of interconnectivity with other applications.

This is also useful if you happen to be extending the application using the Mobile Application Framework, which allows you to build custom applications for mobile devices that access all the various EBS functionalities.

References:
NOTE:1311068.1 – Installing Oracle E-Business Suite Integrated SOA Gateway, Release 12.2
NOTE:1317697.1 – Oracle E-Business Suite Integrated SOA Gateway Troubleshooting Guide, Release 12.2

Before commencing, have the following prepared:
Unlock the ASADMIN (FND_USER) account and set the password so that it can login without a change password challenge (no expiry. required.
APPS password
Weblogic password
IP Address of ApplTier Host
Ports for ApplTier Host (both base port and WLS console – e.g. 8000 7001)
Your base port is the one in your usual EBS URL and the WLS console URL can be determined via Oracle Application Manager in the Site Map link for Weblogic Administration.
Services will be interrupted by bounce twice (2X) during installation.
Installation takes about 45 minutes to complete.

====================================  Start of SOA Integration Steps
#Register new Internal SOA Gateway Configuration

itsrv33m [/export/home/dbausr/oradev] ant -f $JAVA_TOP/oracle/apps/fnd/txk/util/txkSoaConfigUtility.xml
Buildfile: $COMMON_TOP/java/classes/oracle/apps/fnd/txk/util/txkSoaConfigUtility.xml
checkenvset:
getServerDetails:
[input] Enter Oracle WebLogic Server Administration Console URL (host:port) :
[FQWLSHostname:port]
[input] Enter Oracle WebLogic Server Admin User Name :  [weblogic]
getWLSAdminPasswordUnix:
echoON:
[input] Enter the password for user weblogic :
echoOFF:
getWLSAdminPasswordWindows:
getPasswordUnix:
echoON:
[input] Enter the password for user apps :
echoOFF:
getPasswordWindows:
getASADMINUser:
[input] Enter the ASADMIN user name :  [ASADMIN]
getASADMINPasswordUnix:
echoON:
[input] Enter the password for user ASADMIN :
echoOFF:
getASADMINPasswordWindows:
getSOAServerDetails:
[input] Enter SOA Server  Hostname : (hostname.domain)
[FQEBShostname]
itsrv36m.mwd.h2o
[input] Enter External URL of SOA Suite SOA Managed Server (protocol://managed_server_hostname:managed_server_port) :
http://%5BFQEBShostname%5D:%5Bport%5D

[input] Enter Internal URL of SOA Suite SOA Managed Server (protocol://managed_server_hostname:managed_server_port) :
http://%5BFQEBShostname%5D:%5Bport%5D

[input] Enter External URL of SOA Suite Admin Server (protocol://admin_server_hostname:admin_server_port) :
http://%5BFQWLSHostname:port%5D

commonArgs:
checkRequiredJars:
getDbcFile:
ValidateASADMINConnection:
getJDBCURL:
addASADMINToFNDVault:
[echo] ********************************************************************
[echo]                  Adding/Updating ASADMIN user in fnd_vault
[echo] ********************************************************************
[echo] Connecting to the EBS database using below properties
[echo] User: apps
[echo] JDBC Url: jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=YES)(FAILOVER=YES)(ADDRESS=(PROTOCOL=tcp)(HOST=[FQhostname])(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=[$ORACLE_SID])))
[sql] Executing commands
[sql] 0 rows affected
[sql] 1 of 1 SQL statements executed successfully
[echo] Sucessfully Added/Updated ASADMIN in fnd_vault
createUserCredUpdationScript:
executeUserCredUpdationUnix:
[exec]
[exec] CLASSPATH=$CLASSPATH
[exec]
[exec] Initializing WebLogic Scripting Tool (WLST) …
[exec]
[exec] Welcome to WebLogic Server Administration Scripting Shell
[exec]
[exec] Type help() for help on available commands
[exec]
[exec]
[exec] Connecting to server using username:weblogic url:[SOAhost:port]
[exec]
[exec] Connecting to t3://[SOAhost:port] with userid weblogic …
[exec] Successfully connected to Admin Server ‘AdminServer’ that belongs to domain ‘EBS_domain_[ORACLE_SID]’.
[exec]
[exec] Warning: An insecure protocol was used to connect to the
[exec] server. To ensure on-the-wire security, the SSL port or
[exec] Admin port should be used instead.
[exec]
[exec] Creating user ASADMIN
[exec] Sucessfully created user ASADMIN
[delete] Deleting: $INST_TOP/logs/appl/rgf/TXK/updateuser_02_November_2016_08_17_38.py
executeUserCredUpdationWindows:
updateWLSuser:
updateSoaContextVariables:
[echo]  Updating Context Variable s_soa_external_url
[echo]  Updating Context Variable s_soa_internal_url
[echo]  Updating Context Variable s_soa_admin_url
runAutoconfigUnix:
[echo]  Running Autoconfig
[exec] Enter the APPS user password:
[exec]
[exec] The log file for this session is located at: $INST_TOP/admin/log/[session#]/adconfig.log
[exec]
[exec] AutoConfig is configuring the Applications environment…
[exec]
[exec] AutoConfig will consider the custom templates if present.
[exec]     Using CONFIG_HOME location     : $INST_TOP
[exec]     Classpath                   :
[exec]
[exec]     Using Context file          : $CONTEXT_FILE
[exec]
[exec] Context Value Management will now update the Context file
[exec]
[exec]     Updating Context file…COMPLETED
[exec]
[exec]     Attempting upload of Context file and templates to database…COMPLETED
[exec]
[exec] Configuring templates from all of the product tops…
[exec]     Configuring AD_TOP……..COMPLETED
[exec]     Configuring FND_TOP…….COMPLETED
[exec]     Configuring ICX_TOP…….COMPLETED
[exec]     Configuring MSC_TOP…….COMPLETED
[exec]     Configuring IEO_TOP…….COMPLETED
[exec]     Configuring BIS_TOP…….COMPLETED
[exec]     Configuring CZ_TOP……..COMPLETED
[exec]     Configuring AMS_TOP…….COMPLETED
[exec]     Configuring CCT_TOP…….COMPLETED
[exec]     Configuring WSH_TOP…….COMPLETED
[exec]     Configuring CLN_TOP…….COMPLETED
[exec]     Configuring OKE_TOP…….COMPLETED
[exec]     Configuring OKL_TOP…….COMPLETED
[exec]     Configuring OKS_TOP…….COMPLETED
[exec]     Configuring CSF_TOP…….COMPLETED
[exec]     Configuring IBY_TOP…….COMPLETED
[exec]     Configuring JTF_TOP…….COMPLETED
[exec]     Configuring MWA_TOP…….COMPLETED
[exec]     Configuring CN_TOP……..COMPLETED
[exec]     Configuring CSI_TOP…….COMPLETED
[exec]     Configuring WIP_TOP…….COMPLETED
[exec]     Configuring CSE_TOP…….COMPLETED
[exec]     Configuring EAM_TOP…….COMPLETED
[exec]     Configuring GMF_TOP…….COMPLETED
[exec]     Configuring PON_TOP…….COMPLETED
[exec]     Configuring FTE_TOP…….COMPLETED
[exec]     Configuring ONT_TOP…….COMPLETED
[exec]     Configuring AR_TOP……..COMPLETED
[exec]     Configuring AHL_TOP…….COMPLETED
[exec]     Configuring IES_TOP…….COMPLETED
[exec]     Configuring OZF_TOP…….COMPLETED
[exec]     Configuring CSD_TOP…….COMPLETED
[exec]     Configuring IGC_TOP…….COMPLETED
[exec]
[exec] AutoConfig completed successfully.
runAutoconfigWindows:
setEBSProfiles:
[echo]  Updating Profile  FND_SERVER_DESKTOP_USER
[java] Nov 02, 2016 8:21:24 AM oracle.apps.fnd.txk.util.TXKFMWGenericConfigUtility readPasswordFromStdin
[java] INFO: Enter APPS Password:
[echo]  Updating Profile FND_SERVER_SEC
[java] Nov 02, 2016 8:21:26 AM oracle.apps.fnd.txk.util.TXKFMWGenericConfigUtility readPasswordFromStdin
[java] INFO: Enter APPS Password:
[echo]  Updating Profile FND_SERVER_IP_SEC
[java] Nov 02, 2016 8:21:28 AM oracle.apps.fnd.txk.util.TXKFMWGenericConfigUtility readPasswordFromStdin
[java] INFO: Enter APPS Password:
[echo]  Updating Profile FND_SQLNET_ACCESS
[java] Nov 02, 2016 8:21:29 AM oracle.apps.fnd.txk.util.TXKFMWGenericConfigUtility readPasswordFromStdin
[java] INFO: Enter APPS Password:

ebsConfigForSOA:

BUILD SUCCESSFUL
Total time: 6 minutes 36 seconds
# Verify new Profile Option Settings
SQL Statement which produced this data:
/* Formatted on 11/17/2016 7:07:54 AM (QP5 v5.300) */
SELECT n.user_profile_option_name              NAME,
TO_CHAR (v.last_update_date, ‘DD-MON-RR’)”Last Updated”,
DECODE (v.level_id,
10001, ‘Site’,
10002, ‘Application’,
10003, ‘Responsibility’,
10004, ‘User’,
10005, ‘Server’,
10007, ‘SERVRESP’,
v.level_id)
LEVEL_SET,
DECODE (TO_CHAR (v.level_id),
‘10001’, ”,
‘10002’, app.application_short_name,
‘10003’, rsp.responsibility_key,
‘10005’, svr.node_name,
‘10006’, org.name,
‘10004’, usr.user_name,
‘10007’, v.LEVEL_VALUE2,
‘UnDef’)
“CONTEXT”,
v.profile_option_value                  VALUE
FROM fnd_profile_options      p,
fnd_profile_option_values v,
fnd_profile_options_tl   n,
fnd_user                 usr,
fnd_application          app,
fnd_responsibility       rsp,
fnd_nodes                svr,
hr_operating_units       org
WHERE     p.profile_option_id = v.profile_option_id(+)
AND p.profile_option_name = n.profile_option_name
AND UPPER (p.profile_option_name) IN (‘FND_SERVER_DESKTOP_USER’,
‘FND_SERVER_SEC’,
‘FND_SERVER_IP_SEC’,
‘FND_SQLNET_ACCESS’)
AND n.language = ‘US’
/* Use for Friendly PONs e.g. MO: Security Option
AND UPPER (n.user_profile_option_name) =
UPPER (”)
*/
AND usr.user_id(+) = v.level_value
AND rsp.application_id(+) = v.level_value_application_id
AND rsp.responsibility_id(+) = v.level_value
AND app.application_id(+) = v.level_value
AND svr.node_id(+) = v.level_value
AND org.organization_id(+) = v.level_value
ORDER BY v.last_update_date DESC;

NAME|Last Updated|LEVEL_SET|CONTEXT|VALUE
FND: Desktop Nodes allowed|02-NOV-16|User|ASADMIN|[FQhostname]

NAME|Last Updated|LEVEL_SET|CONTEXT|VALUE
SQLNet Access|02-NOV-16|Site||ALLOW_RESTRICTED

NAME|Last Updated|LEVEL_SET|CONTEXT|VALUE
FND: Validate IP address|02-NOV-16|Site||D

NAME|Last Updated|LEVEL_SET|CONTEXT|VALUE
FND: Validate User Type|02-NOV-16|Site||D

# Bounce certain services (minimizes downtime – can also bounce everything)
cd $ADMIN_SCRIPTS_HOME

admanagedsrvctl.sh stop oafm_server1
admanagedsrvctl.sh start oafm_server1
admanagedsrvctl.sh stop oacore_server1
admanagedsrvctl.sh start oacore_server1
[etc for any other oacore servers]

#Verify registered payload Class ID (ensures payload can be accessed)
SQL Statement which produced this data:
SELECT class_id
FROM fnd_irep_classes
WHERE     UPPER (irep_name) LIKE ‘%EBIZHOMEPAGESERVICE%’
AND class_type = ‘SERVICEBEAN’;

CLASS_ID
[a Number]

#Try downloading the payload for a specific function (Class ID discovered above)
XSD.zip DEV2 URL:  http://%5ByourEBSURL:port%5D/webservices/isgagent/?generatexsd=%5Bthe above number]
XSD.zip

# Configure the ISG BPEL Payload for use by SOA Suite
ant -f $JAVA_TOP/oracle/apps/fnd/bpel/util/txk_integration_packager.xml \ -DIntegration=isg  -DFMWNodeName=itsrv33m.mwd.h2o -DFMWIpAddress=[MT or Virtual host IP]
[echo] Bpel Payload is archived at $INST_TOP/logs/appl/rgf/TXK/EBS_BPEL_payload.zip

# Verify the “new” SOA Node is registred (MWD is just re-using the built in SOA)
SQL Statement which produced this data:
SELECT node_name, server_address, server_id
FROM fnd_nodes
WHERE UPPER(node_name) in(‘[hostname]’);

NODE_NAME|SERVER_ADDRESS|SERVER_ID
[hostname]|[IP address]|3E3B399AEB80184EE0548A507414599D22425228221243006566902023757213

# A Fix for HPUX, if needed, add set +u to the line right after #!/bin/sh
# vi $FMW_HOME/user_projects/domains/EBS_domain_$TWO_TASK/bin/setDomainEnv.sh

. $FMW_HOME/user_projects/domains/EBS_domain_$TWO_TASK/bin/setDomainEnv.sh

# Warning: the following command will immediately shutdown and restart the WLS Managed Services
ant -f $JAVA_TOP/oracle/apps/fnd/txk/util/txkISGConfigurator.xml ebsSetup

# Change default NAME=APPS connection to NAME=ASADMIN in WLS Admin Console.
# (you want to do this to support APPS password changes in the future – the ASADMIN
# password does not have to be disclosed to Developers once the setup is completed – just
# grant the Integrated SOA Gateway Role and Responsibility to users that need to deploy
# various services.

Data Sources -> OAEADatasource -> Configuration -> Connection Pool
[Lock & Edit]
Modify Properties user=APPS -> user=ASADMIN
Enter ASADMIN password in both password fields
[Save] -> [Activate Changes]

If the ASADMIN password is changed in the target EBS instance, then all of the following steps need to be re-executed in order to register the change with SOA:

# Clean out the prior OAEADatasource connections and definitions
Login to WLS Administration Console.
Services -> Data Sources -> [Lock & Edit] -> Select OAEADatasource -> [Delete]
Security Realms -> myrealm -> Providers -> Select IsgAuthenticator -> [Delete]
[Activate Changes]

$] cd $DOMAIN_HOME/config/jdbc
$] rm OAEADatasource-*-jdbc.xml

Repeat the SOA Integration steps again.

Otherwise, attempting REST deployments will receive an error:
Error
java.lang.SecurityException: User: ASADMIN~~[ORACLE_SID], failed to be authenticated.

Oracle Configuration Manager Quick Tip – EBS R12.2 Disconnected Collections

Collecting Disconnected Mode OCM data for e-Business Suite R12.2
per MOS Document ID 1447334.1 - Oracle E-Business Suite Release 12.2: Release Notes for Oracle Configuration Manager
My Oracle Support - Download Collector page
MOS Oracle Configuration Manager Collector Download screen.
This method is used whenever your EBS instance is behind a firewall and no proxy server is available to reach the OCM collector end-point (ccr.oracle.com)

The reason you want to use OCM is not only because it provides a complete catalog of your Oracle software versions, modules and plug-ins, so that they can easily be associated with a Service Request (SR) instead of the analyst asking for every RDA script being run for every component in your application and database. 

It also enables the full functionality of that Systems Tab in My Oracle Support (buried just above your Settings menu) that allows you to do light versions of lifecycle management comparisons (such as what the instance looked like 2 weeks ago versus now) without having to own the OEM Lifecycle Management license. It comes compliments of your support agreement.

This also enables the full functionality of the patch and security recommendations section vital towards identifying high priority one-off patches specific to your particular configuration and platform.

Basically, instead of having a cron job periodically automatically upload the configurations to ccr.oracle.com, you will be creating the same staged configuration file, but uploading it to your Customer Support Identifier (CSI) via a Draft Service Request (SR) or a currently Open SR via the File Attachment... feature of the SRs.

In the background of MOS is a managed file transfer handler that looks for the specifically named "ocmconfig.jar" files and when detected, route them over to the Configuration Manager engine for automatic uploading to your CSI account.

While not as convenient as the automatic cron method, for those of use with no direct internet connectivity to ccr.oracle.com, our OEM and MOS functionalities become quite limited if the configurations aren't present under our CSI's.e.g. ORACLE_BASE=/u01/app/oracle
# Oracle DB Home cd $ORACLE_HOME unset ORACLE_CONFIG_HOME export JAVA_HOME=$ORACLE_HOME/jdk cd $ORACLE_HOME/ccr # Clear prior CCR installation, if required. rm -rf $ORACLE_HOME/ccr/* cd $ORACLE_HOME unzip <patch_stage_dir>/p5567658_<ver>_<platform>.zip cd $ORACLE_HOME/ccr/bin # Run setupCCR in Disconnected mode ./setupCCR -s -d # Create ORACLE_OCM user and related grants . $ORACLE_HOME/ccr/admin/scripts/installCCRSQL.sh collectconfig -s <SID> -r SYS # Additional grants for APPS EBS Collector . $ORACLE_HOME/ccr/admin/scripts/installCCRSQL.sh ebs_collectconfig -u <APPSUSERNAME> # Run the collection and generate the ocmconfig.jar cd $ORACLE_HOME/ccr/bin ./emCCR collect # ocmconfig.jar location $ORACLE_HOME/ccr/hosts/$HOSTNAME/state/upload # Oracle 10.1.2 iAS Home . $ORACLE_BASE/EBSapps.env run export ORACLE_HOME=$ORACLE_HOME export ORACLE_CONFIG_HOME=$INST_TOP/ora/10.1.2 export JAVA_HOME=$ORACLE_HOME/jdk # Remove prior OCM config, if needed rm -rf $ORACLE_HOME/ccr/* rm -rf $ORACLE_CONFIG_HOME/ccr/* cd $ORACLE_HOME unzip <patch_stage_dir>/p5567658_<ver>_<platform>.zip # Bugfix specific to HP-UX Itanium - verify file permissions to execute chmod 754 $ORACLE_HOME/ccr/bin/deployPackages chmod 754 $ORACLE_HOME/ccr/bin/emSnapshotEnv cd $ORACLE_HOME/ccr/bin ./setupCCR -s -d # Disconnected mode # Run the collection and generate the ocmconfig.jar cd $ORACLE_HOME/ccr/bin ./emCCR collect # ocmconfig.jar location $INST_TOP/ora/10.1.2/ccr/state/upload #Repeat for patch filesystem; . $ORACLE_BASE/EBSapps.env patch # Oracle FMW WebLogic Home # source the Domain environment . $ORACLE_BASE/EBSapps.env run . $EBS_DOMAIN_HOME/bin/setDomainEnv.sh export ORACLE_HOME=$FMW_HOME/utils export ORACLE_CONFIG_HOME=$INST_TOP/ora/FMW # Remove prior OCM config, if needed rm -rf $ORACLE_HOME/ccr/* rm -rf $ORACLE_CONFIG_HOME/ccr/* cd $ORACLE_HOME unzip <patch_stage_dir>/p5567658_<ver>_<platform>.zip # Bugfix specific to HP-UX Itanium - verify file permissions to execute chmod 754 $ORACLE_HOME/ccr/bin/deployPackages chmod 754 $ORACLE_HOME/ccr/bin/emSnapshotEnv cd $ORACLE_HOME/ccr/bin ./setupCCR -s -d # Disconnected mode # Run the collection and generate the ocmconfig.jar cd $ORACLE_HOME/ccr/bin ./emCCR collect # ocmconfig.jar location $INST_TOP/FMW/ccr/state/upload #Repeat for patch filesystem; . $ORACLE_BASE/EBSapps.env patch # Upload all of your ocmconfig.jar files (can be named uniquely - e.g. mydbocmconfig.jar) per MOS Document ID 763142.1 - How to upload the collection file ocmconfig.jar to My Oracle Support for Oracle Configuration Manager (OCM) running in Disconnected Mode.
# Also can ZIP up all of them at once and upload them to your Draft SR (or current open SR as long as you're happy with the CSI (Customer Support Identifier) that will receive the new configurations.
# Trick is have the string "ocmconfig" and .jar as the extension of each file
Have fun with your new Systems tab in My Oracle Support!

Changing ORACLE_BASE in Oracle 11gR2 (11.2.0.3.4) Database

During a routine installation, I managed to mis-type the filesystem path for the ORACLE_BASE during execution of the Oracle Universal Installer (./runInstaller).

[nb: ORACLE_BASE by normal definition should be a standard starting filesystem mountpoint under which all other instance-specific data/files for this ORACLE_HOME would be found. Typically contains your diagnostic logs, Fast Recovery Area files, all configuration tool logs, and any Flashback checkpoint saves.

$ORACLE_BASE/diag/.

./asm
./clients
./crs
./diagtool
./lsnrctl
./netcman
./ofm
./rdbms
./tnslsnr

$ORACLE_BASE/admin/<SID>/.

./adump          # Audit data./dpdump       # Data Pump related
./pfile               # init.ora files generated by config tools

–end of note]

Since the service account (oracle) had filesystem permissions to do so, it went ahead and put all of the flashback recovery, diagnostics, and audit trail files (and my backup controlfiles) into the incorrectly named directory.  The database itself was running, but how to correct this without starting all over again?

Start with backing up your init.ora configuration from spfile to pfile format:

SQL> create pfile from spfile;

File created.

(this defaults to $ORACLE_HOME/dbs/init.ora)

Then shutdown services:

SQL> shutdown immediate;

Database closed.

SQL> exit;

#oracle> lsnrctl stop

Now go find all the places you’ll need to modify/correct the ORACLE_BASE filepath declarations:

$ORACLE_HOME/dbs/init<SID>.ora

$ORACLE_HOME/network/admin (or $TNS_ADMIN)

  • listener.ora: ADR_BASE_LISTENER
  • sqlnet.ora: ADR_BASE
    (Note: these two are auto-generated using netca – the Oracle Net Configuration Assistant, if you execute that after making the database and environment-side changes.

$ORACLE_HOME/inventory/ContentsXML/oraclehomeproperties.xml : ORACLE_BASE

All finished editing? Start everything back up:

#oracle> lsnrctl start

SQL> startup pfile=?/dbs/init<SID>.ora  — to use revised settings

SQL> create spfile from pfile;       — copy new settings to spfile

SQL> shutdown immediate;

SQL> startup;                                — uses spfile instead

Now future installs using dbca, dbua and netca should recognize your defined/modified/corrected ORACLE_BASE.