ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » IBM MQ Java / JMS » JMS message transmission errors

Post new topic  Reply to topic
 JMS message transmission errors « View previous topic :: View next topic » 
Author Message
sudheer
PostPosted: Fri Sep 08, 2006 5:44 pm    Post subject: JMS message transmission errors Reply with quote

Newbie

Joined: 08 Sep 2006
Posts: 5

Hi All,

I have some weird problem. I have JMS client connecting to MQSeries5.3 on AIX. It transmitts and receives messages of all sizes. But when I tried to send message with size falling in range (32250 - 32650) bytes it gives the following exception after writing the message to the queue and when the process tries to disconnect.

linked exception: com.ibm.mq.MQException: MQJE001: Completion Code 2, Reason 2009
java.lang.Exception: javax.jms.JMSException: MQJMS2000: failed to close MQ queue

On the server side the MQ shows

AMQ9208: Error on receive from host xxx.xx.xxx.xx.

EXPLANATION:
An error occurred receiving data from xxx.xx.xxx.xx over TCP/IP. This may be
due to a communications failure.
ACTION:
The return code from the TCP/IP (read) call was 73 (X'49'). Record these values
and tell the systems administrator.

Any ideas?....
Thanks in advance.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Fri Sep 08, 2006 6:57 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

If your patch level is under CSD 11 the best advice we can give you is to upgrade...
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
sudheer
PostPosted: Sat Sep 09, 2006 8:29 am    Post subject: Reply with quote

Newbie

Joined: 08 Sep 2006
Posts: 5

We are on CSD12. I guess it is the latest fix available.
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Sat Sep 09, 2006 8:39 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

Can you be more clear that you can easily send messages that are LARGER than that range?
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
sudheer
PostPosted: Sat Sep 09, 2006 9:01 am    Post subject: Reply with quote

Newbie

Joined: 08 Sep 2006
Posts: 5

Yes I can send messages larger than the range. Our message size is limited to 4 MB and I can send the messages of all sizes except that range.

When I send the message (in range) on the other end the message is received with few bytes as nulls at the end.

I tired even sending the message (in range) with the MQ API's but even they gave the same error. Below is error.

MQJE001: Completion Code 2, Reason 2009
MQJE001: An MQException occurred: Completion Code 2, Reason 2009
MQJE003: IO error transmitting message buffer
MQJE001: Completion Code 2, Reason 2009
MQJE001: An MQException occurred: Completion Code 2, Reason 2009
MQJE003: IO error transmitting message buffer
MQJE001: Completion Code 2, Reason 2009
MQJE001: An MQException occurred: Completion Code 2, Reason 2009
MQJE003: IO error transmitting message buffer
MQJE001: Completion Code 2, Reason 2009
MQJE001: An MQException occurred: Completion Code 2, Reason 2009
MQJE003: IO error transmitting message buffer
MQJE001: An MQException occurred: Completion Code 2, Reason 2009
MQJE003: IO error transmitting message buffer
MQJE001: Completion Code 2, Reason 2009
MQJE001: Completion Code 2, Reason 2019
com.ibm.mq.MQException: MQJE001: Completion Code 2, Reason 2019
at com.ibm.mq.MQManagedObject.close(MQManagedObject.java:400)
at com.ibm.mq.MQQueue.close(MQQueue.java:1720)
Back to top
View user's profile Send private message
sudheer
PostPosted: Sat Sep 09, 2006 9:10 am    Post subject: Reply with quote

Newbie

Joined: 08 Sep 2006
Posts: 5

Here is the code which sends the message.

import javax.jms.JMSException;
import javax.jms.QueueConnection;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.jms.TextMessage;


public class MessageSender {

private MQConnection MQutil;
private QueueConnection connection = null;
private QueueSession session = null;
private QueueSender sender = null;
private TextMessage message;

/**
*
* @throws Exception
*/
public MessageSender() throws Exception {
this.MQutil = new MQConnection();
}

/**
*
* @param CLMmsg
* @param timestamp
* @return
* @throws Exception
*/
public String sendMessage(String CLMmsg, long timestamp) throws Exception {
try {
connect();
this.message = this.session.createTextMessage();
this.message.setJMSReplyTo(MQutil.getOUTQueue());
this.message.setText(CLMmsg);
this.message.setJMSTimestamp(timestamp);
this.sender.send(this.message);
disconnect();
} catch (JMSException e) {
Exception linkedExc = e.getLinkedException();
if (linkedExc != null) {
System.err.println("linked exception: " + linkedExc);
}
throw new Exception(e);
}
return this.message.getJMSMessageID();
}

/**
*
* @throws Exception
*/
public void connect() throws Exception {
this.connection = this.MQutil.getConnection();
this.session = this.connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
this.sender = this.session.createSender(this.MQutil.getINQueue());
}

/**
*
* @throws JMSException
*/
public void disconnect() throws JMSException {
this.sender.close();
this.session.close();
this.connection.close();
}

/**
*
* @return
* @throws Exception
*/
public String getCorrelationId() throws Exception {
return this.message.getJMSMessageID();
}
}
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Sat Sep 09, 2006 11:47 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

You should open a PMR.

Also, you're using "this" a lot, and I don't think it's necessary. maybe this is just a style point, but it looks ugly and confusing to me.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
JasonE
PostPosted: Sat Sep 09, 2006 1:14 pm    Post subject: Reply with quote

Grand Master

Joined: 03 Nov 2003
Posts: 1220
Location: Hursley

Note just to clarify, the important bit about the fixpack (csd) level is for the Java JARs, not the server side - I know you said you are at 12, but just validating that you are talking about the client side.

Are there any fdc;s on the server side. If you are at fixpack 12 with backlevel clients containing the problem I can think of, its quite possible for the channel to be terminated with an FDC.
Back to top
View user's profile Send private message
sudheer
PostPosted: Tue Sep 12, 2006 2:42 pm    Post subject: Reply with quote

Newbie

Joined: 08 Sep 2006
Posts: 5

Here are the steps to trigger the error.

1. Make the targclient to MQ (in JNDI) for the sending queue
2. Send the message falling in 32227 - 32270 bytes range

It will through the error.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » IBM MQ Java / JMS » JMS message transmission errors
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.