Wednesday, 11 April 2012

Oracle EBS R12 with servlet forms mode and more


                                  Forms Servlet mode in Oracle EBS R12:


By default, Oracle EBS R12 has forms 10g Stack in servlet mode.
Now the question is how is the client server connections handled?
In Servlet mode we have a java servlet called the forms listener servlet which is responsible for the communication between the Forms java client and the oracle application server forms services.

Unlike Socket mode, the Forms Servlet mode doesn’t require an additional forms port to handle communication between client and the application server. The forms servlet architecture operates through the http server port. All forms connections happen through the http port. Hence desktop clients can’t access forms directly in servlet mode.

The servlet architecture is designed to work with industry standards, and also to be fully supported for advanced network configurations with no additional ports or SSL configuration.

In Oracle Applications R12 customers who want  load balancing must use the servlet implementation in which forms servers can be balanced across multiple application servers by using a hardware load balancer along with the 10g Application Server.

The way to find if the servlet mode/socket mode is implemented:

Check the forms configuration file : appsweb.cfg  pointed by environment variable "FORMS_WEB_CONFIG_FILE".

The entries:
  • serverURL=
  • connectMode=
Would be as mentioned below:

In servlet mode
In Socket mode
serverURL=/forms/lservlet
connectMode=servlet
serverURL=(should be blank)
connectMode=Socket

This can also be verified in the context file in 11i and R12:


context variable
value for Servlet
value for Socket
s_forms_servlet_serverurl
11i: /forms/formservlet
r12: /forms/lservlet
(no value, blank)
s_forms_servlet_comment
(no value, blank)
#
s_frmConnectMode
r12: servlet
r12: socket


We can change the forms servlet mode to socket and how we do it is:

  1. Source the environment on the application tier.
  2. Stop all the application tier services.
  3. Execute :
$FND_TOP/bin/txkrun.pl -script=ChangeFormsMode \
-contextfile=$INST_TOP/appl/admin/mycontext.xml \
-mode=socket \
-port=9095 \
-runautoconfig=No


Note: context file is the full path of the context file of the instance. Mode is the mode to which the form has to be changed. Port number used to run Forms in socket mode. The default port number is 9095.A port number is not needed if servlet mode is used. Recommended value for autoconfig is NO. 


4.                                 Run autoconfig on apps tier.
5.                                 Start all the application tier services.
  1. Check whether Forms Server is running:
$INST_TOP/admin/scripts/adformsrvctl.sh status
  1. Log in to Oracle Applications and launch a Forms-based application.
  2. Open the Sun Java Console (from Tools Menu in Internet Explorer).
  3. Check whether the "mode" directive displayed in Sun Java Console when launching forms-based applications is set to socket.
  4. The direct launch URL for Forms Socket Mode is:
<web_protocol>://<web_host>.<web_domain>:<web_port>/OA_HTML/frmservlet


Note: If we need to change the forms mode from socket to servlet mode then all steps remain same except for the script which we run and the verification step:

1.       $FND_TOP/bin/txkrun.pl -script=ChangeFormsMode \
-contextfile=$INST_TOP/appl/admin/mycontext.xml \
-mode=servlet \
-runautoconfig=No
          No Port number is required as it would use the http port.
2.       Verification of servlet mode should reflect:

The "mode" directive displayed in Sun Java Console when launching forms-      based applications, is set to http,native
Direct Forms Servlet Launch is:
web_protocol>://<web_host>.<web_domain>:<web_port>/forms/frmservlet

Reference: Metalink ID : 384241.1

No comments:

Post a Comment