You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by bradtwurst <na...@xoxy.net> on 2007/06/15 22:12:22 UTC
jms consumer to http provider
Hello,
I have a jms consumer
<jms:endpoint service="km:jms-status-service-out"
endpoint="jms-status"
role="consumer"
connectionFactory="#connectionFactory"
destinationStyle="queue"
jmsProviderDestinationName="queueForKmStatus"
defaultMep="http://www.w3.org/2004/08/wsdl/in-only"
targetService="km:status-httpProvider-serviceActual"
targetEndpoint="status-httpProvider-endpointActual"
/>
the target is a http provider
<http:endpoint service="km:status-httpProvider-serviceActual"
endpoint="status-httpProvider-endpointActual" role="provider"
locationURI="${HostUrl}" />
The system is currently using a SEDA flow. I've tried both in-only and
robust-in-only mep's
How do I configure servicemix to not dequeue the item if the connection to
the http host is not available? I would assume it is some sort of
transaction configuration, but I am not sure where/how I should configure
this.
Service-mix is running in 'stand-alone' mode with the above binding
components within a service assembly.
Here is the current log that I'm getting.
=========================================
ERROR - HttpComponent - Error processing exchange
RobustInOnly[
id: ID:LT478-4193-1181936893430-9:0
status: Active
role: provider
service: {urn:ic:km}status-httpProvider-serviceActual
endpoint: status-httpProvider-endpointActual
in: <?xml version="1.0" encoding="UTF-8"?><Envelope
xmlns="http://schemas.xmlsoap.org/soap/envelope/"><Body><msgResults><com.st.ic.km.mgmt.transfer.MsgResult>
<msgId>1</msgId>
<operatingData>1</operatingData>
<event>UpdateCodes</event>
<success>true</success>
<resultMessage>updated code</resultMessage>
</com.st.ic.km.mgmt.transfer.MsgResult></msgResults></Body></Envelope>
]
java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at
java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:239)
at
org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:79)
at
org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:121)
at
org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:706)
at
org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1321)
at
org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:386)
at
org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)
at
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)
at
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)
at
org.apache.servicemix.http.processors.ProviderProcessor.process(ProviderProcessor.java:168)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:441)
at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593)
at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
at java.lang.Thread.run(Thread.java:595)
DEBUG - DeliveryChannelImpl - Send
ID:LT478-4193-1181936893430-9:0 in DeliveryChannel{servicemix-http}
DEBUG - SedaFlow - Called Flow send
DEBUG - SedaQueue -
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@2bb74 dequeued exchange:
RobustInOnly[
id: ID:LT478-4193-1181936893430-9:0
status: Error
role: consumer
service: {urn:ic:km}status-httpProvider-serviceActual
endpoint: status-httpProvider-endpointActual
in: <?xml version="1.0" encoding="UTF-8"?><Envelope
xmlns="http://schemas.xmlsoap.org/soap/envelope/"><Body><msgResults><com.st.ic.km.mgmt.transfer.MsgResult>
<msgId>1</msgId>
<operatingData>1</operatingData>
<event>UpdateCodes</event>
<success>true</success>
<resultMessage>updated code</resultMessage>
</com.st.ic.km.mgmt.transfer.MsgResult></msgResults></Body></Envelope>
error: java.net.ConnectException: Connection refused: connect
]
DEBUG - JmsComponent - Received exchange: status: Error,
role: consumer
DEBUG - JmsComponent - Retrieved correlation id:
ID:LT478-4193-1181936893430-9:0
ERROR - JmsComponent - Error processing exchange
RobustInOnly[
id: ID:LT478-4193-1181936893430-9:0
status: Error
role: consumer
service: {urn:ic:km}status-httpProvider-serviceActual
endpoint: status-httpProvider-endpointActual
in: <?xml version="1.0" encoding="UTF-8"?><Envelope
xmlns="http://schemas.xmlsoap.org/soap/envelope/"><Body><msgResults><com.st.ic.km.mgmt.transfer.MsgResult>
<msgId>1</msgId>
<operatingData>1</operatingData>
<event>UpdateCodes</event>
<success>true</success>
<resultMessage>updated code</resultMessage>
</com.st.ic.km.mgmt.transfer.MsgResult></msgResults></Body></Envelope>
error: java.net.ConnectException: Connection refused: connect
]
java.lang.UnsupportedOperationException: A destination must be specified.
at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:448)
at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:356)
at
org.apache.servicemix.jms.multiplexing.MultiplexingConsumerProcessor.process(MultiplexingConsumerProcessor.java:125)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:463)
at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593)
at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
at java.lang.Thread.run(Thread.java:595)
DEBUG - DeliveryChannelImpl - Send
ID:LT478-4193-1181936893430-9:0 in DeliveryChannel{servicemix-jms}
DEBUG - DeliveryChannelImpl - Exception processing:
ID:LT478-4193-1181936893430-9:0 in DeliveryChannel{servicemix-jms}
ERROR - JmsComponent - Error setting exchange status to
ERROR
javax.jbi.messaging.MessagingException: illegal call to send / sendSync
at
org.apache.servicemix.jbi.messaging.MessageExchangeImpl.handleSend(MessageExchangeImpl.java:571)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:370)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:417)
at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:58)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593)
at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
at java.lang.Thread.run(Thread.java:595)
=========================================
Thanks,
James
--
View this message in context: http://www.nabble.com/jms-consumer-to-http-provider-tf3930222s12049.html#a11146937
Sent from the ServiceMix - User mailing list archive at Nabble.com.
Re: jms consumer to http provider
Posted by bradtwurst <na...@xoxy.net>.
Gert,
I tried this - no apparent change in behavior. For right now, I've worked
around this by creating a lw pojo component that gets the message and keeps
attempting to resend it until success occurs. Only downside is that it is
dequeued from the jms right away.
Thanks,
James
Gert Vanthienen wrote:
>
> James,
>
> Have you tried adding the in-only defaultMep to the provider endpoint as
> well?
>
> Gert
>
>
>
--
View this message in context: http://www.nabble.com/jms-consumer-to-http-provider-tf3930222s12049.html#a11196538
Sent from the ServiceMix - User mailing list archive at Nabble.com.
Re: jms consumer to http provider
Posted by Gert Vanthienen <ge...@skynet.be>.
James,
Have you tried adding the in-only defaultMep to the provider endpoint as
well?
Gert
bradtwurst wrote:
>
> Hello,
>
> I have a jms consumer
>
> <jms:endpoint service="km:jms-status-service-out"
> endpoint="jms-status"
> role="consumer"
> connectionFactory="#connectionFactory"
> destinationStyle="queue"
> jmsProviderDestinationName="queueForKmStatus"
> defaultMep="http://www.w3.org/2004/08/wsdl/in-only"
> targetService="km:status-httpProvider-serviceActual"
> targetEndpoint="status-httpProvider-endpointActual"
> />
>
> the target is a http provider
>
> <http:endpoint service="km:status-httpProvider-serviceActual"
> endpoint="status-httpProvider-endpointActual" role="provider"
> locationURI="${HostUrl}" />
>
> The system is currently using a SEDA flow. I've tried both in-only and
> robust-in-only mep's
>
> How do I configure servicemix to not dequeue the item if the connection to
> the http host is not available? I would assume it is some sort of
> transaction configuration, but I am not sure where/how I should configure
> this.
>
> Service-mix is running in 'stand-alone' mode with the above binding
> components within a service assembly.
>
> Here is the current log that I'm getting.
>
> =========================================
> ERROR - HttpComponent - Error processing exchange
> RobustInOnly[
> id: ID:LT478-4193-1181936893430-9:0
> status: Active
> role: provider
> service: {urn:ic:km}status-httpProvider-serviceActual
> endpoint: status-httpProvider-endpointActual
> in: <?xml version="1.0" encoding="UTF-8"?><Envelope
> xmlns="http://schemas.xmlsoap.org/soap/envelope/"><Body><msgResults><com.st.ic.km.mgmt.transfer.MsgResult>
> <msgId>1</msgId>
> <operatingData>1</operatingData>
> <event>UpdateCodes</event>
> <success>true</success>
> <resultMessage>updated code</resultMessage>
> </com.st.ic.km.mgmt.transfer.MsgResult></msgResults></Body></Envelope>
> ]
> java.net.ConnectException: Connection refused: connect
> at java.net.PlainSocketImpl.socketConnect(Native Method)
> at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
> at
> java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
> at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
> at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
> at java.net.Socket.connect(Socket.java:519)
> at java.net.Socket.connect(Socket.java:469)
> at java.net.Socket.<init>(Socket.java:366)
> at java.net.Socket.<init>(Socket.java:239)
> at
> org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:79)
> at
> org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:121)
> at
> org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:706)
> at
> org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1321)
> at
> org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:386)
> at
> org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)
> at
> org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)
> at
> org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)
> at
> org.apache.servicemix.http.processors.ProviderProcessor.process(ProviderProcessor.java:168)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:441)
> at
> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
> at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593)
> at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
> at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176)
> at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
> at
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
> at
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
> at java.lang.Thread.run(Thread.java:595)
> DEBUG - DeliveryChannelImpl - Send
> ID:LT478-4193-1181936893430-9:0 in DeliveryChannel{servicemix-http}
> DEBUG - SedaFlow - Called Flow send
> DEBUG - SedaQueue -
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@2bb74 dequeued
> exchange: RobustInOnly[
> id: ID:LT478-4193-1181936893430-9:0
> status: Error
> role: consumer
> service: {urn:ic:km}status-httpProvider-serviceActual
> endpoint: status-httpProvider-endpointActual
> in: <?xml version="1.0" encoding="UTF-8"?><Envelope
> xmlns="http://schemas.xmlsoap.org/soap/envelope/"><Body><msgResults><com.st.ic.km.mgmt.transfer.MsgResult>
> <msgId>1</msgId>
> <operatingData>1</operatingData>
> <event>UpdateCodes</event>
> <success>true</success>
> <resultMessage>updated code</resultMessage>
> </com.st.ic.km.mgmt.transfer.MsgResult></msgResults></Body></Envelope>
> error: java.net.ConnectException: Connection refused: connect
> ]
> DEBUG - JmsComponent - Received exchange: status: Error,
> role: consumer
> DEBUG - JmsComponent - Retrieved correlation id:
> ID:LT478-4193-1181936893430-9:0
> ERROR - JmsComponent - Error processing exchange
> RobustInOnly[
> id: ID:LT478-4193-1181936893430-9:0
> status: Error
> role: consumer
> service: {urn:ic:km}status-httpProvider-serviceActual
> endpoint: status-httpProvider-endpointActual
> in: <?xml version="1.0" encoding="UTF-8"?><Envelope
> xmlns="http://schemas.xmlsoap.org/soap/envelope/"><Body><msgResults><com.st.ic.km.mgmt.transfer.MsgResult>
> <msgId>1</msgId>
> <operatingData>1</operatingData>
> <event>UpdateCodes</event>
> <success>true</success>
> <resultMessage>updated code</resultMessage>
> </com.st.ic.km.mgmt.transfer.MsgResult></msgResults></Body></Envelope>
> error: java.net.ConnectException: Connection refused: connect
> ]
> java.lang.UnsupportedOperationException: A destination must be specified.
> at
> org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:448)
> at
> org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:356)
> at
> org.apache.servicemix.jms.multiplexing.MultiplexingConsumerProcessor.process(MultiplexingConsumerProcessor.java:125)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:463)
> at
> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
> at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593)
> at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
> at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176)
> at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
> at
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
> at
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
> at java.lang.Thread.run(Thread.java:595)
> DEBUG - DeliveryChannelImpl - Send
> ID:LT478-4193-1181936893430-9:0 in DeliveryChannel{servicemix-jms}
> DEBUG - DeliveryChannelImpl - Exception processing:
> ID:LT478-4193-1181936893430-9:0 in DeliveryChannel{servicemix-jms}
> ERROR - JmsComponent - Error setting exchange status to
> ERROR
> javax.jbi.messaging.MessagingException: illegal call to send / sendSync
> at
> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.handleSend(MessageExchangeImpl.java:571)
> at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:370)
> at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:417)
> at
> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:58)
> at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593)
> at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
> at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176)
> at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
> at
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
> at
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
> at java.lang.Thread.run(Thread.java:595)
> =========================================
>
> Thanks,
> James
>
>
>
>
--
View this message in context: http://www.nabble.com/jms-consumer-to-http-provider-tf3930222s12049.html#a11173609
Sent from the ServiceMix - User mailing list archive at Nabble.com.