Configure Oracle Forms 11 including WebUtil with Oracle WebLogic Server 11gR1 (10.3.5)

Here we are again..In this post I’ll take you through the steps to complete the installation of the software Oracle WebLogic Server and Forms and  Reports. The purpose is to have an working installation of existing forms 10gr2 files. Our platform where I’m working on is still Red Hat Enterprise Linux Server release 5.4 (Tikanga) 32 Bit.


As stated above: the OS I’m working on is Redhat Enterprise Linux. The user-name I’m configuring and running all of the software with is oracle. This is just a plain unprivileged user. In this stage it is handy to have an Oracle Database to compile/connect the forms against. This is not strictly necessary, but the forms I use have an Oracle Database back-end. This post will not go in detail about setting up an database, but perhaps in the future it will.

I assume the system is in the state as ended in the post…s-11-on-redhat/ (when I find out how to create a descent link, I’ll update this).
The software is installed in /oracle .

Oracle Middleware home: /oracle
Oracle product home WLS: /oracle/wlserver_10.3
Oracle Home: /oracle/formsRep11

In this post the following topics will be treated:

  • Configure Portal, Forms, Reports and Discoverer (
  • Webutil

Getting started  run the correct config script.

To start the configuration wizard of the forms and report product, navigate to the oracle Home of the forms and report installation:

[oracle@pro010 ~]$ cd /oracle/formsRep11/

Start the installer:

[oracle@pro010 formsRep11]$ cd bin/
[oracle@pro010 bin]$ ./
Starting Fusion Middleware Configuration Wizard
ORACLE_HOME set as /oracle/formsRep11
PATH set as /oracle/formsRep11/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/oracle/bin:/oracle/FRServ10Gr2/bin:/oracle/FRServ10Gr2/opmn/bin:/oracle/FRServ10Gr2/jdk/bin:/home/oracle/scripts
LD_LIBRARY_PATH set as /oracle/formsRep11/lib:/oracle/FRServ10Gr2/jdk/jre/lib/i386/native_threads:/oracle/FRServ10Gr2/jre/1.4.2/lib/i386/client:/oracle/FRServ10Gr2/lib
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 270 MB.   Actual 112545 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 3925 MB    Passed
Checking monitor: must be configured to display at least 256 colors.    Actual 16777216    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2011-05-12_03-32-43PM. Please wait ...[oracle@pro010 bin]$ Log: /home/oracle/oraInventory/logs/install2011-05-12_03-32-43PM.log

[oracle@pro010 bin]$

Yep..there he is: the nice splash screen..

Here we are: the start of the configuration wizard. In the contrary of what the text is telling us: we do not have the need of the schemas where the wizard is talking about. We only want to configure the Forms and Reports part, not the portal and discover products. If you want/need those, than probably these schemas are needed. I know for certain the forms and reports do NOT need these. So, let us press Next.

The verification fails since one of my packages is to new. Not an issue. So press Next.

Ok, about these defaults: I not likey! Let’s make more sense of ’em..

So. These make more sense. To me, that is 😉 of course, you are free to fill in your values to your liking..I promise I won’t complain..Press Next.

Do you like spam message…Uncheck box..Press Next.

Be strong…Press Yes.

These defaults..possible..but not working for me…Let’s make them a tad different..

These are better to my liking..Press Next.

The options…we do not need all of these so let’s make a difference..Since I have written a java tool using the JDAPI, I need at least the build tools of Forms and Reports. Also I do not need the portal and discoverer, so they can go.I have an Oracle Enterprise manager Grid control server with all the needed licenses available, so the enterprise manager can go as well.Be sure the UNCHECK the Cluster check box if no cluster is being made..

This is the result..Press Next.

The automatic option is recommended… I stick with this option . Press Next.

The proxy is not needed. This server has no need for internet..Press Next.

Uncheck the checkbox. We don’t really need this…Press Next.

The configuration summary. Last chance to change anything..Otherwise press Configure.

Here we go!

Ok, we really are kicking it of now…This can take a while..

Yes! It’s done! Quick! Press Next!

Ok, this is nice info to save for later, so press the “save” button.

Enter a location/name and press save.

Another succes! Press Ok.

Back to the installation complete screen. Now we can press Finish.

That’s all! Now we have to do a little adjustment, since I need to connect with FireFox 3.6 and not with some mickeysoft browser. Let’s alter a config file, so FireFox knows what to do:

Open the formsweb.cfg file with your favorite editor. I use vi. The path to this is shockingly long, I must say.

[oracle@pro010 ~]$ cd /oracle/user_projects/domains/formsRepDmn/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_11.1.1/config
[oracle@pro010 config]$ vi formsweb.cfg
# $Id: formsweb.cfg /st_forms_11. 2009/07/22 13:43:35 nnsyed Exp $
# formsweb.cfg defines parameter values used by the FormsServlet (frmservlet)
# This section defines the Default settings.  Any of them may be overridden in the
# following Named Configuration sections.  If they are not overridden, then the
# values here will be used.
# The default settings comprise two types of parameters: System parameters,
# which cannot be overridden in the URL, and User Parameters, which can.
# Parameters which are not marked as System parameters are User parameters.
# -----------------
# These have fixed names and give information required by the Forms
# Servlet in order to function.  They cannot be specified in the URL query
# string.  But they can be overridden in a named configuration (see below).
# Some parameters specify file names: if the full path is not given,
# they are assumed to be in the same directory as this file.  If a path
# is given, then it should be a physical path, not a URL.
# ---------------
# These match variables (e.g. %form%) in the baseHTML file. Their values
# may be overridden by specifying them in the URL query string
# (e.g. "")
# or by overriding them in a specific, named configuration (see below)
# System parameter: default base HTML file
# System parameter: base HTML file for use with Sun's Java Plug-In
# System parameter: delimiter for parameters in the base HTML files
# System parameter: file setting environment variables for the Forms runtime processes

# Forms runtime argument: whether to escape certain special characters
# in values extracted from the URL for other runtime arguments
# Forms runtime argument: which form module to run
# Forms runtime argument: database connection details
# Forms runtime argument: whether to run in debug mode
# Forms runtime argument: host for debugging
# Forms runtime argument: port for debugging
# Forms runtime argument: BIDI digitSubstitution
# Other Forms runtime arguments: grouped together as one parameter.
# These settings support running and debugging a form from the Builder:
otherparams=obr=%obr% record=%record% tracegroup=%tracegroup% log=%log% term=%term% ssoProxyConnect=%ssoProxyConnect%
# Sub argument for otherparams
# Sub argument for otherparams


Go to the lines:

# Parameter related to the version of the Java Plugin

and change this to:

# Parameter related to the version of the Java Plugin

Save the file, and startup the client with firefox and connect to the following adress:



Yes! This is what we like to see! Now we are in business.

Starting and Stopping

All is pretty nice and all, but what if we need to restart the server? How to we start all the processes? And will these still work? The reason I need to know is that I have been in this catch…I’ve installed servers before and after a month or so a reboot was needed…Downing the server was not the problem..getting the installed software  started a whole different story..I did get this started but it would have been nice if I had figured this out while production was not depending on the software 😉


First stop the forms processes through the admin server:

go to the admin console on


Click on “Servers”

Click on the “Control” tab.

Check the boxes next to the services you like to stop.

Press the shutdown button, then either of the two options presented. I choose the force option, since I really want this thing down.

And of course we need to confirm if this is really what we want..Press Yes.

Since the admin server is down now, we go the the console and continue from there.

run the following script:


Now we shutdown the OPMN processes which also seems to be running:

[oracle@pro010 bin]$ export ORACLE_INSTANCE=/oracle/formsRepInst
[oracle@pro010 bin]$ ./opmnctl stopall
opmnctl stopall: stopping opmn and all managed processes...
[oracle@pro010 bin]$

Ok, now only the nodeManager seems to be running, and after some  googling and reading the following:

Stopping Node Manager
To stop Node Manager, close the command shell in which it is running.
The server runs in a separate process from WLST; exiting WLST does not shut down the server.

I say: kill the process from the command line

For now find the process id and kill ’em..-15 does not work, so grep all the WLS processes and use -9. I assume some Linux knowledge here to find the processes, so I will not give an example how to do this. When in doubt: just boot the whole server.

Starting the processes

Now we cleaned all the processes, let’s see what we can start-up again.

First we need the nodeManager back, this one starts like this:

/oracle/wlserver_10.3/server/bin/ &

This leaves a shell open, and when you exit, the nodeManager will shutdown. Since the AdminServer is only needed when a configuration needs to change, this is not a disaster. Just plain stupid of Oracle.
Add an &amp to the end of the command to push the process to the background.

Second: the Administration Console, so we can start the rest from a browser:

/oracle/user_projects/domains/formsRepDmn/ &

Again: this leaves it running in a shell..In the documenation it is described how to enable automatic authentication. When I have done this also, I’ll update the post.

JAVA Memory arguments: -Xms256m -Xmx512m  -XX:MaxPermSize=512m
WLS Start Mode=Production
*  To start WebLogic Server, use a username and   *
*  password assigned to an admin-level user.  For *
*  server administration, use the WebLogic Server *
*  console at http://hostname:port/console        *
starting weblogic with Java version:
java version "1.6.0_25"
Java(TM) SE Runtime Environment (build 1.6.0_25-b06)
Java HotSpot(TM) Server VM (build 20.0-b11, mixed mode)
Starting WLS with line:
/opt/jdk1.6.0_25/bin/java -server   -Xms256m -Xmx512m  -XX:MaxPermSize=512m -Dweblogic.Name=AdminServer 
-Dweblogic.ProductionModeEnabled=true   -da -Dplatform.home=/oracle/wlserver_10.3 -Dwls.home=/oracle/wlserver_10.3/server -Dweblogic.home=/or

Enter the credentials for the user created during the installation:

Enter username to boot WebLogic server:formsRep11
Enter password to boot WebLogic server:
<May 16, 2011 11:56:25 AM CEST> <Notice> <Log Management> <BEA-170027> <The Server has established connection with the Domain level Diagnostic Service successfully.>
<May 16, 2011 11:56:25 AM CEST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to ADMIN>
<May 16, 2011 11:56:25 AM CEST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RESUMING>
<May 16, 2011 11:56:25 AM CEST> <Notice> <Server> <BEA-002613> <Channel "Default[3]" is now listening on 0:0:0:0:0:0:0:1:7001 for protocols iiop, t3, ldap, snmp, http.>
<May 16, 2011 11:56:25 AM CEST> <Notice> <Server> <BEA-002613> <Channel "Default[1]" is now listening on fe80:0:0:0:214:5eff:fe6a:52ca:7001 for protocols iiop, t3, ldap, snmp, http.>
<May 16, 2011 11:56:25 AM CEST> <Notice> <Server> <BEA-002613> <Channel "Default" is now listening on for protocols iiop, t3, ldap, snmp, http.>
<May 16, 2011 11:56:25 AM CEST> <Notice> <Server> <BEA-002613> <Channel "Default[2]" is now listening on for protocols iiop, t3, ldap, snmp, http.>
<May 16, 2011 11:56:25 AM CEST> <Notice> <WebLogicServer> <BEA-000329> <Started WebLogic Admin Server "AdminServer" for domain "formsRepDmn" running in Production Mode>
<May 16, 2011 11:56:25 AM CEST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING>
<May 16, 2011 11:56:25 AM CEST> <Notice> <WebLogicServer> <BEA-000360> <Server started in RUNNING mode>

When the console stops spitting out messages and ends with the above lines containging RUNNING..We are good to go!

Open the following URL from a browser:


Enter the credentials used before when starting up the server.Next, follow the steps below to navigate to the starting buttons of the WLS_FORMS and WLS_REPORTS:

Check the boxes besides the WLS_FORMS and WLS_REPORTS and click on the “Start” button.

Wait until the processes are started. If you like you can follow the progress in the consoles..

After a while (could take some time) the screen shows the running state for the processes. Pressing the refresh icon on the page may help.

Time for a little test:

Go to the following URL:


After loading the java plug-in the above screen should appear.

As stated before: the console of the AdminServer and the Nodemanager can be closed. The managed servers keep on running, so the forms will keep working.

Now we have successfully restarted the processes we need (after installation more processes were running, but I’m not using coherence and sample domains who where started also. Neither is the starting of the OPMN processes clear to me, but it doesn’t seems to matter that they are down).

Install OEM Agent

Before installling  the agent, make sure the server knows where to find the OEM server:

As root execute the following command:

[oracle@pro010]# echo " oem_server_name oem" >> /etc/hosts

As a best practice: one could add the servername to the host file of the oem server. Or in other name resolving mechanisms used, of course.

Next create a tempdir to unzip the install files, since they are not packed in a separate dir:

[oracle@pro010 installFiles]$ mkdir oem
[oracle@pro010 installFiles]$ cd oem
[oracle@pro010 oem]$ unzip ../

inflating: linux/agent/stage/Components/
inflating: linux/agent/stage/Components/
inflating: linux/agent/stage/Components/
inflating: linux/agent/stage/Components/
inflating: linux/agent/stage/Components/
inflating: linux/agent/stage/Components/
inflating: linux/agent/stage/Components/
extracting: linux/agent/stage/Components/
extracting: linux/agent/stage/Components/
extracting: linux/agent/stage/Components/
extracting: linux/agent/stage/Components/
extracting: linux/agent/stage/Components/
extracting: linux/agent/stage/Components/
extracting: linux/agent/stage/Components/
creating: linux/agent/stage/Components/oracle.bali.share/
creating: linux/agent/stage/Components/oracle.bali.share/
creating: linux/agent/stage/Components/oracle.bali.share/
creating: linux/agent/stage/Components/oracle.bali.share/
inflating: linux/agent/stage/Components/oracle.bali.share/
creating: linux/agent/stage/Components/oracle.dbjava.jdbc/
creating: linux/agent/stage/Components/oracle.dbjava.jdbc/
creating:of the admin server and the Nodemanager


inflating: linux/agent/install/validateXmls/upgrade_validate.xml
inflating: linux/agent/install/validateXmls/agent_validate.xml
inflating: linux/agent/install/validateXmls/oms_validate.xml
inflating: linux/agent/install/validateXmls/emseed_validate.xml
inflating: linux/agent/install/validateXmls/validate.xsd
inflating: linux/agent/install/oraparam.ini
inflating: linux/agent/install/portrange_upgrade.ini
inflating: linux/agent/install/addonInputFile
inflating: linux/agent/install/unzip
inflating: linux/agent/install/
creating: linux/oui/
inflating: linux/oui/oui_linux.jar
creating: stage/
inflating: stage/
[oracle@pro010 oem]$

Edit the response file:

[oracle@pro010 oem]$ vi linux/response/additional_agent.rsp

The values I changed are:



OMS_HOST=<Value Unspecified>
OMS_PORT=<Value Unspecified>





Now we have configured the agent, run the installer:

[oracle@pro010 oem]$ ./runInstaller -silent -responseFile /home/oracle/installFiles/oem/linux/response/additional_agent.rsp
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 150 MB.   Actual 111456 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 3999 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2011-05-16_02-27-23PM. Please wait ...[oracle@pro010 agent]$ *** Check for updates ***
*** Select Installation Type ***
*** Check Prerequisites ***
*** Specify Oracle Management Service Location ***
*** Customize Ports ***
*** Review ***

Global Settings
Source: /home/oracle/installFiles/oem/linux/agent//stage/../stage/products.xml
Oracle Home: /oracle/agent11g (agent11g1)
Installation Type: Complete
Product Languages
Space Requirements
/ Required 791MB (includes 35MB temporary) : Available 108.66GB
New Installations (57 products)
Oracle Management Agent
Agent Virtualization
Enterprise Manager Agent
Enterprise Manager Agent Core Files
Secure Socket Layer
Enterprise Manager Common Files
Enterprise Manager Common Core Files
Oracle Recovery Manager
Required Support Files
Oracle JDBC/THIN Interfaces
Oracle JDBC/OCI Instant Client
Oracle Globalization Support
Oracle Net Required Support Files
SSL Required Support Files for InstantClient
LDAP Required Support Files 11.1


OPatch succeeded.

Finished one-offs apply...

Deleting the files...

Finished deleting the above files...

Running Configuration assistant "Agent Configuration Assistant"

Performing free port detection on host=pro010
Securing the agent

Performing targets discovery and agent configuration

Starting the agent

Configuration assistant "Agent Configuration Assistant" Successful

Now change to the agent/bin dir to check if all is ok:

[oracle@pro010 agent]$ cd /oracle/agent11g/bin
[oracle@pro010 bin]$ ./emctl status agent
Oracle Enterprise Manager 11g Release 1 Grid Control
Copyright (c) 1996, 2010 Oracle Corporation.  All rights reserved.
Agent Version     :
OMS Version       :
Protocol Version  :
Agent Home        : /oracle/agent11g
Agent binaries    : /oracle/agent11g
Agent Process ID  : 8462
Parent Process ID : 8445
Agent URL         : https://pro010:3872/emd/main/
Repository URL    : https://:4900/em/upload
Started at        : 2011-05-16 14:44:55
Started by user   : oracle
Last Reload       : 2011-05-16 14:55:06
Last successful upload                       : 2011-05-16 15:18:50
Total Megabytes of XML files uploaded so far :    15.65
Number of XML files pending upload           :        0
Size of XML files pending upload(MB)         :     0.00
Available disk space on upload filesystem    :    83.88%
Last successful heartbeat to OMS             : 2011-05-16 15:22:05
Agent is Running and Ready
[oracle@pro010 bin]$

Check with OEM to see if the host is added. Make sure the AdminServer is up and running, and when the host is available/visisble go to the OEM tab called “Middleware”

Side note: To really have all the component “green”, the opmn has to be started also. This is done like this:

[oracle@pro010 ~]$ cd /oracle/formsRepInst/bin
[oracle@pro010 bin]$ ./opmnctl startall
opmnctl startall: starting opmn and all managed processes...
[oracle@pro010 bin]$
[oracle@pro010 bin]$ ./opmnctl status
Processes in Instance: formsRepInst
ias-component                    | process-type       |     pid | status
emagent_formsRepInst             | EMAGENT            |   13588 | Alive
ReportsServer_pro010_formsRepI   | ReportsServerComp~ |   13587 | Alive
forms                            | FormsRuntime       |   10578 | Alive
webcache1                        | WebCache-admin     |   13586 | Alive
webcache1                        | WebCache           |   13585 | Alive
ohs1                             | OHS                |   13584 | Alive   

[oracle@pro010 bin]$

Now the components in OEM should be green as in the screen-shot above.

And for some eyecandy: click your link which is called  “formsRep11_at my server.

You should get the same screen as you would have when logging in local, but this time there are graphics instead of tables..
Nice for management 😉

On to the next part:

Configure WebUtil (with a sauce of Jacob libraries added 🙂 )

We use OLE2 with webutil, so we need the Jacob libraries installed and configured (signed) with webutil.

First download the required files:

I know version 1.8 is the version that is working, but hey, new version of forms, new version of Jacob! 😉 I download the version and see what happens..

[oracle@pro010 installFiles]$ unzip
creating: jacob-1.15-M4/
inflating: jacob-1.15-M4/
inflating: jacob-1.15-M4/LICENSE.TXT
inflating: jacob-1.15-M4/README.txt
creating: jacob-1.15-M4/docs/
inflating: jacob-1.15-M4/docs/BuildingJacobFromSource.html


inflating: jacob-1.15-M4/docs/api/package-list
inflating: jacob-1.15-M4/docs/api/resources/inherit.gif
inflating: jacob-1.15-M4/docs/api/serialized-form.html
inflating: jacob-1.15-M4/docs/api/stylesheet.css
[oracle@pro010 installFiles]$

Next cp/mv the file to the webutil dir in the formsHome..

[oracle@pro010 installFiles]$ cd jacob-1.15-M4
[oracle@pro010 jacob-1.15-M4]$ mv jacob-1.15-M4-x86.dll /oracle/formsRep11/forms/webutil

Create a symlink, since the config files are all looking for jacob.dll

[oracle@pro010 jacob-1.15-M4]$ cd /oracle/formsRep11/forms/webutil
[oracle@pro010 webutil]$ ln -s jacob-1.15-M4-x86.dll jacob.dll
[oracle@pro010 webutil]$

Edit the file webutil.cfg located in


changed the entries



logging.connections=TRUE (<– do not do this for production systems)

And the entries

#NOTE: By default the file transfer is disabled as a security measure
#List<n> directories\temp
#List transfer.appsrv.write.<n> directories


#NOTE: By default the file transfer is disabled as a security measure
transfer.appsrv.accessControl=false (<– again: do not do this in production)
#List<n> directories
#List transfer.appsrv.write.<n> directories

Add the following line to the bottom of the file forms.conf located in /oracle/formsRep11/forms/templates/config

AliasMatch ^/forms/webutil/(..*) “/oracle/formsRep11/forms/webutil/$1”

Copy/sign jar files in the following directory /oracle/formsRep11/forms/java

[oracle@pro010 ~]$ cd /oracle/formsRep11/forms/java
[oracle@pro010 java]$ cp ~oracle/installFiles/jacob-1.15-M4/jacob.jar .

frmwebutil.jar should already be signed, but since the jacob.jar and the frmwebutil.jar needs to be signed with the same digital certificate, I’ll re-sign both the  jar files.

Two choices: use the provided script, or execute the commands in order by hand.

I choose the manual method, and while I’m at it, I’ll adapt the digital certificate more to my liking.

// Generate a Java keystore and key pair

[oracle@pro010 bin]$ keytool -genkey -alias myKey -keyalg RSA  -keystore ~oracle/myKey.jks -keysize 2048 -validity 360
Enter keystore password:
Re-enter new password:
What is your first and last name?
[Unknown]:  GemsOfProgramming Productions
What is the name of your organizational unit?
[Unknown]:  Forsaken
What is the name of your organization?
[Unknown]:  Forsaken
What is the name of your City or Locality?
[Unknown]:  Earth
What is the name of your State or Province?
[Unknown]:  Europe
What is the two-letter country code for this unit?
[Unknown]:  NL
Is CN=GemsOfProgramming Productions, OU=Forsaken, O=Forsaken, L=Earth, ST=Europa C=NL correct?
[no]:  yes

Enter key password for <myKey>
(RETURN if same as keystore password):
[oracle@pro010 bin]$

Now to sign the jars:

/opt/java/bin/jarsigner -keystore ~oracle/myKey.jks -storepass **** jacob.jar myKey
/opt/java/bin/jarsigner -keystore ~oracle/myKey.jks -storepass **** frmwebutil.jar myKey

This should be it. Only we need to test this. There are two possibilities:

– Compile the demo webutil stuff.

– Compile a form of your own making which makes ues of webutil.

The testing part will be added later, but the above is tried and true..

Hope it helps!

About GemsOfProgramming

Beeing a previously enthusiastic Java programmer, I rolled into the Oracle Database Administration world. It turned out I got a knack for this, and since approx. 2000 I'm a full time DBA. My experiences touches lot of Oracle products like Forms and Reports 9/10, JDAPI, Application Server, Weblogic Fusion and of course: Oracle Enterprise Databases, JavaFX, Swing and other Java components.
This entry was posted in Forms/Reports, Technical Stuff and tagged , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s