1 Reply Latest reply on Jun 14, 2004 11:46 AM by Dave Kohr

    strange errors with UIL2

    Dave Kohr Newbie

      We're using JBoss 3.2.3 on Windows 2000, with the default Hypersonic SQL persistence. We are trying to get UIL2 to work as the IL for connections to remote destinations (just queues, in our case). So we form connections to remote queues using "UIL2ConnectionFactory", and to local ones with the recommended "java:/ConnectionFactory" that gives you the JVM IL.

      Most of our JMS configuration is the same as the default, except that we totally turned off OIL/OIL2/RMI ILs by taking the files oil-service.xml etc. out of deploy/jms. We did this because we found OIL to be too unstable, and intended not to use it at all in our system.

      We're finding that often on startup, the UIL2 connections to remote queues often (but not always) fail with this error:

      2004-06-14 00:05:30,039 ERROR [org.jboss.mq.il.uil2.SocketManager] Exiting on unexpected error in read task
      java.lang.IllegalArgumentException: Invalid msgType: 0
      at org.jboss.mq.il.uil2.msgs.BaseMsg.createMsg(BaseMsg.java:158)
      at org.jboss.mq.il.uil2.SocketManager$ReadTask.run(SocketManager.java:287)
      at java.lang.Thread.run(Thread.java:534)

      Then onException() for our ExceptionListener for that remote connection gets called.

      This read error seems kind of strange, because this remote connection is used only to send messages, never receive them. I believe the error occurs as soon as we first try to send a message over the connection.

      On the receiving side, there is a JVM IL connection to the destination queue. Could mixing UIL2 and JVM IL cause this kind of problem? Or is it likely something else?

      Any advice will be greatly appreciated. :-)

        • 1. Re: strange errors with UIL2
          Dave Kohr Newbie

          One difference between the cases when the connection does and doesn't work is that I think when it does work, in the destination JVM there is a QueueReceiver and MessageListener for the destination queue, and when it doesn't work there isn't a receiver/listener.