Saturday, January 21, 2012

Overcoming Oracle Apps R12 FRM-92101 Error On Redhat Linux 5.5

Have you ever got the Oracle Forms error, FRM-92101 with Oracle Applications R12 on 64 bit Redhat Linux 5.5? Here is how to overcome it.




Here is my environment:

Server: Redhat Linux 5.5

lsb_release -a
LSB Version: :core-3.1-amd64:core-3.1-ia32:core-3.1-noarch:graphics-3.1-amd64:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: EnterpriseEnterpriseServer
Description: Enterprise Linux Enterprise Linux Server release 5.5 (Carthage)
Release: 5.5
Codename: Carthage

uname -a
Linux black.testrac.com 2.6.18-194.el5 #1 SMP Mon Mar 29 22:10:29 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux


select
APPLICATIONS_SYSTEM_NAME
, ARU_RELEASE_NAME
, release_name
from apps.fnd_product_groups

APPLICATIONS_SYSTEM_NAME ARU_RELEASE_NAME
------------------------------ -------------------
RELEASE_NAME
--------------------------------------------------
VIS R12
12.1.1



-----------

Prerequisites:

The java is working in your browser. To test whether Java is working in the web browser, run this in the URL.
http://java.com/en/download/testjava.jsp

You have overcome the error concerning: NPX_PLUGIN_PATH, and oaj2se.exe
See my previous post.

http://rodgersnotes.blogspot.com/2012/01/firefox-oracle-apps-java-plugins-on-64.html


-----------

Symptom:

Start the database, listener, and all the Oracle Apps processes. Open a browser. Test an Oracle Apps Form with the forms test webpage. In my case:

file:///oapps/applmgr/VIS/apps/tech_st/10.1.2/tools/web/html/runform.htm

You get a java window open. But you get the error: FRM-92101 There was a failure in the Forms server during startup. This could happen due to an invalid configuration. Please look into the web server log for the details.

You get a java window open. But you get the error: FRM-92101 There was a failure in the Forms server during startup. This could happen due to an invalid configuration. Please look into the web server log for the details.


Click on Details:

Java exception:

oracle.forms.net.ConnectionException: forms session <1> failed during startup: no response from runtime process
at oracle.forms.net.ConnectionException.createConnectionException(Unknown source)
at oracle.forms.net.HTTPStream.getResponse(Unknown source)
at oracle.forms.net.HTTPStream.doFlush(Unknown source)
at oracle.forms.net.HTTPStream.Flush(Unknown source)
at java.io.DataOutputStream.flush (DataOutputStream.java:106)
at oracle.forms.net.HTTPConnection.connect(Unknown source)
at oracle.forms.engine.FormsDispatcher.initConnection(Unknown source)
at oracle.forms.engine.FormsDispatcher.init(Unknown source)
at oracle.forms.engine.Runform.initConnection(Unknown source)
at oracle.forms.engine.Runform.startRunform(Unknown source)
at oracle.forms.engine.Main.createRunform(Unknown source)
at oracle.forms.engine.Main.start(Unknown source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1698)
at Java.lang.Thread.run(Thread.java:662)



------------

Check the Oracle Forms Log:

$LOG_HOME/ora/10.1.3/opmn/forms_default_group_1/formsstd.out

In my case:
/oapps/applmgr/VIS/inst/apps/VIS_black/logs/ora/10.1.3/opmn/forms_default_group_1/formsstd.out


tail -100 /oapps/applmgr/VIS/inst/apps/VIS_black/logs/ora/10.1.3/opmn/forms_default_group_1/formsstd.out


...

12/01/21 12:32:08 FormsServlet init():
configFileName: /oapps/applmgr/VIS/inst/apps/VIS_black/ora/10.1.2/forms/server/appsweb.cfg
testMode: false
12/01/21 12:32:08 Oracle Containers for J2EE 10g (10.1.3.4.0) initialized
12/01/21 13:04:27 ListenerServlet init()
12/01/21 13:04:28 Forms session <1> aborted: runtime process failed during startup with errors /oapps/applmgr/VIS/apps/tech_st/10.1.2/bin/frmweb: error while loading shared libraries: libXm.so.2: cannot open shared object file: No such file or directory

12/01/21 13:19:53 Forms session <2> aborted: runtime process failed during startup with errors /oapps/applmgr/VIS/apps/tech_st/10.1.2/bin/frmweb: error while loading shared libraries: libXm.so.2: cannot open shared object file: No such file or directory


--------------

And check the file, application.log:

tail -100 /oapps/applmgr/VIS/inst/apps/VIS_black/logs/ora/10.1.3/j2ee/forms/forms_default_group_1/application.log


12/01/21 13:04:27.314 formsweb: ListenerServlet init()
12/01/21 13:04:28.455 formsweb: Forms session <1> aborted: runtime process failed during startup with errors /oapps/applmgr/VIS/apps/tech_st/10.1.2/bin/frmweb: error while loading shared libraries: libXm.so.2: cannot open shared object file: No such file or directory

12/01/21 13:04:28.455 formsweb: Forms session <1> exception stack trace:
oracle.forms.engine.RunformException: Forms session <1> failed during startup: no response from runtime process
at oracle.forms.servlet.RunformProcess.connect(Unknown Source)
at oracle.forms.servlet.RunformProcess.dataToRunform(Unknown Source)
at oracle.forms.servlet.RunformSession.dataToRunform(Unknown Source)
at oracle.forms.servlet.ListenerServlet.doPost(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:713)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.AJPRequestHandler.run(AJPRequestHandler.java:313)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.AJPRequestHandler.run(AJPRequestHandler.java:199)
at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
at java.lang.Thread.run(Thread.java:619)

--------------

Cause:

The cause is not unusual with Linux, or Oracle, or Oracle Apps. It's that Oracle Forms is looking for a library file. But the file doesn't exist in the expected place. Nor does a link. Not again.

In this case, libXm.so.2 can't be found.

----------

Analysis:

Find the files. As root, do lots of linear searches all over the hard drive looking for library files.

find / -type f -ls 2> /dev/null | grep -i "libXm.so"

...
214067513 2692 -rwxr-xr-x 1 root root 2747528 Jun 6 2007 /usr/lib64/libXm.so.3.0.2
214054985 2776 -rwxr-xr-x 1 root root 2836528 Mar 4 2010 /usr/lib64/libXm.so.4.0.1

214067522 2492 -rwxr-xr-x 1 root root 2542828 Jun 6 2007 /usr/lib/libXm.so.3.0.2
1802278 2584 -rwxr-xr-x 1 root root 2637260 Mar 4 2010 /usr/lib/libXm.so.4.0.1
...


I did have more occurences of this file. But they were under different subdirectories.
/oapps/oracle/VIS/db/tech_st/11.1.0/lib32/stubs
/middleware/Oracle_BI1/lib32/stubs


The directories under /usr are the critical ones.

You can find any existing links with:

find / -type l -ls 2> /dev/null | grep -i "libXm.so"

---------------

File types:


file /usr/lib64/libXm.so.4.0.1
/usr/lib64/libXm.so.4.0.1: ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), stripped

file /usr/lib/libXm.so.3.0.2
/usr/lib/libXm.so.3.0.2: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), stripped


---------------

Find or Verify the Packages Needed For The Library Files:

Reading other webpages (below), these library files are provided by the package: openmotif22-2.2.3-18.

I had installed everything, every last package, when I installed Redhat. It's to avoid nonsense like this. So, I already the package installed. If you don't have the package installed, download it, and install it. rpmfind.net is a good place to start.

Another time, I'd stuggled with a similar installation. In my notes, I was concerned with three library files: libMrm.so, libUil.so, and libXm.so. So, I leveraged my notes, and looked for all three. Turns out they are all owned by the same package: openmotif.

-----

What Package, Is Associated With The File:

rpm -q -f /usr/lib64/libXm.so.4.0.1
openmotif-2.3.1-2.el5_4.1


-----

rpm -q -f /usr/lib/libXm.so.3.0.2
openmotif22-2.2.3-18


-----

What Are All The Files Associated With That Package?

rpm -q openmotif22 -l | sort | more

/usr/lib64/libMrm.so.3
/usr/lib64/libMrm.so.3.0.2

/usr/lib64/libUil.so.3
/usr/lib64/libUil.so.3.0.2

/usr/lib64/libXm.so.3
/usr/lib64/libXm.so.3.0.2

....

/usr/lib/libMrm.so.3
/usr/lib/libMrm.so.3.0.2

/usr/lib/libUil.so.3
/usr/lib/libUil.so.3.0.2

/usr/lib/libXm.so.3
/usr/lib/libXm.so.3.0.2

/usr/share/doc/openmotif22-2.2.3
...


This query obviously finds both the 32 and 64 bit files.

-----------------

Analysis For Links:

cd /usr/X11R6/lib

Original files:

/usr/lib/libMrm.so.3.0.2
/usr/lib/libMrm.so.4.0.1

/usr/lib/libUil.so.3.0.2
/usr/lib/libUil.so.4.0.1

/usr/lib/libXm.so.3.0.2
/usr/lib/libXm.so.4.0.1



-----

The application, is looking for files in the directory: /usr/X11R6/lib
But it does not exist. Create it.

As root:
mkdir -p /usr/X11R6/lib

-----

Make Same Name Links To The Original Files:

cd /usr/X11R6/lib

ln -s /usr/lib/libMrm.so.3.0.2 .
ln -s /usr/lib/libMrm.so.4.0.1 .

ln -s /usr/lib/libUil.so.3.0.2 .
ln -s /usr/lib/libUil.so.4.0.1 .

ln -s /usr/lib/libXm.so.3.0.2 .
ln -s /usr/lib/libXm.so.4.0.1 .


The above ^ will have a link, the same name as the original file.

-----

Make Links With An Abbreviated Name:

ln -s /usr/lib/libXm.so.3.0.2 libXm.so.3
ln -s /usr/lib/libXm.so.4.0.1 libXm.so.4
ln -s /usr/lib/libXm.so.4.0.1 libXm.so

ln -s /usr/lib/libUil.so.4.0.1 libUil.so.4
ln -s /usr/lib/libUil.so.3.0.2 libUil.so.3
ln -s /usr/lib/libUil.so.4.0.1 libUil.so

ln -s /usr/lib/libMrm.so.4.0.1 libMrm.so.4
ln -s /usr/lib/libMrm.so.3.0.2 libMrm.so.3
ln -s /usr/lib/libMrm.so.4.0.1 libMrm.so


-----

At this point,I still got the error: FRM-92101

Of course, the software is still looking for libXm.so.2, but I had not yet created the link it.  

As root:

cd /usr/X11R6/lib

ln -s /usr/lib/libMrm.so.3.0.2 libMrm.so.2

ln -s /usr/lib/libUil.so.3.0.2 libUil.so.2

ln -s /usr/lib/libXm.so.3.0.2 libXm.so.2


-----------

Try again. It works. In the sense that I can get a login form.



However, when I try logging in as sysadmin, OPERATIONS, or APPS, I now get another error:

APP-FND-01542:
The applications servers is not authorized to access this database.

Are these not the right users to login with? If so, when do the errors ever stop? If not, what are the right users to login with?   Please leave a comment.


---------------

Useful Links:

Test whether Java is working in the web browser.
http://java.com/en/download/testjava.jsp

Installing Oracle E-Business 12.1.1 on Oracle Enterprise Linux 5.4 64-bit
http://www.oracle-developer.com/installing_oracle_r12_rhel5_64bit.html


Installing Oracle E-Business 12.1.1 on Oracle Enterprise Linux 5.4 64-bit
http://www.pythian.com/news/1265/installing-oracle-r12-ebs-in-my-living-room/


Oracle® Fusion Middleware Release Notes
11g Release 1 (11.1.1) for Linux x86 E10133-25
44 Oracle Forms
http://docs.oracle.com/cd/E23549_01/relnotes.1111/e10133/forms.htm


No comments:

Post a Comment