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:


Tuesday Nov 11, 2014

How can I fix java.lang.OutOfMemoryError?

OutOfMemoryError (OOM) is a common issue that we can see in any WebLogic Server environment.

Here are some guidelines you can follow to troubleshoot the issue:

1. Have you tried increasing the heap size?

   This is the first thing you need to try to tune your environment, the issue will probably be fixed.
   Here is a nice Document that explains memory management for hotspot JDK (it mostly apply to recent versions):

2. Have you tried  the latest JDK of your version?

   Even you are using a certified JDK, older versions have several bugs that have been found along the years.
   These bugs can be related to GC algorithms, so trying to tune your JVM in an old version, you might not get the expected result.
   Also, the latest releases include several security fixes you might wnat to have in your environment.
   You can find all Oracle Java releases (including JRockit) here:
   All Java SE Downloads on MOS (Doc ID 1439822.1)

3. Are you using 32 or 64  bit JVM ?

   If your environment is certified with 64 bit JVM, always consider using 64 bit JVM for scalability.

4. What JVM and Operating System are you using?  

   Depending on if you are using Hotspot/JRockit/ other JDK  and also depending on your OS you can define the way you collect, gclogs, heapdumps, histograms.
   FAQ: JRockit and java.lang.OutOfMemoryError related issues (Doc ID 1290251.1)
   How to Troubleshoot Java Heap Memory Leak - "java.lang.OutOfMemoryError: Java heap space" (Doc ID 1236373.1)
   How to collect a heap dump?  -

5. I getting stuck threads and OutOfMemoryError, What to troubleshoot first?

  You need to troubleshoot the OOM first. Frequent GC can cause huge GC pauses, then stuck threads can occur.
   Resources for Garbage Collection Performance Tuning (Doc ID 1572109.1)

6. I am getting a JVM crash and OutOfMemoryError, What to troubleshoot first?

   You need to troubleshoot the OOM. After an OOM, the JVM is unstable, so a JVM crash can occur.
   Oracle WebLogic Server Support Pattern: Troubleshooting Out of Memory and Memory Leak Problems (Doc ID 877172.1)


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)

Monday Sep 01, 2014

Where can I get the latest version of Java 6?

You can download the latest public versions here:

"Oracle offers updates to Java 6 only for customers who have purchased Java support or have Oracle products that require Java 6."

Non public versions of all Oracle Java releases, including Oracle JDK (a.k.a Hotspot) and JRockit, here:
All Java SE Downloads on MOS (Doc ID 1439822.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.


Tuesday Aug 05, 2014

How do I specify certicom ciphersuite in weblogic 11g?

I recently have a customer that was getting the error below when trying to specify certicom ciphersuite:

<SEVERE> <Fatal error in node manager server>
java.lang.IllegalArgumentException: SSL_RSA_WITH_RC4_128_MD5 Unsupported.
        at com.certicom.tls.interfaceimpl.TLSSystem.setEnabledCipherSuites(Unknown Source)
        at Source)
        at weblogic.nodemanager.server.SSLListener.init(
        at weblogic.nodemanager.server.NMServer.start(
        at weblogic.nodemanager.server.NMServer.main(
        at weblogic.NodeManager.main( 
Ciphersuites were not picked when setting the ciphersuites using config.xml


The error was gone setting the arguments in JAVA_OPTIONS,TLS_RSA_WITH_RC4_128_MD5

The above works for JSSE as well.

I hope this helps.

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:

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