Monday, July 2, 2007

OPMN in E-Business Suite R12

Oracle Process Manager & Notification Server (OPMN) is a new addition to R12 E-Business Suite Technology Stack. OPMN manages all Oracle Application Server 10g Components (like 1. Oracle HTTP Server, 2. OC4J etc). OPMN has three components.

1. Oracle Notification Server - Tool which carries messages (about failure, recovery, start) between different components of Oracle Application server.
2. Oracle Process Manager - Central process management tool which manages all components of Application Server 10g. It is responsible for start, stop, monitor, failure detection, automatic restart of the processes it manages.
3. PM (Process Manager) modules - Tool which communicates the messages originating from the running component, holds the control information on how to start, stop etc.

OPMN can be intergrated with Oracle Enterprise Manager 10g Application Server Control Console. AS Control Console is the graphical user interface and can manage all Oracle Application Server components, under single view.

So... What it does, for Oracle Apps tech Stack?

As OPMN can explicitly manage Oracle HTTP Server and OC4J, it can as well detect if they are down or unanswering.

Say for example, there are several nodes of Oracle E-Business Suite R12 middle tier, on clustering (load balancing on Oracle HTTP Server). OPMN can monitor all the processes by pinging them, So when they are down, OPMN can automatically restart them.

Now, what is Replication of Session state:

Some Applications wants Oracle Applications Server 10g (in its middle tier) to maintain the stateful information to serve all consecutive requests. When such application is deployed on clustering, it is necessary to maintain the session state across multiple processes, in order to provide transparent failover of the requests.

Multiple redundant process would be made available, so that any processes can serve the client request. In the event of failure of one process, the another process can serve the same request successfully.

So... Does Oracle E-Business Suite R12 support state replication?

* Oracle Applications Server supports state replication using Application-level clustering, for J2EE application.
* Oracle HTTP listener routes the requests to the redundant OC4J Components , hence ensuring the state is replicated.
* Oracle AS Web Cache 10g provides stateless and stateful load balancing. Multiple instances of Oracle AS web Cache configures to be a Web Cache Clustering, these provide failover clustering in case one of the WebCache member fails.

Thus, with E-Business Suite R12, Session State Replication (of the requests) is possible both for HTML based interface (OA framework Pages) and Professional user interface (Forms based).


Please feel free to share your thoughts on the same.

-Subashini

Friday, June 29, 2007

E-Business Suite R12 - Software Load Balancing

Found an interesting post by Steven (for E-Business Suite 11i version)

http://blogs.oracle.com/schan/newsItems/departments/networkingArchitectures/2006/06/16#a322

How about software load balancing with the Release 12 E-Business Suite !!

Let us start analyzing Apps-TechStack a bit. I remember, before r12 Oracle had Jserv in the middle tier. Now, Jserv has been replaced by OC4J with the Release 12. And therefore software load balancing of E-Business Suite R12 is technically possible, without the need to go for hardware load balancer.

There are 3 instances of OC4J running at the middle tier.

1. Forms => for Forms based interface
2. Oacore => for OAF Interface (HTML based interface)
3. Oafm => (Oracle Application Fusion Middleware) for mapviewer, webservices and ascontrol.

Until 11i , Oracle has only talked about hardware load balancer/router. Tech Stack of R12 supports software load balancing as well.

Now, What is load balancing?

Load balancing involves allocating the request between processes. A couple of important features makes Load balancing possible.

1) Allocating/Routing Algorithm:
Algorithm (popular ones are round robin, random, hash, allocating based on priority) to route the requests to different process(es).

2) Failure detection:
Requests which are broke-down/dead should be recognised and mark the corresponding processes as 'unused'.

Allocate requests - Where can we do that with Apps TechStack?

Software Load Balancing, in other words, 'routing the requests' is possible at three levels.

1. From Oracle AS WebCache 10gversion to Oracle HTTP Server
2. From Oracle HTTP Server to OC4J (using mod_oc4j)
3. From OC4J (Oracle Containers for J2EE) to Database

For the Professional user interface (Forms based screens), load balancing at "From OC4J to DB" level would not be possible, because the DB connection would happen from Forms Services.

Otherwise, Software load balancing should be possible for both Professional user interface and HTML based user interface (OA framework pages).

Please feel free to share your thoughts on the same.

-Subashini

PS: I know the questions running across.... With Load balancing architecture,
1) which will detect the failure nodes ?
2) How does the cluster of oracle application Servers 10g get to know about the failed node?
3) Will the next node be able to continue serving the request, when one node fail ?
4) where does the state replication occur? How come the second node get to know the continuation point, to serve the same request?

please wait until my next blog.