Author:
Pournima

Message:
I am using EJB 3 MDB, websphere MQ V5.3and RAD V8 combination,have defined 
activation specification.I am sending one message in request MQ(REQUEST_QUEUE) 
then it is heating DB get some data and putting this response in another queue 
(RESPONSE_QUEUE),i am trying to read this RESPONCE_QUEUE through java code but 
getting time out exception as below.Code of send and receive is also attached 
below.

*Is this version related issue of web sphere MQ (As I am using MQ-V5.3)? OR Am 
I missing some code in java? OR Any setting in RAD8 server required?*

0000001e TimeoutManage I   WTRN0006W: Transaction 
000001368307B819000000060C169F2488E5D793A026BBCB5982901AB3984096B231C220000001368307B819000000060C169F2488E5D793A026BBCB5982901AB3984096B231C22000000001
 has timed out after 120 seconds.
4/5/12 20:35:02:968 IST 0000001e TimeoutManage I   WTRN0124I: When the timeout 
occurred the thread with which the transaction is, or was most recently, 
associated was ThreadWebContainer : 0,5,main. The stack trace of this thread 
when the timeout occurred was: 
        java.net.SocketInputStream.socketRead0(Native Method)
        java.net.SocketInputStream.read(SocketInputStream.java:140)
        
com.ibm.mq.jmqi.remote.internal.RemoteTCPConnection.receive(RemoteTCPConnection.java:1419)
        
com.ibm.mq.jmqi.remote.internal.RemoteHconn.receiveBuffer(RemoteHconn.java:1365)
        
com.ibm.mq.jmqi.remote.internal.RemoteHconn.receiveOneTSH(RemoteHconn.java:1329)
        
com.ibm.mq.jmqi.remote.internal.RemoteHconn.receive1stGetReplyTSH(RemoteHconn.java:1820)
        
com.ibm.mq.jmqi.remote.internal.RemoteFAP.jmqiGetMessageWithProps(RemoteFAP.java:7883)
        com.ibm.mq.jmqi.remote.internal.RemoteFAP.MQGET(RemoteFAP.java:7652)
        
com.ibm.msg.client.wmq.v6.base.internal.MQSESSION.MQGET(MQSESSION.java:1009)
        
com.ibm.msg.client.wmq.v6.base.internal.MQQueue.getMsg2Int(MQQueue.java:1353)
        
com.ibm.msg.client.wmq.v6.base.internal.MQQueue.getMsg2(MQQueue.java:994)
        
com.ibm.msg.client.wmq.v6.jms.internal.MQMessageConsumer.getMessage(MQMessageConsumer.java:2751)
        
com.ibm.msg.client.wmq.v6.jms.internal.MQMessageConsumer.receiveInternal(MQMessageConsumer.java:4622)
        
com.ibm.msg.client.wmq.v6.jms.internal.MQMessageConsumer.receive(MQMessageConsumer.java:4091)
        
com.ibm.msg.client.jms.internal.JmsMessageConsumerImpl.receiveInboundMessage(JmsMessageConsumerImpl.java:780)
        
com.ibm.msg.client.jms.internal.JmsMessageConsumerImpl.receive(JmsMessageConsumerImpl.java:348)
        com.ibm.mq.jms.MQMessageConsumer.receive(MQMessageConsumer.java:228)
        
com.ibm.ejs.jms.JMSMessageConsumerHandle.receive(JMSMessageConsumerHandle.java:445)
        
com.hbcbsnj.odmf.app.client.DocumentSearchManagerBean.receiveMessage(DocumentSearchManagerBean.java:209)
        
com.hbcbsnj.odmf.app.client.DocumentSearchManagerBean.sendReceive(DocumentSearchManagerBean.java:143)


*Code of send method :*

private String sendMessage(QueueSession session, String requestMessageString) 
throws Exception {
        QueueSender sender = null;
        Queue queue = null;
        InitialContext initialContext = new InitialContext();
        try {
        
                queue = (Queue) 
initialContext.lookup(ApplicationProperties.EOB_REQUEST_Q);
                sender = session.createSender(queue);
                sender.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
                TextMessage message = session.createTextMessage();
                message.setJMSMessageID(MESSAGE_ID);
                message.setText(requestMessageString);
                sender.send(message);
                String messageID = message.getJMSMessageID();
                return messageID;
        } catch (JMSException e) {
                throw e;
        } finally {
                if (sender != null) {
                        sender.close();
                }
        }
}

*code of receive method :*

private String receiveMessage(QueueSession session, String messageSelector) 
throws Exception {
        QueueReceiver receiver = null;
        InitialContext initialContext = new InitialContext();
        Queue queue = null;
        try {

                messageSelector = new StringBuffer().append("JMSCorrelationID = 
\'").append(messageSelector).append("\'").toString();
                queue = (Queue) 
initialContext.lookup(ODMFApplicationProperties.EOB_REQUEST_Q);
                receiver = session.createReceiver(queue, messageSelector);
                TextMessage msg = (TextMessage) receiver.receive(); // Getting 
time out exception here
                String returnString = msg.getText();
                return returnString;
        
}catch (JMSException e) {
                throw e;
        } finally {
                if (receiver != null) {
                        receiver.close();
                }
        }
}

To respond to this post, please click the following link:
<http://www.ibm.com/developerworks/forums/thread.jspa?messageID=14813578>

____________________________________
Unsubscribe via the "binocular" icon on the web

Reply via email to