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
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to