[JBoss Messaging] - MDB deployment causes connection timeout error
by alllle
JBoss 4.0.4GA + Messaging 1.0.1SP2
I created a simple MDB that listen to a topic. When deployed, it all looks okay. But about 30 seconds later after the deployment, the JBoss console dumps out an warning message followed by error stack trace. It seems that the messaging service is trying to close a connection that it thinks has been out for too long. Then it errors out with a "Failed to obtain lock" when trying to close the connection.
The output:
| 14:58:46,340 INFO server.Server - JBoss (MX MicroKernel) [4.0.4.GA (build: CVSTag=JBoss_4_0_4_GA date=200605151000)] Started in 38s:167ms
| 14:59:21,133 WARN connectionmanager.SimpleConnectionManager - A problem has been detected with the connection to remote client 4co2mt-16t2uo-exm8rsfy-1-exm8s4c4-5. It is possible the client has exited without closing its connection(s) or there is a network problem. All connection resources corresponding to that client process will now be removed.
|
| 14:59:21,153 ERROR util.ExceptionUtil - ConsumerEndpoint[-2147483628] close [4co2mt-16t2uo-exm8rsfy-1-exm8t0on-h]
| java.lang.RuntimeException: Failed to obtain lock
| at org.jboss.messaging.core.local.PointToMultipointRouter.remove(PointToMultipointRouter.java:166)
| at org.jboss.messaging.core.local.Topic.remove(Topic.java:126)
| at org.jboss.messaging.core.local.CoreSubscription.disconnect(CoreSubscription.java:111)
| at org.jboss.jms.server.endpoint.ServerConsumerEndpoint.close(ServerConsumerEndpoint.java:360)
| at org.jboss.jms.server.endpoint.ServerConsumerEndpoint.remove(ServerConsumerEndpoint.java:543)
| at org.jboss.jms.server.endpoint.ServerSessionEndpoint.close(ServerSessionEndpoint.java:403)
| at org.jboss.jms.server.endpoint.ServerConnectionEndpoint.close(ServerConnectionEndpoint.java:300)
| at org.jboss.jms.server.connectionmanager.SimpleConnectionManager.handleClientFailure(SimpleConnectionManager.java:158)
| at org.jboss.jms.server.connectionmanager.SimpleConnectionManager.handleConnectionException(SimpleConnectionManager.java:208)
| at org.jboss.remoting.ConnectionNotifier.connectionLost(ConnectionNotifier.java:46)
| at org.jboss.remoting.Lease$LeaseTimerTask.execute(Lease.java:133)
| at org.jboss.util.TimerQueue$TimerTaskLoop.run(TimerQueue.java:181)
| at java.lang.Thread.run(Thread.java:595)
| Caused by: java.lang.InterruptedException
| at EDU.oswego.cs.dl.util.concurrent.WriterPreferenceReadWriteLock$WriterLock.acquire(WriterPreferenceReadWriteLock.java:234)
| at org.jboss.messaging.core.local.PointToMultipointRouter.remove(PointToMultipointRouter.java:161)
| ... 12 more
| 14:59:21,153 ERROR util.ExceptionUtil - SessionEndpoint[-2147483629] close [4co2mt-16t2uo-exm8rsfy-1-exm8t0ox-i]
| org.jboss.jms.util.MessagingJMSException: A failure has occurred during processing of the request. Please consult the server logs for more details. ConsumerEndpoint[-2147483628] close [4co2mt-16t2uo-e
| xm8rsfy-1-exm8t0on-h]
| at org.jboss.jms.util.ExceptionUtil.handleJMSInvocation(ExceptionUtil.java:72)
| at org.jboss.jms.server.endpoint.ServerConsumerEndpoint.close(ServerConsumerEndpoint.java:377)
| at org.jboss.jms.server.endpoint.ServerConsumerEndpoint.remove(ServerConsumerEndpoint.java:543)
| at org.jboss.jms.server.endpoint.ServerSessionEndpoint.close(ServerSessionEndpoint.java:403)
| at org.jboss.jms.server.endpoint.ServerConnectionEndpoint.close(ServerConnectionEndpoint.java:300)
| at org.jboss.jms.server.connectionmanager.SimpleConnectionManager.handleClientFailure(SimpleConnectionManager.java:158)
| at org.jboss.jms.server.connectionmanager.SimpleConnectionManager.handleConnectionException(SimpleConnectionManager.java:208)
| at org.jboss.remoting.ConnectionNotifier.connectionLost(ConnectionNotifier.java:46)
| at org.jboss.remoting.Lease$LeaseTimerTask.execute(Lease.java:133)
| at org.jboss.util.TimerQueue$TimerTaskLoop.run(TimerQueue.java:181)
| at java.lang.Thread.run(Thread.java:595)
|
Note that there is no message delivered published to the topic at all.
Here is the EJB3 MDB I deployed:
| @MessageDriven(
| name = "NotificationMDB",
| activationConfig = {
| @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic"),
| @ActivationConfigProperty(propertyName = "destination", propertyValue = "topic/Notification"),
| @ActivationConfigProperty(propertyName = "user", propertyValue = "user"),
| @ActivationConfigProperty(propertyName = "password", propertyValue = "pass"),
| @ActivationConfigProperty(propertyName = "noLocal", propertyValue = "true") })
| @ResourceAdapter("jms-ra.rar")
| public class NotificationMDB extends BaseServiceBean implements MessageListener {
|
| public void onMessage(Message message) {
| System.out.println("=========\nMDB message received: " + message.toString() + "\n===========");
| }
| }
|
I am not doing anything abnormal. It seems that the messaging code is forcing the connections to be closed after about 30 seconds. It should not be doing it as a topic subscriber or queue consumer may connect to the topic / queue for a fairly long time.
The @ResourceAdaptor annotation I put there does not have any effect on this problem.
I feel this should be fairly basic. Any one who is deploying a MDB would have probably seen it. Please help if you know anything about this.
Thank you.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4009029#4009029
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4009029
17 years, 10 months
[Installation, Configuration & Deployment] - JBoss 3.2.3 failed to start with JDK 1.5 version
by khaleelmys
Hi,
We have JBoss 3.2.3 which is working fine with JDK 1.4.2_04. We want to use JDK 1.5 and when we changed the JDK version to 1.5 the JBoss is failed to start and giving the following error :
Failed to boot JBoss:
javax.management.InstanceNotFoundException: JMImplementation:service=LoaderRepos
itory,name=Default
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(Unknow
n Source)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(Unknown
Source)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(Unknown Source)
at org.jboss.system.server.ServerImpl.initBootLibraries(ServerImpl.java:
499)
at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:335)
at org.jboss.system.server.ServerImpl.start(ServerImpl.java:291)
at org.jboss.Main.boot(Main.java:150)
at org.jboss.Main$1.run(Main.java:395)
at java.lang.Thread.run(Unknown Source)
Is it because JBoss 3.2.3 is not supported with JDK 1.5 ? If so how to solve this problem ? Please reply at the earliest.
Thanks in advance
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4009020#4009020
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4009020
17 years, 10 months