Oracle Fusion Middleware & Application Server

Thursday, November 30, 2017

Oracle Forms & Reports 12.2.1.2.0 in Docker

As Robert Crames and me has developed some times ago a script set to install and configure Oracle Forms & Reports 12.2.1.2.0 completely silent and unattended, the next step was for me to port this all to Docker ;-)


Oracle has a really good GitHub Repository (https://github.com/oracle/docker-images) with several Oracle Products, but no Docker Image for Oracle Forms & Reports :-(

So I spent some time and managed to port our above mentioned script set for Oracle Forms & Reports 12.2.1.2.0 to build a Docker image for Oracle Forms & Reports.

The complete set of Docker build files and a docker-compose sample can be found under my GitHub Repository https://github.com/DirkNachbar/Docker

My solution is mainly based on Oracle Images, but very modified:

  • OracleJava:
    • instead of pulling an oraclelinux:7-slim, I am using an oraclelinux:latest.
    • instead of using an Oracle Server JRE, I am using an Oracle JDK 
  • OracleFMWInfrastructure:
    • within this Image, which is based on the above OracleJava Image, I am installing all required RPM's for Oracle Forms & Reports, eg. motif, compat-libstdc++-33 and so on and implementing the libXm.so fix directly for Oracle Reports
  • OracleFormsReports:
    • this is completely new developed by me. This installs on top of the OracleFMWInfrastructure Image the Oracle Forms & Reports 12.2.1.2.0 Software
    • with a sample docker-compose file you can create a required Oracle Database based on the Oracle Database Image https://github.com/oracle/docker-images/tree/master/OracleDatabase for the Metadata Repository and you can create the Oracle Forms & Reports 12.2.1.2.0 Domain including configuration of an Oracle HTTP Server and an Oracle Reports Server
    • The storage location for the Oracle Database Files will be a volume on your Docker host and also the storage location for the $DOMAIN_HOME of the Oracle Forms & Reports 12.2.1.2.0 Domain will be a volume on your Docker host.
      • With the usage of the volume on your Docker host, you are able to modify all Oracle Forms & Reports configuration files. E.g. formsweb.cfg, rwserver.conf and so on directly on your Docker host
I will regularly update my Repository, next ToDo is to provide Docker Images for Oracle Forms & Reports 12.2.1.3.0


So, feel free to pull my GitHub Repository and play around with my solution ;-) any comments, feature requests are welcome, just drop me a comment here ...

Update 1st December 2017: As I received several questions, if and when Oracle Forms & Reports 12.2.1.3.0 in Docker will be available in my GitHub Repository, I spent some time on it and here we go http://dirknachbar.blogspot.ch/2017/12/oracle-forms-reports-122130-in-docker.html


Tuesday, November 7, 2017

AdminServer under WebLogic 12.2.1.2.0 consumes more than defined -Xmx

In case you are observing that your AdminServer under Oracle WebLogic Server 12.2.1.2.0 consumes a lot more memory than your defined -Xmx size, you may hit the Oracle Bug 25665727.

In order to valid this, you just need to perform following steps, connect to your Server on which is running your WebLogic Server with your AdminServer.

Check the current defined -Xmx size

 ps -ef | grep AdminServer
oracle   12793 12738  0 Nov01 ?        00:23:22 /u00/app/oracle/product/java/current/bin/java -server -Xms768m -Xmx1536m -XX:PermSize=256m -XX:MaxPermSize=1024m -Dweblogic.Name=AdminServer -Djava.security.policy= . . .

Now valid with the top command the current RES size

# top -p <pid from above ps command>
top -p 12793

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
12793 oracle    20   0 9479852 6.187g   9908 S 0.000 19.69  23:22.72 java

As you can see, the RES size is 6.187 GB, which is around 4.6 GB more that the defined -Xmx size after an uptime of around 6 days !!

The next step is to take a heap dump with jmap

# jmap -dump:format=b,file=<file_name>.bin <PID from above ps command>
jmap -dump:format=b,file=AdminServer.bin 12793

Next transfer the AdminServer.bin file to your Desktop and open it with Eclipse Memory Analyzer (Eclipse MAT) https://www.eclipse.org/mat/

Under the option Actions you will find the menu "Duplicate Classes: Detect Classes loaded by multiple class loaders"


Click the menu "Duplicate Classes: Detect Classes loaded by multiple class loaders":


In case you will find a high count of CIE classes (oracle.com.cie.servicetable.impl.*), you are hitting the Bug 25665727.

Just download the Patch 25665727 https://updates.oracle.com/download/25665727.html and apply the Patch to your WebLogic Server Software Home.