On one of our production deployments using Weblogic 10.3.0, we are getting the following exception when trying to connect to a JMS queue on one of the managed server. We are able to access the queues on other managed servers(there are 4 managed servers in all).
javax.naming.NameNotFoundException: Unable to resolve 'weblogic.messaging.dispatcher.S:+<ManagedServerName>+'. Resolved 'weblogic.messaging.dispatcher'; remaining name 'S+:<ManagedServerName>+'
This error message starts coming up after the server has been up for few days. Once this exception comes up, we cannot fetch messages from the JMS queues on the affected managed server. We have a java process that connects to the managed servers and picks up the JMS messages and sends it to external systems. The problem occurs when connecting from this process. I tried to find the queue depth by writing a simple java program that uses a JMS queue browser. The program fails too.
I checked the JNDI tree to find if a binding exists with 'weblogic.messaging.dispatcher.S:+<ManagedServerName>+'. To my surprise, the binding exists. Just wondering what could possibly cause this issue.
My JMS settings are like follows:
I have four JMS servers, each targeted to the corresponding managed server.
I have distributed JMS queues that are targetted onto the cluster.
I have normal JMS queues that are targeted onto the corresponding managed server.
The connection factory is targeted onto the cluster.
The problem happens with my normal JMS queues on one of the managed servers.
Please let me know if I am going wrong with my setup. Note that this issue happens after the server is running for few days. Upon restarting the affected server, I am able to connect to the JMS queues and pick-up messages.
I can think of two potential reasons why this error might come up. The first is that your WebLogic Cluster might be failing so that JNDI name-space replication between cluster servers has at least partially stopped working. The second is that you're working with multiple domains but there are duplicated names configured between domains. For the former, look for Warnings in your logs and also consult the general documentation for cluster troubleshooting information. As for the latter, consult the best practices section of the JMS configuration guide.