Tuesday, December 25, 2018

Convert physical standby to snapshot standby database

Snapshot standby:

Snapshot standby is a feature in Oracle 11g that allows doing a read-write operation on the standby database.  i. e we can convert the physical standby database to snapshot standby. On that, we can do all types of testing or can be used as a development database (which is an exact replication of production ). Once the testing is over we can again convert the snapshot database to physical standby. Once it is converted physical standby database, whatever changes were done to the snapshot standby will be reverted.
A snapshot standby database is a fully update-able standby database that is created by converting a physical standby database into a snapshot standby database.

A snapshot Standby is open in the read-write mode and hence it is possible to process transactions independently of the primary database. At the same time, it maintains protection by continuing to receive data from the production database, archiving it for later use.
Using a single command change made while the database is in read-write mode can throw away the changes made to the standby database only and re-synchronize the standby database with the production database.
1. Snapshot standby database receives and archives, but does not apply the redo data.

2. Redo data received from the primary database is applied automatically once it is converted back into a physical standby database.

3. Snapshot standby database cannot be the target of a switchover or failover. A snapshot standby database must first be converted back into a physical standby database before performing a role transition to it.


DEMONSTRATION:
Steps to convert Physical Standby Database to the Snapshot Standby Database


I have 2 node primary cluster database and 2 node standby cluster database with the ASM. It is running on 11gR2
Note: In the snapshot standby database, there is no step to be performed in the primary database. all the steps are performed only in the physical standby database

STATUS OF THE STANDBY DATABASE
SQL> select name,open_mode from gv$database;
NAME      OPEN_MODE
mydb1       MOUNTED
mydb2       MOUNTED

CHECKING RECOVERY AREA AND ALLOCATE SIZE
SQL> show parameter db_recovery_file_dest
NAME                                 TYPE        VALUE
db_recovery_file_dest                string      +EXA_RECO
db_recovery_file_dest_size           big integer 4G

CHECKING WHETHER FLASHBACK IS ENABLED OR NOT. TO OPEN A STANDBY DATABASE IN THE READ/WRITE MODE, WE NEED TO HAVE THE FLASHBACK WITH ENOUGH SIZE.

SQL> select flashback_on from gV$database;
FLASHBACK_ON
YES
YES
CHECKING THE STATUS OF RECOVERY PROCESS, IF IT IS ENABLED THEN WE HAVE TO STOP THE RECOVERY.

SQL> select PROCESS,CLIENT_PROCESS,THREAD#,SEQUENCE#,BLOCK# from v$managed_standby where process = 'MRP0' or client_process='LGWR';
PROCESS   CLIENT_P    THREAD#  SEQUENCE#     BLOCK#
RFS       LGWR              2         74       6080
MRP0      N/A               2         74       6078
RFS       LGWR              1         78       7145

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
Database altered.

AFTER CANCELING THE RECOVERY PROCESS, CHECK THE STATUS
SQL> select PROCESS,CLIENT_PROCESS,THREAD#,SEQUENCE#,BLOCK# from v$managed_standby where process = 'MRP0' or           client_process='LGWR';
PROCESS   CLIENT_P    THREAD#  SEQUENCE#     BLOCK#
RFS       LGWR              2         74       6150
RFS       LGWR              1         78       7216
CONVERTING THE STANDBY DATABASE AS A SNAPSHOT STANDBY DATABASE
SQL> ALTER DATABASE CONVERT TO SNAPSHOT STANDBY;
Database altered.

CHECKING THE STATUS OF THE DATABASE
SQL> select open_mode,database_role from gv$database;
OPEN_MODE            DATABASE_ROLE
MOUNTED              SNAPSHOT STANDBY
MOUNTED              SNAPSHOT STANDBY

$ srvctl stop database -d mydb
$ srvctl start database -d mydb -o open

CHECKING THE STATUS OF THE DATABASE
SQL> select open_mode,database_role from gv$database;
OPEN_MODE            DATABASE_ROLE
READ WRITE           SNAPSHOT STANDBY
READ WRITE           SNAPSHOT STANDBY

CHECKING THE SYSTEM CREATED THE RESTORE POINT
SQL> select NAME,SCN,TIME from v$restore_point;
NAME              SCN                 TIME
SNAPSHOT_STANDBY_REQUIRED_12/25/2018 10:30:00         20539509
25-DEC-18 10.30.00.000000000 AM

Now CREATE SOME TABLES & PERFORMING SOME DML OPERATIONS IN THE SNAPSHOT DATABASE

SQL> create table bhuvan as select * from dba_objects;
Table created.

SQL> select count(1) from test;
COUNT(1)
100786

SQL> delete test where owner='SAMI MALIK';
100786 rows deleted.
SQL> commit;
Commit complete.

SQL> select count(1) from TEST;
COUNT(1)
100111


NOW WE ARE STOPPING & CONVERTING SNAPSHOT DATABASE IN TO PHYSICAL STANDBY DATABASE
$ srvctl stop database -d MYDB

# I am using single instance to perform the conversion from the snapshot standby database to the physical standby database

$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Mon Dec 25 10:40:11 2018
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
Connected to an idle instance.

SQL> startup mount
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
ORACLE instance started.
Total System Global Area 1.4431E+10 bytes
Fixed Size                  2240272 bytes
Variable Size            3892314352 bytes
Database Buffers         1.0503E+10 bytes
Redo Buffers               34148352 bytes
Database mounted.

SQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY;
Database altered.

Once we convert from the snapshot standby database to the physical standby database, database will go to the no mount stage.


SQL> select open_mode,database_role from v$database;
select open_mode,database_role from v$database
                 *
ERROR at line 1:
ORA-01507: database not mounted
NOW WE ARE STOPPING & STARTING THE DATABASE TO MOUNT STAGE AND CHECKING THE RECOVERY PROCESS

$ srvctl stop database -d mydb
$ srvctl start database -d mydb

CHECKING THE RESTORE POINT, SYSTEM WILL REMOVE IT AUTOMATICALLY ONCE WE ARE CONVERTED TO PHYSICAL STANDBY DATABASE
SQL> select NAME,SCN,TIME from v$restore_point;
no rows selected

CHECKING THE RECOVEY PROCESS
SQL> select PROCESS,CLIENT_PROCESS,THREAD#,SEQUENCE#,BLOCK# from v$managed_standby where process = 'MRP0' or client_process='LGWR';

PROCESS   CLIENT_P    THREAD#  SEQUENCE#     BLOCK#
--------- -------- ---------- ---------- ----------
RFS       LGWR              2         83       3495
RFS       LGWR              1         87       4407
MRP0      N/A               2         83       3495






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.


References:
Applications Unlimited is Oracle's commitment to continuous innovation while also providing a commitment to offer Oracle Premier Support through at least 2030.
http://www.oracle.com/us/products/applications/applications-unlimited-1970561.pdf


Oracle Applications Unlimited and Oracle Premier Support Oracle.com—Features and Benefits page
https://www.oracle.com/applications/applications-unlimited/features.html

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
weblogic.xml

<session-descriptor>

<persistent-store-type>replicated_if_clustered</persistent-store-type>

</session-descriptor>

 

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

web.xml

<context-param>

<param-name>org.apache.myfaces.trinidad.CHECK_FILE_MODIFICATION</param-name>

<param-value>false</param-value>

</context-param>

 

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

bc4j.xcfg

<AppModuleConfig ...

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

</AppModuleConfig>

 

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-config.xml
<adf-controller-config xmlns="http://xmlns.oracle.com/adf/controller/config">
<adf-scope-ha-support>true</adf-scope-ha-support>
</adf-controller-config>

Troubleshooting

ADF_FACES-60098:Faces lifecycle receives unhandled exceptions in phase RENDER_RESPONSE 6
ADF 11.1.2.4.0 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(LifecycleImpl.java:1273)
        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executeRenderResponse(LifecycleImpl.java:1107)
        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:348)
        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:258)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:651)
        Truncated. see log file for complete stacktrace
Caused By: java.io.IOException: Broken pipe
        at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
        at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
        at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
        at sun.nio.ch.IOUtil.write(IOUtil.java:65)
        at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471)
        Truncated. see log file for complete stacktrace
>
Solution:
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;
RELEASE_NAME
12.2.5



SQL> SELECT * FROM V$VERSION;
BANNER  CON_ID
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production         0
PL/SQL Release 12.1.0.2.0 - Production         0
CORE    12.1.0.2.0      Production         0
TNS for Linux: Version 12.1.0.2.0 - Production         0
NLSRTL Version 12.1.0.2.0 - Production         0



UNIX OPERATING SYSTEM VERSION
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


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


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


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


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


JAVA VERSION
#sh -c "`awk -F= '$1 ~ /^JSERVJAVA.*$/ {print$2}' $ADMIN_SCRIPTS_HOME/java.sh` -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)



CLIENT JRE VERSION
#cat $FORMS_WEB_CONFIG_FILE|grep sun_plugin_version| cut -c 1-35
sun_plugin_version=1.6.0_27


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


PL/SQL VERSION
#$ORACLE_HOME/bin/frmcmp_batch | grep PL/SQL|grep Version
PL/SQL Version 10.1.0.5.0 (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=
serverURL=/forms/lservlet


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

WebLogic Server 10.3.6.0  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 10.3.6.0.160719 PSU Patch for BUG23094342 MON MAY 23 12:34:42 IST 2016
WebLogic Server 10.3.6.0  Tue Nov 15 08:52:36 PST 2011 1441050 >
WebLogic Server 10.3.6.0.160719 PSU Patch for BUG23094342 MON MAY 23 12:34:42 IST 2016
WebLogic Server 10.3.6.0  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 samiappsdba@gmail.com

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.
Note:
•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]$ adadminsrvctl.sh start 
[applmgr@ed-olapplin1 scripts]$ adadminsrvctl.sh status
[applmgr@ed-olapplin1 scripts]$ adpreclone.pl 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]$ adadminsrvctl.sh status
[applmgr@ed-olapplin1 scripts]$ adadminsrvctl.sh start forcepatchfs
[applmgr@ed-olapplin1 scripts]$ adpreclone.pl 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
inventory_loc=/t1/tst/oraInventory
inst_group=oinstall
[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.
/t1/tst/fs2/inst/apps/tst_ed-olapplin1/appl/admin/tst_ed-olapplin1.txt
# cd $INST_TOP/appl/admin
# pwd
/t1/tst/fs2/inst/apps/tst_ed-olapplin1/appl/admin
# 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 adconectx.pl 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 adclonectx.pl 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.
[Base]
s_base=/t1/tst
s_current_base=/t1/tst/fs2
s_other_base=/t1/tst/fs1
s_ne_base=/t1/tst/fs_ne
[General]
s_applptmp=/usr/tmp
s_appsgroup=oinstall
s_appsuser=applmgr
s_dbuser=oracle
s_dbgroup=dba
s_dbdomain=samiora.blogspot.com
s_at=/t1/tst/fs2/EBSapps/appl
s_com=/t1/tst/fs2/EBSapps/comn
s_tools_oh=/t1/tst/fs2/EBSapps/10.1.2
s_weboh_oh=/t1/tst/fs2/FMW_Home/webtier
s_fmw_home=/t1/tst/fs2/FMW_Home
s_dbGlnam=tst
s_dbSid=tst
s_dbhost=edolraclin-dbsrv
s_clonestage=/t1/tst/fs2/EBSapps/comn/clone
s_dbport=1522
s_options_symlinks=Options -FollowSymLinks
s_proxyhost=
s_proxybypassdomain=samiora.blogspot.com
s_proxyport=
s_nonproxyhosts=
s_javamailer_imapdomainname=NoImapDomain
s_javamailer_imaphost=NoImapHost
s_javamailer_reply_to=NoReplyTo
s_javamailer_outbound_user=changeOnJavaMailerInstall
s_smtphost=ed-olapplin1
s_smtpdomainname=samiora.blogspot.com
s_file_edition_type=run
s_port_pool=1
patch_s_port_pool=2
s_admhost=ed-olapplin1
s_atName=ed-olapplin1
s_shared_file_system=true
[Web Entry Point Configuration]
s_webentryurlprotocol=http
s_webentryhost=ed-olapplin2
s_webentrydomain=samiora.blogspot.com
s_active_webport=8001
s_endUserMonitoringURL=http://ed-olapplin2.samiora.blogspot.com:8001/oracle_smp_chronos/oracle_smp_chronos_sdk.gif
s_external_url=http://ed-olapplin2.samiora.blogspot.com:8001
s_login_page=http://ed-olapplin2.samiora.blogspot.com:8001/OA_HTML/AppsLogin
[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.
#s_temp=/t1/tst/fs2/inst/apps/tst_ed-olapplin1/temp
#s_contextname=tst_ed-olapplin1
#s_hostname=ed-olapplin1
#s_domainname=samiora.blogspot.com
#s_cphost=ed-olapplin1
#s_webhost=ed-olapplin1
#s_config_home=/t1/tst/fs2/inst/apps/tst_ed-olapplin1
#s_inst_base=/t1/tst
#s_display=ed-olapplin1:0.0
#s_forms-c4ws_display=ed-olapplin1:0.0
#s_ohs_instance=EBS_web_erp_OHS1
#s_webport=8001
#s_http_listen_parameter=8001
#s_https_listen_parameter=4444
s_temp=/t1/tst/fs2/inst/apps/tst_ed-olapplin2/temp
s_contextname=tst_ed-olapplin2
s_hostname=ed-olapplin2
s_domainname=samiora.blogspot.com
s_cphost=ed-olapplin2
s_webhost=ed-olapplin2
s_config_home=/t1/tst/fs2/inst/apps/tst_ed-olapplin2
s_inst_base=/t1/tst
s_display=ed-olapplin2:0.0
s_forms-c4ws_display=ed-olapplin2:0.0
s_ohs_instance=EBS_web_erp_OHS2
s_webport=8031
s_http_listen_parameter=8001
s_https_listen_parameter=4444
[Services]
# 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]
#s_web_applications_status=enabled
#s_web_entry_status=enabled
#s_apcstatus=enabled
#s_root_status=enabled
#s_batch_status=enabled
#s_other_service_group_status=disabled
#s_adminserverstatus=enabled
#s_web_admin_status=enabled
[Services To be Enabled on the Secondary Application Tier Node]
s_web_applications_status=enabled
s_web_entry_status=enabled
s_apcstatus=enabled
s_root_status=enabled
s_batch_status=enabled
s_other_service_group_status=disabled
s_adminserverstatus=disabled
s_web_admin_status=enabled
# Additional variables can be added below as per your requirement.

8. This command adclonectx.pl 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 adProvisionEBS.pl 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 adclonectx.pl 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/txkSetAppsConf.pl -contextfile=/t1/tst/fs2/inst/apps/tst_ed-olapplin2/appl/admin/tst_ed-olapplin2.xml -configoption=removeMS -oacore=ed-olapplin2.samiora.blogspot.com:7202,ed-olapplin2.samiora.blogspot.com:7203,ed-olapplin2.samiora.blogspot.com:7204,ed-olapplin2.samiora.blogspot.com:7205 -oafm=ed-olapplin2.samiora.blogspot.com:7602 -forms=ed-olapplin2.samiora.blogspot.com:7402 -formsc4ws=ed-olapplin2.samiora.blogspot.com:7802 -ekanban=ed-olapplin2.samiora.blogspot.com:6802 -accessgate=ed-olapplin2.samiora.blogspot.com:6802 -yms=ed-olapplin2.samiora.blogspot.com:6802
perl /t1/tst/fs2/EBSapps/appl/fnd/12.0.0/patch/115/bin/txkSetAppsConf.pl -contextfile=/t1/tst/fs2/inst/apps/tst_ed-olapplin2/appl/admin/tst_ed-olapplin2.xml -configoption=addMS -oacore=ed-olapplin2.samiora.blogspot.com:7202,ed-olapplin2.samiora.blogspot.com:7205,ed-olapplin2.samiora.blogspot.com:7207,ed-olapplin2.samiora.blogspot.com:7209 -oafm=ed-olapplin2.samiora.blogspot.com:7602 -forms=ed-olapplin2.samiora.blogspot.com:7402 -formsc4ws=ed-olapplin2.samiora.blogspot.com:7802
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/adProvisionEBS.pl 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/adProvisionEBS.pl 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/adProvisionEBS.pl 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/adProvisionEBS.pl 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>
      </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/adProvisionEBS.pl 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]$ adautocfg.sh
[applmgr@ed-olapplin2 scripts]$ echo $TWO_TASK
[applmgr@ed-olapplin2 scripts]$ sh adalnctl.sh start
[applmgr@ed-olapplin2 admin]$ lsnrctl reload APPS_tst
[applmgr@ed-olapplin2 scripts]$ sh adalnctl.sh stop
On ed-olapplin1:
[applmgr@ed-olapplin1 tstuat]$ cd $ADMIN_SCRIPTS_HOME
[applmgr@ed-olapplin1 scripts]$ adautocfg.sh
[applmgr@ed-olapplin1 scripts]$ echo $TWO_TASK
[applmgr@ed-olapplin1 scripts]$ sh adalnctl.sh start
[applmgr@ed-olapplin1 admin]$ lsnrctl reload APPS_tst
[applmgr@ed-olapplin1 scripts]$ sh adalnctl.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 ~]$ adnodemgrctl.sh 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
Patch
[applmgr@ed-olapplin1 ~]$ adadminsrvctl.sh stop forcepatchfs
[applmgr@ed-olapplin1 ~]$ adnodemgrctl.sh 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/12.2.0.1/tsthome
[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]$ adautocfg.sh
[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/txkRunSSHSetup.pl 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/txkRunSSHSetup.pl enablessh -contextfile=/t1/tst/fs2/inst/apps/tst_ed-olapplin2/appl/admin/tst_ed-olapplin2.xml -hosts=ed-olapplin2,ed-olapplin1
This finishes the ADDING NODE IN SHARED FILE SYSTEM SETUP.
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 samiappsdba@gmail.com, 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 samiappsdba@gmail.com 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/adProvisionEBS.pl ebs-create-managedserver
-contextfile=/apps01/applmgr/TEST/fs2/inst/apps/TEST_ebs122/appl/admin/TEST_ebs122.xml
-managedsrvname=oacore_server2 -servicetype=oacore -managedsrvport=7203 -logfile=/tmp/oacore2.log


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


Step 4: [applmgr@ebs122 ~]$ perl $FND_TOP/patch/115/bin/txkSetAppsConf.pl -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]$ adapcctl.sh stop
[applmgr@ebs122 scripts]$ adapcctl.sh start


Now add oacore server info into PATCH edition:


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


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]$ adadminsrvctl.sh 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/adProvisionEBS.pl 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/adSyncContext.pl
-contextfile=/apps01/applmgr/TEST/fs1/inst/apps/TEST_ebs122/appl/admin/TEST_ebs122.xml


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 oracle.apps.ad.autoconfig.InstantiateFile -e <PATCH_CONTEXT_FILE> -tmpl 
<PATCH_AD_TOP>/admin/template/fsclone_config_txt.tmp -out 
<PATCH_INST_TOP>/appl/admin/fsclone_config.txt

[applmgr@ebs122 scripts]$ java oracle.apps.ad.autoconfig.InstantiateFile -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/txkSetAppsConf.pl -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]$ adadminsrvctl.sh stop


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


Step 14: Check the status of server weblogic console


For any queries you can contact me on samiappsdba@gmail.com

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 du.name duname,do.name dname, pu.name puname, po.name 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 REUSE SETTINGS;
 - 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';

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