Monday, November 19, 2018

Oracle E-Business Suite 10-Year Rolling Support and Continuous Innovation

Oracle has been a trusted business partner for over 40 years. They help enable customers to confidently maximize and expand their existing Oracle Application investments, with ample time for future planning, based on Oracle’s commitment to support its existing applications via a stable and predictable long-term support policy, designed to meet the needs of our customers.
Oracle announced a “Continuous Innovation” release model for Oracle E-Business Suite 12.2, delivering ongoing applications and underlying technology stack updates without a major upgrade. At the same time, we are announcing Premier Support for Oracle E-Business Suite 12.2 through at least 2030.

This means that Oracle E-Business Suite customers already running on 12.2 can continue to access new applications functionality and separately uptake later versions of underlying technology for years to come, without the time and expense of a major release upgrade.
Oracle E-Business Suite customers historically have adopted new versions of the technology stack together with a new applications code level via a major release upgrade. This involved using Oracle’s Rapid Install tool to deliver new versions of Oracle Fusion Middleware platform technologies, a new applications code level, and upgrade scripts to move the schema, PL/SQL, and data in place to the new Oracle E-Business Suite release level.
It has been Oracle’s plan to move to a Continuous Innovation release model that separates technology stack updates from applications code updates, allowing E-Business Suite customers to consume later technology while retaining their current applications code level. We previously announced that we would start Continuous Innovation with the next major 12.X release, after the existing 12.2 release. We have since determined that we can implement Continuous Innovation on the existing 12.2 release, removing the need for a new 12.X release.

Applications Unlimited is Oracle's commitment to continuous innovation while also providing a commitment to offer Oracle Premier Support through at least 2030.

Oracle Applications Unlimited and Oracle Premier Support—Features and Benefits page

Monday, October 29, 2018

Steps to enable HA in ADF Application

Consider each point if you are planning to deploy your ADF application in a WebLogic clustered server.
1. Expand your View project, WEB-INF, and open the WebLogic.xml file. (Create a WebLogic.xml file if it does not exist). Add the following element inside <weblogic-web-app> in the WebLogic.xml file





2. Expand your View project, WEB-INF, and open the web.xml file. Set the parameter org.apache.myfaces.trinidad. CHECK_FILE_MODIFICATION to false







3. Open your Model project, Open the Application Module, Select the Configurations tab, Click on the link bc4j.xcfg (ADF Business Component Configuration file). Click on the source tab. Add jbo.dofailover=”true” to <AppModuleConfig> element


<AppModuleConfig ...

 <AM-Pooling jbo.dofailover="true"/>



4. Click on the Overview tab of the bc4j.xcfg file. Edit each Application module configuration and make sure to toggle on ENABLE APPLICATION MODULE POOLING as shown below

5. Expand the Application Resources, Descriptors, ADF-META-INF, open adf-config.xml file and click on the Source Tab. Add the following element.
<adf-controller-config xmlns="">


ADF_FACES-60098:Faces lifecycle receives unhandled exceptions in phase RENDER_RESPONSE 6
ADF I have faced below errors when run the application
ADF ADF_FACES-60098:Faces lifecycle receives unhandled exceptions in phase RENDER_RESPONSE 6
<Oct 29, 2018 11:20:25,928 AM GST> <Warning> <oracle.adfinternal.view.faces.context.RichExceptionHandler> <BEA-000000> <ADF_FACES-60098:Faces lifecycle receives unhandled exceptions in phase RENDER_RESPONSE 6
javax.faces.FacesException: Broken pipe
        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._renderResponse(
        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executeRenderResponse(
        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(
        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(
        at javax.faces.webapp.FacesServlet.service(
        Truncated. see log file for complete stacktrace
Caused By: Broken pipe
        at Method)
        Truncated. see log file for complete stacktrace
When add libraries make sure to check the 'Deployed by Default' option. Otherwise it will not be available in server application deployment folder to refer run time.

Wednesday, September 12, 2018

Oracle EBS R12 Component Versions

There are various components in Oracle Applications setup. Below commands can be used to find the exact version of the components.

SQL> select release_name from apps.fnd_product_groups;

Oracle Database 12c Enterprise Edition Release - 64bit Production         0
PL/SQL Release - Production         0
CORE      Production         0
TNS for Linux: Version - Production         0
NLSRTL Version - Production         0

Solaris -> cat /etc/release
Red Hat Linux -> cat /etc/redhat-release
Oracle Linux -> cat /etc/oracle-release

Oracle Linux Server release 7.2

Log in as Application user, set environment variable and run below query,

Apache version
#$IAS_ORACLE_HOME/ohs/bin/httpd -v

#frmcmp_batch | grep Version | grep Forms
Forms 10.1 (Form Compiler) Version (Production)

#$ORACLE_HOME/bin/rwrun | grep Release
Report Builder: Release - Production on Tue Sep 11 11:02:13 2018

#adident Header <file_name>
#strings -a select * from v$version;

$IAS_ORACLE_HOME/perl/bin/perl -v | grep built
This is perl, v5.10.0 built for x86_64-linux-thread-multi

#sh -c "`awk -F= '$1 ~ /^JSERVJAVA.*$/ {print$2}' $ADMIN_SCRIPTS_HOME/` -version;"
#java -version

java version "1.7.0_85"
Java(TM) SE Runtime Environment (build 1.7.0_85-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.85-b06, mixed mode)

#cat $FORMS_WEB_CONFIG_FILE|grep sun_plugin_version| cut -c 1-35

#$ORACLE_HOME/bin/frmcmp_batch|grep Forms| grep Version
Forms 10.1 (Form Compiler) Version (Production)

#$ORACLE_HOME/bin/frmcmp_batch | grep PL/SQL|grep Version
PL/SQL Version (Production)

FORMS COMMUNICATION MODE (If the serverURL parameter has no value then Forms is implemented in socket mode else servlet mode)
#cat $FORMS_WEB_CONFIG_FILE|grep serverURL=

cd $FMW_HOME/wlserver_10.3/server/lib
#java -cp weblogic.jar weblogic.version

WebLogic Server  Tue Nov 15 08:52:36 PST 2011 1441050
Use 'weblogic.version -verbose' to get subsystem information
Use 'weblogic.utils.Versions' to get version information for all modules

#more $EBS_DOMAIN_HOME/servers/AdminServer/logs/AdminServer.log | grep 10.3.6
WebLogic Server PSU Patch for BUG23094342 MON MAY 23 12:34:42 IST 2016
WebLogic Server  Tue Nov 15 08:52:36 PST 2011 1441050 >
WebLogic Server PSU Patch for BUG23094342 MON MAY 23 12:34:42 IST 2016
WebLogic Server  Tue Nov 15 08:52:36 PST 2011 1441050  Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.

For any queries you can email me on

Monday, August 6, 2018

EBS Adding a node in Shared File System

The Oracle E-Business Suite Release 12.2 architecture is a framework for multi-tiered, distributed computing. In a shared file system, all application tier files including the INSTANCE_TOP are installed on a shared disk resource, which is mounted on each application tier node. Any application tier node can be configured to perform any of the standard application tier services, such as Forms, Web and Concurrent Processing (Batch) services. All changes made to the shared file system are immediately accessible to all application tier nodes.
•All application tier nodes in a shared file system must be running the same operating system.
•Shared Application Tier File System can not be a read-only-file system unlike in the previous releases.
•User ID and Group ID should be consistent across all nodes to avoid file access permission issues.
•The same absolute path must be retained for the shared file system mount points on each node.
•The value for the context variable "s_atName" must be same across all the application tier node context files.
General Three Tier Architecture
Application/Database Tier Components
Release 12.2 Dual File System Setup on a Single Tier
Shared Application Tier File System Layout
Step by Step Configuration
1. Start weblogic admin server and then Run pre-clone on application tier node 1 on both RUN (fs2) and PATCH (fs1) file systems.

On the RUN file system:
[applmgr@ed-olapplin1 ~]$ ./t1/tst/fs2/EBSapps/appl/APPStst_ed-olapplin1.env
[applmgr@ed-olapplin1 ~]$ cd $ADMIN_SCRIPTS_HOME
[applmgr@ed-olapplin1 scripts]$ start 
[applmgr@ed-olapplin1 scripts]$ status
[applmgr@ed-olapplin1 scripts]$ appsTier
On the PATCH file system:
[applmgr@ed-olapplin1 ~]$ . /t1/tst/fs1/EBSapps/appl/APPStst_ed-olapplin1.env
[applmgr@ed-olapplin1 ~]$ cd $ADMIN_SCRIPTS_HOME
[applmgr@ed-olapplin1 scripts]$ status
[applmgr@ed-olapplin1 scripts]$ start forcepatchfs
[applmgr@ed-olapplin1 scripts]$ appsTier
2. Check below context file parameters settings on both RUN & PATCH files systems.
<shared_file_system oa_var="s_shared_file_system">true</shared_file_system>
<APPL_TOP_NAME oa_var="s_atName">ed-olapplin1</APPL_TOP_NAME>

3. On the new node (ed-olapplin2) that is to be added do the below steps. The node to be added now will be known as the secondary application tier node. This node can be configured to run all services except for the Oracle WebLogic Administration Server.
[applmgr@ed-olapplin2 ~]$  more /etc/oraInst.loc
[applmgr@ed-olapplin2 ~]$ export PATH=/t1/tst/fs2/FMW_Home/webtier/perl/bin:$PATH
4. It is recommended to keep the Instance Top (INST_TOP=/t1/tst/fs2/inst/apps/tst_edolapplin1 AND /t1/tst/fs2/inst/apps/tst_ed-olapplin2) on the shared file system for Ease of maintenance and The number of application tier processes writing to this location is limited when compared with the previous releases.
5. Ensure the WebLogic Administration Server is running from both run and Patch file system on the primary application tier node [on ED-OLAPPLIN1] if not run it as shown in Step 1 above.
[applmgr@ed-olapplin2 ~]$ export PATH=/t1/tst/fs2/FMW_Home/webtier/perl/bin:$PATH
6. A sample pairsfile for the run/patch file system is instantiated into the instance home on the primary application tier node. The file is called <SID>_<primary_node_name>_.txt, and located in the <inst_top>/appl/admin/ directory. For a configuration with an instance name of VIS, the pairsfile will be /u01/12.2/fs1/inst/apps/VIS_appstier1/appl/admin/VIS_appstier1.txt.
# cd $INST_TOP/appl/admin
# pwd
# mkdir –p /t1/tst/pairsfile
# cp /t1/tst/fs2/inst/apps/tst_ed-olapplin1/appl/admin/tst_ed-olapplin1.txt /t1/tst/pairsfile/mypairsfile.txt
7. Execute adclonectx utility to configure both run and Patch file system. Note that since we have to execute the script from the new node [ED-OLAPPLIN2] that will be added that is why we are copying the mypairsfile.txt and tst_ed-olapplin1.xml file on common shared location.
[applmgr@ed-olapplin2 ~]$ export PATH=/t1/tst/fs2/FMW_Home/webtier/perl/bin:$PATH
[applmgr@ed-olapplin2 bin]$ cd /t1/tst/fs2/EBSapps/comn/clone/bin
[applmgr@ed-olapplin2 bin]$ perl addnode contextfile=/t1/tst/fs2/inst/apps/tst_ed-olapplin1/appl/admin/tst_ed-olapplin1.xml pairsfile=/t1/tst/pairsfile/mypairsfile.txt outfile=/t1/tst/pairsfile /mypairsOUTPUT.txt dualfs=yes
Below is the mypairsfile.txt file content,
# $Header: pairs_file_dualfsclone_ux_txt.tmp 120.0.12020000.2 2015/07/29 19:36:02 jmajumde noship $
# Copyright (c) 2005, 2015  Oracle and/or its affiliates.
# All rights reserved.
# Version 12.0.0
# This is a sample pairs file generated by the autoconfig tool based on the
# context values set on the primary application tier node.
# This pairs file can be modified and used when adding additional
# application tier nodes. Some of the parameters set in this pairs file
# assume that you are using a shared file system.
s_options_symlinks=Options -FollowSymLinks
[Web Entry Point Configuration]
[Instance Specific]
# Please provide values for the context variables listed below. On the source
# instance they are instantiated as shown in the comment section below.
# These values should only be used as reference to fill out the instance
# values for the new node.
# Please provide values for the context variables listed below .
# Enter "enabled" without the quotes to enable the service on the new node .
# Enter "disabled" without the quotes to disable the service on the new node .
# The Root service include the Node Manager .
# The Web Application Services include the Node Manager, Admin Server,
# Managed Servers ( oacore, forms, oafm, formsc4-ws).
# To enable the configuration of Node Manager and the Managed Servers,
# set s_web_applications_status to enabled
# The Web Entry Services include the OPMN and Oracle HTTP Server .
# To enable the configuration of OPMN,OHS , set s_webentry_status and s_apcstatus to enabled.
# The Batch Processing Services include the FNDFS Listener, Concurrent Mgr, ICSM# and JTF FullFillment Server
# To enable the configuration of Concurrent Manager# set s_batch_status to enabled.
# The Other Services group include the Forms Metric Server, Forms Metric Clients# Forms Server for the socket mode configuration and Mobile Web Application
# Server (MWA).
# s_adminserverstatus is set to disabled since this service can only be enabled
# on the primary application tier.
# The services enabled on the primary application tier node are as shown
# below in the comment section.
[Services Enabled on the Primary Application Tier Node]
[Services To be Enabled on the Secondary Application Tier Node]
# Additional variables can be added below as per your requirement.

8. This command needs to be run only 1 time on 2nd node without setting any environment.
Verify using the below SQL Script,
SQL> select * from APPS.FND_OAM_CONTEXT_FILES where name not in( 'METADATA','TEMPLATE') order by creation_date desc;If there is ERROR WHILE ADDING A NODE DUE TO any reason then use below command to DELETE THE NODE AND THEN ADD IT AGAIN.  Run this from node1,
[applmgr@ed-olapplin1 bin]$ cd /t1/tst/fs2/EBSapps/appl/ad/12.0.0/patch/115/bin/
[applmgr@ed-olapplin1 bin]$ perl ebs-delete-node -contextfile=/t1/tst/fs2/inst/apps/tst_ed-olapplin1/appl/admin/tst_ed-olapplin1.xml -hostname=ed-olapplin2 -logfile=ebs-delete-node2_I.logAlso delete the inst directory that was created while we added the node for first time /t1/tst/fs2/inst/apps/tst_ed-olapplin2
Now Register the new topology from the newly added application tier node. Get port from Below file and change accordingly to below perl scripts.
[applmgr@ed-olapplin2]$ vi /t1/tst/fs2/FMW_Home/webtier/instances/EBS_web_tst_OHS2/config/OHS/EBS_web_tst/mod_wl_ohs.conf
[applmgr@ed-olapplin2]$. /t1/tst/fs2/EBSapps/appl/APPStst_ed-olapplin2.env
cd /t1/tst/fs2/EBSapps/comn/clone/bin
perl addnode contextfile=/t1/tst/fs2/inst/apps/tst_ed-olapplin1/appl/admin/tst_ed-olapplin1.xml pairsfile=/t1/tst/pairsfiles/mypairsfile.txt outfile=/t1/tst/pairsfile/mypairsOUTPUT.txt dualfs=yes
[applmgr@ed-olapplin2 EBS_web_tst]$ . /t1/tst/fs2/EBSapps/appl/APPStst_ed-olapplin2.env
perl /t1/tst/fs2/EBSapps/appl/fnd/12.0.0/patch/115/bin/ -contextfile=/t1/tst/fs2/inst/apps/tst_ed-olapplin2/appl/admin/tst_ed-olapplin2.xml -configoption=removeMS,,,
perl /t1/tst/fs2/EBSapps/appl/fnd/12.0.0/patch/115/bin/ -contextfile=/t1/tst/fs2/inst/apps/tst_ed-olapplin2/appl/admin/tst_ed-olapplin2.xml -configoption=addMS,,,
more /t1/tst/fs2/FMW_Home/webtier/instances/EBS_web_tst_OHS2/config/OHS/EBS_web_tst/mod_wl_ohs.conf
perl $AD_TOP/patch/115/bin/ ebs-create-managedserver -contextfile=/t1/tst/fs2/inst/apps/tst_ed-olapplin2/appl/admin/tst_ed-olapplin2.xml -managedsrvname=oacore_server2 -servicetype=oacore -managedsrvport=7205 -logfile=/tmp/oacore2log.log
perl $AD_TOP/patch/115/bin/ ebs-create-managedserver -contextfile=/t1/tst/fs2/inst/apps/tst_ed-olapplin2/appl/admin/tst_ed-olapplin2.xml -managedsrvname=oacore_server5 -servicetype=oacore -managedsrvport=7209 -logfile=/tmp/oacore5log.log
perl $AD_TOP/patch/115/bin/ ebs-create-managedserver -contextfile=/t1/tst/fs2/inst/apps/tst_ed-olapplin2/appl/admin/tst_ed-olapplin2.xml -managedsrvname=oacore_server7 -servicetype=oacore -managedsrvport=7207 -logfile=/tmp/oacore7log.log
perl $AD_TOP/patch/115/bin/ ebs-create-managedserver -contextfile=/t1/tst/fs2/inst/apps/tst_ed-olapplin2/appl/admin/tst_ed-olapplin2.xml -managedsrvname=oacore_server9 -servicetype=oacore -managedsrvport=7202 -logfile=/tmp/oacore9log.log
for oacore_server9>>>ERROR: There is already a managed server with the name oacore_server9>>>>>>ignore this and continue below.
>>>now run autoconfig on node2 (ed-olapplin2)
>>>now without stopping node1 servies execute autoconfig on node 1 (ed-olapplin1)
>>>>start all services on NODE 2 (ed-olapplin2)
[applmgr@ed-olapplin2 ~]$ more $CONTEXT_FILE | grep oacore_server
         <oacore_server_ports oa_var="s_oacore_server_ports">oacore_server9:7202,oacore_server2:7205,oacore_server5:7209,oacore_server7:7207</oacore_server_ports>
            <oa_service_name oa_var="s_oacorename" type="managed_server">oacore_server9,oacore_server2,oacore_server5,oacore_server7</oa_service_name>
            <oa_managed_server_name oa_var="s_oacore_managed_servers">oacore_server9,oacore_server2,oacore_server5,oacore_server7</oa_managed_server_name>
>>>Below Additional command only to delete a managed server
perl $AD_TOP/patch/115/bin/ ebs-delete-managedserver -contextfile=/t1/tst/fs2/inst/apps/tst_ed-olapplin2/appl/admin/tst_ed-olapplin2.xml -managedsrvname=oacore_server2 -servicetype=oacore -logfile=/tmp/oacore_server1_remove.log

9. On all Application tier nodes, perform the following steps to register the newly added Application tier node with the Application tier TNS Listener (FNDFS listener) on each node:
On ed-olapplin2:
[applmgr@ed-olapplin2 ~]$ kill -9 -1
[applmgr@ed-olapplin2 ~]$ cd $ADMIN_SCRIPTS_HOME
[applmgr@ed-olapplin2 scripts]$
[applmgr@ed-olapplin2 scripts]$ echo $TWO_TASK
[applmgr@ed-olapplin2 scripts]$ sh start
[applmgr@ed-olapplin2 admin]$ lsnrctl reload APPS_tst
[applmgr@ed-olapplin2 scripts]$ sh stop
On ed-olapplin1:
[applmgr@ed-olapplin1 tstuat]$ cd $ADMIN_SCRIPTS_HOME
[applmgr@ed-olapplin1 scripts]$
[applmgr@ed-olapplin1 scripts]$ echo $TWO_TASK
[applmgr@ed-olapplin1 scripts]$ sh start
[applmgr@ed-olapplin1 admin]$ lsnrctl reload APPS_tst
[applmgr@ed-olapplin1 scripts]$ sh stop
10.If the Node Manager service is up on the Patch Edition File System of the newly added Application tier node, shut it down as follows:
[applmgr@ed-olapplin2 ~]$ . /t1/tst/fs1/EBSapps/appl/APPStst_ed-olapplin2.env
[applmgr@ed-olapplin2 ~]$ stop
11. Shut down the Admin Server and the Node Manager on the Patch Edition File System of the primary node as follows:
[applmgr@ed-olapplin1 ~]$ . /t1/tst/fs1/EBSapps/appl/APPStst_ed-olapplin1.env
[applmgr@ed-olapplin1 ~]$ echo $FILE_EDITION
[applmgr@ed-olapplin1 ~]$ stop forcepatchfs
[applmgr@ed-olapplin1 ~]$ stop
[applmgr@ed-olapplin1 scripts]$ ps -ef | grep wlsport verify wls for patchfs is down.
12.Perform the following steps on all Database tier nodes to add the newly added node to the Access Control List
on Database server ed-olraclin-db:
[oracle@ed-olraclin-db~]$ cd /u01/oracle/
[oracle@ed-olraclin-dbtsthome1]$ . ed-olraclin-db.env
[oracle@ed-olraclin-dbtsthome1]$ cd appsutil/scripts/ed-olraclin-db/
[oracle@ed-olraclin-dbtst2_ed-olraclin-db]$ lsnrctl reload tst
13. Now Load balancer configuration for both URLs from two nodes
14. Now SSH Connectivity Requirements for Online Patching (Required)
# su - applmgr
# . /t1/tst/EBSapps.env RUN
On node 1 & node 2 both execute the below script respectively,
On ed-olapplin1# perl $AD_TOP/patch/115/bin/ enablessh -contextfile=/t1/tst/fs2/inst/apps/tst_ed-olapplin1/appl/admin/tst_ed-olapplin1.xml -hosts=ed-olapplin1,ed-olapplin2
On ed-olapplin2# perl $AD_TOP/patch/115/bin/ enablessh -contextfile=/t1/tst/fs2/inst/apps/tst_ed-olapplin2/appl/admin/tst_ed-olapplin2.xml -hosts=ed-olapplin2,ed-olapplin1
Reference: Sharing the application tier file system in oracle EBS release 12.2. 1375769.1
For any questions on this article please email me on, and do subscribe to this blog as well.

Tuesday, July 17, 2018

Big Data Eco System and Landscape 2018

Big Data is the new “black gold” or “oil”.  However, at least in my conversations with people in the industry, there’s an increasing sense of having reached some kind of plateau.

Big data is a term often used to describe data sets whose size is beyond the capability of commonly used software tools to capture, manage and process.

Big data can be generated from many different sources including,
Social networks,
Banking and Financial services
E-commerce services
Web-centric services
Internet search indexes
Scientific and document searches
Medical records
Web logs

The sheer size of the data combined with complexity of analysis and commercial imperative to create value from it, has led to a new class of technologies and tools to exploit it.

The term big data tends to be used in multiple ways, often referring to both;
-The type of data being managed.
-The technology used to store and process it.

Mostly, these technologies originated from companies such as Google, Amazon, Facebook and Linked-In, where they were developed for each company's own use to analyze the massive amounts of social media data being produced. Due to the nature of these companies, the emphasis was on low cost scale-out commodity hardware and open source software.
As the Big Data landscape gets busier every year, one obvious question comes to mind:  is the industry on the verge of a massive wave of consolidation? It doesn’t appear so, at least for now.

Big Data + AI = The New Stack
Below is the complete Big Data Landscape 2018 and the Eco System with their description.

For any further queries about the big data eco system and components mentioned in the landscape, please email me on and I will be happy to guide you.

Please subscribe to this blog to get latest updates on big data technologies.

Wednesday, June 20, 2018

EBS R12.2 Adding managed server

By default there is single Web Application Services in EBS 12.2
If you want to increase number of server either oacore, oafm, forms or forms-c4ws then follow below steps. In below example we are adding one more oacore server.

Step 1: Take backup of $CONTEXT_FILE from both edition

Step 2: Run script on RUN edition:
[applmgr@ebs122 ~]$ perl $AD_TOP/patch/115/bin/ ebs-create-managedserver
-managedsrvname=oacore_server2 -servicetype=oacore -managedsrvport=7203 -logfile=/tmp/oacore2.log

Step 3: Run autoconfig on run edition
[applmgr@ebs122 ~]$
Enter the APPS user password:
AutoConfig completed successfully.

Step 4: [applmgr@ebs122 ~]$ perl $FND_TOP/patch/115/bin/ -ctxfile=$CONTEXT_FILE -outfile=/tmp/txkSetAppsConf.log
mod_wl_ohs.conf generated successfully
apps.conf generated successfully

Step 5: Stop/start http services on run edition
[applmgr@ebs122 ~]$ cd $ADMIN_SCRIPTS_HOME
[applmgr@ebs122 scripts]$ stop
[applmgr@ebs122 scripts]$ start

Now add oacore server info into PATCH edition:

Step 6: Set patch edition env
[applmgr@ebs122 ~]$ echo $FILE_EDITION

Step 7:
Start up the WebLogic Administration Server of the PATCH file system by executing the below command on the PATCH file system
[applmgr@ebs122 scripts]$ start forcepatchfs                  

Step 8: From Patch Addition execute below script with service name and port number
[applmgr@ebs122 scripts]$ perl $AD_TOP/patch/115/bin/ ebs-create-managedserver
-contextfile=$CONTEXT_FILE -managedsrvname=oacore_server2 -servicetype=oacore -managedsrvport=7204 -logfile=\tmp\oacore2_2.log

Step 9:
[applmgr@ebs122 scripts]$ perl $AD_TOP/bin/

Step 10:
Instantiate the fsclone_config.txt file on the PATCH file system of all Application tier nodes by running the following command after sourcing the RUN file system:

#java -e <PATCH_CONTEXT_FILE> -tmpl 
<PATCH_AD_TOP>/admin/template/fsclone_config_txt.tmp -out 

[applmgr@ebs122 scripts]$ java -e /apps01/applmgr/TEST/fs1/inst/apps/TEST_ebs122/appl/admin/TEST_ebs122.xml -tmpl  /apps01/applmgr/TEST/fs1/EBSapps/appl/ad/12.0.0/admin/template/fsclone_config_txt.tmp -out  /apps01/applmgr/TEST/fs1/inst/apps/TEST_ebs122/appl/admin/fsclone_config.txt
Enter the APPS password : APPS

Step 11:
Execute below script from RUN file system
On the node containing the Oracle HTTP Server, execute the following script from the RUN file system, passing the context file from the PATCH file system. This will update the Oracle HTTP Server configuration files on the PATCH file system with the new managed server port number.
[applmgr@ebs122 scripts]$ perl $FND_TOP/patch/115/bin/ -ctxfile=/apps01/applmgr/TEST/fs1/inst/apps/TEST_ebs122/appl/admin/TEST_ebs122.xml
> -outfile=/tmp/oacore2_3.log
mod_wl_ohs.conf generated successfully
apps.conf generated successfully

Step 12: Stop weblogic services from PATCH file system:
[applmgr@ebs122 scripts]$ stop

Step 13: Start newly added managed server from run edition: start oacore_server2

Step 14: Check the status of server weblogic console

For any queries you can contact me on

Tuesday, May 29, 2018

ORA-04068 Errors from Oracle Packages

The following queries can useful when investigating ORA-4068 errors that will not clear.

To check the timestamp associated with a particular package / procedure / function run the below query:
alter session set nls_date_format='DD-MM-YYYY HH24:MI:SS';

Column OBJECT_NAME format a15
Column OBJECT_TYPE format a15
Column OWNER format a15
Column STATUS format a8
SELECT object_name, object_type, owner, status, last_ddl_time FROM
 dba_objects WHERE object_name = '&OBJECT';

 To check the timestamp for dependant packages:
SELECT object_name, object_type, owner, status, last_ddl_time FROM
dba_objects WHERE ( object_name, object_type ) IN ( SELECT
referenced_name, referenced_type FROM dba_dependencies WHERE name =
'&OBJECT' );

For situations where you suspect a dependency check could be faulty:

alter session set nls_date_format='dd-mon-yy hh24:mi:ss';
SELECT duname, dname, puname, pname, p_timestamp, po.stime p_stime
 FROM sys.obj$ do, sys.dependency$ d, sys.obj$ po,sys.user$ du,sys.user$ pu
 WHERE p_obj#=po.obj#(+)
 AND d_obj#=do.obj#
 AND do.owner# = du.user#
 AND po.owner# = pu.user#
 AND do.status=1 /*dependent is valid*/
 AND po.status=1 /*parent is valid*/
 AND po.stime!=p_timestamp /*parent timestamp does not match*/
 AND do.type# not in (13,28,29,30) /*dependent type is not a type or java*/
 AND po.type# not in (13,28,29,30) /*parent type is not a type or java*/
 ORDER BY 4,2;

The above query  should not return any rows. If it does then both items referred to should be recompiled.

 - using  ALTER PACKAGE <package_name> COMPILE;

To check for details of why a package will not recompile, check to see if there were any errors reported in the last compilation:

SELECT name, type, text FROM dba_errors WHERE name = '&OBJECT';

ORA-04068 Errors from User-Written and Oracle Packages (Doc ID 1161225.1)
ORA-4068 Errors for Valid Objects (Doc ID 835792.1)

Monday, April 30, 2018

adop phase=apply hotpatch=yes

An EBS 12.2.X patch is normally applied using an ADOP online patching cycle, which is the only case tested internally before 12.2 patches are released (unless documented otherwise).

We can  use Hotpatch mode only for certain patches, such as NLS and Online Help, or when it is specifically documented in the patch readme. The safe use of hotpatch mode is restricted to cases where we know in advance that the patch will not modify any existing schema or code object used by the running applications instance. If you attempt to apply an unsafe patch using hotpatch mode, the patch may fail or users may experience application failure.

In EBS release 12.2, certain kinds of patches are even less stable for use with “hotpatch” than they were in EBS 12.1. when an unsafe patch is applied via hotpatch the system will go through intermittent states of:
•invalid objects, missing code dependencies
•mismatches between code level of file system and database
•missing column data, or other data integrity problems
•out-of-date indexes and materialized view definitions
•invalid data in runtime caches

Important FAQ about HOTPATCH mode in adop
1)When you apply the patch using hotpatch in adop,  adop will still shows phase APPLY status ACTIVE after having applied successfully a patch using
 #adop phase=apply hotpatch=yes patches=123456

There were no errors in the adop patch logs. But adop status still shows:
Node Name   Node Type   Phase   Status   Started   Finished
ed-olapplin1 master PREPARE NOT APPLICABLE
APPLY ACTIVE 01-APR-18 09:18:18 +04:00 <<<< APPLY phase is still ACTIVE

One cannot run adop phase=cutover or adop phase=cleanup because there are no Online Patching cycle that was started. The patch was applied in hotpatch=yes mode on the RUN filesystem

a) When the patch is applied with adop hotpatch=yes mode, there are no Online Patching cycle started yet — all is on the RUN filesystem — so there are no adop commands that can be used like adop phase=cutover or adop phase=cleanup.
b) When one applies in hotpatch mode the APPLY phase will remain active until such time as run a PREPARE during the next patching cycle.
c) The APPLY phase is active because you can potentially run another hotpatch. Once one apples a hotpatch, there are no further actions required.

2)  How hotpatch on run filesystem are propagated to patch file system on next prepare phase?
Run the prepare command when we want to start the new online patch cycle
#adop phase=prepare

At that time, adop config change detector will find that the RUN filesystem has had patches applied in hotpatch mode and will sync the PATCH filesystem as part of the prepare phase.

3) Do we have abort phase in Hotpatch mode?
The “adop phase=abort” command is only applicable to an online patching cycle, which you would have started by running adop phase=prepare. A hotpatch CANNOT be aborted with the adop phase=abort command.

If a hotpatch session fails for an approved patch (NLS, Online Help, or documented in the patch readme) you should:
a. Investigate the error and try to complete the hotpatch session by re-applying the hotpatch with restart=yes
b. Apply a replacement patch with abandon=yes.
It should be possible to just abandon the hotpatch session, and then start a new ADOP online patching cycle (Make sure you are on AD/TXK Delta 6 or higher).

For any queries regarding ADOP utility email me on

Monday, March 12, 2018

Setup Oracle Business Intelligence OBIEE 12c Step by Step

Following are the steps to do the Oracle Business Intelligence 12c Setup.
1. Install JDK 1.8
2. Setup Weblogic 12c
3. Oracle Business Intelligence setup
4. RCU to create BI related schemas in database
5. Configure Oracle BI Domain
6. Oracle BI Developer Client tool to create BI repository files (.rpd)
7. Upload the RPD BI Repository file to BI Server
8. Run Analysis through analytics web console

All required software to do this setup are available in below link,

Step 1: Install JDK 1.8
[obieeuser@ed-olbiapplin1 ~]$ which java
[obieeuser@ed-olbiapplin1 ~]$ java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)

2. Setup Weblogic 12c

3. Oracle Business Intelligence Setup
4. RCU to create BI related schemas in database
Selecting ‘Oracle Business Intelligence’ will select all the other options check boxes automatically.

5. Configure Oracle BI Domain

6. Oracle BI Developer Client tool to create BI repository files (.rpd)

Start Oracle BI Administrator Tool by running below file,
We can now open any repository .rpd file and it will display all the three layers of the administrator tool as follows,
Physical Layer, Model and Mapping Layer (MML) and Presentation layer
7. Upload the BI Repository file (.rpd) to BI Server
8. Run Analysis through analytics web console
You will now be able to access the below analytics tool to create Analysis and Dashboards based on the repository .rpd file that we uploaded in step 7.

9. Creating a Repository Using the Oracle Business Intelligence Administration Tool:
Below link on Oracle site is a step by step tutorial covering using the Oracle Business Intelligence (BI) Administration Tool to build, modify, enhance, and manage an Oracle BI repository.

The figure shows how a logical SQL query traverses the layers of an Oracle BI Repository.
For any further queries on topics related to this article please email me on