Hi Claus,

The MQ version that we are using is 6.1. 

I thing this is not a restriction in JMS but in IBM MQ itself. I didn't add
this in the first post but the communication is from a JMS client to a non
JMS MQ. Using a destination resolver I was able to add this property on the
destination queue. Please find below the code to add this property to the
destination:

public Destination resolveDestination(Session session, String
destinationName, boolean b)
{
    MQQueue destination =
((MQQueueSession)session).createQueue(destinationName);
    destination.setTargetClient(JMSC.MQJMS_CLIENT_NONJMS_MQ);
    return destination;
}

I think is why the correlation id is being truncated. In our implementation
the queue in MQ must be defined as a Native Queue since the message is
retrieved by a mainframe program. 

Please find below IBM document for writing Java applications that interact
with IBM MQ.

http://www-01.ibm.com/support/docview.wss?uid=pub1sc34659100

Omar


Claus Ibsen-2 wrote:
> 
> Hi
> 
> I spoke to a couple of AMQ committers and they do not recall any
> restrictions etc on the length of the correlation ID in the JMS spec.
> So why would IBM restrict it to only 24 chars?
> 
> Do you know of any such restrictions in the JMS spec?
> 
> And do you have a link to some online IBM docs which specifies the 24
> char length?
> As I would like to add a FAQ entry for Camel.
> 
> I will also create a ticket to allow pluggable UUID generators. So you
> can plugin a more MQ friendly.
> 
> And btw What version of MQ are you using?
> 
> 
> 
> On Tue, May 25, 2010 at 12:49 PM, omarito <omarac...@gmail.com> wrote:
>>
>> The exchange pattern that I am using is InOut in the JMS Endpoint. My
>> route
>> basically recieves a byte[] from a mina endpoin, transform the data,
>> prepare
>> the data, send it to MQ thorugh JMS endpoint, do som postprocessing after
>> receiving the data from MQ and return it back through mina endpoint.
>>
>> <route>
>>    <from ref="minaEndpoint"/>
>>    <transform>
>>        <method bean="transformer" method="transformRequest"/>
>>    </transform>
>>    <bean ref="processor" method="prepare"/>
>>    <to uri="jmsEndpoint:queue:xxxx.xxx.REQUEST?replyTo=xxxx.xxx.RESPONSE"
>> pattern="InOut"/>
>>    <bean ref="processor" method="processResponse"/>
>>    <transform>
>>        <method bean="transformer" method="transformResponse"/>
>>    </transform>
>> </route>
>>
>> After some debuging yesterday I found that the correlationId that the JMS
>> Endpoint creates is 32 characters long  (using UUID a believe!) and the
>> message in the reply queue is 24 characters long. Looking thorugh IBM's
>> documentation the correlationId must be 24 characters long. I believe
>> this
>> is the problem but maybe I am not 100% sure.
>>
>> Thanks!
>> Omar
>>
>>
>> willem.jiang wrote:
>>>
>>> Can I have a look at your camel route configure?
>>> What's your message exchange pattern ?
>>>
>>> Willem
>>> omarito wrote:
>>>> HI to all,
>>>>
>>>> I am having some difficulties getting back the response received on the
>>>> ReplyTo queue from our Websphere MQ Server. Using the MQ explorer I see
>>>> the
>>>> message in the ReplyTo queue but my JMS comsumer is not picking it up.
>>>> Please find below my spring configuration:
>>>>
>>>>     <bean id="jmsEndpoint"
>>>> class="org.apache.camel.component.jms.JmsComponent">
>>>>         <property name="connectionFactory"
>>>> ref="myProxyConnectionFactory"/>
>>>>         <property name="useVersion102" value="true"/>
>>>>         <property name="acknowledgementModeName"
>>>> value="AUTO_ACKNOWLEDGE"/>
>>>>         <property name="camelContext" ref="camelContext"/>
>>>>         <property name="destinationResolver">
>>>>             <bean
>>>> class="com.xxx.xxx.xxx.camel.endpoint.CustomDestinationResolver"/>
>>>>         </property>
>>>>         <property name="transacted" value="true"/>
>>>>         <property name="transactionManager"
>>>> ref="jmsTransactionManager"/>
>>>>     </bean>
>>>>
>>>>     <bean id="jmsTransactionManager"
>>>> class="org.springframework.jms.connection.JmsTransactionManager102">
>>>>         <property name="connectionFactory"
>>>> ref="proxyConnectionFactory"/>
>>>>         <property name="pubSubDomain" value="false"/>
>>>>     </bean>
>>>>
>>>>     <bean id="proxyConnectionFactory"
>>>>
>>>> class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
>>>>         <property name="targetConnectionFactory"
>>>> ref="jmsConnectionFactory"/>
>>>>         <property name="username" value="${jms.endpoint.user}"/>
>>>>         <property name="password" value="${jms.endpoint.password}"/>
>>>>     </bean>
>>>>
>>>>     <bean id="jmsConnectionFactory"
>>>> class="com.ibm.mq.jms.MQQueueConnectionFactory">
>>>>         <property name="transportType">
>>>>             <util:constant
>>>> static-field="com.ibm.mq.jms.JMSC.MQJMS_TP_CLIENT_MQ_TCPIP"/>
>>>>         </property>
>>>>         <property name="queueManager"
>>>> value="${jms.endpoint.queueManager}"/>
>>>>         <property name="channel" value="${jms.endpoint.channel}"/>
>>>>         <property name="hostName" value="${jms.endpoint.host}"/>
>>>>         <property name="port" value="${jms.endpoint.port}"/>
>>>>     </bean>
>>>>
>>>> Any help will be gladly appreciated. Thanks in advance.
>>>
>>>
>>>
>>
>> --
>> View this message in context:
>> http://old.nabble.com/Websphere-MQ-ExchangeTimedOutException-tp28659946p28666889.html
>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>
>>
> 
> 
> 
> -- 
> Claus Ibsen
> Apache Camel Committer
> 
> Author of Camel in Action: http://www.manning.com/ibsen/
> Open Source Integration: http://fusesource.com
> Blog: http://davsclaus.blogspot.com/
> Twitter: http://twitter.com/davsclaus
> 
> 

-- 
View this message in context: 
http://old.nabble.com/Websphere-MQ-ExchangeTimedOutException-tp28659946p28681005.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to