I turned on DEBUG for org.apache.camel.component.jms.
Here is what I see when I send to the temporary queue.
My client is listening on the temporary queue named
ID:mwgk-36105-1265815399399-0:0:1 and you can see from my logging this is
the name I pass to ProducerTemplate.sendBody.
However from the jms component logging, it actually sends to a different
temporary queue named temp-queue://ID:mwgk-33195-1265814473274-2:11:1.
I can see from JConsole that the EnqueueCount on
ID:mwgk-33195-1265814473274-2:11:1 does get incremented. But my subscriber
is not getting any message because camel is sending to a new temporary
queue.
09:23:19,661 | INFO | tenerContainer-1 | SDSSFlightPublisher |
face.service.SDSSFlightPublisher 154 | sending to endpointName =
'activemq:temp:queue:ID:mwgk-36105-1265815399399-0:0:1'
09:23:19,739 | WARN | tenerContainer-1 | faultManagementLifecycleStrategy |
faultManagementLifecycleStrategy 187 | Could not register Endpoint MBean
for uri: activemq://temp:queue:ID:mwgk-36105-1265815399399-0:0:1
org.springframework.jmx.export.metadata.InvalidMetadataException: No
ManagedResource attribute found for class: class
org.apache.camel.component.jms.JmsTemporaryQueueEndpoint
at
org.springframework.jmx.export.assembler.MetadataMBeanInfoAssembler.populateMBeanDescriptor(MetadataMBeanInfoAssembler.java:279)
at
org.springframework.jmx.export.assembler.AbstractMBeanInfoAssembler.getMBeanInfo(AbstractMBeanInfoAssembler.java:69)
at
org.apache.camel.management.DefaultManagementAgent.register(DefaultManagementAgent.java:202)
at
org.apache.camel.management.DefaultManagementAgent.register(DefaultManagementAgent.java:193)
at
org.apache.camel.management.ManagedManagementStrategy.manageNamedObject(ManagedManagementStrategy.java:69)
at
org.apache.camel.management.ManagedManagementStrategy.manageObject(ManagedManagementStrategy.java:62)
at
org.apache.camel.management.DefaultManagementLifecycleStrategy.onEndpointAdd(DefaultManagementLifecycleStrategy.java:185)
at
org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:432)
at
org.apache.camel.impl.DefaultProducerTemplate.resolveMandatoryEndpoint(DefaultProducerTemplate.java:402)
at
org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:116)
at
com.lmco.irad.tfdm.sdssinterface.service.SDSSFlightPublisher.publishNotificationToOneSubscriber(SDSSFlightPublisher.java:155)
at
com.lmco.irad.tfdm.sdssinterface.service.SDSSFlightManager.reconstituteSubscriberID(SDSSFlightManager.java:128)
at
com.lmco.irad.tfdm.sdssinterface.service.SDSSSubscriptionHandler.processSubscriptionRequest(SDSSSubscriptionHandler.java:59)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:195)
at
org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:115)
at
org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:117)
at
org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:83)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:543)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:482)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:451)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:982)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:974)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:876)
at java.lang.Thread.run(Thread.java:619)
09:23:19,747 | DEBUG | tenerContainer-1 | JmsProducer |
pache.camel.impl.DefaultProducer 66 | Starting producer:
Producer[activemq://temp:queue:ID:mwgk-36105-1265815399399-0:0:1]
09:23:19,770 | DEBUG | tenerContainer-1 | msConfiguration$CamelJmsTemplate |
ngframework.jms.core.JmsTemplate 469 | Executing callback on JMS Session:
PooledSession { ActiveMQSession
{id=ID:mwgk-33195-1265814473274-2:11:1,started=false} }
09:23:19,784 | DEBUG | tenerContainer-1 | msConfiguration$CamelJmsTemplate |
msConfiguration$CamelJmsTemplate 280 | Sending JMS message to:
temp-queue://ID:mwgk-33195-1265814473274-2:11:1 with message:
ActiveMQObjectMessage {commandId = 0, responseRequired = false, messageId =
null, originalDestination = null, originalTransactionId = null, producerId =
null, destination = null, transactionId = null, expiration = 0, timestamp =
0, arrival = 0, brokerInTime = 0, brokerOutTime = 0, correlationId = null,
replyTo = null, persistent = false, type = null, priority = 0, groupID =
null, groupSequence = 0, targetConsumerId = null, compressed = false, userID
= null, content = org.apache.activemq.util.byteseque...@1ce2a846,
marshalledProperties = null, dataStructure = null, redeliveryCounter = 0,
size = 0, properties = null, readOnlyProperties = false, readOnlyBody =
false, droppable = false}
Claus Ibsen-2 wrote:
>
> Camel logs before it send the JMS message
>
> if (logger.isDebugEnabled()) {
> logger.debug("Sending JMS message to: " +
> producer.getDestination() + " with message: " + message);
> }
>
> So if you enable DEBUG logging for org.apache.camel.component.jms you
> should see that log line
>
>
>
> On Wed, Feb 10, 2010 at 3:36 PM, ariekenb <[email protected]>
> wrote:
>>
>> Claus -
>>
>> The exception is logged as WARN. No exception is thrown out of the
>> ProducerTemplate.sendBody call however.
>>
>> More importantly, no message is ever actually sent to the TemporaryQueue.
>> The client listening to the TemporaryQueue does not receive any message,
>> and
>> JConsole shows the EnqueueCount for the TemporaryQueue remains at 0.
>>
>> Here is a more complete stack trace showing the error message and log
>> level:
>>
>> 08:30:43,389 | WARN | tenerContainer-1 |
>> faultManagementLifecycleStrategy |
>> faultManagementLifecycleStrategy 187 | Could not register Endpoint MBean
>> for uri: activemq://temp:queue:ID:mwgk-45812-1265812243018-0:0:1
>> org.springframework.jmx.export.metadata.InvalidMetadataException: No
>> ManagedResource attribute found for class: class
>> org.apache.camel.component.jms.JmsTemporaryQueueEndpoint
>> at
>> org.springframework.jmx.export.assembler.MetadataMBeanInfoAssembler.populateMBeanDescriptor(MetadataMBeanInfoAssembler.java:279)
>> at
>> org.springframework.jmx.export.assembler.AbstractMBeanInfoAssembler.getMBeanInfo(AbstractMBeanInfoAssembler.java:69)
>> at
>> org.apache.camel.management.DefaultManagementAgent.register(DefaultManagementAgent.java:202)
>> at
>> org.apache.camel.management.DefaultManagementAgent.register(DefaultManagementAgent.java:193)
>> at
>> org.apache.camel.management.ManagedManagementStrategy.manageNamedObject(ManagedManagementStrategy.java:69)
>> at
>> org.apache.camel.management.ManagedManagementStrategy.manageObject(ManagedManagementStrategy.java:62)
>> at
>> org.apache.camel.management.DefaultManagementLifecycleStrategy.onEndpointAdd(DefaultManagementLifecycleStrategy.java:185)
>> at
>> org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:432)
>> at
>> org.apache.camel.impl.DefaultProducerTemplate.resolveMandatoryEndpoint(DefaultProducerTemplate.java:402)
>> at
>> org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:116)
>>
>>
>>
>>
>> Claus Ibsen-2 wrote:
>>>
>>> Hi
>>>
>>> On Tue, Feb 9, 2010 at 7:46 PM, ariekenb <[email protected]>
>>> wrote:
>>>>
>>>> I'm running apache-servicemix 4.1.0-psc-01-00RC1, using the included
>>>> version
>>>> of ActiveMQ and Camel. I have some code that's receiving a message
>>>> from
>>>> an
>>>> ActiveMQ queue, then sending a message to the temporary queue it got
>>>> from
>>>> JMSReplyTo.
>>>>
>>>> �...@endpointinject
>>>> private ProducerTemplate producerTemplate = null;
>>>>
>>>>
>>>> �...@consume(uri = "subscriptionRequestEndpoint")
>>>> public synchronized void processSubscriptionRequest(
>>>> �...@header("JMSReplyTo") Destination jmsReplyTo,
>>>> �...@body SubscriptionManagerRegister
>>>> registrationMessage) {
>>>> try {
>>>> log.info("got registration request client name =
>>>> "
>>>> +
>>>> registrationMessage.getClientName() + " jmsReplyTo = "
>>>> + jmsReplyTo);
>>>> tempQueueList.add((TemporaryQueue) jmsReplyTo);
>>>> publishMessageToSubscriber((TemporaryQueue)
>>>> jmsReplyTo, "hello");
>>>> } catch (Exception e) {
>>>> log.warn("processSubscriptionRequest", e);
>>>> }
>>>> }
>>>>
>>>> public synchronized void publishMessageToSubscriber(
>>>> TemporaryQueue temporaryQueue, Serializable
>>>> message) {
>>>> try {
>>>> final String endpointName =
>>>> "activemq:temp:queue:"
>>>> + temporaryQueue.getQueueName();
>>>> producerTemplate.sendBody(endpointName,
>>>> message);
>>>> } catch (Exception e) {
>>>> log.warn("publishMessageToSubscriber", e);
>>>> }
>>>> }
>>>>
>>>> When the producerTemplate.sendBody call runs, I get the following
>>>> exception.
>>>> Is this a camel bug or am I doing something wrong?
>>>>
>>>> org.springframework.jmx.export.metadata.InvalidMetadataException: No
>>>> ManagedResource attribute found for class: class
>>>> org.apache.camel.component.jms.JmsTemporaryQueueEndpoint
>>>> at
>>>> org.springframework.jmx.export.assembler.MetadataMBeanInfoAssembler.populateMBeanDescriptor(MetadataMBeanInfoAssembler.java:279)
>>>> at
>>>> org.springframework.jmx.export.assembler.AbstractMBeanInfoAssembler.getMBeanInfo(AbstractMBeanInfoAssembler.java:69)
>>>> at
>>>> org.apache.camel.management.DefaultManagementAgent.register(DefaultManagementAgent.java:202)
>>>> at
>>>> org.apache.camel.management.DefaultManagementAgent.register(DefaultManagementAgent.java:193)
>>>> at
>>>> org.apache.camel.management.ManagedManagementStrategy.manageNamedObject(ManagedManagementStrategy.java:69)
>>>> at
>>>> org.apache.camel.management.ManagedManagementStrategy.manageObject(ManagedManagementStrategy.java:62)
>>>> at
>>>> org.apache.camel.management.DefaultManagementLifecycleStrategy.onEndpointAdd(DefaultManagementLifecycleStrategy.java:185)
>>>> at
>>>> org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:432)
>>>> at
>>>> org.apache.camel.impl.DefaultProducerTemplate.resolveMandatoryEndpoint(DefaultProducerTemplate.java:402)
>>>> at
>>>> org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:116)
>>>>
>>>>
>>>
>>> At what level do this stacktrace get logged? ERROR, DEBUG, INFO etc?
>>>
>>>> --
>>>> View this message in context:
>>>> http://old.nabble.com/Attemp-to-send-message-to-activemq-temporary-queue-using-producerTemplate%3A-InvalidMetadataException-tp27520096p27520096.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/Attemp-to-send-message-to-activemq-temporary-queue-using-producerTemplate%3A-InvalidMetadataException-tp27520096p27532128.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/Attemp-to-send-message-to-activemq-temporary-queue-using-producerTemplate%3A-InvalidMetadataException-tp27520096p27532910.html
Sent from the Camel - Users mailing list archive at Nabble.com.