[jboss-user] [JBoss Messaging] - Re: JMS Exceptions / Mismatch of JBossSerialization version

imaeses do-not-reply at jboss.com
Fri Mar 23 06:21:15 EDT 2007


Actually, what I said in the previous post is simply not true. Setting socket.check_connection did have an effect, but not the intended one.

The Exception reported doesn't result in any messages being lost. However, in our system it was one of several types of exceptions coming from JBoss Remoting once we installed JBoss Messaging 1.0.1.SP4. The entire system was unusable. That is, the machine the queues were running on ground to a halt.

We had about 80 queues running on a Solaris/SPARC machine with JBoss 4.0.5.GA and the backing MySQL 5.0.x database installed on the same machine. In addition, we had 40 freestanding java programs each of which establishes and caches a QueueConnection. These programs both read from and send messages to queues. These programs are multithreaded but as far as I can tell individual QueueSessions are not being accessed by more than a single thread. QueueConnections were also being established to/from this JBoss to another, remote JBoss instance. Although this setup worked with JBossMQ, it did not with JBoss Messaging.

What we ended up doing is migrating both JBoss and MySQL to another machine. This was a Linux machine running on an Intel processor. We also installed the latest version of JBoss Remoting, which was 2.2.0.GA. The remoting configuration used is the default.

This seems to work. Our conclusion is that somehow JBoss Remoting with our setup doesn't work well on a Solaris/SPARC machine - given the fact that we have no Solaris expertise in house. We also believe that the upgrade to JBoss Remoting 2.2.0.GA helped.

However, we still have problems and they seem to have to do with JBoss Remoting. In the freestanding programs, we encounter the Exception previously reported and also the following:

2007-03-22 18:39:22,169 ERROR [org.jboss.remoting.transport.socket.SocketClientInvoker] Got marshalling exception, exiting
java.net.SocketTimeoutException: Read timed out
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:129)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
        at java.io.FilterInputStream.read(FilterInputStream.java:66)
        at org.jboss.serial.io.JBossObjectInputStream.read(JBossObjectInputStream.java:193)
        at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.readVersion(MicroSocketClientInvoker.java:975)
        at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:567)
        at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:122)
        at org.jboss.remoting.ConnectionValidator.doCheckConnection(ConnectionValidator.java:126)
        at org.jboss.remoting.ConnectionValidator.run(ConnectionValidator.java:195)
        at java.util.TimerThread.mainLoop(Timer.java:512)
        at java.util.TimerThread.run(Timer.java:462)
2007-03-22 18:39:22,233 ERROR [org.jboss.jms.client.container.ConnectionAspect] Caught exception from connection
java.lang.Exception: Could not connect to server!
        at org.jboss.remoting.ConnectionValidator.run(ConnectionValidator.java:201)
        at java.util.TimerThread.mainLoop(Timer.java:512)
        at java.util.TimerThread.run(Timer.java:462)
2007-03-22 18:39:22,234 WARN  [com.rdcompany.sars.brokers.QueueFactory] error on queue/730_5050_MtQueue queue/730_5050_MoQueue queue/730_505
0_SrQueue javax.jms.JMSException: Throwable received from underlying connection
2007-03-22 18:39:22,234 WARN  [com.rdcompany.sars.brokers.QueueFactory] reconnecting!
2007-03-22 18:39:22,292 INFO  [com.rdcompany.sars.brokers.QueueFactory] state changed connected -> reconnect
2007-03-22 18:39:22,292 INFO  [com.rdcompany.sars.brokers.QueueFactory] queueConnection.setExceptionListener

As you can see we have functionality that should reestablish the cached QueueConnection. However, sometimes the program appears to hang on the QueueConnection.close(). In which case we have to kill the program and start it again, which is unacceptable.

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4030986#4030986

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4030986



More information about the jboss-user mailing list