Oracle Applications Request Flow

Now since you know Basic Overview of Oracle Applications / apps 11i and Installation (If not read my previous posts) . When user makes a request how request flow across different component in E-Business Suite or Oracle applications .
By now you might be aware of different Services/Component in Oracle apps I repeat them here these are ,
1. Oracle Web Server ( Apache, Jserv, plssql ) IAS_ORACLE_HOME 9iAS, Ver. 10222
2. Forms Server ( 8.0.6 ) ORACLE_HOME
3. Report Server ( in side 8.0.6 ORACLE_HOME)
4. Concurrent Manager for Batch or Individual Job Processing
5. Admin Server ( These are used for application dba job like patching , cloning & lot more )
6. Database Server

A) So when User makes a request from browser by typing URL like http:// hostname : port so port number they mention is WebServer Port, request hit to Oracle WebServer ( these requests are recorded in logs where wait for next post )
B) Webserver checks that with http request there is no cookie attached (Cookie is message given by WebServer to Web Browser to identify client) so user is new & it passes login page to User .
C) User types his Username Password in login window & clicks submit button
D) Webserver checks that username and passwords need to authenticate against database FND_USER table , so it needs first some user to check client’s username password in database . Guess which username password it uses ?? ( GUEST/ORACLE have you ever noticed why this user is there , Hope you know it now it Uses Guest User to autenticate your user in database )
E) Once user is authenticated its check against FND_RESPONSBILITY..(Confirm again , not sure table name) for Authorization about users responsibilities & assigned responsibilities are presented back to user.
F) Now these responsibilities are of two type Self Services(served by Jserv/Servlets) or Core Applications Server by Forms Server .
G) If this is Core responsibility , Apache transfers request to Forms Listener (Listening on Forms port, I will cover how to check Forms Port in my coming posts ), From here request is on Sockets (May be on forms servelets depending on forms config. ) which is persistense connection. From here onwards Client talks directly with Forms Server in forms session and if Client requested some data, forms server makes database connection ( How ?? using tnsnames.ora in 806 HOME or using dbc Database Connector file in FND_SECURE_TOP or wdbsvr.apps in Apache/modplsql/cfg ?) Post your answer in comment section, you can do it as anonymous user without login as well
H) If User selected Self Service Responsibility like iProcurement, iRecruitement.., Apache forwards request to mod_jserv and request is fullfilled by jserv_component.
Have you ever noticed why webserver donot ask client to login again until session timeout ??( I know you know answer now its because of cookies as User have valid cookies , try deleting cookies from browser & see Oracle Apache asks you to relogin .
I) When your webserver tries to connect to database for plsql or any other type of connection it asks mod_pls to fulfill request but where is this connection information stored ? ( dbc file or wdbsvr.app file or somthing else ? )
J) Users submits his requests for batch processing or somthing else ( Gather Stats done by Sysadmins or Apps DBA’s) these kind of requests are fullfilled by Concurrent Manager ( More about CM, including CM tuning still to come in future )
G) When user want to see reports of all these things request is being forwarded to Reports Server .

You as Sysadmin or Oracle Apps DBA need not to worry how this request transmission happens from one service to another , this is transparent to you me or User . ( Let Oracle do this behind the scene ) You should know request flow as this is most crucial during Troubleshooting (I’ll cover in future posts ) to pinpoint in which compnent issue is & where to look for .

If you like this post please tell it to your other Apps DBA friends & Other budding Oracle Apps DBA’s . Please don’t forget to leave comment & for Advanced Apps DBA , WebServer configuration file system & configuration files look my post at http://atul-oracle.blogspot.com


Learn Oracle Apps DBA
Free Apps DBA Training

About the Author Atul Kumar

Oracle ACE, Author, Speaker and Founder of K21 Technologies & K21 Academy : Specialising in Design, Implement, and Trainings.

follow me on:

Leave a Comment:

41 comments
fhasweh says August 3, 2006

nice post keep up the good work

Reply
Neil jarvis says August 3, 2006

Good One check similar at

http://oradbablog.blogspot.com/

Reply
Anonymous says August 4, 2006

Check similar at Advanced Apps DBA

Reply
Anonymous says August 11, 2006

Hi Atul,

Would like to Thank You very much for the initiative you have taken and helping the DBA’s like me.

Thank You once Again.

Varaha

Reply
Anonymous says September 5, 2006

Atul,

I followed all your atricles in ” For Apps DBA beginner’s ” they are very good.
I can definetly refer your site as a good steping stone for Starter APPS DBA’s.

Once again my heartfully thanks to you for doing this kind of job for future APPS DBA’s. So, pl. keep posting.

Regard
Sashidhar

Reply
Atul Kumar says September 5, 2006

Sashidhar,
Thanks a lot for compliment & feedback .

Atul

Reply
Vidya Balasubramanian says October 2, 2006

Atul great wrk – as part of these – can you shed some lite on the different and important FND tables that dba’s need to be aware of

Thanks,
Vidya

Reply
Vidya Balasubramanian says October 2, 2006

Atul great wrk – as part of these – can you shed some light on the different and important FND tables that apps dba’s need to be aware of

Thanks,
Vidya

Reply
Atul Kumar says October 3, 2006

Vidya,
Thanks a lot for your compilments. I have listed few important Apps tables at my site .
To view Click Here for Imp Tables in Apps

Reply
Atul Kumar says October 3, 2006

Sorry I suppose above link is not working here is link

Click Here for Important Tables

Reply
fhasweh says October 19, 2006

one late qustion autl, is there any way on earth that i can know the ip address of the clinet who are currently using my froms.

fadi

Reply
Atul Kumar says October 19, 2006

Fadi,
You can raise as many questions you have , thats motto of this blog & site http://teachmeoracle.com ( Discovering Oracle Apps )

You can find out user name of person initiating forms but finding IP address of that person might be tricky.

You can get list of all IP address accessing your web server via access_log under Apache/Apache/logs

Reply
Anonymous says November 23, 2006

Hi Atul,

Can you please clarrify my doubt?

(GUEST/ORACLE have you ever noticed why this user is there , Hope you know it now it Uses Guest User to autenticate your user in database )

My DBC file contains

GUEST_USER_PWD=GUEST/ORACLE

But I could not connect to the database using this user

SQL> connect GUEST/ORACLE
ERROR:
ORA-01017: invalid username/password; logon denied

Warning: You are no longer connected to ORACLE.

Even I could not connect using this username and pwd in the appication.

Please let me know is this database user or application user? If it is application user then using which user it is connecting to database to verify the application user and pwd?

Seelan

Reply
Atul Kumar says November 23, 2006

Seelan,
This user is application user & not database user.
You should find this user in FND_USER (S) & not in DBA_USERS

Atul

Reply
vishal says November 25, 2006

Hi Atul,
I think while logging in from the initial page(single sign on),oracle use APPLSYSPUB user,otherwise w/o logging into the database how FND_USERS can be verified for username.

please ,clarify in thorough details,

regards,
Vishal

Reply
Atul Kumar says November 25, 2006

Hi Vishal,
I think you are saying right let me cross verify & I’ll update accordingly

Atul

Reply
Anonymous says December 4, 2006

Hi Everyone,

This is my understanding about the request flow in oracle apps and i would like to share with you

1. Webserver receives the user request for the particular port number. Web server Binds the request with the port number
2.Based on the cookie webserver serves the request by sending login page
3. The application user name and password is entered by the user(operations/welcome)
4. The application user login session is validated by connecting to Applsyspub/pub. Applsyspub contains application user session ,invalid logins,security related tables. The user & security is validated here
5. The responsibility page is displayed. User selects a particular responsibility
6. The responsibility and application name is validated by connecting to Applsys schema(fnd_Responsibility, fnd_application…….)
Note: Here we should remember the difference between applsys and apps schema. Applsys schema contains ad,fnd objects whereas apps schema is a global schema contains all application objects.
7. Once the application is validated , Connecting to apps schema to get access application tables. This is the reason why we should have apps and applsys passwords should be same
8. Once a particular form is selected the .dbc file is accessed to get the information about the GUEST username/pwd

But i am not sure when the webdbsvr.app file is getting used. My assumption is between step 3 and 4 the webdbsvr.app should get accessed to obtain the apps password.

Atul and everyone, Please correct me if i am wrong in my understanding.

reg
malar

Reply
Atul Kumar says December 4, 2006

Malar,
Very well explained , Yes you are right & I need to change my bit about GUEST by your APPLSYSPUB (It uses applsyspub first time)

wdbsvr.app is used by mod_pls in Apache (apps password in this file)
mod_pls is module in Oracle-Apache for executing plsql packages from browser.

its somthing like dads.conf in standalone application server

Atul

Reply
Aarif says December 28, 2006

Hi Atul ,

For beginners like me you are an angel in disguise.

Thanks you very much ,
Aarif

Reply
shiva says January 30, 2007

Hi Atul,

Your practical apps notes are excellent inspiration for all oracle apps dba’s around the globe. We really appreciate your effort – Shiva Geereddy

Reply
shiva says January 30, 2007

good inspiration for apps dba’s

Reply
Atul Kumar says January 30, 2007

Thanks a lot shiva

Reply
Sai says February 9, 2007

Atul/Malar,

I didnt understand when .dbc file is going to use, either when accessing a particular form or while giving application username/pwd.

Thanks,
Sai

Reply
Atul Kumar says February 9, 2007

Sai,
I noticed that if dbs file is corrupt or not present forms connection errors out though initial login works so I suppose this is forms which is issue but you can try at your end as well by moving dbc file to other location & try at what point it errors out.

Reply
Chandramohan says February 12, 2007

Hi Atul,

I think you should have added that the Forms Server process spawns a forms client process ( f60sebmx) which actually talks to the client. The above statement remains correct when forms listener servlet is not used.

Chandra

Reply
Atul Kumar says February 13, 2007

Thanks chandra for sharing this info with us all

Reply
Chandramohan says February 13, 2007

I had a typo in my previous comment is f60webmx

Reply
Anonymous says March 29, 2007

Hi Atul,

This is Rohit, just want to correct you that initial connection to validate user is made thru applsyspub/pub, no thru guest/oracle

Keep up the good Work

-Rohit

Reply
raghu says April 17, 2007

hi Atul…

Thanks for the information….
and please specify the extensions (url’s) as much s possible..

thanks
raghu

Reply
Krishnaraj says June 7, 2007

HI atul,
while logging i get the following

serveranil@192.168.1.85‘s password:
Last login: Sat Jun 2 13:04:05 2007 from 192.168.1.232
-bash: /usrxit/devenv.env: No such file or directory
[serveranil@surya ~]$

also when i run APPSORA.env
[serveranil@surya kingappl]$ . APPSORA.env
-bash: /usrxit/devenv.env: No such file or directory
[serveranil@surya kingappl]$

plz let me know the solution

rgds,
krish

Reply
Atul Kumar says June 7, 2007

Krish for any issues or problems raise them in forum at http://teachMeOracle.com/forum

Reply
Pramod says June 12, 2007

That is a wonderful document which explains the flow in brief.
Can you please elaborate on significance of 9iAS here.

Reply
Atul Kumar says June 12, 2007

Pramod,
9iAS is webserver listening for HTTP requests

Reply
raghav says January 5, 2008

hi atul,

you are doing a great job.

Reply
mitul says April 3, 2008

nice article

Reply
sayantan says June 18, 2008

Atul,

I am working as an apps dba for 3 years. I have a doubt, though very basic, still in mind. What is the difference between users APPS and APPLSYS? I tried to find it many places but did not get any good answer.

Can you please discuss on this?

Thanks,
Sayantan

Reply
neerajblr says October 8, 2008

I think all needs to check out the things again that, APPLSYSPUB does the validation or its GUEST user does the work.
Do a simple test:-
==================
1)
Open a Putty/Fsecure session and connect as apps user.

2)
Do not execute this query but just make it ready on the screen so that you just need to press ENTER in order to execute this query.

set linesize 100
set pagesize 100
col HOW_MANY_USER_SESSIONS for a60

select ‘Number of sessions opened by user’ ||’ ‘|| fu.user_name || ‘ is ‘ || count(distinct session_id) How_many_user_sessions
from icx_sessions icx,fnd_user fu where disabled_flag != ‘Y’ and PSEUDO_FLAG = ‘N’
and (last_connect + decode(FND_PROFILE.VALUE(‘ICX_SESSION_TIMEOUT’), NULL,limit_time, 0,limit_time,FND_PROFILE.VALUE(‘ICX_SESSION_TIMEOUT’)/60)/24) > sysdate
and icx.user_id=fu.user_id group by icx.user_id,fu.user_name;

3)
Open iExplore and put your oracle Application URL

4)
Login as SYSADMIN
Immediately press ENTER on your PUTTY/FSecure session and again press “/” and again press “/” and again press “/” and again press “/” . do this until you see output as SYSADMIN.

Important:-
===========
Before SYSADMIN comes on to your screen, query output will show you GUEST as this is the one logs into in order to authenticate uesr SYSADMIN.

Check this out and do let me know if i have showed something wrong.
neerajblr@rediffmail.com

Thanks
Neeraj Kataria

Reply
Ash says June 26, 2009

hi atul

Thanks for such a nice expalination on how request flows.

it will really help us to understand the APPS architecture

Thanks a lot.

Ash

Reply
kns says January 25, 2012

very good explaination ,must for newcommer as apps dba,i found it best among all the various sites in net.

kns

Reply
kns says January 25, 2012

Hi,
Atul your comments on neerajblr explaination.?
That part is still confusing?

Waiting ….for your comments..

Reply
mbp says February 19, 2013

Great, This is helping me a lot for basic idea about Apps DBA

Reply
Add Your Reply

Not found