Mod_plsql is a module included in EBS 12.2 Apache web server. It can be used to develop web application pages using server PL/SQL. The following steps need to be taken to enable this module.

1 Automated mod_plsql Configuration

To configure mod_plsql in EBS 12.2 automatically execute the following script from the unzipped Blitz installer directory:

blitz_report_r12_v********/etc/configure_mod_plsql_122.sh

The sample script output is presented below:

[applmgr@r12 etc]$ ./configure_mod_plsql_122.sh
APPS password for environment VIS [apps] :
 
Executing tnsping to get the database connection details.
 
TNS Ping Utility for Linux: Version 10.1.0.5.0 - Production on 27-MAY-2025 18:11:05
 
Copyright (c) 1997, 2003, Oracle.  All rights reserved.
 
Used parameter files:
/u01/oracle/VIS/inst/apps/VIS_r12/ora/10.1.2/network/admin/sqlnet_ifile.ora
 
 
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=r122.localdomain)(PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=ebs_VIS) (INSTANCE_NAME=CDBVIS)))
OK (0 msec)
 
Please enter the database server name:
DB_SERVER: r122.localdomain
 
Please enter the database port:
DB_PORT: 1521
 
Please enter the database service name:
DB_SERVICE_NAME: ebs_VIS
 
Creating the mod_plsql related directories.
drwxr-x---. 2 applmgr oinstall  6 Dec 30  2006 /u01/install/APPS/fs1/EBSapps/10.1.2/Apache/modplsql/cache
drwxr-x---. 2 applmgr oinstall 21 Dec 30  2006 /u01/install/APPS/fs1/EBSapps/10.1.2/Apache/modplsql/logs
 
The script finished.
Please review the configuration file: /u01/install/APPS/fs1/FMW_Home/webtier/instances/EBS_web_OHS1/config/OHS/EBS_web/custom.conf
Please restart Apache to apply the changes.

2 Manual Configuration

Please execute the following steps for the manual mod_plsql configuration.

2.1 Create a Test Procedure

Create the following procedure as APPS user:

create or replace procedure helloworld as
begin
  htp.htitle('My first dynamic Web page');
  htp.print('Hello world!');
  htp.print('You are connected to '||sys_context('USERENV','DB_NAME')||' as '||sys_context('USERENV','CURRENT_SCHEMA'));
  htp.line;
end helloworld;
/

2.2 Create the Following Directories

Log in to the application server and execute the following command as the applications linux user:

mkdir -p $ORACLE_HOME/Apache/modplsql/logs
mkdir -p $ORACLE_HOME/Apache/modplsql/cache

2.3 Generate the Obfuscated APPS Password

Use the following utility to generate the obfuscated password.
Replace ***** to the actual APPS password.

{
$ORACLE_HOME/Apache/modplsql/conf/dadobf *****
echo
}

Use the generated obfuscated password later in the configuration file plsql.conf.

Configuring mod_plsql EBS r122

2.4 Update custom.conf Configuration File

Open the following file:

ls -l $FMW_HOME/webtier/instances/EBS_web_*OHS*/config/OHS/EBS_web*/custom.conf

E.g.

vi /u01/install/APPS/fs2/FMW_Home/webtier/instances/EBS_web_OHS1/config/OHS/EBS_web/custom.conf

Add the following parameters with the instance specific values:

  • plsql_module
  • PlsqlLogDirectory
  • PlsqlCacheDirectory
  • PlsqlDatabasePassword
  • PlsqlDatabaseConnectString
  • Location should use the last part of the profile Applications Web Agent (APPS_WEB_AGENT) e.g:
    If Applications Web Agent is https://r122.localdomain:443/pls/EBSDB then:
    Location /pls/EBSDB

Here is the sample configuration file

Configuring mod_plsql EBS r122

2.5 Restart Apache

cd $ADMIN_SCRIPTS_HOME
./adapcctl.sh stop
ps -ef|grep httpd
./adapcctl.sh start

2.6 Test the Custom Procedure

Access the following url constructed using the configuration file entry:

Location /pls/EBSDB

Execute this command as applmgr to get the instance url:

grep login $CONTEXT_FILE

And append /pls/EBSDB/HelloWorld to it. E.g:

https://r122.localdomain/pls/EBSDB/HelloWorld
Configuring mod_plsql EBS r122

2.7 Drop the Test Procedure

Drop the procedure as APPS user:

drop procedure helloworld;

2.8 Known Issues

2.8.1 Configuration Issue

When I tried to use the following library reference:

$ORACLE_HOME/Apache/modplsql/bin/modplsql.so

I faced issues starting Apache:

/u01/install/APPS/fs2/FMW_Home/webtier/ohs/bin/apachectl startssl: execing httpd
httpd.worker: Syntax error on line 1042 of
/u01/install/APPS/fs2/FMW_Home/webtier/instances/EBS_web_OHS1/config/OHS/EBS_web/httpd.conf:
Syntax error on line 28 of 
/u01/install/APPS/fs2/FMW_Home/webtier/instances/EBS_web_OHS1/config/OHS/EBS_web/oracle_apache.conf: Syntax error on line 10 of /u01/install/APPS/fs2/FMW_Home/webtier/instances/EBS_web_OHS1/config/OHS/EBS_web/custom.conf:
Cannot load /u01/install/APPS/fs2/EBSapps/10.1.2/Apache/modplsql/bin/modplsql.so into server:
/u01/install/APPS/fs2/EBSapps/10.1.2/Apache/modplsql/bin/modplsql.so: wrong ELF class: ELFCLASS32

The fix is to repoint the config file to the correct library:

LoadModule plsql_module /u01/install/APPS/fs2/FMW_Home/webtier/ohs/modules/mod_plsql.so

2.8.2 Cloning Issue

I faced the following issue when cloning Oracle EBS 12.2:

INFO : [PLUGIN][OHS] Aug 27, 2025 13:31:26 - CLONE-26171   Validating config properties of config group custom.conf ...
FINE : Aug 27, 2025 13:31:26 - CLONE-22043   Path is empty.
INFO : Aug 27, 2025 13:31:26 - CLONE-21203   The PlsqlDatabasePassword password file: "", either does not exist or is zero size.
INFO : [PLUGIN][OHS] Aug 27, 2025 13:31:26 - CLONE-26149   Unable to retrieve password for PlsqlDatabasePassword from file .

The root cause of the issue is that mod_plsql is not supported with EBS 12.2. custom.conf is added to the FMW_Home.jar archive during preclone. So to clone EBS, open the mod_plsql configuration file, e.g. $FMW_HOME/webtier/instances/EBS_web_*OHS*/config/OHS/EBS_web*/custom.conf and comment the PlsqlDatabasePassword parameter in the source EBS instance. Then rerun preclone in the source EBS, copy the apps tier to the target and run the clone.