Socket closed exception in JBossMQ
vons1234 May 30, 2009 1:19 PMHi,
I am using jboss 4.2.0 and i have couple of MDBs in my application which is bound to queues
Every now and then i am seeing following exception in my server.log
I am running Jboss in cluster mode and we have 2 nodes in cluster.
What could be the problem in JBoss MQ or in my MsgSender code
2009-05-29 23:00:01,166 DEBUG [org.jboss.mq.il.uil2.ServerSocketManagerHandler] Exiting on IOE java.net.SocketException: Socket closed at java.net.SocketInputStream.read(SocketInputStream.java:162) at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) at java.io.BufferedInputStream.read(BufferedInputStream.java:235) at org.jboss.util.stream.NotifyingBufferedInputStream.read(NotifyingBuff eredInputStream.java:79) at java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java :2196) at java.io.ObjectInputStream$BlockDataInputStream.readBlockHeader(Object InputStream.java:2376) at java.io.ObjectInputStream$BlockDataInputStream.refill(ObjectInputStre am.java:2443) at java.io.ObjectInputStream$BlockDataInputStream.read(ObjectInputStream .java:2515) at java.io.ObjectInputStream$BlockDataInputStream.readByte(ObjectInputSt ream.java:2664) at java.io.ObjectInputStream.readByte(ObjectInputStream.java:875) at org.jboss.mq.il.uil2.SocketManager$ReadTask.run(SocketManager.java:31 6) at java.lang.Thread.run(Thread.java:595) 2009-05-29 23:00:01,166 DEBUG [org.jboss.mq.il.uil2.SocketManager] End ReadTask. run 2009-05-29 23:00:01,166 DEBUG [org.jboss.mq.il.uil2.SocketManager] End WriteTask .run
Here is my MsgSender which post message in queue for MDB
public void send(String jndiQueueName, String message)throws NamingException, JMSException, Exception { logger.info("MsgSender Using jndiQueueName:"+jndiQueueName); logger.info("Sening string object:" + message); QueueConnection conn = getQueueConncetion(); QueueSession session = conn.createQueueSession(false,QueueSession.AUTO_ACKNOWLEDGE); Queue que = (Queue) getContext().lookup(jndiQueueName); QueueSender sender = session.createSender(que); TextMessage txtMsg = session.createTextMessage(); txtMsg.setText(message); sender.send(txtMsg); //free all created objects if(sender != null) { sender.close(); } if(session != null) { session.close(); } if(conn != null) { conn.close(); } logger.info("Msg sent successfully"); }