Pages

Thursday, January 14, 2016

Oracle EBS Suite Upgrade from 12.1.3 to 12.2.4 - Critical Login Issue

 Oracle EBS Suite Upgrade from 12.1.3 to 12.2.4 - Critical Login Issue 


We have recently upgraded from 12.1.3 to 12.2.4 and after go-live we started seing issues where users randomly getting the error JBO-30012, this was majorly caused by the bug fixes in the initial release and further stabilization and patching in this version fixed the issues, we have upgrade 12.2.6 and later we never seen this issue.


Error:

Error while invoking Main Menu. JBO-30012: A cookie for session g5FHanr4vzZEfS3kbZs5fXxERN and application oracle.apps.fnd.framework.navigate.server.OANavigatePortletAM has already been registered with application pool oracle.prod.orgPAYoracle.apps.fnd.framework.navigate.server.OANavigatePortletAM. The cookie must be removed first.

Monday, December 14, 2015

Oracle EBS Architecture

 

Oracle EBS Architecture Architecture Overview


The Oracle E-Business Suite Architecture is a framework for multi-tiered, distributed computing that supports Oracle E-Business Suite products. In this model, various servers or services are distributed among three levels, or tiers.





The Client Tier

The client interface is provided through HTML for the large number of HTML-based applications, and via a Java applet in a Web browser for the smaller number of Forms-based applications. A browser is used for all client access to Oracle E-Business Suite, whichever of these types of application is in use.


Application Tier

The application tier has a dual role: hosting the various servers and service groups that process the business logic, and managing communication between the desktop tier and the database tier. This tier is sometimes still referred to as the middle tier. Several service groups or servers comprise the basic Oracle E-Business Suite application tier:
  • HTTP services
  • Java services
  • Forms services
  • Concurrent Processing server

Oracle Homes

Oracle E-Business Suite Release 12.2 uses two application tier ORACLE_HOMEs.
  • An OracleAS 10.1.2 ORACLE_HOME that was used in previous 12.x releases.
  • An Oracle Fusion Middleware (FMW) ORACLE_HOME that supports Oracle WebLogic Server (WLS) and supersedes the Java (OracleAS 10.1.3) ORACLE_HOME that was used in previous releases.


Web Services

The Web services component of Oracle Application Server processes requests received over the network from the desktop clients, and includes the following major components:
  • Web Listener (Oracle HTTP Server powered by Apache)
  • Java Servlet Engine (Oracle WebLogic Server, WLS)
The Web listener component of the Oracle HTTP server accepts incoming HTTP requests (for particular URLs) from client browsers, and routes the requests to WLS.

HTML-Based Applications

The Oracle HTML-based applications (originally known as Self-Service applications) add a browser-based, walk-up-and-use functionality to Oracle E-Business Suite. They include numerous products such as iSupplier, iProcurement.


An HTML-based Applications module uses the following access path:
  1. The user clicks the hyperlink of a function from a browser.
  2. The browser makes a URL request to the Web listener.
  3. The Web listener contacts the Servlet engine (Oracle WebLogic Server), where it runs a JSP.
  4. The JSP obtains the content from the Oracle E-Business Suite tables and uses information from the metadata dictionary to construct the HTML page.
  5. The resulting HTML page is passed back to the browser, via the Web server.

Oracle Application Framework

The Oracle Application Framework is the development platform for HTML-based applications. It consists of a Java-based application tier framework and associated services, designed to facilitate the rapid deployment of HTML-based applications. Notable Oracle Application Framework components include:
  • Business Components for Java (BC4J), included in Oracle JDeveloper, is used to create Java business components for representing business logic. It also provides a mechanism for mapping relational tables to Java objects, and allows the separation of the application business logic from the user interface.
  • Oracle WebLogic Server supplies the Oracle Application Framework with underlying security and applications Java services. It provides the Oracle Application Framework with its connection to the database, and with application-specific functionality such as flexfields.


The following is a more detailed explanation of how the JSP obtains the content from the Oracle E-Business Suite tables and uses information from the metadata dictionary to construct the HTML page.
  1. Oracle WebLogic Server validates user access to the page.
  2. The page definition (metadata UI definition) is loaded from the metadata repository on the database tier into the application tier.
  3. The BC4J objects that contain the application logic and access the database are instantiated.
  4. The Java Controller programmatically manipulates the page definition as necessary, based on dynamic UI rules.
  5. UIX (HTML UI Generator) interprets the page definition, creates the corresponding HTML in accordance with UI standards, and sends the page to the browser.

Forms Services

  1. The Forms listener servlet is a Java servlet that delivers the ability to run Oracle Forms applications over HTTP or HTTPS connections. It hosts the Oracle E-Business Suite forms and associated runtime engine, mediating the communication between the desktop client and the Oracle database server, displaying client screens, and initiating changes in the database according to user actions.
  2. The Forms listener servlet caches data and provides it to the client as needed, for example when scrolling through multiple order lines that exceed the limitations of a single screen.
  3. The Forms listener servlet can communicate with the desktop client using either a standard HTTP network connection or secure HTTPS network connection. In contrast, Forms services (formerly known as Forms server) communicates with the desktop client using the TCP/IP network protocol, on top of which it layers its own protocol.
  4. The Forms listener servlet communicates with the Oracle database server using the Oracle Net networking infrastructure.
  5. The Forms listener servlet manages the creation of a Forms runtime process for each client, as well as network communications between the client and its associated Forms runtime process. The client sends HTTP requests and receives HTTP responses from the Web services, which acts as the network endpoint for the client.

Concurrent Processing Server

Concurrent Processing is an Oracle E-Business Suite feature that allows non–interactive and potentially long-running functions to be executed efficiently alongside interactive operations. It uses operating system facilities to enable background scheduling of data- or resource-intensive jobs, via a set of programs and forms.To ensure that resource-intensive concurrent processing operations do not interfere with interactive operations, they are run by a specialized component , the Concurrent Processing server.
Internal Concurrent Manager(ICM) controls all the other managers, it must be running before any other manager can be activated. Once the ICM has been activated, it starts a Service Manager on each node that is enabled for concurrent processing. Acting as an agent of the ICM, the Service Manager starts the concurrent managers on its node, excluding any managers that have been deactivated, or that have no current work shift. The ICM can be activated and deactivated from the operating system prompt, or Oracle Applications Manager. It can also be deactivated (but not activated) from the Administer Concurrent Managers form.
The ICM starts up a Service Manager on each node that is enabled for concurrent processing, by instructing the node's Applications Listener (which is dedicated to Concurrent Processing) to spawn a process running the Service Manager executable (FNDSM). The Applications Listener must be configured to source the Oracle E-Business Suite environment file before FNDSM is spawned. Following startup, the Service Manager acts as an agent of the ICM to start and stop concurrent managers on that node, according to their defined work shifts.

Thursday, May 8, 2014

Top and load average in Linux


It always practice to see top command output in the linux servers to identify the resource utilization.

We try to check load average and assume the performence of the system.

The top output looks like below

load average: 2.39, 1.70, 1.81

The same can be checked from 
$ cat  /proc/loadavg
2.70 2.45 2.13 1/450 6959

What are these 3 number?  how to analyze them ? What should be normal numbers?

The load average is computed based on CPU utilization, and includes the number of processes using or waiting to use the CPU,

The load average can be interpreted on a basic level as being a CPU core at full utilization has a system load average of one.

For a quad-core (4 core) machine, a system load average of 4 would mean that the machine had adequate resources to handle the work it needed to do, 

On the same quad-core system, a load average of 8 would mean that if the server had eight cores instead of four, 

It would have been able to handle the work, but it is now overloaded. 

So when you check load average, You also need to check the no of CPU cores on the server.

Use the below command to check the number of CPU cores on the server.

$ grep 'process' /proc/cpuinfo | wc -l
8

So the thumb rule is always load average should be less than the number of CPU (Cores), For 4 core server, Load average should be less than 4 always.


In case the system is showing high load average, but the CPU system and user utilization is low, it is time to start looking at IO wait.

IO wait shows up in system load on Linux because one or more of the cores is busy waiting on something having to do with either disk, or network input or output to finish before it can continue. 

Will post more on the IO waits and finding the IO issues in the next post.

class: ELFCLASS64 at /usr/lib64/perl5/XSLoader.pm line 70.



In R12 when we try to start the forms server,Below is the error encountered.

=============================================
*** Latest formsapp.ear has been deployed ***
=============================================


Program : /apps/EBSPROD/apps/apps_st/appl/fnd/12.0.0/patch/115/bin/txkChkFormsDeployment.pl completed @ Thu May  8 10:43:26 2014

Perl script txkChkFormsDeployment.pl got executed successfully



adformsctl.sh: exiting with status 0

adformsctl.sh: check the logfile /apps/EBSPROD/inst/apps/EBSPROD_dxbhoebzapp2/logs/appl/admin/log/adformsctl.txt for more information ...


.end std out.
Can't load '/usr/lib64/perl5/auto/Sys/Hostname/Hostname.so' for module Sys::Hostname: /usr/lib64/perl5/auto/Sys/Hostname/Hostname.so: wrong ELF class: ELFCLASS64 at /usr/lib64/perl5/XSLoader.pm line 70.
 at /usr/lib64/perl5/Sys/Hostname.pm line 23
*** ALL THE FOLLOWING FILES ARE REQUIRED FOR RESOLVING RUNTIME ERRORS
*** Log File = /apps/EBSPROD/inst/apps/EBSPROD_dxbhoebzapp2/logs/appl/rgf/TXK/txkChkFormsDeployment_Thu_May_8_10_43_25_2014/txkChkFormsDeployment_Thu_May_8_10_43_25_2014.log


FIX
===

Check below two varaibles in the CONTEXT_FILE, 
PERL5LIB
ADPERLPRG

They should point to  below variable, Please check the below

Mofiy them in CONTEXT_FILE as below

From 

  <ADPERLPRG oa_var="s_adperlprg" osd="unix">/usr/bin/perl</ADPERLPRG>

To 
         <ADPERLPRG oa_var="s_adperlprg" osd="unix">/apps/PROD/apps/tech_st/10.1.3/perl/bin/perl</ADPERLPRG>

From 

        <PERL5LIB oa_var="s_perl5lib" osd="LINUX_X86-64">/usr/local/lib64/perl5:/usr/local/share/perl5:/usr/lib64/perl5/vendor_perl:/usr/share/perl5/vendor_perl:/usr/lib64/perl5:/usr/share/perl5:.:/apps/PROD/apps/apps_st/appl/au/12.0.0/perl:/apps/PROD/apps/apps_st/appl/au/12.0.0/perl</PERL5LIB>

To 

         <PERL5LIB oa_var="s_perl5lib" osd="LINUX_X86-64">/apps/PROD/apps/tech_st/10.1.3/perl/lib/5.8.3:/apps/PROD/apps/tech_st/10.1.3/perl/lib/site_perl/5.8.3:/apps/PROD/apps/apps_st/appl/au/12.0.0/perl:/apps/PROD/apps/tech_st/10.1.3/Apache/Apache/mod_perl/lib/site_perl/5.8.3/i686-linux-thread-multi</PERL5LIB>


Thursday, April 17, 2014

How can we control a concurrent program to Run In Specific RAC/PCP node?

How can we control a concurrent program to Run In Specific RAC/PCP node?


There is an interesting feature in R12 for this to achieve.


In concurrent program define window , we can define which node and instance a concurrent program should connect and run, That is through concurrent program session control.

Navigation: System Administrator Responsibility > Concurrent > Program > Define > Click 'Session Control' 

You can define in this screen Target Node and Target Instance for that particler concurrent program. 

Irrespective of the managers running on the node and connected to which ever RAC instance, This definition makes sure the program is run in the specified RAC/PCP node.

What is Target Node 
------------------------

If you specify the target node on which requests for this program will run. When requests for this program are submitted, They run on this node if that is node is available, 

If no specification is made for the target node of a concurrent program, a request for it will be picked up by any manager available to run it. 

If a node specification is made for a concurrent program and the node is up, only available managers running on the specified node will pick up the request. 

What is Target Instance 
----------------------------

When requests for this program are submitted, they run on this database instance node If it is available.

If no specification is made for the target instance of a concurrent program, a request for it will be picked up by the first manager available to run it and will be run in the instance where the manager is already connected.

If an instance specification is made for a concurrent program and the instance is up, it will be picked up by the first manager available to run it and the manager will run the request in the specified instance. 

However, if the target RAC instance is down, the manager will run the request in the instance where it is already connected and log an appropriate message.