History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: SM-1428
Type: Bug Bug
Status: Open Open
Priority: Major Major
Assignee: Unassigned
Reporter: perry
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
ServiceMix

Messages sent from Apache MQ to IBM MQ gives error MQJMS1013

Created: 26/Jun/08 01:48 PM   Updated: 24/Jul/08 09:59 PM
Component/s: servicemix-jms
Affects Version/s: 3.3
Fix Version/s: 3.3

Time Tracking:
Not Specified

File Attachments:
  Size
File interop2.tar 2008-06-26 01:48 PM perry 150 kb
Environment: Linux red hat running servicemix 3.3.0.10

Regression: Broken Unit Test


 Description  « Hide
I have a standard message that I send from ActiveMQ queue to an endpoint in servicemix.
The servicemix should route to IBM MQ endpoint .

I get the following error
InOnly[
id: ID:192.168.10.104-11ac0fda54c-4:1
status: Active
role: provider
service: {http://servicemix.org/demo/}JmsProvider
endpoint: provider
in: <?xml version="1.0" encoding="UTF-8"?><sample xmlns="http://exmaple.com"><data>
BM MQ Bridge to Active MQ Bridge Message form Lisa - _swdvrh005
</data></sample>
]
javax.jms.JMSException: MQJMS1013: operation invalid whilst session is using asynchronous delivery
at com.ibm.mq.jms.services.ConfigEnvironment.newException(ConfigEnvironment.java:595)
at com.ibm.mq.jms.MQMessageProducer.send(MQMessageProducer.java:1149)
at com.ibm.mq.jms.MQMessageProducer.send(MQMessageProducer.java:1207)
at org.apache.servicemix.jms.multiplexing.MultiplexingProviderProcessor.process(MultiplexingProviderProcessor.java:155)
at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490)
at org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)

<?xml version="1.0" encoding="utf-8"?>
<!--

Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

-->
<beans xmlns="http://xbean.org/schemas/spring/1.0"
xmlns:spring="http://xbean.org/schemas/spring/1.0"
xmlns:sm="http://servicemix.apache.org/config/1.0"
xmlns:foo="http://servicemix.org/demo/"
xmlns:amq="http://activemq.org/config/1.0"
xmlns:saxon="http://servicemix.apache.org/saxon/1.0"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:eip="http://servicemix.apache.org/eip/1.0"
xmlns:jms="http://servicemix.apache.org/jms/1.0">
<bean id="jndi" class="org.apache.xbean.spring.jndi.SpringInitialContextFactory" factory-method="makeInitialContext"
singleton="true" />

<!-- the JBI container -->
<sm:container id="jbi" name="bridge" useMBeanServer="true" createMBeanServer="true">
<!-- Use a SEDA flow + JMS flow for clustering. -->
<sm:flows>
<sm:sedaFlow />
</sm:flows>
<sm:activationSpecs>

<!-- EIP -->
<sm:activationSpec componentName="eipPipelinepoller" service="foo:eipPipelinepoller">
<sm:component>
<eip:component>
<eip:endpoints>
<eip:pipeline service="foo:eipPipelinepoller" endpoint="poller_pipeline">
<eip:transformer>
<eip:exchange-target service="foo:xsltpoller" />
</eip:transformer>
<eip:target>
<eip:exchange-target service="foo:JmsProvider" />
</eip:target>
</eip:pipeline>
</eip:endpoints>
</eip:component>
</sm:component>
</sm:activationSpec>

<!-- Read payload from JMS -->
<sm:activationSpec componentName="JmsConsumer">
<sm:component>
<jms:component>
<jms:endpoints>
<jms:endpoint service="foo:JmsConsumer" endpoint="consumer" role="consumer" defaultMep="http://www.w3.org/2004/08/wsdl/in-only"
targetService="foo:JmsProvider" targetEndpoint="provider" destinationStyle="queue"
jmsProviderDestinationName="CLUSTER.IN" connectionFactory="#connectionFactory" />
</jms:endpoints>
</jms:component>
</sm:component>
</sm:activationSpec>

<sm:activationSpec componentName="xsltpoller">
<sm:component>
<saxon:component>
<saxon:endpoints>
<saxon:xslt service="foo:xsltpoller" endpoint="endpoint" resource="file:../transform_poller.xsl" />
</saxon:endpoints>
</saxon:component>
</sm:component>
</sm:activationSpec>

<sm:activationSpec componentName="JmsProvider">
<sm:component>
<jms:component>
<jms:endpoints>
<jms:endpoint service="foo:JmsProvider" endpoint="provider" role="provider"
destinationStyle="queue" jmsProviderDestinationName="Q_SCR"
connectionFactory="#IBMconnectionFactory" />
</jms:endpoints>
</jms:component>
</sm:component>
</sm:activationSpec>

</sm:activationSpecs>

</sm:container>
<!-- External JMS -->

<amq:connectionFactory id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory" brokerURL="tcp://swdvrh004:61616" />

<bean id="IBMconnectionFactory" 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="QM_SCR" />
<property name="hostName" value="swdvrh067" />
<property name="channel" value="CLIENT.QM_SCR" />
<property name="port" value="1417" />
</bean>

</beans>



 All   Comments   Work Log   Change History   Subversion Commits   FishEye   Crucible      Sort Order: Ascending order - Click to sort in descending order
Gert Vanthienen - 26/Jun/08 02:11 PM
Perry,

Could you try to either:

  • add processorName="simple" to your <jms:endpoint> (the multiplexing processor you are using by default is optimized for ActiveMQ)
  • use the new <jms:provider/> endpoint instead of the older <jms:endpoint/> – the new one never gave me any trouble when connection to WebSphere MQ

Regards,

Gert


perry - 27/Jun/08 07:38 AM
Gert:

I tried your suggestions.

The first suggestion was not allowing the processorName="simple" as a lot of processing errors were generated.

The second suggestion also had processing errors when servicemix was started.

I believe you had the connectivity to IBM MQ working in your previous posts.

Can you just look at the config I posted in the message earlier.

If you can send me your working version, probably it will help.

regards

-Perry