Oracle Apps: Apache Overview 11i and R12
Apache Overview 11i and R12

what is web server? A
Web Server is a computer program that is responsible for accepting
HTTP requests from clients, which are known as web browsers, and
serving them HTTP responses along with optional data contents, which
usually are web pages such as HTML documents or linked objects (images,
etc.).
Basic process looks very simple. Your browser connects to the Web
Server and requests a page and the server sends back the requested page.
Example:
When u type www.oracle.com .The Browser Breaks the URL into three Parts:
The protocol ("http")
The server name ("www.oracle.com")
The file name defined under Directory Index ("index.html")
The browser communicates with DNS to translate the server name
www.oracle.com into an IP Address, which it uses to connect to the
server machine.
The browser then forms a connection to the server at that IP address.
Using the HTTP protocol, the browser then sends a GET request to the
server, asking for the file "http://www.oracle.com/index.html."
The server then sends the HTML text for the Web page to the browser.
The browser read the HTML tags and then formats the page onto your screen
What is Apache Web Server then?
For Oracle Applications, the Web Server is the Oracle Application Server, which is based on Apache technology.
Oracle people has Customized Apache by adding extra
features/component/plugins like mod_plsql, mod_jserv, mod_osso … in to
Apache Web server and released it as Oracle-Apache Server.
The Oracle Application server is also called as “iAS”
Oracle Apache Server, at startup, starts the parent process. This
process loads the entire configuration and associated modules and spawns
a preconfigured number of child processes. Apache Server, thus,
actually runs several copies of itself to handle multiple connections
simultaneously. The parent process never listens to any HTTP request.
Its sole job is to ensure that the child processes are alive or to
manage the child processes in conjunction with load on the system. Each
child process at a given time deals with a single HTTP request
Apache is one of the most common Web Server Software. Apache is a
freeware and it is highly customizable. In this context, Oracle Apache
Server uses several standards as well as Oracle’s proprietary modules
that extend the functionality of Apache Server. Oracle Apache server
provides key infrastructure for serving the Internet’s HTTP protocol.
Main Components:
There are two main components. HTTP Listener (Web Listener) and Modules
Http
Listener is in charge of receiving incoming http requests and
servicing these requests by sending them to appropriate processing
component. Modules includes some standard Apache modules as well as
Oracle proprietary modules & Some add-on modules. Modules extend
basic functionality of web server. Modules such as:
Mod_security : protects web server from external attacks
Mod_perl : routes requests to PERL interpreter
Mod_plsql : routes requests to pl/sql engine
Mod_ossl : supports SSL
OHS Components
Apache
mod_plsql
mod_jserv
oproc
File System:
Its location on File System: As you know there are three ORACLE_HOME in Apps 8.0.6, iAS, 9.2.0.
Web Server is under iAS ----- iAS
stands for Internet Application server ------ The environment variable
to go to this location in apps user is (cd $) IAS_ORACLE_HOME.
Version:-
To find out the version of Apache and iAS, go to this location and type this if environment file is not sourced.
//ora/iAS/Apache/Apache/bin] $ httpd -v
Configuration Files:
httpd.conf - is a key configuration file for Oracle HTTP Server.
httpds.conf - this is configuration file if we use SSL (Secure Socket layer)
How Oracle Apache Server Works?
Apache is a program that runs under
a suitable multitasking operating system such as Windows, Netware, OS2
and various unix flavours. The Apache binary is called “httpd” under
unix and normally runs in background. On unix OnDemand environments
you can see “httpd” executable under $APACHE_TOP/Apache/bin.
Starting and Stopping Apache:
You can start or stop httpd processes using httpd command line however,
File “apachectl’ , which is a shell script calls this “httpd”
executable and you can thus start or stop Apache program using
apachectl start or stop arguments. Generally, in EBSO application, we
use “adapcctl.sh” script from $SCRIPT_TOP location. This file reads
environment variables and again calls “apachectl” file to start, stop or
display status of Apache processes. Thus, finally it is the httpd
executable which is being started.
When Apache Web server up it uses the below configuration Files.
adstrtall.sh -> adapcctl.sh ->apachectl-> httpd.conf (which in turns apache web server i.e http server will up)
When httpd executable first starts, this file is processed. Thus httpd.conf is the main configuration file.
httpd.conf -> jserv.conf -> jserv properties -> zone properties
httpd.conf -> oracle_apache.conf -> ojsp.conf -> plsql.conf -> apps.conf
httpd.conf -> oprocmgr.conf
LOCATIONS OF ALL CONFIGURATION FILES RELATED TO APACHE IN 11i :-
adstrtall.sh, adapcctl.sh -. COMMONTOP/admin/scripts/sid/
(adapcctl -> where ad -> application's DBA apc -- Apache ctl -- control)
apachectl -> APACHE TOP/apache/bin/
httpd.conf -> Apache top/apache/conf/
jserv.conf -> Apache top/jserv/etc/
jserv.properties -> Apache top/jserv/etc
zone.properties -> Apache top/jserv/etc/
oracle_apache.conf -> Apache top/apache/conf/
plsql.conf -> Apache/modplsql/cfg
oprocmgr.conf -> Apache top/apache/conf/
wdbsvr.app -> Apache top/modplsql/cfg/
( in this file the apps password is hardcoded).
IMPORTANT FILES/DIRECTIORIES IN IAS DIRECTORY:
We have to keep some concentration on these directories in IAS_ORACLE_HOME SID_Hostname.env, Apache, and network.
Env file is to set environment variable to iAS_ORACLE_HOME (During iAS patching)
Apache directory: -
Apache is main directory where you’re most web server configuration Sit. The
Important Files / dir under this directory are
1) Apache
2) Jserv and
3) modplsql
Mod_jserv related stuff goes in Jserv directory (it caters requesters like Self Service, Servlets, jsp pages), see the below screen
Mod_plsql related
stuff goes in modplsql directory (it caters requesters like anything
after /pls/ i.e., executing packages & procedures in DB).
Under iAS/Apache/Apache important directory/files is
bin (apachectl, httpd),
conf (httpd.conf, httpd_pls.conf, oracle_apache.conf),
logs (access_log, access_log_pls, error_log, error_log_pls, httpd.pid, httpd_pls.pid)
Under iAS/Apache/Jserv files you want to know are
etc (all configuration files),
logs (jvm, mod_jserv.log)
Under iAS/Apache/modplsql its
cache (cookie, plsql),
cfg (wdbsvr.app, *.conf)
MOD_JSERV
Mod_jserv related stuff goes in Jserv directory (it caters requester
like Self Service, Servlets, jsp pages), see the below screen
mod_jserv is controlled by directives in jserv.conf.
- ApJServManual, ApJServLogFile
- ApJServLogLevel
- ApJServGroup
- Ex: ApJServGroup OACoreGroup 4 1 //product/iAS/Apache/Jserv/etc/jserv.properties
Jserv is controled by jserv.properties.
- Port,
- log=[true,false]
- Heapsize ( -Xmx, -Xms )
- JTFDBCFILE
- LONG_RUNNING_JVM
- DCACHEMODE
Java Caching Framework
MOD_PLSQL:
Mod_plsql(PHP) related stuff goes in modplsql directory (it caters
requesters like anything after /pls/ i.e., executing packages &
procedures in DB).
The following scenario provides overviews of what steps occur when a server receives a plsql related client request
Main Configurations Files and Directives (Apache PL/SQL (PHP)
1)The Oracle HTTP Server receives a PL/SQL Server Page request from a client browser.
2)The Oracle HTTP Server routes the request to mod_plsql.
3)The request is forwarded by mod_plsql to the Oracle Database. By
using the configuration information stored in your Database Access
Descriptor DAD(wbdsvr.app), mod_plsql connects to the database.
4)mod_plsql prepares the call parameters, and invokes the PL/SQL procedure in the application.
5)The PL/SQL procedure generates an HTML page using data and the PL/SQL Web Toolkit accessed from the database.
6)The response is returned to mod_plsql.
7)The Oracle HTTP Server sends the response to the client browser
EXPLANATION OF SOME IMPORTANT CONFIGURATION FILES in 11i:-
httpd.conf ->This
is main Apache configuration file. From this configuration file it
identify port definitions, memory settings, loggin levels, log file
locations and other configuration options and files.
Port=web_cache_port: Specifies the Oracle Application Server Web Cache listening ports
Listen=Oracle_HTTP_Server_port: Specifies the HTTP and HTTPS ports obtained by Oracle HTTP Server.
jserv.conf -> Oracle HTTP Server includes a Java Virtual Machine (JVM), which is called
JServ. jserv.conf and jserv.properties are the key configuration files for Jserv
All our Self Service servlets requests are via mod_jserv like
discoverer view, xml services or OAM login (So you know now where to
look if issue happens in these services) If your Form Server is in
servlet Mode then Core Applications are also accessed via Web Server
(Jserv Component)
This file calls few properties files like jserv.properties, zone
properties, viewer4i.properties, forms.properties, xmlsvcs.properties.
This file calls other configuration files like plsql.conf, immeting.conf, apps.conf.
oprocmgr.conf ->(in Apache/conf) This Oracle module provides process management and load balancing services to JServ processes
This module starts, stops, and detects death of processes (starting new
processes to replace them), and provides load balancing services to
the processes
oracle_apache.conf
-> This configuration file is used to configure Oracle built modules
supplied with default Apache like mod_pls, mod_ossl, oem, imeeting.
These files are used for mod_pls configuration.
Plsql.conf
->This file is used to configure pls (Plsql). This file defines to
forward all requests like /pls/ to dedicated apache listener.
mod_plsql is an Oracle HTTP Server plug-in that communicates with the
database. It maps browser requests into database stored procedure calls
over a SQL*Net connection. It is often indicated by a /pls/ virtual
path.
wdbsvr.app
->Which in my views is named so after Web Database Server for
Applications. This file contains your dad (database Access Descriptor)
information like database connection description & apps user name
& password. If you are changing apps password you use utility
FNDCPASS and after changing password you have to manually change apps
password in this file.
Configuration Files Under R12.
R12 File System INST_TOP in R12
Remember there are no jserv.properties or jserv.conf or zone.properties in R12 (new techstack), Jserv is replaced by OACORE!
The following will cover the configuration files that will fall under INST TOP directory structure.
All the configuration Files are placed under $ORA_CONFIG_HOME
If you go inside this directory you will see 10.1.2 and 10.1.3
10.1.2 configuration files will be residing in 10.1.2. for e.g
$FORMS_WEB_CONFIG_FILE is placed under $ORA_CONFIG_HOME/10.1.2 - in my
instance it is in
/slot/ems1636/appmgr/inst/apps/tkr12r3d_rws60029rems/ora/10.1.2/forms/server/appsweb.cfg
10.1.3 configuration files will be placed under $ORA_CONFIG_HOME/10.1.3/Apache/Apache/conf/
httpd.conf is located at $ORA_CONFIG_HOME/10.1.3/Apache/Apache/conf/
Same location you will see (all apache related configurations files)
Env file:
$ORA_CONFIG_HOME/10.1.3/$CONTEXT_NAME.env
OH config files: Location: $ORA_CONFIG_HOME/10.1.3/config
These files are security related/iAS related parameters. Mostly no
modifications required manually. OID/SSO registrations scripts modifies
directly.
ias.properties
iasschema.xml
j2ee_instance_jazn.properties
jazn-data.xml
jazn.xml
Apache Related Configuration Files: $IAS_ORACLE_HOME/Apache/Apache/conf
apps.conf
custom.conf
dms.conf
httpd.conf
mod_oc4j.conf - newly introduced for OC4J conf
mod_osso.conf - replaced mod sso conf
oracle_apache.conf
osso
restricted_mode_apache.conf
security.conf
ssl.conf
ssl_terminator.conf
trusted.conf
url_fw.conf
OPMN config file:
$ORA_CONFIG_HOME/10.1.3/opmn/conf/opmn.xml
Used by Oracle Process Manager and Notification Server (OPMN)
Contains details of all the OC4J instances deployed on the server
Location of the log files for OPMN
Various ports used by OPMN
$ORA_CONFIG_HOME/10.1.3/network/tnsnames.ora - Apache connection config file
OC4J configuration files:
There are three OC4J deployments in 10.1.3 oracle Homes
they are oacore oc4j, forms oc4j, oafm oc4j. All oc4j's will have similar configuration files.
application.xml
default-web-site.xml
global-web-application.xml
j2ee-logging.xml
jazn.xml
jms.xml
oc4j-connectors.xml
oc4j.properties
ohwconfig.xml
rmi.xml
server.xml
system-application.xml
system-jazn-data.xml
JavaCache config file:
$ORA_CONFIG_HOME/10.1.3/javacache/admin/javacache.xml
10.1.2 OH related config Files:
Env file:
$ORA_CONFIG_HOME/10.1.2/$CONTEXT_NAME.env
Form Server Configuration Files:
Location: $ORA_CONFIG_HOME/10.1.2/forms/server
default.env (replacement of formservlet.ini in 11i)
socket.env
appsweb.cfg ($FORMS60_WEB_CONFIG_FILE is replaced with $FORMS_WEB_CONFIG_FILE)
Report Builder config file:
$ORA_CONFIG_HOME/10.1.2/reports/conf/rwbuilder.conf
10.1.2 Listener config files:
$ORA_CONFIG_HOME/10.1.2/network/admin