You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by pratibhaG <pr...@in2m.com> on 2008/06/17 14:37:38 UTC

Wire-Tap error in Servicemix-Camel 3.2.2 with JMS BC

I have servicemix-camel 3.2.2 snapshot in my ServiceMix 3.2.1 instance. I
have following message flow for a use case:

Http-BC(consumer) --> Camel-SU --> Bean SU
                                              |
                                              |
                           JMS Provider -BC(topic)
                                              |                                        
                                  JMS Consumer-BC(topic)

Camel-SU implements wire-tap pattern. Sends message to JMS Provider and then
to Bean SU. JMS Provider put message on a topic which is subscribed by JMS
Consumer.

Camel-context file is as follows:

     <route>
         <from
uri="jbi:service:http://servicemix.in2m.com/operations/updateprofile/routingService"/>
         <to
uri="jbi:service:http://servicemix.in2m.com/operations/updateprofile/JMSProviderService"/>
         <to
uri="jbi:service:http://servicemix.in2m.com/operations/updateprofile/BeanService?mep=in-out"/>
      </route>

Since I configured ServiceMix with Servicemix-Camel 3.2.2 snapshot it is
giving following errors:

DEBUG - DeliveryChannelImpl            - Waiting for exchange
ID:192.168.2.53-11a921db1dd-10:0 (1492721) to be answered in
DeliveryChannel{servicemix-camel} from sendSync
DEBUG - SedaQueue                      -
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@f4b681 dequeued
exchange: InOut[
 id: ID:192.168.2.53-11a921db1dd-10:0
 status: Active
 role: provider
 service:
{http://servicemix.in2m.com/operations/updateprofile}routingService
 endpoint: camel192-168-2-53-11a921db1dd-20-1
 in: <?xml version="1.0" encoding="UTF-8"?><request
xmlns="http://www.finicity.com">
       <updateUserProfile>
               <lastName>shaggy</lastName>
               <firstName>sha</firstName>
               <userName>testhh</userName>
               <emailAddress>pj@.l</emailAddress>
       </updateUserProfile>
</request>
]
DEBUG - CamelJbiComponent              - Received exchange: status: Active,
role: provider
DEBUG - CamelJbiComponent              - Retrieved correlation id: null
DEBUG - CamelJbiEndpoint               - Received exchange: InOut[
 id: ID:192.168.2.53-11a921db1dd-10:0
 status: Active
 role: provider
 service:
{http://servicemix.in2m.com/operations/updateprofile}routingService
 endpoint: camel192-168-2-53-11a921db1dd-20-1
 in: <?xml version="1.0" encoding="UTF-8"?><request
xmlns="http://www.finicity.com">
       <updateUserProfile>
               <lastName>shaggy</lastName>
               <firstName>sha</firstName>
               <userName>testhh</userName>
               <emailAddress>pj@.l</emailAddress>
       </updateUserProfile>
</request>
]
DEBUG - DeliveryChannelImpl            - SendSync
ID:192.168.2.53-11a921db1dd-10:1 in DeliveryChannel{servicemix-camel}
DEBUG - SedaFlow                       - Called Flow send
DEBUG - DeliveryChannelImpl            - Waiting for exchange
ID:192.168.2.53-11a921db1dd-10:1 (19ca1fb) to be answered in
DeliveryChannel{servicemix-camel} from sendSync
DEBUG - SedaQueue                      -
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1064398 dequeued
exchange: InOut[
 id: ID:192.168.2.53-11a921db1dd-10:1
 status: Active
 role: provider
 service:
{http://servicemix.in2m.com/operations/updateprofile}JMSProviderService
 endpoint: JMSProviderEndpoint
 in: <?xml version="1.0" encoding="UTF-8"?><request
xmlns="http://www.finicity.com">
       <updateUserProfile>
               <lastName>shaggy</lastName>
               <firstName>sha</firstName>
               <userName>testhh</userName>
               <emailAddress>pj@.l</emailAddress>
       </updateUserProfile>
</request>
]
DEBUG - JmsComponent                   - Received exchange: status: Active,
role: provider
DEBUG - JmsComponent                   - Retrieved correlation id: null
DEBUG - JmsTemplate                    - Executing callback on JMS Session
[ActiveMQSession {id=ID:rsandeep-48368-1213632160967-3:63:1,started=true}]
ERROR - JmsComponent                   - Error processing exchange InOut[
 id: ID:192.168.2.53-11a921db1dd-10:1
 status: Active
 role: provider
 service:
{http://servicemix.in2m.com/operations/updateprofile}JMSProviderService
 endpoint: JMSProviderEndpoint
 in: <?xml version="1.0" encoding="UTF-8"?><request
xmlns="http://www.finicity.com">
       <updateUserProfile>
               <lastName>shaggy</lastName>
               <firstName>sha</firstName>
               <userName>testhh</userName>
               <emailAddress>pj@.l</emailAddress>
       </updateUserProfile>
</request>
 out: null
]
java.lang.IllegalStateException: Unable to choose replyDestination for
exchange InOut[
 id: ID:192.168.2.53-11a921db1dd-10:1
 status: Active
 role: provider
 service:
{http://servicemix.in2m.com/operations/updateprofile}JMSProviderService
 endpoint: JMSProviderEndpoint
 in: <?xml version="1.0" encoding="UTF-8"?><request
xmlns="http://www.finicity.com">
       <updateUserProfile>
               <lastName>shaggy</lastName>
               <firstName>sha</firstName>
               <userName>testhh</userName>
               <emailAddress>pj@.l</emailAddress>
       </updateUserProfile>
</request>
 out: null
]
       at
org.apache.servicemix.jms.endpoints.JmsProviderEndpoint.getReplyDestination(JmsProviderEndpoint.java:462)
       at
org.apache.servicemix.jms.endpoints.JmsProviderEndpoint.processInOutInSession(JmsProviderEndpoint.java:399)
       at
org.apache.servicemix.jms.endpoints.JmsProviderEndpoint$2.doInJms(JmsProviderEndpoint.java:379)
       at
org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:428)
       at
org.apache.servicemix.jms.endpoints.JmsProviderEndpoint.processInOut(JmsProviderEndpoint.java:390)
       at
org.apache.servicemix.common.endpoints.ProviderEndpoint.process(ProviderEndpoint.java:109)
       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)
       at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
       at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:170)
       at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
       at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
       at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
       at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
       at java.lang.Thread.run(Thread.java:595)

But this same configuration works with Servicemix-Camel-3.2.1 version. Is
this a problem with using Servicemix-Camel3.2.2 snapshot with ServiceMix
3.2.1 or a bug in component itself ?

Please help.
-- 
View this message in context: http://www.nabble.com/Wire-Tap-error-in-Servicemix-Camel-3.2.2-with-JMS-BC-tp17896309p17896309.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: Wire-Tap error in Servicemix-Camel 3.2.2 with JMS BC

Posted by Gert Vanthienen <ge...@skynet.be>.
Pratibha

Looking at the code example in your other thread, you rather want an 
in-only exchange to go to the JMS endpoint (it's a wiretap, isn't it?).  
Be sure to rebuild servicemix-camel locally because you need the fix I 
pointed you to in the other thread.  After that, just append 
?mep=in-only to the jbi:service URI you use for addressing the 
JMSProviderService to force ServiceMix to use an in-only MEP.

Gert

Bruce Snyder wrote:
> On Tue, Jun 17, 2008 at 9:53 PM, pratibhaG <pr...@in2m.com> wrote:
>   
>> JMS provider xbean.xml configuration file.
>>
>> <beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
>>       xmlns:hello="http://servicemix.in2m.com/operations/updateprofile"
>>       xmlns:amq="http://activemq.org/config/1.0">
>>
>>    <jms:provider service="hello:JMSProviderService"
>>                  endpoint="JMSProviderEndpoint"
>>                                  pubSubDomain="true"
>>                  destinationName="updateUserProfileTopic"
>>                  connectionFactory="#connectionFactory"/>
>>
>>    <amq:connectionFactory id="connectionFactory"
>> brokerURL="tcp://localhost:61616" />
>>
>> </beans>
>>     
>
> As I suspected, there is no replyDestinationName attribute. This is
> the reason for the error/exception because it's needed when dealing
> with in-out MEPs.
>
> Bruce
>   


Re: Wire-Tap error in Servicemix-Camel 3.2.2 with JMS BC

Posted by Bruce Snyder <br...@gmail.com>.
On Tue, Jun 17, 2008 at 9:53 PM, pratibhaG <pr...@in2m.com> wrote:
>
> JMS provider xbean.xml configuration file.
>
> <beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
>       xmlns:hello="http://servicemix.in2m.com/operations/updateprofile"
>       xmlns:amq="http://activemq.org/config/1.0">
>
>    <jms:provider service="hello:JMSProviderService"
>                  endpoint="JMSProviderEndpoint"
>                                  pubSubDomain="true"
>                  destinationName="updateUserProfileTopic"
>                  connectionFactory="#connectionFactory"/>
>
>    <amq:connectionFactory id="connectionFactory"
> brokerURL="tcp://localhost:61616" />
>
> </beans>

As I suspected, there is no replyDestinationName attribute. This is
the reason for the error/exception because it's needed when dealing
with in-out MEPs.

Bruce
-- 
perl -e 'print unpack("u30","D0G)U8V4\@4VYY9&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*"
);'

Apache ActiveMQ - http://activemq.org/
Apache Camel - http://activemq.org/camel/
Apache ServiceMix - http://servicemix.org/

Blog: http://bruceblog.org/

Re: Wire-Tap error in Servicemix-Camel 3.2.2 with JMS BC

Posted by pratibhaG <pr...@in2m.com>.
JMS provider xbean.xml configuration file.

<beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
       xmlns:hello="http://servicemix.in2m.com/operations/updateprofile"
       xmlns:amq="http://activemq.org/config/1.0">

    <jms:provider service="hello:JMSProviderService"
                  endpoint="JMSProviderEndpoint"
				  pubSubDomain="true"
                  destinationName="updateUserProfileTopic"
                  connectionFactory="#connectionFactory"/>

    <amq:connectionFactory id="connectionFactory"
brokerURL="tcp://localhost:61616" />

</beans>
-- 
View this message in context: http://www.nabble.com/Wire-Tap-error-in-Servicemix-Camel-3.2.2-with-JMS-BC-tp17896309p17959265.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: Wire-Tap error in Servicemix-Camel 3.2.2 with JMS BC

Posted by Bruce Snyder <br...@gmail.com>.
On Tue, Jun 17, 2008 at 6:37 AM, pratibhaG <pr...@in2m.com> wrote:
>
> I have servicemix-camel 3.2.2 snapshot in my ServiceMix 3.2.1 instance. I
> have following message flow for a use case:
>
> Http-BC(consumer) --> Camel-SU --> Bean SU
>                                              |
>                                              |
>                           JMS Provider -BC(topic)
>                                              |
>                                  JMS Consumer-BC(topic)
>
> Camel-SU implements wire-tap pattern. Sends message to JMS Provider and then
> to Bean SU. JMS Provider put message on a topic which is subscribed by JMS
> Consumer.
>
> Camel-context file is as follows:
>
>     <route>
>         <from
> uri="jbi:service:http://servicemix.in2m.com/operations/updateprofile/routingService"/>
>         <to
> uri="jbi:service:http://servicemix.in2m.com/operations/updateprofile/JMSProviderService"/>
>         <to
> uri="jbi:service:http://servicemix.in2m.com/operations/updateprofile/BeanService?mep=in-out"/>
>      </route>
>
> Since I configured ServiceMix with Servicemix-Camel 3.2.2 snapshot it is
> giving following errors:
>
> DEBUG - DeliveryChannelImpl            - Waiting for exchange
> ID:192.168.2.53-11a921db1dd-10:0 (1492721) to be answered in
> DeliveryChannel{servicemix-camel} from sendSync
> DEBUG - SedaQueue                      -
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@f4b681 dequeued
> exchange: InOut[
>  id: ID:192.168.2.53-11a921db1dd-10:0
>  status: Active
>  role: provider
>  service:
> {http://servicemix.in2m.com/operations/updateprofile}routingService
>  endpoint: camel192-168-2-53-11a921db1dd-20-1
>  in: <?xml version="1.0" encoding="UTF-8"?><request
> xmlns="http://www.finicity.com">
>       <updateUserProfile>
>               <lastName>shaggy</lastName>
>               <firstName>sha</firstName>
>               <userName>testhh</userName>
>               <emailAddress>pj@.l</emailAddress>
>       </updateUserProfile>
> </request>
> ]
> DEBUG - CamelJbiComponent              - Received exchange: status: Active,
> role: provider
> DEBUG - CamelJbiComponent              - Retrieved correlation id: null
> DEBUG - CamelJbiEndpoint               - Received exchange: InOut[
>  id: ID:192.168.2.53-11a921db1dd-10:0
>  status: Active
>  role: provider
>  service:
> {http://servicemix.in2m.com/operations/updateprofile}routingService
>  endpoint: camel192-168-2-53-11a921db1dd-20-1
>  in: <?xml version="1.0" encoding="UTF-8"?><request
> xmlns="http://www.finicity.com">
>       <updateUserProfile>
>               <lastName>shaggy</lastName>
>               <firstName>sha</firstName>
>               <userName>testhh</userName>
>               <emailAddress>pj@.l</emailAddress>
>       </updateUserProfile>
> </request>
> ]
> DEBUG - DeliveryChannelImpl            - SendSync
> ID:192.168.2.53-11a921db1dd-10:1 in DeliveryChannel{servicemix-camel}
> DEBUG - SedaFlow                       - Called Flow send
> DEBUG - DeliveryChannelImpl            - Waiting for exchange
> ID:192.168.2.53-11a921db1dd-10:1 (19ca1fb) to be answered in
> DeliveryChannel{servicemix-camel} from sendSync
> DEBUG - SedaQueue                      -
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1064398 dequeued
> exchange: InOut[
>  id: ID:192.168.2.53-11a921db1dd-10:1
>  status: Active
>  role: provider
>  service:
> {http://servicemix.in2m.com/operations/updateprofile}JMSProviderService
>  endpoint: JMSProviderEndpoint
>  in: <?xml version="1.0" encoding="UTF-8"?><request
> xmlns="http://www.finicity.com">
>       <updateUserProfile>
>               <lastName>shaggy</lastName>
>               <firstName>sha</firstName>
>               <userName>testhh</userName>
>               <emailAddress>pj@.l</emailAddress>
>       </updateUserProfile>
> </request>
> ]
> DEBUG - JmsComponent                   - Received exchange: status: Active,
> role: provider
> DEBUG - JmsComponent                   - Retrieved correlation id: null
> DEBUG - JmsTemplate                    - Executing callback on JMS Session
> [ActiveMQSession {id=ID:rsandeep-48368-1213632160967-3:63:1,started=true}]
> ERROR - JmsComponent                   - Error processing exchange InOut[
>  id: ID:192.168.2.53-11a921db1dd-10:1
>  status: Active
>  role: provider
>  service:
> {http://servicemix.in2m.com/operations/updateprofile}JMSProviderService
>  endpoint: JMSProviderEndpoint
>  in: <?xml version="1.0" encoding="UTF-8"?><request
> xmlns="http://www.finicity.com">
>       <updateUserProfile>
>               <lastName>shaggy</lastName>
>               <firstName>sha</firstName>
>               <userName>testhh</userName>
>               <emailAddress>pj@.l</emailAddress>
>       </updateUserProfile>
> </request>
>  out: null
> ]
> java.lang.IllegalStateException: Unable to choose replyDestination for
> exchange InOut[
>  id: ID:192.168.2.53-11a921db1dd-10:1
>  status: Active
>  role: provider
>  service:
> {http://servicemix.in2m.com/operations/updateprofile}JMSProviderService
>  endpoint: JMSProviderEndpoint
>  in: <?xml version="1.0" encoding="UTF-8"?><request
> xmlns="http://www.finicity.com">
>       <updateUserProfile>
>               <lastName>shaggy</lastName>
>               <firstName>sha</firstName>
>               <userName>testhh</userName>
>               <emailAddress>pj@.l</emailAddress>
>       </updateUserProfile>
> </request>
>  out: null
> ]
>       at
> org.apache.servicemix.jms.endpoints.JmsProviderEndpoint.getReplyDestination(JmsProviderEndpoint.java:462)

It looks to me like the JMS provider is trying to send the response
and it has no replyDestination. Please post JMS provider's xbean.xml
configuration file.

Bruce
-- 
perl -e 'print unpack("u30","D0G)U8V4\@4VYY9&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*"
);'

Apache ActiveMQ - http://activemq.org/
Apache Camel - http://activemq.org/camel/
Apache ServiceMix - http://servicemix.org/

Blog: http://bruceblog.org/