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...@finicity.com> on 2010/03/22 10:13:21 UTC
Jms consumer not consuming a message from Topic
Hi all,
I have an example which was working in smx3.3.1. the example use to put a
message in jms topic and the consumer use to consume it. To fix some other
problem I replaced my servicemix-camel-2009.01-installer.zip component with
servicemix-camel-2009.02-installer.zip. now with this change my jms consumer
is not picking up the message in topic.
the jms configuration like this:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
xmlns:up="http://servicemix.in2m.com/operations/updateprofile"
xmlns:amq="http://activemq.org/config/1.0">
<jms:consumer service="up:DirectorConsumerService"
endpoint="directorConsumerEndpoint"
targetService="up:DirectorConsumerService"
clientId="Director"
pubSubDomain="true"
subscriptionDurable="true"
destinationName="updateUserProfileTopic"
connectionFactory="#connectionFactory"
messageSelector="userPrincipals NOT LIKE '%director%'"
cacheLevel="2"
transacted="jms"/>
<jms:consumer service="up:PortalConsumerService"
endpoint="portalConsumerEndpoint"
targetService="up:PortalConsumerService"
pubSubDomain="true"
clientId="Portal"
subscriptionDurable="true"
destinationName="updateUserProfileTopic"
connectionFactory="#connectionFactory"
messageSelector="userPrincipals NOT LIKE '%portal%'"
cacheLevel="2"
transacted="jms"/>
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:servicemix.properties" />
</bean>
<amq:connectionFactory id="connectionFactory" brokerURL="${activemq.url}"
/>
</beans>
and :
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
xmlns:up="http://servicemix.in2m.com/operations/updateprofile"
xmlns:amq="http://activemq.org/config/1.0">
<jms:provider service="up:JMSProviderService"
endpoint="JMSProviderEndpoint"
pubSubDomain="true"
destinationName="updateUserProfileTopic"
connectionFactory="#connectionFactory"
marshaler="#jmsMarshaler"/>
<bean id="jmsMarshaler"
class="com.in2m.servicemix.common.marshaller.jms.DefaultJmsProviderMarshaler"/>
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:servicemix.properties" />
</bean>
<amq:connectionFactory id="connectionFactory" brokerURL="${activemq.url}"
/>
</beans>
The camel configuration is like this:
package com.in2m.servicemix.operations.updateprofile;
import org.apache.camel.builder.RouteBuilder;
import com.in2m.servicemix.common.errorhandling.CustomDelegateProcessor;
import com.in2m.servicemix.common.errorhandling.ErrorConstants;
public class MessageRouting extends RouteBuilder {
public void configure() {
//errorHandler(deadLetterChannel().maximumRedeliveryDelay(3600000L));
onException(java.lang.Throwable.class)
.process(new CustomDelegateProcessor(ErrorConstants.SYSTEM_ERROR));
onException(java.net.SocketException.class)
.maximumRedeliveries(5)
.useExponentialBackOff()
.redeliveryDelay(300000L)
.backOffMultiplier(2.0)
.maximumRedeliveryDelay(3600000L)
.process(new CustomDelegateProcessor(ErrorConstants.SOCKET_ERROR));
from("jbi:service:http://servicemix.in2m.com/operations/updateprofile/RoutingService")
.to("jbi:service:http://servicemix.in2m.com/operations/updateprofile/JMSProviderService?mep=in-only")
.to("jbi:service:http://servicemix.in2m.com/operations/updateprofile/ResponseGeneratorService?mep=in-out");
from("jbi:service:http://servicemix.in2m.com/operations/updateprofile/DirectorConsumerService")
.setHeader(ErrorConstants.APPLICATION_NAME,constant("DirectorService"))
.process(new CustomDelegateProcessor())
.to("jbi:service:http://servicemix.in2m.com/operations/updateprofile/DirectorService?mep=in-out");
from("jbi:service:http://servicemix.in2m.com/operations/updateprofile/PortalConsumerService")
.setHeader(ErrorConstants.APPLICATION_NAME,constant("PortalService"))
.process(new CustomDelegateProcessor())
.to("jbi:service:http://servicemix.in2m.com/operations/updateprofile/PortalService?mep=in-out");
}
}
Please provide some help
Thanks,
Pratibha
--
View this message in context: http://old.nabble.com/Jms-consumer-not-consuming-a-message-from-Topic-tp27983805p27983805.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.
Re: Jms consumer not consuming a message from Topic
Posted by pratibhaG <pr...@finicity.com>.
I have tried removing the selector. Still the message is not consumed. I see
the message in topic. As i see it in my ACTIVEMQ_MSGS table with container
named topic://updateUserProfileTopic.
--
View this message in context: http://old.nabble.com/Jms-consumer-not-consuming-a-message-from-Topic-tp27983805p27985972.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.
Re: Jms consumer not consuming a message from Topic
Posted by Gert Vanthienen <ge...@gmail.com>.
Pratibha,
Are you sure the message is being put on the topic with the new
version of Camel? You can verify this by connecting to ServiceMix
using JMX and then looking at the topic stats on the MBeans tab.
Since the only thing you changed is the Camel route, that's the most
likely scenario, I guess.
Another option would be that the message being put in the topic no
longer has the right headers/properties to match your selectors. For
testing purposes, could you try to remove the selector on one of the
subscriptions? If it start working again then for that consumer, we
have to look into why the required properties are missing and how to
add them again.
Regards,
Gert Vanthienen
------------------------
Open Source SOA: http://fusesource.com
Blog: http://gertvanthienen.blogspot.com/
On 22 March 2010 10:13, pratibhaG <pr...@finicity.com> wrote:
>
> Hi all,
>
> I have an example which was working in smx3.3.1. the example use to put a
> message in jms topic and the consumer use to consume it. To fix some other
> problem I replaced my servicemix-camel-2009.01-installer.zip component with
> servicemix-camel-2009.02-installer.zip. now with this change my jms consumer
> is not picking up the message in topic.
>
> the jms configuration like this:
>
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
> xmlns:up="http://servicemix.in2m.com/operations/updateprofile"
> xmlns:amq="http://activemq.org/config/1.0">
>
> <jms:consumer service="up:DirectorConsumerService"
> endpoint="directorConsumerEndpoint"
> targetService="up:DirectorConsumerService"
> clientId="Director"
> pubSubDomain="true"
> subscriptionDurable="true"
> destinationName="updateUserProfileTopic"
> connectionFactory="#connectionFactory"
> messageSelector="userPrincipals NOT LIKE '%director%'"
> cacheLevel="2"
> transacted="jms"/>
>
> <jms:consumer service="up:PortalConsumerService"
> endpoint="portalConsumerEndpoint"
> targetService="up:PortalConsumerService"
> pubSubDomain="true"
> clientId="Portal"
> subscriptionDurable="true"
> destinationName="updateUserProfileTopic"
> connectionFactory="#connectionFactory"
> messageSelector="userPrincipals NOT LIKE '%portal%'"
> cacheLevel="2"
> transacted="jms"/>
>
> <bean id="propertyConfigurer"
> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
> <property name="location" value="classpath:servicemix.properties" />
> </bean>
>
> <amq:connectionFactory id="connectionFactory" brokerURL="${activemq.url}"
> />
>
> </beans>
>
>
>
>
> and :
>
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
> xmlns:up="http://servicemix.in2m.com/operations/updateprofile"
> xmlns:amq="http://activemq.org/config/1.0">
>
> <jms:provider service="up:JMSProviderService"
> endpoint="JMSProviderEndpoint"
> pubSubDomain="true"
> destinationName="updateUserProfileTopic"
> connectionFactory="#connectionFactory"
> marshaler="#jmsMarshaler"/>
>
> <bean id="jmsMarshaler"
> class="com.in2m.servicemix.common.marshaller.jms.DefaultJmsProviderMarshaler"/>
>
> <bean id="propertyConfigurer"
> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
> <property name="location" value="classpath:servicemix.properties" />
> </bean>
>
> <amq:connectionFactory id="connectionFactory" brokerURL="${activemq.url}"
> />
>
> </beans>
>
>
> The camel configuration is like this:
> package com.in2m.servicemix.operations.updateprofile;
>
> import org.apache.camel.builder.RouteBuilder;
>
> import com.in2m.servicemix.common.errorhandling.CustomDelegateProcessor;
> import com.in2m.servicemix.common.errorhandling.ErrorConstants;
>
>
> public class MessageRouting extends RouteBuilder {
>
> public void configure() {
>
>
>
> //errorHandler(deadLetterChannel().maximumRedeliveryDelay(3600000L));
>
> onException(java.lang.Throwable.class)
> .process(new CustomDelegateProcessor(ErrorConstants.SYSTEM_ERROR));
>
> onException(java.net.SocketException.class)
> .maximumRedeliveries(5)
> .useExponentialBackOff()
> .redeliveryDelay(300000L)
> .backOffMultiplier(2.0)
> .maximumRedeliveryDelay(3600000L)
> .process(new CustomDelegateProcessor(ErrorConstants.SOCKET_ERROR));
>
>
> from("jbi:service:http://servicemix.in2m.com/operations/updateprofile/RoutingService")
>
> .to("jbi:service:http://servicemix.in2m.com/operations/updateprofile/JMSProviderService?mep=in-only")
>
> .to("jbi:service:http://servicemix.in2m.com/operations/updateprofile/ResponseGeneratorService?mep=in-out");
>
>
> from("jbi:service:http://servicemix.in2m.com/operations/updateprofile/DirectorConsumerService")
>
> .setHeader(ErrorConstants.APPLICATION_NAME,constant("DirectorService"))
> .process(new CustomDelegateProcessor())
>
> .to("jbi:service:http://servicemix.in2m.com/operations/updateprofile/DirectorService?mep=in-out");
>
>
> from("jbi:service:http://servicemix.in2m.com/operations/updateprofile/PortalConsumerService")
>
> .setHeader(ErrorConstants.APPLICATION_NAME,constant("PortalService"))
> .process(new CustomDelegateProcessor())
>
> .to("jbi:service:http://servicemix.in2m.com/operations/updateprofile/PortalService?mep=in-out");
> }
> }
>
>
> Please provide some help
>
> Thanks,
> Pratibha
>
> --
> View this message in context: http://old.nabble.com/Jms-consumer-not-consuming-a-message-from-Topic-tp27983805p27983805.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>
Re: Jms consumer not consuming a message from Topic
Posted by gnanda <gi...@phaseforward.com>.
Hi Pratibha,
Did your below scenario worked
I have a scenario where I have a jms:consumer->camel router
(recipientlist)-> external webservice
my jms:consumer is defined as below
<jms:consumer service="cc2:JMSConsumerService"
endpoint="jmsEndpoint"
targetService="cc2:JMSConsumerService"
targetEndpoint="jmsEndpoint"
destinationName="ccq2"
cacheLevel="2"
transacted="jms"
concurrentConsumers="5"
connectionFactory="#connectionFactory" />
my camel context is as below
<bean id="routerBean" class="com.pf.camelconsumer.MyRouterBuilder">
</bean>
<camelContext id="camel"
xmlns="http://activemq.apache.org/camel/schema/spring" trace="true">
<routeBuilderRef ref="routerBean"/>
</camelContext>
And my router is as below
from("jbi:service:http://com.pf.camelconsumer2/JMSConsumerService2").bean(myBean,"setLocationUrI")..recipientList(header(HttpProducer.HTTP_URI)).bean(myBean,"printResponse");
I am getting below exception. I am sure you could help me with this error.
Or if you could provide me with your camel_context that I can use as a
reference will be very helpful
2010-04-26 16:21:44,036 | 16:21:44,036 | WARN | tenerContainer-4 | NMR
| .servicemix.nmr.core.ChannelImpl 293 | Error processing exchange [
id: 409f4622-d3ff-4195-8ca6-08f645748c55
mep: InOnly
status: Active
role: Consumer
target:
PropertyMatchingReference[{SERVICE_NAME={http://com.pf.camelconsumer2}JMSConsumerService}]
properties: [
org.apache.servicemix.senderEndpoint =
{http://com.pf.camelconsumer2}JMSConsumerService:jmsEndpoint
javax.jbi.messaging.MessageExchange =
org.apache.servicemix.jbi.runtime.impl.InOnlyImpl@bc3476
javax.jbi.messaging.sendSync = true
javax.jbi.InterfaceName = <null>
javax.jbi.transaction.jta = <null>
org.apache.servicemix.correlationId =
409f4622-d3ff-4195-8ca6-08f645748c55
javax.jbi.ServiceName =
{http://com.pf.camelconsumer2}JMSConsumerService
]
In: [
content: org.apache.servicemix.soap.util.stax.StaxSource@185d83
]
]
org.apache.servicemix.nmr.api.ServiceMixException: Could not dispatch
exchange. No matching endpoints.
at
org.apache.servicemix.nmr.core.FlowRegistryImpl.dispatch(FlowRegistryImpl.java:110)
at
pratibhaG wrote:
>
> Hi all,
>
> I have an example which was working in smx3.3.1. the example use to put a
> message in jms topic and the consumer use to consume it. To fix some other
> problem I replaced my servicemix-camel-2009.01-installer.zip component
> with servicemix-camel-2009.02-installer.zip. now with this change my jms
> consumer is not picking up the message in topic.
>
> the jms configuration like this:
>
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
> xmlns:up="http://servicemix.in2m.com/operations/updateprofile"
> xmlns:amq="http://activemq.org/config/1.0">
>
> <jms:consumer service="up:DirectorConsumerService"
> endpoint="directorConsumerEndpoint"
> targetService="up:DirectorConsumerService"
> clientId="Director"
> pubSubDomain="true"
> subscriptionDurable="true"
> destinationName="updateUserProfileTopic"
> connectionFactory="#connectionFactory"
> messageSelector="userPrincipals NOT LIKE '%director%'"
> cacheLevel="2"
> transacted="jms"/>
>
> <jms:consumer service="up:PortalConsumerService"
> endpoint="portalConsumerEndpoint"
> targetService="up:PortalConsumerService"
> pubSubDomain="true"
> clientId="Portal"
> subscriptionDurable="true"
> destinationName="updateUserProfileTopic"
> connectionFactory="#connectionFactory"
> messageSelector="userPrincipals NOT LIKE '%portal%'"
> cacheLevel="2"
> transacted="jms"/>
>
> <bean id="propertyConfigurer"
> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
> <property name="location" value="classpath:servicemix.properties" />
> </bean>
>
> <amq:connectionFactory id="connectionFactory"
> brokerURL="${activemq.url}" />
>
> </beans>
>
>
>
>
> and :
>
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
> xmlns:up="http://servicemix.in2m.com/operations/updateprofile"
> xmlns:amq="http://activemq.org/config/1.0">
>
> <jms:provider service="up:JMSProviderService"
> endpoint="JMSProviderEndpoint"
> pubSubDomain="true"
> destinationName="updateUserProfileTopic"
> connectionFactory="#connectionFactory"
> marshaler="#jmsMarshaler"/>
>
> <bean id="jmsMarshaler"
> class="com.in2m.servicemix.common.marshaller.jms.DefaultJmsProviderMarshaler"/>
>
> <bean id="propertyConfigurer"
> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
> <property name="location" value="classpath:servicemix.properties" />
> </bean>
>
> <amq:connectionFactory id="connectionFactory"
> brokerURL="${activemq.url}" />
>
> </beans>
>
>
> The camel configuration is like this:
> package com.in2m.servicemix.operations.updateprofile;
>
> import org.apache.camel.builder.RouteBuilder;
>
> import com.in2m.servicemix.common.errorhandling.CustomDelegateProcessor;
> import com.in2m.servicemix.common.errorhandling.ErrorConstants;
>
>
> public class MessageRouting extends RouteBuilder {
>
> public void configure() {
>
>
>
> //errorHandler(deadLetterChannel().maximumRedeliveryDelay(3600000L));
>
> onException(java.lang.Throwable.class)
> .process(new
> CustomDelegateProcessor(ErrorConstants.SYSTEM_ERROR));
>
> onException(java.net.SocketException.class)
> .maximumRedeliveries(5)
> .useExponentialBackOff()
> .redeliveryDelay(300000L)
> .backOffMultiplier(2.0)
> .maximumRedeliveryDelay(3600000L)
> .process(new
> CustomDelegateProcessor(ErrorConstants.SOCKET_ERROR));
>
>
> from("jbi:service:http://servicemix.in2m.com/operations/updateprofile/RoutingService")
>
> .to("jbi:service:http://servicemix.in2m.com/operations/updateprofile/JMSProviderService?mep=in-only")
>
> .to("jbi:service:http://servicemix.in2m.com/operations/updateprofile/ResponseGeneratorService?mep=in-out");
>
>
> from("jbi:service:http://servicemix.in2m.com/operations/updateprofile/DirectorConsumerService")
>
> .setHeader(ErrorConstants.APPLICATION_NAME,constant("DirectorService"))
> .process(new CustomDelegateProcessor())
>
> .to("jbi:service:http://servicemix.in2m.com/operations/updateprofile/DirectorService?mep=in-out");
>
>
> from("jbi:service:http://servicemix.in2m.com/operations/updateprofile/PortalConsumerService")
>
> .setHeader(ErrorConstants.APPLICATION_NAME,constant("PortalService"))
> .process(new CustomDelegateProcessor())
>
> .to("jbi:service:http://servicemix.in2m.com/operations/updateprofile/PortalService?mep=in-out");
> }
> }
>
>
> Please provide some help
>
> Thanks,
> Pratibha
>
>
--
View this message in context: http://old.nabble.com/Jms-consumer-not-consuming-a-message-from-Topic-tp27983805p28369869.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.