Tuesday, October 15, 2024

Implementing Case-Insensitive Pluggable Database Name with Oracle E-Business Suite Release 12.2 on Oracle Database 19c Multitenant Architecture

This article describes how to configure case-insensitive pluggable database (PDB) names in the Oracle Database 19c Multitenant Architecture for use with Oracle E-Business Suite Release 12.2.

Note: This article assumes, it is for a database without RAC and DataGuard configured and a single-node application tier.

Pre-requisites

  1. Should be Oracle E-Business Suite 12.2.3 and later. For additional information, refer to the Prerequisites section in Doc ID 2782130.1.
  2. Create appsutil.zip and copy it to the database tier.
  3. If you use a pluggable database encrypted using transparent database encryption (TDE), refer to Oracle Support Knowledge Document 2301128.1, Impact Of Renaming PDB On TDE Configuration.
  4. If you have integrated Oracle E-Business Suite with Oracle Access Manager using Oracle E-Business Suite AccessGate, you must deregister Oracle E-Business Suite from Oracle Access Manager before performing the steps to change your existing PDB name to uppercase.

Steps to setup case-insensitive pluggable database (PDB) name

  1. Stop Application Tier Services and Update Directory Object Paths
    • On the application tier node, source the environment and shut down all the application tier services
      $ cd <EBS_ROOT>
      $ . ./EBSapps.env run
      $ cd $ADMIN_SCRIPTS_HOME
      $ ./adstpall.sh 
      
    • Take a full backup of the database and application tier using your preferred backup procedure.
    • Log in as the 'oracle' user on the database tier, and run the following command to identify the directory paths that are currently stored in the UTL_FILE_DIR parameter:
      $ . <PDB name>_<hostname>.env
      $ perl $ORACLE_HOME/appsutil/bin/txkCfgUtlfileDir.pl \
         -contextfile=$CONTEXT_FILE \
         -oraclehome=$ORACLE_HOME \
         -outdir=$ORACLE_HOME/appsutil/log \
         -mode=getUtlFileDir \
         -servicetype=<onpremise|opc>
      
      The script creates a text file named <PDB name>_utlfiledir.txt in the <ORACLE_HOME>/dbs directory.
    • Create the following directories on database node
      $ mkdir -p $ORACLE_HOME/../temp/<uppercase PDB name>
      $ mkdir -p $ORACLE_HOME/appsutil/outbound/<uppercase PDB name>_<hostname>
      
    • Update the directory paths in file <ORACLE_HOME>/dbs/<PDB name>_utlfiledir.txt to match the directory paths created in the above step.
    • Run the txkCfgUtlfileDir.pl script to update the directory object paths on the database node:
      $ . <PDB Name>_<hostname>.env
      $ perl $ORACLE_HOME/appsutil/bin/txkCfgUtlfileDir.pl \
         -contextfile=$CONTEXT_FILE \
         -oraclehome=$ORACLE_HOME \
         -outdir=$ORACLE_HOME/appsutil/log \
         -mode=setUtlFileDir \
         -servicetype=<onpremise|opc>
      
  2. Rename Pluggable Database and Disable Case-Sensitive PDB Names
    • On the database node, set the environment for the CDB:
      $ cd <19c_ORACLE_HOME>
      $ . ./<CDB name>_<hostname>.env
      
    • Connect to the CDB via SQL*Plus as SYSDBA, and close the pluggable database:
      $ sqlplus / as sysdba
      SQL> alter pluggable database "<PDB name>" close instances=all;
      
    • Open the pluggable database in RESTRICTED mode:
      SQL> alter pluggable database "<PDB name>" open restricted;
      
    • While still connected to the CDB$ROOT container, change the PDB to have a temporary name
      SQL> alter pluggable database "<PDB name>" rename global_name to TEMP<uppercase PDB name>;
    • Note: This step is required as the current global_name is case-insensitive, and if you attempt to use the same name but with a different case you will receive the ORA-65042: name is already used by an existing container error.
    • Set the _pdb_name_case_sensitive initialization parameter to FALSE.
      SQL> alter system set "_pdb_name_case_sensitive"=FALSE scope=spfile;
      
      If you are using a parameter file (PFILE) for example: <19c_ORACLE_HOME>/dbs/init<SID>.ora, use a file editor and change the _pdb_name_case_sensitive initialization parameter to FALSE within the PFILE and save the change.
    • Stop and restart the container database for the initialization parameter change to take effect:
      SQL> alter session set container = CDB$ROOT;
      SQL> shutdown;     
      SQL> startup;
      
    • Connect to the CDB via SQL*Plus as SYSDBA, and close the pluggable database:
      $ sqlplus / as sysdba
      SQL> alter pluggable database TEMP<uppercase PDB name> close;
      
    • Open the pluggable database in RESTRICTED mode:
      SQL> alter pluggable database TEMP<uppercase PDB name> open restricted;
    • Connect to the CDB via SQL*Plus as SYSDBA, and rename the temporary pluggable database back to the original name, but using uppercase:
      SQL> alter pluggable database "TEMP<uppercase PDB name>" rename global_name to "<uppercase PDB name>";
      
      Run the following command to verify the change:
      SQL> show pdbs
      
      You should see the pluggable database name in uppercase.
    • The renamed PDB will still be in RESTRICTED mode. Run the following commands to restart the PDB:
      SQL> alter pluggable database <uppercase PDB name> close;
      SQL> alter pluggable database <uppercase PDB name> open;
      
  3. Configure Oracle E-Business Suite Database Tier
    • Run AutoConfig for the Pluggable Database
      Log in as oracle and set the environment as follows:
      
      $ cd <19c_ORACLE_HOME>/appsutil
      $ . ./txkSetCfgCDB.env dboraclehome=<19c_ORACLE_HOME>
      $ export ORACLE_SID=<CDB_SID>
      $ export ORACLE_UNQNAME=<19c_ORACLE_UNQNAME>
      $ export TNS_ADMIN=<19c_ORACLE_HOME>/network/admin
      
    • As the oracle user, run the txkPostPDBCreationTasks.pl script, specifying parameter values applicable to your environment. This script will create a new database tier context file and run AutoConfig. You will need to provide the APPS password when prompted.
      $ perl $ORACLE_HOME/appsutil/bin/txkPostPDBCreationTasks.pl \
              -dboraclehome=<19c_ORACLE_HOME> \
              -outdir=<19c_ORACLE_HOME>/appsutil/log \
              -cdbname=<CDB name> \
              -dbuniquename=<CDB db_unique_name> \
              -cdbsid=<CDB Instance Name> \
              -pdbsid=<Uppercase PDB Name> \
              -appsuser=<apps user> \
              -israc=no \
              -dbport=<EBS DB port> \
              -servicetype=onpremise
      
  4. Configure Oracle E-Business Suite Application Tier
    • Source the environment for the run edition file system
      $ cd <EBS_ROOT>
      $ . ./EBSapps.env run
      
    • Create a new application tier context file by running the following command, and setting the APPLPTMP value to one of the values represented by the s_db_util_filedir database tier context file variable:
      $ perl $AD_TOP/patch/115/bin/txkAppsDBConfig.pl \
              contextfile=<path to existing run CONTEXT_FILE> \
              dbhost=<DB host|Scan Host> \
              dbdomain=<DB Domain|Scan domain> \
              dbport=<EBS DB port|Scan Port> \
              dbsid=<uppercase PDB name> \
              applptmp=<APPLPTMP>
      
    • As the case of the PDB name has now changed, the CONTEXT_NAME based on that value has also changed. Use a text editor such as vi to amend the Oracle HTTP Server (OHS) httpd.conf and ssl.conf configuration files under the $FMW_HOME on both the run and patch file systems, updating all relevant CONTEXT_NAME values with the new CONTEXT_NAME.
    • Specifying the new context file generated on the run edition file system, run AutoConfig to propagate the changes
      $ $AD_TOP/bin/adconfig.sh contextfile=<new run CONTEXT_FILE>
      
    • Source the new environment file of the run edition file system:
      $ cd <EBS_ROOT>
      $ . ./EBSapps.env run
      
      You can use the following command to confirm the environment variable FILE_EDITION points to the run edition file system:
      $ echo $FILE_EDITION
      
    • Run the following command to regenerate the configuration files on the patch file system and upload the patch context file to the database:
      $ perl $AD_TOP/patch/115/bin/txkPatchAppsConfig.pl patchcontextfile=<new patch CONTEXT_FILE>
      
    • Start the application tier services:
      $ cd <EBS_ROOT>
      $ . ./EBSapps.env run
      $ cd $ADMIN_SCRIPTS_HOME
      $ ./adstrtal.sh
      
  5. If you have implemented any integrations that connect an external node to Oracle E-Business Suite, you must now reconfigure those integrations with the updated DBC file.
Hope this article will be helpful.


Monday, October 14, 2024

Oracle WebLogic Server 12cR2 (12.2.1) Installation on Oracle Linux (OL7u9)

Before initiating the installation of the WebLogic server, it would be helpful to review the article - Oracle WebLogic Server Overview to understand the terminologies and concepts of Oracle WebLogic Server.

Please note: This article assumes that you have an existing machine with Oracle Linux 7.9 installed and the required software downloaded, as mentioned in the prerequisite section.

Pre-requisites:

  • Download and install JDK1.8 (1.8.0_241)
  • Download Weblogic 12.2.1.4 (fmw_12.2.1.4.0_infrastructure.jar)
  • Create a new group 'dba' and 'oracle' user
  • Create the required directories and set the following environment variables
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/12.2.1
export MW_HOME=$ORACLE_HOME
export WLS_HOME=$MW_HOME/wlserver
export WL_HOME=$WLS_HOME
export DOMAIN_BASE=/u01/app/oracle/config/domains
export DOMAIN_HOME=$DOMAIN_BASE/mydomain
export JAVA_HOME=/u01/app/oracle/jdk18_241
export PATH=$JAVA_HOME/bin:$PATH
  • create /etc/oraInst.loc and add the following line in /etc/oraInst.loc 
inventory_loc=/u01/app/oraInventory

Installation:

Run the installer as the "oracle" user.
$ java -jar fmw_12.2.1.4.0_infrastructure.jar

Click the "Next" button on the welcome screen.


Select the "Skip Auto Updates" option, then click the "next" button.


Enter the middleware home and click the "Next" button.



Accept the "Fusion Middleware Infrastructure" option by clicking the "Next" button.


Wait for the prerequisite checks to complete. If there are failures, correct them and rerun the checks. If there are no failures, click the "Next" button.



Either enter your support details or uncheck the security updates checkbox. Click the "Next" button.  On the warning dialog, click the "Yes" button.


Review the summary information, and click the "Install" button.



Wait for the installation, then click the "Next" button.



On the installation complete screen, click the "Finish" button to launch the Configuration Wizard.

Creating WebLogic Domain

Launch the Configuration Wizard with the following command:
$ $ORACLE_HOME/oracle_common/common/bin/config.sh

Select the "Create a new domain" option, enter the domain name at the end of the "Domain Location", then click the "Next" button.



Select the required product template and click the "Next" button.



Enter the weblogic credentials and click the "Next" button.



Select domain mode as "Production" and JDK details, then click the "Next" button.



Select any required advanced configuration options. 



Review the configuration summary screen, and click the "Create" button.



Once the domain is created, click the "Next" button.

Please make sure to remember the Admin Server URL and then click the "Finish" button.

Once the server is started you can access the administrator console using the URL "http://hostname:port/console".


Hope this article will be helpful.

Thursday, October 10, 2024

Oracle WebLogic Server Overview

  • Is a Java EE application server hosting Java EE applications
  • Is a completely compliant with Java EE 7
  • Provides clustering for load balancing and high availability
  • Offers an extensible security realm for authentication, authorization, and so on
  • Runs the "Java components" of Oracle Fusion Middleware (FMW). These include Oracle SOA Suite, Oracle Service Bus, Oracle WebCenter Suite, and some Oracle Identity Management components
  • Can control "System components" of FMW, such as Oracle HTTP Server (OHS), and Oracle Traffic Director (OTD).


System Architecture












  • Clients using the World Wide Web to access applications.
  • A firewall (hardware or software designed to prevent unauthorized access to or from a private network by using filtering or blocking ports)
  • A cluster proxy of either a hardware load balancer or a web server like OHS
  • A cluster of WebLogic Servers on various machines (each one running applications)
  • Various back-end systems and databases accessed by the applications running on WebLogic Server
Other advanced architectural elements:
  • Additional firewalls
  • Multiple WebLogic Server clusters
  • Multiple load balancers, or hardware load balancers in front of multiple web servers


WebLogic Server Domain


A domain is a collection of WebLogic Server resources. There are different kinds of resources in a domain, including WebLogic Servers, deployed applications, clusters, security providers, and Java Message Service and Java Database Connectivity elements.

All domains contain a special server called the administration server. The administration server is only used for domain configuration and manage all of the domain resources.

The other WebLogic Servers in the domain are called managed servers. In most domains, the applications are deployed to the managed servers. 

A single WebLogic Server product installation can be used to create and run multiple domains, or multiple product installations can be used to run a single domain. How domains are defined is up to you. You can define multiple domains based on different system administrators' responsibilities, application boundaries, or geographical locations of the machines on which servers run.

Managed Servers


A domain can have zero or more managed servers.

A managed server:
  • Is managed by the administration server
  • Is an instance of WebLogic Server and, therefore, a fully functional Java Enterprise Edition application server
  • Is where your Java Enterprise Edition applications run
  • Web applications, EJBs, web services, enterprise applications
  • Can be clustered with other cooperating managed servers for availability, scalability, and automatic failover


Node Manager


  • Is a WebLogic server utility, that enables us to start, stop, and restart both admin server and managed server instances from the remote location
  • Monitors server availability and can restart failed servers
  • Can be used to migrate servers on a failed machine to another machine
  • Can also manage OHS, OTD, and OID components

Hope this article will be helpful.
In my upcoming article, I will cover the installation of Oracle WebLogic Server 12c.

Some Most Popular Articles