Apache

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


No comments:

ORA-00059: Maximum Number Of DB_FILES Exceeded in 19C database

When I am adding datafile to my 19C database facing the below error. SQL> alter tablespace DATA  add datafile '/u01/data/data15.dbf&#...