Hi! I have set up a web service that communicates with a qpid queue using AMQP and Camel. I use WSDL to define the service and spring to set up the connection.
I call the service in a web application that is deployed on JBoss AS 7. My spring application context look like this <import resource="classpath:META-INF/cxf/cxf.xml" /> <import resource="classpath:META-INF/cxf/cxf-extension-http.xml" /> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> <import resource="classpath:META-INF/cxf/cxf-extension-camel.xml" /> <bean id="jmsConnectionFactory" class="org.apache.qpid.client.AMQConnectionFactory"> <constructor-arg index="0" type="java.lang.String" value="amqp://guest:guest@clientid/test?brokerlist='tcp://qpid:5672'" /> </bean> <bean id="iosbroker" class="org.apache.camel.component.amqp.AMQPComponent"> <property name="connectionFactory" ref="jmsConnectionFactory" /> </bean> <bean class="org.apache.camel.component.cxf.transport.CamelTransportFactory"> <property name="bus" ref="cxf" /> <property name="camelContext" ref="camelContext" /> <property name="transportIds"> <list> <value>http://cxf.apache.org/transports/camel</value> </list> </property> </bean> <client id="MyService" xmlns="http://cxf.apache.org/jaxws" xmlns:helloworld="http://service.world.hello.com" serviceName="helloworld:MyService" endpointName="helloworld:MyServiceEndpoint" address="camel://direct:MyService" serviceClass="com.hello.world.service.MyServicePortType"> <features> <logging xmlns="http://cxf.apache.org/core" /> </features> </client> <camelContext id="camelContext" xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="direct:MyService" /> <to uri="iosbroker:queue:my_queue" /> </route> </camelContext> The service is working fine and I get what I am suppose to get from the queue. The problem is that after I call the service (with a successful result) I can see, in the jboss log, that a dispatcher connection thread has been created and is polling the queue every second (and my qpid queue crash after a while). If I add the property "receiveTimeout" to org.apache.camel.component.amqp.AMQPComponent I can slow it down, but it still keep polling the queue. This is what is repeated every second in the jboss log. 00:00:18,562 DEBUG [org.apache.qpid.transport.Connection] (Camel (camelContext) thread #5 - TemporaryQueueReplyManager[temporary]-1) SEND: [conn:63ca493a] ch=0 id=7254 [S] MessageFlush(destination=1) 00:00:18,563 DEBUG [org.apache.qpid.transport.Connection] (Camel (camelContext) thread #5 - TemporaryQueueReplyManager[temporary]-1) FLUSH: [conn:63ca493a] 00:00:18,564 DEBUG [org.apache.qpid.transport.Session] (Camel (camelContext) thread #5 - TemporaryQueueReplyManager[temporary]-1) ssn:"2528ec27-f351-46a0-bf89-ee020dc13293" sync() 00:00:18,565 DEBUG [org.apache.qpid.transport.Session] (Camel (camelContext) thread #5 - TemporaryQueueReplyManager[temporary]-1) ssn:"2528ec27-f351-46a0-bf89-ee020dc13293" waiting for[7254]: 7251, [Lorg.apache.qpid.transport.Method;@696add0e 00:00:18,565 DEBUG [org.apache.qpid.transport.Connection] (IoReceiver - qpid/127.0.0.1:5672) RECV: [conn:63ca493a] ch=0 SessionCompleted(commands={[1, 7254]}) 00:00:18,568 DEBUG [org.apache.qpid.transport.Session] (IoReceiver - qpid/127.0.0.1:5672) ssn:"2528ec27-f351-46a0-bf89-ee020dc13293" complete(1, 7254) 00:00:18,569 DEBUG [org.apache.qpid.transport.Session] (IoReceiver - qpid/127.0.0.1:5672) ssn:"2528ec27-f351-46a0-bf89-ee020dc13293" commands remaining: 1 00:00:18,571 DEBUG [org.apache.qpid.transport.Connection] (Camel (camelContext) thread #5 - TemporaryQueueReplyManager[temporary]-1) SEND: [conn:63ca493a] ch=0 id=7255 MessageFlow(destination=1, unit=BYTE, value=-1) 00:00:18,572 DEBUG [org.apache.qpid.transport.Connection] (Camel (camelContext) thread #5 - TemporaryQueueReplyManager[temporary]-1) FLUSH: [conn:63ca493a] 00:00:18,573 DEBUG [org.apache.qpid.transport.Connection] (Camel (camelContext) thread #5 - TemporaryQueueReplyManager[temporary]-1) SEND: [conn:63ca493a] ch=0 id=7256 MessageFlow(destination=1, unit=MESSAGE, value=500) 00:00:18,574 DEBUG [org.apache.qpid.transport.Connection] (Camel (camelContext) thread #5 - TemporaryQueueReplyManager[temporary]-1) FLUSH: [conn:63ca493a] 00:00:18,575 DEBUG [org.apache.qpid.client.AMQSession.Dispatcher] (Camel (camelContext) thread #5 - TemporaryQueueReplyManager[temporary]-1) Set Dispatcher Connection Started: Currently Started 00:00:18,576 DEBUG [org.apache.qpid.client.AMQSession.Dispatcher] (Camel (camelContext) thread #5 - TemporaryQueueReplyManager[temporary]-1) Set Dispatcher Connection Started: Currently Started Is this a normal behavior? Shouldn't the thread die after a successful request or is there a way to configure camel so the consumer will stop polling the queue after successful request or timeout? I assume that it's something wrong with my configuration, but I can't find what it is. Best regards, Kristoffer -- View this message in context: http://camel.465427.n5.nabble.com/Problem-with-dispatcher-connection-thread-tp5724434.html Sent from the Camel - Users mailing list archive at Nabble.com.