Monday Oct 19, 2015

java.lang.AssertionError: Could not obtain the localhost address in a new 12c install

If you get the error below in a new weblogic server install:

<19-10-2015 16:51:13 CLT> <Critical> <WebLogicServer> <BEA-000386> <Server subsystem failed. Reason: A MultiException has 2 exceptions.  They are:
1. java.lang.AssertionError: Could not obtain the localhost address. The most likely cause is an error in the network configuration of this machine.
2. java.lang.IllegalStateException: Unable to perform operation: post construct on weblogic.rjvm.RJVMService
    at org.jvnet.hk2.internal.ClazzCreator.create(
    at org.jvnet.hk2.internal.SystemDescriptor.create(
    at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(
    at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(
    at org.jvnet.hk2.internal.Utilities.createService(
    Truncated. see log file for complete stacktrace
Caused By: java.lang.AssertionError: Could not obtain the localhost address. The most likely cause is an error in the network configuration of this machine.
    at weblogic.rjvm.JVMID.setLocalID(
    at weblogic.rjvm.RJVMService.setJVMID(
    Truncated. see log file for complete stacktrace
Caused By: lmestre-linux: lmestre-linux: unknown error
    at weblogic.rjvm.JVMID.setLocalID(
    Truncated. see log file for complete stacktrace
Caused By: lmestre-linux: unknown error
    at Method)
    Truncated. see log file for complete stacktrace
The WebLogic Server encountered a critical failure
Reason: Assertion violated
Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class weblogic.protocol.ServerIdentityManager$Initializer
    at weblogic.protocol.ServerIdentityManager.findServerIdentity(
    at weblogic.protocol.URLManager.findAdministrationURL(
    at weblogic.server.ServerLifeCycleRuntime.getLifeCycleOperationsRemote(
    at weblogic.t3.srvr.ServerRuntime.sendStateToAdminServer(
    at weblogic.t3.srvr.ServerRuntime.updateRunState(
    at weblogic.t3.srvr.T3Srvr.setState(
    at weblogic.Server.main(

Make sure your network configuration is fine.

This was my hosts configuration:

[lmestre@lmestre-linux bin]$ more /etc/hosts   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6  

After I added my hostname at the end of /etc/hosts, the issue is gone

[lmestre@lmestre-linux bin]$ uname -a
Linux lmestre-linux 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 13:35:02 PST 2013 x86_64 x86_64 x86_64 GNU/Linux

[lmestre@lmestre-linux bin]$ more /etc/hosts   localhost localhost.localdomain localhost4 localhost4.localdomain4 lmestre-linux
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 lmestre-linux


Sunday Jun 21, 2015

How to Stop Node Manager?

According to oracle documentation, you can just close the command shell where your started it.


But, you might be starting it in Unix/Linux environments as background process, then you will need to kill node manager process to stop it.


ps -ef | grep -i nodemanager

After you have identified the process id, you can try:

kill <PID>

Alternatively, if the process is not responding, you can try:

kill -9 <PID>


Friday Dec 26, 2014

JSSE and WebLogic Server in WebLogic Server 11g

 Recently, several customers want to migrate to JSSE, because they would like to have stronger cipher suites.

If you have WebLogic Server 10.3.2 or earlier versions, you will need to upgrade your Weblogic Server to the latest 11g.
There is no supported way to enable JSSE in these versions.

To enable JSSE in weblogic server 10.3.3 and later, you can add a property to JAVA_OPTIONS as described below: (WLS 10.3.3)
    -Dweblogic.ssl.JSSEEnabled=true (WLS 10.3.4 and later)

Additional Details here:

Please notice that as this is a new feature, there are several recommended patches for known issues:
For WebLogic Server 10.3.3:
SHA2 Certificate Throws Log Message "Ignoring The Trusted CA Certificate" (Doc ID 1538488.1)

For WebLogic Server 10.3.5 and 10.3.6 make sure you are using the latest PSU delivered:
Oracle WebLogic Server Patch Set Update Fixed Bugs List (Doc ID 1544306.1)
Oracle WebLogic Server Patch Set Update Fixed Bugs List (Doc ID 1935048.1)   


Tuesday Dec 02, 2014

Why does my Weblogic Server takes a Long Time to Start?

Here are some possible causes:

1. If you are in Linux/Solaris Operating System, you can take a look to the document below:

   How to diagnose a Linux entropy issue on WebLogic Server instances? (Doc ID 1574979.1)

   Adding or to JAVA_OPTIONS should help you to solve the issue.

   Low entropy can affect WLS, install an other processes, references:
   Domain Creation Hung at 70% on Linux/Solaris Machines (Doc ID 1378733.1)

2. If you are in a Solaris SPARC platform, there is a hardware limitation on this architecture, you can review the document below:

   Slow startup of WebLogic Servers on SPARC Series: T1000, T2000, T5xx0 and T3-* (Doc ID 1456488.1)    

3. Huge/complex deployments might contribute to long start-up

4. If none of the above options help, you can try collecting thread dumps e.g:

   kill -3 <PID>
   wait 10 secs
   kill -3 <PID>
   wait 10 secs
   kill -3 <PID>

   This will help us to understand why start  up is slow.
   Additional information here:


Wednesday Oct 08, 2014

Error Correction Policy and Lifetime Support for Weblogic Server

When you have a support contract you might want to know if you can request new patches.
Then, you might be interested in reading this doc.
Error Correction Support Dates for Oracle WebLogic Server (Doc ID 950131.1)

The document below explains the support stage you might have e.g: Premier Support, or  Extended
Support, and what are your support dates.


Friday Sep 19, 2014

How to collect a heap dump?

Here are the most common ways to do it. You will use these if you have OutOfMemoryException (OOM) and you would like to take a look to the issue to determine the root cause.

1. For Hotspot/Oracle JDK, you need to add the following parameters to JAVA_OPTIONS


2. Similarly for JRockit, you need to the JAVA_OPTIONS below:

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=C:\myApp\hprof-dumps

But, lets say that you are experiencing OOM, but you still don't determine the root cause of the issue.
You might probably need to restart as soon as you see performance issues or even better daily.
Then, #1 and #2 won't help.

You can use a tool like the ones below:
3. Jmap, e.g.:

<JAVA_HOME>/bin/jmap -dump:format=b,file=c:\temp\heap.hprof <PID>

4. Or if you have already a core file and you would like to have a heap dump as well, you can also get a heap dump:

jmap  -dump:format=b,file=heap.hprof $JAVA_HOME/bin/java /home/lmestre/core.27436

5. Or even jrcmd for JRockit:
%JROCKIT_HOME%\bin\jrcmd <pid of target JVM> hprofdump filename=<full path name to the target dump file name>

6. If you have a Windows Service, you can check This My Oracle Support Doc:
How Do I Get A Java Heap Dump When Running Weblogic As A Windows Service? (Hotspot JVM) (Doc ID 1264826.1)

To analyse the heap dump, you can use Eclipse MAT.
Here are some helpful documents to trobleshoot OOM:

Oracle WebLogic Server Support Pattern: Troubleshooting Out of Memory and Memory Leak Problems (Doc ID 877172.1)
ORACLE JRockit and Memory Consumption - Memory Leaks In Java Heap (Doc ID 1137239.1)

Tuesday Aug 19, 2014

How to start WebLogic Server using default scripts?

There are a few common issues reported when starting weblogic server using scripts.
1. User is not able to access weblogic console.
2. After a few days/hours weblogic server stops abruptly.
3. When user closes putty, they are not able to connect to weblogic server anymore.
4. When user closes windows command prompt, they are not able to connect to weblogic server anymore.
5. Weblogic is started using startManagedWebLogic.cmd/

By default, WebLogic Server does not run in background mode, so after you close the window the process finishes as well.

In Linux/Unix based platforms, you need to use:

nohup ./ <Server> <URL> &

In Windows platforms, you need to start Managed Servers using Windows Services:

How to Install MS Windows Services For FMW 11g WebLogic Domain Admin and Managed Servers (Doc ID 1060058.1)

There a few more reasons that could cause similar symptoms, like JVM crash, signals sent by the Operating System, and many other reasons. 
But the above steps is the first one to start.


Wednesday Jul 30, 2014

Where can I Download Weblogic Server?

The answer is very simple, please go the the link below and select the version you want to install.

It is a different story if you are adding one instance of your legacy systems, those versions are not available in the link above. You probably have the installer already.

However, if you don't have it, you can request the media as described in this My Oracle Support document: 

Requesting Physical Shipment or Download URL for Software Media (Doc ID 1071023.1)

** you need to be logged to your My Oracle Support account to access the link. 


Tuesday Jul 08, 2014

How to install Oracle JDK 7 in Solaris SPARC?

You might say that this could be unrelated but as WebLogic Server is supported in Solaris, I though it was a nice post for the Solaris users.

If you want to install Oracle JDK in most of the platforms, you just need to download the installer, un-compress it and run it.

The answer might be tricky for some of us not used to Solaris SPARC installers.

1. Download your JDK here:

e.g: download: 


 2. Just copy the 2 files to one folder:


3. un compress both files in the same folder

tar fxvz jdk-7u60-solaris-sparc.tar.gz
tar fxvz jdk-7u60-solaris-sparcv9.tar.gz

4. change to the directory

cd jdk1.7.0_60/bin

5. Enjoy your new Oracle JDK

./java -d64 -version  

That will do the trick!

Remember, if possible try using the latest JDK update you have available, so you can take advantage of the bugs and security fixes that are included in the latest releases.



Wednesday Jun 25, 2014

How to fix weblogic.socket.MaxMessageSizeExceededException when using weblogic standalone client?

MaxMessageSizeExceededException might be a known issue in weblogic server, but sometimes it can be tricky.

If you are using a weblogic standalone client like wlthint3client.jar you might hit MaxMessageSizeExceededException.

If you still see the exact error after setting MaxMessageSize in the Administration Console in Protocols->General, you might be hitting this issue.

weblogic.socket.MaxMessageSizeExceededException: Incoming message of size: '10000080' bytes exceeds
 the configured maximum of: '10000000' bytes for protocol: 't3'

Try  setting the value programatically in your java code e.g:

System.setProperty("weblogic.MaxMessageSize", "300000000"); 

You can also set the value in your JAVA_OPTIONS -Dweblogic.MaxMessageSize=300000000


Sometimes you still can see the same error after set MaxMessageSize in the Administration Console in Protocols->General, but you see the parameter being picked:

weblogic.socket.MaxMessageSizeExceededException: Incoming message of size: '30000080' bytes exceeds the 
configured maximum of: '30000000' bytes for protocol: 't3'

In these cases, you need to investigate why you have these huge messages along your environment. You can review a tcpdump to research further.


Thursday Jun 05, 2014

Where are the values of java.library.path being set?

This one could be a WebLogic Server question, but this post is general for any java environment.

We were getting  at the very beginning  java library path something like this:


So, the question was:

Where WebLogic Server is setting java.library.path?

I never found the answer, so why don't we try to try to answer

Where the JVM is setting java.library.path?

public class LibraryPathPrinter {

   public static void main(String[] args) {
       String javaLibraryPath= System.getProperty("java.library.path");
       System.out.println("java.library.path "+javaLibraryPath );


after a simple


and then an easy

java LibraryPathPrinter


The program printed something like this

java.library.path  /home/lmestre/jdk1.6/jre/lib/amd64/server:/home/lmestre/jdk1.6/jre/lib/amd64:/home/lmestre/jdk1.6/jre/../lib/amd64

So the JVM was the culprit.

Monday May 26, 2014

How to create a JMS durable subscriber in WebLogic Server?

WebLogic Server Provides a set of examples that are very helpful to get started with Weblogic Server

Here you can check how to install the examples:

After you have installed the examples, you can find the example you want to review, in this case TopicReceive, here:


To review details of the specific example, you can open:


To create a Durable Subscriber, you can just set the client ID  and invoke createDurableSubscriber instead of calling createSubscriber, i.e.:

   tconFactory = (TopicConnectionFactory)
    tcon = tconFactory.createTopicConnection();
    //Set Client ID for this Durable Subscriber
    tsession = tcon.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
    topic = (Topic)
    // Create Durable Subscription
    tsubscriber = tsession.createDurableSubscriber(topic, "Test");


You can read more about this here:

Tuesday May 06, 2014

How to delete a JDBC Store?

If you see the message "Skipping unexpected null message encountered on store boot", you will need to recreate your JDBC store, because it got corrupted.

You will see a message like this in the weblogic server log:
<Warning> <Messaging> <BEA-282013> <Skipping unexpected null message encountered on store boot, [ sequence=4862 queue=12 name=MyModule!MyQueue state=0 deliveryCount=2 ]>

Steps to fix the issue:
1. Make sure managed server is not running

2.  Delete the corrupted JDBC store because messages are corrupted.

See Managing JDBC Store Tables

If you have provided the prefix MY when you created your JDBC store, your table is named MYWLStore, otherwise, it is just named WLStore

To drop the table, you can use the option below or simply drop it using a database tool:

$ echo "drop MYWLStore;" > drop.ddl
$ cd <YourDomain>/bin
$. ./
  **Notice the . before ./
$ java utils.Schema jdbc:weblogic:oracle:DEMO weblogic.jdbc.oci.Driver -u user1 -p foobar \
  -verbose drop.ddl

3. Start managed server. The store table will be recreated when managed server is started


Monday Apr 21, 2014

How to monitor JMS Queue counts using JConsole ?

The most common way to monitor your JMS resources is by using weblogic console, e.g.:

You can also use WLST

If you like JConsole, here is the trick:

1. Set your environment
   (Linux) . ./
   (Windows) setDomainEnv.cmd

2. Invoke jconsole using the arguments below    

jconsole,type,Type,j2eeType,name,Name -debug

3. See messages counts as follows:

Related to the JMSServer
JMSServerRuntime > <MyJMSServer> > <MyWebLogicServer>  > Attributes > MessagesCurrentCount

Related to the a JMS Queue:
JMSDestinationRuntime > <MyQueueJNDIName>  >MyWebLogicServer > MyJMSServer > Attributes


Monday Apr 07, 2014

How to debug a WebLogic Server Windows Service?

Debugging WebLogic Server Windows Services can be a hard time. Sometimes it is difficult to collect debug information and in other cases, you can't even start it.

So here is my super hero "beasvc -debug"!

You can try :
beasvc -debug "Windows Service Name"

That will really show you the real error when you are not even able to start your windows service.


You can read more information about installing weblogic server as windows service in this My Oracle Support(MOS) documents(*):

How to Install MS Windows Services For FMW 11g WebLogic Domain Admin and Managed Servers (Doc ID 1060058.1)

Other useful documents that are useful when you need to collect debug information when you are using a Windows Service
How Do I Get A Java Heap Dump When Running Weblogic As A Windows Service? (Hotspot JVM) (Doc ID 1264826.1)

Enabling stdout Logging and Generating Thread Dumps When Running WebLogic Server as a Windows service (Doc ID 858746.1)

How to connect to a remote JRockit Java Virtual Machine using JRockit Mission Control (Doc ID 1075329.1)

How to Monitor using JRockit Mission Control a WebLogic Server instance on top of JRockit JVM running as a Windows service (Doc ID 1329897.1)

(*) Links will work if you are logged to MOS.


My name is Luz Mestre. I work as Principal Technical Support Engineer at Oracle Support. I'll post here the most interesting challenges I have in my daily work. The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.


« November 2015