You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by "colin.chi" <ib...@hotmail.com> on 2009/11/09 04:26:59 UTC

When external service is shut down, message don't rollback to jms queue.

work flow as follow:

[external client]--->cxf-bc-consumer--->jms-provider--->jms queue

jms queue--->jms-consumer--->cxf-bc-provider--->[external service] 

when external service is shut down, message don't rollback to jms queue and
throw exception.

how to config jms consumer and cxf bc provider to do this case?

=======================log begin==========================

2009-11-09 11:19:28,046 DEBUG - JettyHTTPDestination           - Service
http request on thread: Thread[22434271@qtp0-0,5,RMI Runt
ime]
2009-11-09 11:19:28,046 DEBUG - AbstractHTTPDestination        - Request
Headers: {connection=[Keep-Alive], Host=[localhost:8080],
 Content-Length=[364], User-Agent=[Mozilla/4.0 (compatible; MSIE 7.0;
Windows NT 5.1; Trident/4.0; GOSURF)], accept-encoding=[gzip
, deflate], Accept=[*/*], Cache-Control=[no-cache]}
2009-11-09 11:19:28,046 DEBUG - PhaseInterceptorChain          - Chain
org.apache.cxf.phase.PhaseInterceptorChain@735ad7 was creat
ed. Current flow:
  receive [AttachmentInInterceptor]
  post-stream [StaxInInterceptor]
  read [ReadHeadersInterceptor]
  pre-protocol [, MustUnderstandInterceptor, JbiJAASInterceptor]
  unmarshal [JbiOperationInterceptor]
  pre-invoke [JbiInWsdl1Interceptor, JbiInInterceptor]
  invoke [JbiInvokerInterceptor]
  post-invoke [JbiPostInvokerInterceptor, OutgoingChainInterceptor]

2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          - Invoking
handleMessage on interceptor org.apache.cxf.interceptor.
AttachmentInInterceptor@14d8c8
2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          - Invoking
handleMessage on interceptor org.apache.cxf.interceptor.
StaxInInterceptor@a4480d
2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          - Invoking
handleMessage on interceptor org.apache.cxf.binding.soap
.interceptor.ReadHeadersInterceptor@1766d9c
2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          - Invoking
handleMessage on interceptor org.apache.servicemix.cxfbc
.CxfBcConsumer$1@1b7715d
2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          - Invoking
handleMessage on interceptor org.apache.cxf.binding.soap
.interceptor.MustUnderstandInterceptor@73a403
2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          - Invoking
handleMessage on interceptor org.apache.servicemix.cxfbc
.interceptors.JbiJAASInterceptor@ca7c93
2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          - Invoking
handleMessage on interceptor org.apache.servicemix.cxfbc
.interceptors.JbiOperationInterceptor@1626bf
2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          - Invoking
handleMessage on interceptor org.apache.servicemix.cxfbc
.interceptors.JbiInWsdl1Interceptor@49e885
2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          - Invoking
handleMessage on interceptor org.apache.servicemix.cxfbc
.interceptors.JbiInInterceptor@407909
2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          - Invoking
handleMessage on interceptor org.apache.servicemix.cxfbc
.CxfBcConsumer$JbiInvokerInterceptor@1b8a6af
2009-11-09 11:19:28,140 DEBUG - CxfBcComponent                 - Created
correlation id: ID:10.80.12.85-124d6ebc094-2:10
2009-11-09 11:19:28,140 DEBUG - DeliveryChannelImpl            - Send
ID:10.80.12.85-124d6ebc094-2:10 in DeliveryChannel{servicemi
x-cxf-bc}
2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  - send
exchange with secure broker
2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  - service
name :{http://www.hcsys.com/novaesb/}jms
2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  - operation
name :{http://www.hcsys.com/novaesb/}createCustomer
2009-11-09 11:19:28,140 DEBUG - SedaFlow                       - Called Flow
send
2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          - Invoking
handleMessage on interceptor org.apache.servicemix.cxfbc
.CxfBcConsumer$JbiPostInvokerInterceptor@1c76cab
2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          - Invoking
handleMessage on interceptor org.apache.cxf.interceptor.
OutgoingChainInterceptor@1af691b
2009-11-09 11:19:28,156 DEBUG - JettyHTTPDestination           - Finished
servicing http request on thread: Thread[22434271@qtp0-0
,5,RMI Runtime]
2009-11-09 11:19:28,156 DEBUG - SedaQueue                      -
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@45ac89 dequeu
ed exchange: InOnly[
  id: ID:10.80.12.85-124d6ebc094-2:10
  status: Active
  role: provider
  service: {http://www.hcsys.com/novaesb/}jms
  endpoint: provider
  operation: {http://www.hcsys.com/novaesb/}createCustomer
  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="htt
p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
e="createCustomer" type="msg:createCustomer"
version="1.0"><jbi:part><pns:createCustomer
xmlns:pns="http://geneva.nova.com/custome
r">
      <pns:value>aaaa</pns:value>
    </pns:createCustomer></jbi:part></jbi:message>
]
2009-11-09 11:19:28,156 DEBUG - JmsComponent                   - Received
exchange: status: Active, role: provider
2009-11-09 11:19:28,156 DEBUG - JmsComponent                   - Retrieved
correlation id: ID:10.80.12.85-124d6ebc094-2:10
2009-11-09 11:19:28,156 DEBUG - DeliveryChannelImpl            - Send
ID:10.80.12.85-124d6ebc094-2:10 in DeliveryChannel{servicemi
x-jms}
2009-11-09 11:19:28,156 DEBUG - SecuredBroker                  - send
exchange with secure broker
2009-11-09 11:19:28,156 DEBUG - SedaFlow                       - Called Flow
send
2009-11-09 11:19:28,156 DEBUG - MultiplexingConsumerProcessor  - Received
jms message ActiveMQTextMessage {commandId = 17, respons
eRequired = true, messageId =
ID:8014ac188efd43a-4422-1257736227984-2:10:1:1:11, originalDestination =
null, originalTransactionId
 = null, producerId = ID:8014ac188efd43a-4422-1257736227984-2:10:1:1,
destination = queue://queue/A, transactionId = null, expirat
ion = 0, timestamp = 1257736768156, arrival = 0, brokerInTime =
1257736768156, brokerOutTime = 1257736768156, correlationId = null
, replyTo = null, persistent = true, type = null, priority = 4, groupID =
null, groupSequence = 0, targetConsumerId = null, compre
ssed = false, userID = null, content = null, marshalledProperties =
org.apache.activemq.util.ByteSequence@1713c03, dataStructure =
 null, redeliveryCounter = 0, size = 0, properties =
{MimeContentType=text/xml;charset=UTF-8,
SoapAction=/{http://www.hcsys.com/no
vaesb/}createCustomer,
SOAPJMS_soapAction=/{http://www.hcsys.com/novaesb/}createCustomer},
readOnlyProperties = true, readOnlyBody
 = true, droppable = false, text = <?xml version='1.0'
encoding='UTF-8'?><jbi:me...jbi:message>}
2009-11-09 11:19:28,171 DEBUG - MultiplexingConsumerProcessor  - Handling
jms message ActiveMQTextMessage {commandId = 17, respons
eRequired = true, messageId =
ID:8014ac188efd43a-4422-1257736227984-2:10:1:1:11, originalDestination =
null, originalTransactionId
 = null, producerId = ID:8014ac188efd43a-4422-1257736227984-2:10:1:1,
destination = queue://queue/A, transactionId = null, expirat
ion = 0, timestamp = 1257736768156, arrival = 0, brokerInTime =
1257736768156, brokerOutTime = 1257736768156, correlationId = null
, replyTo = null, persistent = true, type = null, priority = 4, groupID =
null, groupSequence = 0, targetConsumerId = null, compre
ssed = false, userID = null, content = null, marshalledProperties =
org.apache.activemq.util.ByteSequence@1713c03, dataStructure =
 null, redeliveryCounter = 0, size = 0, properties =
{MimeContentType=text/xml;charset=UTF-8,
SoapAction=/{http://www.hcsys.com/no
vaesb/}createCustomer,
SOAPJMS_soapAction=/{http://www.hcsys.com/novaesb/}createCustomer},
readOnlyProperties = true, readOnlyBody
 = true, droppable = false, text = <?xml version='1.0'
encoding='UTF-8'?><jbi:me...jbi:message>}
2009-11-09 11:19:28,171 DEBUG - SedaQueue                      -
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@89e163 dequeu
ed exchange: InOnly[
  id: ID:10.80.12.85-124d6ebc094-2:10
  status: Done
  role: consumer
  service: {http://www.hcsys.com/novaesb/}jms
  endpoint: provider
  operation: {http://www.hcsys.com/novaesb/}createCustomer
  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="htt
p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
e="createCustomer" type="msg:createCustomer"
version="1.0"><jbi:part><pns:createCustomer
xmlns:pns="http://geneva.nova.com/custome
r">
      <pns:value>aaaa</pns:value>
    </pns:createCustomer></jbi:part></jbi:message>
]
2009-11-09 11:19:28,171 DEBUG - JmsComponent                   - Created
correlation id: ID:10.80.12.85-124d6ebc094-4:10
2009-11-09 11:19:28,171 DEBUG - CxfBcComponent                 - Received
exchange: status: Done, role: consumer
2009-11-09 11:19:28,171 DEBUG - DeliveryChannelImpl            - Send
ID:10.80.12.85-124d6ebc094-4:10 in DeliveryChannel{servicemi
x-jms}
2009-11-09 11:19:28,171 DEBUG - CxfBcComponent                 - Retrieved
correlation id: ID:10.80.12.85-124d6ebc094-2:10
2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  - send
exchange with secure broker
2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  - service
name :{http://geneva.nova.com/customer}CustomerInImplServ
ice
2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  - operation
name :{http://geneva.nova.com/customer}createCustomer
2009-11-09 11:19:28,171 DEBUG - SedaFlow                       - Called Flow
send
2009-11-09 11:19:28,187 DEBUG - SedaQueue                      -
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@4437d3 dequeu
ed exchange: InOnly[
  id: ID:10.80.12.85-124d6ebc094-4:10
  status: Active
  role: provider
  service: {http://geneva.nova.com/customer}CustomerInImplService
  endpoint: CustomerInGenevaPortTypePort
  operation: {http://geneva.nova.com/customer}createCustomer
  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="htt
p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
e="createCustomer" type="msg:createCustomer"
version="1.0"><jbi:part><pns:createCustomer
xmlns:pns="http://geneva.nova.com/custome
r">
      <pns:value>aaaa</pns:value>
    </pns:createCustomer></jbi:part></jbi:message>
]
2009-11-09 11:19:28,187 DEBUG - CxfBcComponent                 - Received
exchange: status: Active, role: provider
2009-11-09 11:19:28,187 DEBUG - CxfBcComponent                 - Retrieved
correlation id: ID:10.80.12.85-124d6ebc094-4:10
2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
interceptor org.apache.servicemix.cxfbc.interceptors.JbiOu
tInterceptor@dd6a50 to phase pre-stream
2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
interceptor org.apache.servicemix.cxfbc.interceptors.JbiOu
tWsdl1Interceptor@6ed9d1 to phase marshal
2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
interceptor org.apache.cxf.binding.soap.interceptor.SoapPr
eProtocolOutInterceptor@19e4f8b to phase post-logical
2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
interceptor org.apache.cxf.binding.soap.interceptor.SoapOu
tInterceptor@782f81 to phase write
2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
interceptor org.apache.cxf.binding.soap.interceptor.SoapAc
tionOutInterceptor@76df38 to phase post-logical
2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
interceptor org.apache.cxf.interceptor.StaxOutInterceptor@
38df00 to phase pre-stream
2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Chain
org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was crea
ted. Current flow:
  post-logical [SoapPreProtocolOutInterceptor, SoapActionOutInterceptor]
  pre-stream [JbiOutInterceptor, StaxOutInterceptor]
  write [SoapOutInterceptor]
  marshal [JbiOutWsdl1Interceptor]

2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Invoking
handleMessage on interceptor org.apache.cxf.binding.soap
.interceptor.SoapPreProtocolOutInterceptor@19e4f8b
2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Invoking
handleMessage on interceptor org.apache.cxf.binding.soap
.interceptor.SoapActionOutInterceptor@76df38
2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Invoking
handleMessage on interceptor org.apache.servicemix.cxfbc
.interceptors.JbiOutInterceptor@dd6a50
2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Invoking
handleMessage on interceptor org.apache.cxf.interceptor.
StaxOutInterceptor@38df00
2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
interceptor org.apache.cxf.interceptor.StaxOutInterceptor$
StaxOutEndingInterceptor@1073a2e to phase pre-stream-ending
2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Chain
org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was modi
fied. Current flow:
  post-logical [SoapPreProtocolOutInterceptor, SoapActionOutInterceptor]
  pre-stream [JbiOutInterceptor, StaxOutInterceptor]
  write [SoapOutInterceptor]
  marshal [JbiOutWsdl1Interceptor]
  pre-stream-ending [StaxOutEndingInterceptor]

2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Invoking
handleMessage on interceptor org.apache.cxf.binding.soap
.interceptor.SoapOutInterceptor@782f81
2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          - Adding
interceptor org.apache.cxf.binding.soap.interceptor.SoapOu
tInterceptor$SoapOutEndingInterceptor@17cb4ff to phase write-ending
2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          - Chain
org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was modi
fied. Current flow:
  post-logical [SoapPreProtocolOutInterceptor, SoapActionOutInterceptor]
  pre-stream [JbiOutInterceptor, StaxOutInterceptor]
  write [SoapOutInterceptor]
  marshal [JbiOutWsdl1Interceptor]
  write-ending [SoapOutEndingInterceptor]
  pre-stream-ending [StaxOutEndingInterceptor]

2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          - Invoking
handleMessage on interceptor org.apache.servicemix.cxfbc
.interceptors.JbiOutWsdl1Interceptor@6ed9d1
2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          - Invoking
handleMessage on interceptor org.apache.cxf.binding.soap
.interceptor.SoapOutInterceptor$SoapOutEndingInterceptor@17cb4ff
2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          - Invoking
handleMessage on interceptor org.apache.cxf.interceptor.
StaxOutInterceptor$StaxOutEndingInterceptor@1073a2e
2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    - Sending
POST Message with Headers to http://10.80.12.100:8080/Gen
evaESB/services/CustomerAccount Conduit
:{http://geneva.nova.com/customer}CustomerInGenevaPortTypePort.http-conduit
Content-Type: text/xml; charset=UTF-8

2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    - SOAPAction:
""
2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    - Accept: *
2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    - No Trust
Decider for Conduit '{http://geneva.nova.com/customer}Cu
stomerInGenevaPortTypePort.http-conduit'. An afirmative Trust Decision is
assumed.
2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    - Response
Code: 404 Conduit: {http://geneva.nova.com/customer}Cust
omerInGenevaPortTypePort.http-conduit
2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    - Content
length: 952
2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    - Header
fields:
    null: [HTTP/1.1 404 Not Found]
    Date: [Mon, 09 Nov 2009 03:19:04 GMT]
    Content-Length: [952]
    Content-Type: [text/html;charset=utf-8]
    Server: [Apache-Coyote/1.1]

2009-11-09 11:19:28,265 ERROR - CxfBcComponent                 - Error
processing exchange InOnly[
  id: ID:10.80.12.85-124d6ebc094-4:10
  status: Active
  role: provider
  service: {http://geneva.nova.com/customer}CustomerInImplService
  endpoint: CustomerInGenevaPortTypePort
  operation: {http://geneva.nova.com/customer}createCustomer
  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="htt
p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
e="createCustomer" type="msg:createCustomer"
version="1.0"><jbi:part><pns:createCustomer
xmlns:pns="http://geneva.nova.com/custome
r">
      <pns:value>aaaa</pns:value>
    </pns:createCustomer></jbi:part></jbi:message>
]
javax.jbi.messaging.MessagingException: Fault not supported
        at
org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java:366)
        at
org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setFault(MessageExchangeImpl.java:290)
        at
org.apache.servicemix.cxfbc.CxfBcProvider.faultProcess(CxfBcProvider.java:277)
        at
org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:261)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
        at
org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
        at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)
2009-11-09 11:19:28,296 DEBUG - DeliveryChannelImpl            - Send
ID:10.80.12.85-124d6ebc094-4:10 in DeliveryChannel{servicemi
x-cxf-bc}
2009-11-09 11:19:28,296 DEBUG - SecuredBroker                  - send
exchange with secure broker
2009-11-09 11:19:28,296 DEBUG - SedaFlow                       - Called Flow
send
2009-11-09 11:19:28,296 DEBUG - SedaQueue                      -
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@247262 dequeu
ed exchange: InOnly[
  id: ID:10.80.12.85-124d6ebc094-4:10
  status: Error
  role: consumer
  service: {http://geneva.nova.com/customer}CustomerInImplService
  endpoint: CustomerInGenevaPortTypePort
  operation: {http://geneva.nova.com/customer}createCustomer
  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="htt
p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
e="createCustomer" type="msg:createCustomer"
version="1.0"><jbi:part><pns:createCustomer
xmlns:pns="http://geneva.nova.com/custome
r">
      <pns:value>aaaa</pns:value>
    </pns:createCustomer></jbi:part></jbi:message>
  error: javax.jbi.messaging.MessagingException: Fault not supported
]
2009-11-09 11:19:28,296 DEBUG - JmsComponent                   - Received
exchange: status: Error, role: consumer
2009-11-09 11:19:28,296 DEBUG - JmsComponent                   - Retrieved
correlation id: ID:10.80.12.85-124d6ebc094-4:10
2009-11-09 11:19:28,328 ERROR - JmsComponent                   - Error
processing exchange InOnly[
  id: ID:10.80.12.85-124d6ebc094-4:10
  status: Error
  role: consumer
  service: {http://geneva.nova.com/customer}CustomerInImplService
  endpoint: CustomerInGenevaPortTypePort
  operation: {http://geneva.nova.com/customer}createCustomer
  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="htt
p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
e="createCustomer" type="msg:createCustomer"
version="1.0"><jbi:part><pns:createCustomer
xmlns:pns="http://geneva.nova.com/custome
r">
      <pns:value>aaaa</pns:value>
    </pns:createCustomer></jbi:part></jbi:message>
  error: javax.jbi.messaging.MessagingException: Fault not supported
]
java.lang.UnsupportedOperationException: A destination must be specified.
        at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:195)
        at
org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:74)
        at
org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:59)
        at
org.apache.servicemix.jms.multiplexing.MultiplexingConsumerProcessor.process(MultiplexingConsumerProcessor.java:126)
        at
org.apache.servicemix.soap.SoapEndpoint.process(SoapEndpoint.java:368)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:598)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
        at
org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
        at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)


=======================log end==========================
-- 
View this message in context: http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26260776.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: When external service is shut down, message don't rollback to jms queue.

Posted by "colin.chi" <ib...@hotmail.com>.
Hi Gert,

I have do that what you suggest.

I used http://www.w3.org/2004/08/wsdl/robust-in-only MEP.

while external service is running, I test it, then get error as follow:

=====================================================
2009-11-12 10:11:46,750 DEBUG - ActiveMQSession                -
ID:8014ac188efd43a-3627-1257991772000-2:12:1 Transaction Rollback

2009-11-12 10:11:46,765 WARN  - SimpleMessageListenerContainer102 -
Execution of JMS message listener failed
javax.jms.JMSException: Error sending JBI exchange
        at
org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:575)
        at
org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint$1.onMessage(JmsConsumerEndpoint.java:505)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.jav
a:518)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:
479)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.ja
va:451)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.executeListener(AbstractMessageListenerContainer.java
:423)
        at
org.springframework.jms.listener.SimpleMessageListenerContainer.processMessage(SimpleMessageListenerContainer.java:290)

        at
org.springframework.jms.listener.SimpleMessageListenerContainer$2.onMessage(SimpleMessageListenerContainer.java:266)
        at
org.apache.activemq.ActiveMQMessageConsumer.iterate(ActiveMQMessageConsumer.java:1095)
        at
org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:181)
        at
org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
        at
org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.UnsupportedOperationException: A destination must be
specified.
        at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:195)
        at
org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:241)
        at
org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.send(AbstractConsumerEndpoint.java:519)
        at
org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.processExchange(AbstractConsumerEndpoint.java:485)
        at
org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:552)
        ... 14 more
=====================================================

>From this error, I think when you use robust-in-only or in-out, a
destination must be specified. This destination used to recieve some message
like response.

so, now my problem is when I use robust-in-only or in-out MEP in the case
which jms-consumer to cxf-provider, how and where to configure the
destination.

Thanks and regards,



Gert Vanthienen wrote:
> 
> Hi Colin,
> 
> 
> The normal flow with an InOnly exchange would be the JMS consumer
> reading the message from the queue and sending the ACTIVE exchange to
> the cxf bc provider.  The cxf bc provider will then invoke the
> external service and if that succeeds, return a DONE exchange to the
> jms consumer.  It's only at that point that the JMS consumer should
> acknowledge the JMS message or commit the transaction to remove the
> message from the queue.
> 
> If the cxf bc provider can not access the remote service (e.g. because
> the server is down), I would guess the cxf bc provider would return an
> ERROR exchange to the JMS consumer.  That should be the trigger to
> rollback the transaction or avoid acknowledging the JMS message.  Are
> you saying that you see these DONE exchanges going back when the
> external server is down?
> 
> There's a third scenario, which is the one Freeman mentioned, where
> the external service is up and running but returns a fault message
> (e.g. a remote exception or a business exception of some kind). Your
> current InOnly MEP is not capable of conveying these faults back to
> the JMS consumer.  The best option would be to use a RobustInOnly MEP,
> which basically behaves like the InOnly MEP but add the possibility of
> conveying fault messages.
> 
> You can configure another mep by adding a marshaler bean to the
> xbean.xml, roughly like this (haven't tested it, but it should get you
> close enough):
> - first, add the marshaler bean and set the mep uri
> <bean id="Marshaler"
> class="org.apache.servicemix.jms.endpoints.DefaultConsumerMarshaler">
>  <property
> name="mep">http://www.w3.org/2004/08/wsdl/robust-in-only</property>
> </bean>
> -secondly, configure the marshaler on your existing consumer endpoint
> definition:
> <jms:consumer .... marshaler="#Marshaler"/>
> 
> 
> Regards,
> 
> Gert Vanthienen
> ------------------------
> Open Source SOA: http://fusesource.com
> Blog: http://gertvanthienen.blogspot.com/
> 
> 
> 
> 2009/11/11 colin.chi <ib...@hotmail.com>:
>>
>> Hi Gert,
>>
>> Thanks for you reply.
>>
>> And I see some logs as following:
>>
>> 2009-11-09 11:19:28,171 DEBUG - SedaQueue                      -
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@89e163 dequeu
>> ed exchange: InOnly[
>>  id: ID:10.80.12.85-124d6ebc094-2:10
>>  status: Done
>>  role: consumer
>>  service: {http://www.hcsys.com/novaesb/}jms
>>  endpoint: provider
>>  operation: {http://www.hcsys.com/novaesb/}createCustomer
>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="htt
>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>> e="createCustomer" type="msg:createCustomer"
>> version="1.0"><jbi:part><pns:createCustomer
>> xmlns:pns="http://geneva.nova.com/custome
>> r">
>>      <pns:value>aaaa</pns:value>
>>    </pns:createCustomer></jbi:part></jbi:message>
>> ]
>>
>> This means the message is received and processed(send to cxf-provider
>> endpoint) successfully by jms consumer endpoint.
>>
>> so when cxf-provider endpoint catch an exception or an error, the message
>> can't be  rollbacked to jms queue where jms consumer endpoint listen.
>>
>> I think this case can not be achieved in ServiceMix.
>>
>> If I am wrong, can you tell me how can I finish this case?
>>
>> thanks and regards.
>>
>>
>> Gert Vanthienen wrote:
>>>
>>> L.S.,
>>>
>>> One option would be to enable transactions on the jms consumer
>>> endpoint (transacted="jms").  Another option would be to get the JMS
>>> client to acknowledge the message, like this:
>>>
>>>     <jms:consumer ....
>>>                   sessionAcknowledgeMode="#AcknowledgeMode"/>
>>>
>>>      <util:constant id="AcknowledgeMode"
>>> static-field="javax.jms.Session.CLIENT_ACKNOWLEDGE"/>
>>>
>>> Regards,
>>>
>>> Gert Vanthienen
>>> ------------------------
>>> Open Source SOA: http://fusesource.com
>>> Blog: http://gertvanthienen.blogspot.com/
>>>
>>>
>>>
>>> 2009/11/9 colin.chi <ib...@hotmail.com>:
>>>>
>>>> work flow as follow:
>>>>
>>>> [external client]--->cxf-bc-consumer--->jms-provider--->jms queue
>>>>
>>>> jms queue--->jms-consumer--->cxf-bc-provider--->[external service]
>>>>
>>>> when external service is shut down, message don't rollback to jms queue
>>>> and
>>>> throw exception.
>>>>
>>>> how to config jms consumer and cxf bc provider to do this case?
>>>>
>>>> =======================log begin==========================
>>>>
>>>> 2009-11-09 11:19:28,046 DEBUG - JettyHTTPDestination           -
>>>> Service
>>>> http request on thread: Thread[22434271@qtp0-0,5,RMI Runt
>>>> ime]
>>>> 2009-11-09 11:19:28,046 DEBUG - AbstractHTTPDestination        -
>>>> Request
>>>> Headers: {connection=[Keep-Alive], Host=[localhost:8080],
>>>>  Content-Length=[364], User-Agent=[Mozilla/4.0 (compatible; MSIE 7.0;
>>>> Windows NT 5.1; Trident/4.0; GOSURF)], accept-encoding=[gzip
>>>> , deflate], Accept=[*/*], Cache-Control=[no-cache]}
>>>> 2009-11-09 11:19:28,046 DEBUG - PhaseInterceptorChain          - Chain
>>>> org.apache.cxf.phase.PhaseInterceptorChain@735ad7 was creat
>>>> ed. Current flow:
>>>>  receive [AttachmentInInterceptor]
>>>>  post-stream [StaxInInterceptor]
>>>>  read [ReadHeadersInterceptor]
>>>>  pre-protocol [, MustUnderstandInterceptor, JbiJAASInterceptor]
>>>>  unmarshal [JbiOperationInterceptor]
>>>>  pre-invoke [JbiInWsdl1Interceptor, JbiInInterceptor]
>>>>  invoke [JbiInvokerInterceptor]
>>>>  post-invoke [JbiPostInvokerInterceptor, OutgoingChainInterceptor]
>>>>
>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>> Invoking
>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>> AttachmentInInterceptor@14d8c8
>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>> Invoking
>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>> StaxInInterceptor@a4480d
>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>> Invoking
>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>> .interceptor.ReadHeadersInterceptor@1766d9c
>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>> Invoking
>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>> .CxfBcConsumer$1@1b7715d
>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>> Invoking
>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>> .interceptor.MustUnderstandInterceptor@73a403
>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>> Invoking
>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>> .interceptors.JbiJAASInterceptor@ca7c93
>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>> Invoking
>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>> .interceptors.JbiOperationInterceptor@1626bf
>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>> Invoking
>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>> .interceptors.JbiInWsdl1Interceptor@49e885
>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>> Invoking
>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>> .interceptors.JbiInInterceptor@407909
>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>> Invoking
>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>> .CxfBcConsumer$JbiInvokerInterceptor@1b8a6af
>>>> 2009-11-09 11:19:28,140 DEBUG - CxfBcComponent                 -
>>>> Created
>>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>>> 2009-11-09 11:19:28,140 DEBUG - DeliveryChannelImpl            - Send
>>>> ID:10.80.12.85-124d6ebc094-2:10 in DeliveryChannel{servicemi
>>>> x-cxf-bc}
>>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  - send
>>>> exchange with secure broker
>>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -
>>>> service
>>>> name :{http://www.hcsys.com/novaesb/}jms
>>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -
>>>> operation
>>>> name :{http://www.hcsys.com/novaesb/}createCustomer
>>>> 2009-11-09 11:19:28,140 DEBUG - SedaFlow                       - Called
>>>> Flow
>>>> send
>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>> Invoking
>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>> .CxfBcConsumer$JbiPostInvokerInterceptor@1c76cab
>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>> Invoking
>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>> OutgoingChainInterceptor@1af691b
>>>> 2009-11-09 11:19:28,156 DEBUG - JettyHTTPDestination           -
>>>> Finished
>>>> servicing http request on thread: Thread[22434271@qtp0-0
>>>> ,5,RMI Runtime]
>>>> 2009-11-09 11:19:28,156 DEBUG - SedaQueue                      -
>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@45ac89 dequeu
>>>> ed exchange: InOnly[
>>>>  id: ID:10.80.12.85-124d6ebc094-2:10
>>>>  status: Active
>>>>  role: provider
>>>>  service: {http://www.hcsys.com/novaesb/}jms
>>>>  endpoint: provider
>>>>  operation: {http://www.hcsys.com/novaesb/}createCustomer
>>>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>> xmlns:msg="htt
>>>> p://www.hcsys.com/novaesb/"
>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>> e="createCustomer" type="msg:createCustomer"
>>>> version="1.0"><jbi:part><pns:createCustomer
>>>> xmlns:pns="http://geneva.nova.com/custome
>>>> r">
>>>>      <pns:value>aaaa</pns:value>
>>>>    </pns:createCustomer></jbi:part></jbi:message>
>>>> ]
>>>> 2009-11-09 11:19:28,156 DEBUG - JmsComponent                   -
>>>> Received
>>>> exchange: status: Active, role: provider
>>>> 2009-11-09 11:19:28,156 DEBUG - JmsComponent                   -
>>>> Retrieved
>>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>>> 2009-11-09 11:19:28,156 DEBUG - DeliveryChannelImpl            - Send
>>>> ID:10.80.12.85-124d6ebc094-2:10 in DeliveryChannel{servicemi
>>>> x-jms}
>>>> 2009-11-09 11:19:28,156 DEBUG - SecuredBroker                  - send
>>>> exchange with secure broker
>>>> 2009-11-09 11:19:28,156 DEBUG - SedaFlow                       - Called
>>>> Flow
>>>> send
>>>> 2009-11-09 11:19:28,156 DEBUG - MultiplexingConsumerProcessor  -
>>>> Received
>>>> jms message ActiveMQTextMessage {commandId = 17, respons
>>>> eRequired = true, messageId =
>>>> ID:8014ac188efd43a-4422-1257736227984-2:10:1:1:11, originalDestination
>>>> =
>>>> null, originalTransactionId
>>>>  = null, producerId = ID:8014ac188efd43a-4422-1257736227984-2:10:1:1,
>>>> destination = queue://queue/A, transactionId = null, expirat
>>>> ion = 0, timestamp = 1257736768156, arrival = 0, brokerInTime =
>>>> 1257736768156, brokerOutTime = 1257736768156, correlationId = null
>>>> , replyTo = null, persistent = true, type = null, priority = 4, groupID
>>>> =
>>>> null, groupSequence = 0, targetConsumerId = null, compre
>>>> ssed = false, userID = null, content = null, marshalledProperties =
>>>> org.apache.activemq.util.ByteSequence@1713c03, dataStructure =
>>>>  null, redeliveryCounter = 0, size = 0, properties =
>>>> {MimeContentType=text/xml;charset=UTF-8,
>>>> SoapAction=/{http://www.hcsys.com/no
>>>> vaesb/}createCustomer,
>>>> SOAPJMS_soapAction=/{http://www.hcsys.com/novaesb/}createCustomer},
>>>> readOnlyProperties = true, readOnlyBody
>>>>  = true, droppable = false, text = <?xml version='1.0'
>>>> encoding='UTF-8'?><jbi:me...jbi:message>}
>>>> 2009-11-09 11:19:28,171 DEBUG - MultiplexingConsumerProcessor  -
>>>> Handling
>>>> jms message ActiveMQTextMessage {commandId = 17, respons
>>>> eRequired = true, messageId =
>>>> ID:8014ac188efd43a-4422-1257736227984-2:10:1:1:11, originalDestination
>>>> =
>>>> null, originalTransactionId
>>>>  = null, producerId = ID:8014ac188efd43a-4422-1257736227984-2:10:1:1,
>>>> destination = queue://queue/A, transactionId = null, expirat
>>>> ion = 0, timestamp = 1257736768156, arrival = 0, brokerInTime =
>>>> 1257736768156, brokerOutTime = 1257736768156, correlationId = null
>>>> , replyTo = null, persistent = true, type = null, priority = 4, groupID
>>>> =
>>>> null, groupSequence = 0, targetConsumerId = null, compre
>>>> ssed = false, userID = null, content = null, marshalledProperties =
>>>> org.apache.activemq.util.ByteSequence@1713c03, dataStructure =
>>>>  null, redeliveryCounter = 0, size = 0, properties =
>>>> {MimeContentType=text/xml;charset=UTF-8,
>>>> SoapAction=/{http://www.hcsys.com/no
>>>> vaesb/}createCustomer,
>>>> SOAPJMS_soapAction=/{http://www.hcsys.com/novaesb/}createCustomer},
>>>> readOnlyProperties = true, readOnlyBody
>>>>  = true, droppable = false, text = <?xml version='1.0'
>>>> encoding='UTF-8'?><jbi:me...jbi:message>}
>>>> 2009-11-09 11:19:28,171 DEBUG - SedaQueue                      -
>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@89e163 dequeu
>>>> ed exchange: InOnly[
>>>>  id: ID:10.80.12.85-124d6ebc094-2:10
>>>>  status: Done
>>>>  role: consumer
>>>>  service: {http://www.hcsys.com/novaesb/}jms
>>>>  endpoint: provider
>>>>  operation: {http://www.hcsys.com/novaesb/}createCustomer
>>>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>> xmlns:msg="htt
>>>> p://www.hcsys.com/novaesb/"
>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>> e="createCustomer" type="msg:createCustomer"
>>>> version="1.0"><jbi:part><pns:createCustomer
>>>> xmlns:pns="http://geneva.nova.com/custome
>>>> r">
>>>>      <pns:value>aaaa</pns:value>
>>>>    </pns:createCustomer></jbi:part></jbi:message>
>>>> ]
>>>> 2009-11-09 11:19:28,171 DEBUG - JmsComponent                   -
>>>> Created
>>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>>> 2009-11-09 11:19:28,171 DEBUG - CxfBcComponent                 -
>>>> Received
>>>> exchange: status: Done, role: consumer
>>>> 2009-11-09 11:19:28,171 DEBUG - DeliveryChannelImpl            - Send
>>>> ID:10.80.12.85-124d6ebc094-4:10 in DeliveryChannel{servicemi
>>>> x-jms}
>>>> 2009-11-09 11:19:28,171 DEBUG - CxfBcComponent                 -
>>>> Retrieved
>>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  - send
>>>> exchange with secure broker
>>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -
>>>> service
>>>> name :{http://geneva.nova.com/customer}CustomerInImplServ
>>>> ice
>>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -
>>>> operation
>>>> name :{http://geneva.nova.com/customer}createCustomer
>>>> 2009-11-09 11:19:28,171 DEBUG - SedaFlow                       - Called
>>>> Flow
>>>> send
>>>> 2009-11-09 11:19:28,187 DEBUG - SedaQueue                      -
>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@4437d3 dequeu
>>>> ed exchange: InOnly[
>>>>  id: ID:10.80.12.85-124d6ebc094-4:10
>>>>  status: Active
>>>>  role: provider
>>>>  service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>  endpoint: CustomerInGenevaPortTypePort
>>>>  operation: {http://geneva.nova.com/customer}createCustomer
>>>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>> xmlns:msg="htt
>>>> p://www.hcsys.com/novaesb/"
>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>> e="createCustomer" type="msg:createCustomer"
>>>> version="1.0"><jbi:part><pns:createCustomer
>>>> xmlns:pns="http://geneva.nova.com/custome
>>>> r">
>>>>      <pns:value>aaaa</pns:value>
>>>>    </pns:createCustomer></jbi:part></jbi:message>
>>>> ]
>>>> 2009-11-09 11:19:28,187 DEBUG - CxfBcComponent                 -
>>>> Received
>>>> exchange: status: Active, role: provider
>>>> 2009-11-09 11:19:28,187 DEBUG - CxfBcComponent                 -
>>>> Retrieved
>>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
>>>> interceptor org.apache.servicemix.cxfbc.interceptors.JbiOu
>>>> tInterceptor@dd6a50 to phase pre-stream
>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
>>>> interceptor org.apache.servicemix.cxfbc.interceptors.JbiOu
>>>> tWsdl1Interceptor@6ed9d1 to phase marshal
>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapPr
>>>> eProtocolOutInterceptor@19e4f8b to phase post-logical
>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapOu
>>>> tInterceptor@782f81 to phase write
>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapAc
>>>> tionOutInterceptor@76df38 to phase post-logical
>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
>>>> interceptor org.apache.cxf.interceptor.StaxOutInterceptor@
>>>> 38df00 to phase pre-stream
>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Chain
>>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was crea
>>>> ted. Current flow:
>>>>  post-logical [SoapPreProtocolOutInterceptor, SoapActionOutInterceptor]
>>>>  pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>>  write [SoapOutInterceptor]
>>>>  marshal [JbiOutWsdl1Interceptor]
>>>>
>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>> Invoking
>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>> .interceptor.SoapPreProtocolOutInterceptor@19e4f8b
>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>> Invoking
>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>> .interceptor.SoapActionOutInterceptor@76df38
>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>> Invoking
>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>> .interceptors.JbiOutInterceptor@dd6a50
>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>> Invoking
>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>> StaxOutInterceptor@38df00
>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
>>>> interceptor org.apache.cxf.interceptor.StaxOutInterceptor$
>>>> StaxOutEndingInterceptor@1073a2e to phase pre-stream-ending
>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Chain
>>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was modi
>>>> fied. Current flow:
>>>>  post-logical [SoapPreProtocolOutInterceptor, SoapActionOutInterceptor]
>>>>  pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>>  write [SoapOutInterceptor]
>>>>  marshal [JbiOutWsdl1Interceptor]
>>>>  pre-stream-ending [StaxOutEndingInterceptor]
>>>>
>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>> Invoking
>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>> .interceptor.SoapOutInterceptor@782f81
>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          - Adding
>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapOu
>>>> tInterceptor$SoapOutEndingInterceptor@17cb4ff to phase write-ending
>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          - Chain
>>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was modi
>>>> fied. Current flow:
>>>>  post-logical [SoapPreProtocolOutInterceptor, SoapActionOutInterceptor]
>>>>  pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>>  write [SoapOutInterceptor]
>>>>  marshal [JbiOutWsdl1Interceptor]
>>>>  write-ending [SoapOutEndingInterceptor]
>>>>  pre-stream-ending [StaxOutEndingInterceptor]
>>>>
>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>> Invoking
>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>> .interceptors.JbiOutWsdl1Interceptor@6ed9d1
>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>> Invoking
>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>> .interceptor.SoapOutInterceptor$SoapOutEndingInterceptor@17cb4ff
>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>> Invoking
>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>> StaxOutInterceptor$StaxOutEndingInterceptor@1073a2e
>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>> Sending
>>>> POST Message with Headers to http://10.80.12.100:8080/Gen
>>>> evaESB/services/CustomerAccount Conduit
>>>> :{http://geneva.nova.com/customer}CustomerInGenevaPortTypePort.http-conduit
>>>> Content-Type: text/xml; charset=UTF-8
>>>>
>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>> SOAPAction:
>>>> ""
>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>> Accept:
>>>> *
>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    - No
>>>> Trust
>>>> Decider for Conduit '{http://geneva.nova.com/customer}Cu
>>>> stomerInGenevaPortTypePort.http-conduit'. An afirmative Trust Decision
>>>> is
>>>> assumed.
>>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    -
>>>> Response
>>>> Code: 404 Conduit: {http://geneva.nova.com/customer}Cust
>>>> omerInGenevaPortTypePort.http-conduit
>>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    -
>>>> Content
>>>> length: 952
>>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    - Header
>>>> fields:
>>>>    null: [HTTP/1.1 404 Not Found]
>>>>    Date: [Mon, 09 Nov 2009 03:19:04 GMT]
>>>>    Content-Length: [952]
>>>>    Content-Type: [text/html;charset=utf-8]
>>>>    Server: [Apache-Coyote/1.1]
>>>>
>>>> 2009-11-09 11:19:28,265 ERROR - CxfBcComponent                 - Error
>>>> processing exchange InOnly[
>>>>  id: ID:10.80.12.85-124d6ebc094-4:10
>>>>  status: Active
>>>>  role: provider
>>>>  service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>  endpoint: CustomerInGenevaPortTypePort
>>>>  operation: {http://geneva.nova.com/customer}createCustomer
>>>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>> xmlns:msg="htt
>>>> p://www.hcsys.com/novaesb/"
>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>> e="createCustomer" type="msg:createCustomer"
>>>> version="1.0"><jbi:part><pns:createCustomer
>>>> xmlns:pns="http://geneva.nova.com/custome
>>>> r">
>>>>      <pns:value>aaaa</pns:value>
>>>>    </pns:createCustomer></jbi:part></jbi:message>
>>>> ]
>>>> javax.jbi.messaging.MessagingException: Fault not supported
>>>>        at
>>>> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java:366)
>>>>        at
>>>> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setFault(MessageExchangeImpl.java:290)
>>>>        at
>>>> org.apache.servicemix.cxfbc.CxfBcProvider.faultProcess(CxfBcProvider.java:277)
>>>>        at
>>>> org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:261)
>>>>        at
>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>>>        at
>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
>>>>        at
>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>>>>        at
>>>> org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
>>>>        at
>>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>>>>        at
>>>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
>>>>        at
>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
>>>>        at
>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>>>>        at
>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>>>        at
>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>>>        at java.lang.Thread.run(Thread.java:619)
>>>> 2009-11-09 11:19:28,296 DEBUG - DeliveryChannelImpl            - Send
>>>> ID:10.80.12.85-124d6ebc094-4:10 in DeliveryChannel{servicemi
>>>> x-cxf-bc}
>>>> 2009-11-09 11:19:28,296 DEBUG - SecuredBroker                  - send
>>>> exchange with secure broker
>>>> 2009-11-09 11:19:28,296 DEBUG - SedaFlow                       - Called
>>>> Flow
>>>> send
>>>> 2009-11-09 11:19:28,296 DEBUG - SedaQueue                      -
>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@247262 dequeu
>>>> ed exchange: InOnly[
>>>>  id: ID:10.80.12.85-124d6ebc094-4:10
>>>>  status: Error
>>>>  role: consumer
>>>>  service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>  endpoint: CustomerInGenevaPortTypePort
>>>>  operation: {http://geneva.nova.com/customer}createCustomer
>>>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>> xmlns:msg="htt
>>>> p://www.hcsys.com/novaesb/"
>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>> e="createCustomer" type="msg:createCustomer"
>>>> version="1.0"><jbi:part><pns:createCustomer
>>>> xmlns:pns="http://geneva.nova.com/custome
>>>> r">
>>>>      <pns:value>aaaa</pns:value>
>>>>    </pns:createCustomer></jbi:part></jbi:message>
>>>>  error: javax.jbi.messaging.MessagingException: Fault not supported
>>>> ]
>>>> 2009-11-09 11:19:28,296 DEBUG - JmsComponent                   -
>>>> Received
>>>> exchange: status: Error, role: consumer
>>>> 2009-11-09 11:19:28,296 DEBUG - JmsComponent                   -
>>>> Retrieved
>>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>>> 2009-11-09 11:19:28,328 ERROR - JmsComponent                   - Error
>>>> processing exchange InOnly[
>>>>  id: ID:10.80.12.85-124d6ebc094-4:10
>>>>  status: Error
>>>>  role: consumer
>>>>  service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>  endpoint: CustomerInGenevaPortTypePort
>>>>  operation: {http://geneva.nova.com/customer}createCustomer
>>>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>> xmlns:msg="htt
>>>> p://www.hcsys.com/novaesb/"
>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>> e="createCustomer" type="msg:createCustomer"
>>>> version="1.0"><jbi:part><pns:createCustomer
>>>> xmlns:pns="http://geneva.nova.com/custome
>>>> r">
>>>>      <pns:value>aaaa</pns:value>
>>>>    </pns:createCustomer></jbi:part></jbi:message>
>>>>  error: javax.jbi.messaging.MessagingException: Fault not supported
>>>> ]
>>>> java.lang.UnsupportedOperationException: A destination must be
>>>> specified.
>>>>        at
>>>> org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:195)
>>>>        at
>>>> org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:74)
>>>>        at
>>>> org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:59)
>>>>        at
>>>> org.apache.servicemix.jms.multiplexing.MultiplexingConsumerProcessor.process(MultiplexingConsumerProcessor.java:126)
>>>>        at
>>>> org.apache.servicemix.soap.SoapEndpoint.process(SoapEndpoint.java:368)
>>>>        at
>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>>>        at
>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:598)
>>>>        at
>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>>>>        at
>>>> org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
>>>>        at
>>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>>>>        at
>>>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
>>>>        at
>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
>>>>        at
>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>>>>        at
>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>>>        at
>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>>>        at java.lang.Thread.run(Thread.java:619)
>>>>
>>>>
>>>> =======================log end==========================
>>>> --
>>>> View this message in context:
>>>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26260776.html
>>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>>
>>>>
>>>
>>>
>>> -----
>>> ---
>>> Gert Vanthienen
>>> http://gertvanthienen.blogspot.com
>>>
>>
>> --
>> View this message in context:
>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26297802.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>>
> 
> 
> -----
> ---
> Gert Vanthienen
> http://gertvanthienen.blogspot.com
> 

-- 
View this message in context: http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26312529.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: When external service is shut down, message don't rollback to jms queue.

Posted by Gert Vanthienen <ge...@gmail.com>.
Hi Colin,


The normal flow with an InOnly exchange would be the JMS consumer
reading the message from the queue and sending the ACTIVE exchange to
the cxf bc provider.  The cxf bc provider will then invoke the
external service and if that succeeds, return a DONE exchange to the
jms consumer.  It's only at that point that the JMS consumer should
acknowledge the JMS message or commit the transaction to remove the
message from the queue.

If the cxf bc provider can not access the remote service (e.g. because
the server is down), I would guess the cxf bc provider would return an
ERROR exchange to the JMS consumer.  That should be the trigger to
rollback the transaction or avoid acknowledging the JMS message.  Are
you saying that you see these DONE exchanges going back when the
external server is down?

There's a third scenario, which is the one Freeman mentioned, where
the external service is up and running but returns a fault message
(e.g. a remote exception or a business exception of some kind). Your
current InOnly MEP is not capable of conveying these faults back to
the JMS consumer.  The best option would be to use a RobustInOnly MEP,
which basically behaves like the InOnly MEP but add the possibility of
conveying fault messages.

You can configure another mep by adding a marshaler bean to the
xbean.xml, roughly like this (haven't tested it, but it should get you
close enough):
- first, add the marshaler bean and set the mep uri
<bean id="Marshaler"
class="org.apache.servicemix.jms.endpoints.DefaultConsumerMarshaler">
 <property name="mep">http://www.w3.org/2004/08/wsdl/robust-in-only</property>
</bean>
-secondly, configure the marshaler on your existing consumer endpoint
definition:
<jms:consumer .... marshaler="#Marshaler"/>


Regards,

Gert Vanthienen
------------------------
Open Source SOA: http://fusesource.com
Blog: http://gertvanthienen.blogspot.com/



2009/11/11 colin.chi <ib...@hotmail.com>:
>
> Hi Gert,
>
> Thanks for you reply.
>
> And I see some logs as following:
>
> 2009-11-09 11:19:28,171 DEBUG - SedaQueue                      -
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@89e163 dequeu
> ed exchange: InOnly[
>  id: ID:10.80.12.85-124d6ebc094-2:10
>  status: Done
>  role: consumer
>  service: {http://www.hcsys.com/novaesb/}jms
>  endpoint: provider
>  operation: {http://www.hcsys.com/novaesb/}createCustomer
>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="htt
> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
> e="createCustomer" type="msg:createCustomer"
> version="1.0"><jbi:part><pns:createCustomer
> xmlns:pns="http://geneva.nova.com/custome
> r">
>      <pns:value>aaaa</pns:value>
>    </pns:createCustomer></jbi:part></jbi:message>
> ]
>
> This means the message is received and processed(send to cxf-provider
> endpoint) successfully by jms consumer endpoint.
>
> so when cxf-provider endpoint catch an exception or an error, the message
> can't be  rollbacked to jms queue where jms consumer endpoint listen.
>
> I think this case can not be achieved in ServiceMix.
>
> If I am wrong, can you tell me how can I finish this case?
>
> thanks and regards.
>
>
> Gert Vanthienen wrote:
>>
>> L.S.,
>>
>> One option would be to enable transactions on the jms consumer
>> endpoint (transacted="jms").  Another option would be to get the JMS
>> client to acknowledge the message, like this:
>>
>>     <jms:consumer ....
>>                   sessionAcknowledgeMode="#AcknowledgeMode"/>
>>
>>      <util:constant id="AcknowledgeMode"
>> static-field="javax.jms.Session.CLIENT_ACKNOWLEDGE"/>
>>
>> Regards,
>>
>> Gert Vanthienen
>> ------------------------
>> Open Source SOA: http://fusesource.com
>> Blog: http://gertvanthienen.blogspot.com/
>>
>>
>>
>> 2009/11/9 colin.chi <ib...@hotmail.com>:
>>>
>>> work flow as follow:
>>>
>>> [external client]--->cxf-bc-consumer--->jms-provider--->jms queue
>>>
>>> jms queue--->jms-consumer--->cxf-bc-provider--->[external service]
>>>
>>> when external service is shut down, message don't rollback to jms queue
>>> and
>>> throw exception.
>>>
>>> how to config jms consumer and cxf bc provider to do this case?
>>>
>>> =======================log begin==========================
>>>
>>> 2009-11-09 11:19:28,046 DEBUG - JettyHTTPDestination           - Service
>>> http request on thread: Thread[22434271@qtp0-0,5,RMI Runt
>>> ime]
>>> 2009-11-09 11:19:28,046 DEBUG - AbstractHTTPDestination        - Request
>>> Headers: {connection=[Keep-Alive], Host=[localhost:8080],
>>>  Content-Length=[364], User-Agent=[Mozilla/4.0 (compatible; MSIE 7.0;
>>> Windows NT 5.1; Trident/4.0; GOSURF)], accept-encoding=[gzip
>>> , deflate], Accept=[*/*], Cache-Control=[no-cache]}
>>> 2009-11-09 11:19:28,046 DEBUG - PhaseInterceptorChain          - Chain
>>> org.apache.cxf.phase.PhaseInterceptorChain@735ad7 was creat
>>> ed. Current flow:
>>>  receive [AttachmentInInterceptor]
>>>  post-stream [StaxInInterceptor]
>>>  read [ReadHeadersInterceptor]
>>>  pre-protocol [, MustUnderstandInterceptor, JbiJAASInterceptor]
>>>  unmarshal [JbiOperationInterceptor]
>>>  pre-invoke [JbiInWsdl1Interceptor, JbiInInterceptor]
>>>  invoke [JbiInvokerInterceptor]
>>>  post-invoke [JbiPostInvokerInterceptor, OutgoingChainInterceptor]
>>>
>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          - Invoking
>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>> AttachmentInInterceptor@14d8c8
>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          - Invoking
>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>> StaxInInterceptor@a4480d
>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          - Invoking
>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>> .interceptor.ReadHeadersInterceptor@1766d9c
>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          - Invoking
>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>> .CxfBcConsumer$1@1b7715d
>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          - Invoking
>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>> .interceptor.MustUnderstandInterceptor@73a403
>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          - Invoking
>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>> .interceptors.JbiJAASInterceptor@ca7c93
>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          - Invoking
>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>> .interceptors.JbiOperationInterceptor@1626bf
>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          - Invoking
>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>> .interceptors.JbiInWsdl1Interceptor@49e885
>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          - Invoking
>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>> .interceptors.JbiInInterceptor@407909
>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          - Invoking
>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>> .CxfBcConsumer$JbiInvokerInterceptor@1b8a6af
>>> 2009-11-09 11:19:28,140 DEBUG - CxfBcComponent                 - Created
>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>> 2009-11-09 11:19:28,140 DEBUG - DeliveryChannelImpl            - Send
>>> ID:10.80.12.85-124d6ebc094-2:10 in DeliveryChannel{servicemi
>>> x-cxf-bc}
>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  - send
>>> exchange with secure broker
>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  - service
>>> name :{http://www.hcsys.com/novaesb/}jms
>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -
>>> operation
>>> name :{http://www.hcsys.com/novaesb/}createCustomer
>>> 2009-11-09 11:19:28,140 DEBUG - SedaFlow                       - Called
>>> Flow
>>> send
>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          - Invoking
>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>> .CxfBcConsumer$JbiPostInvokerInterceptor@1c76cab
>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          - Invoking
>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>> OutgoingChainInterceptor@1af691b
>>> 2009-11-09 11:19:28,156 DEBUG - JettyHTTPDestination           - Finished
>>> servicing http request on thread: Thread[22434271@qtp0-0
>>> ,5,RMI Runtime]
>>> 2009-11-09 11:19:28,156 DEBUG - SedaQueue                      -
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@45ac89 dequeu
>>> ed exchange: InOnly[
>>>  id: ID:10.80.12.85-124d6ebc094-2:10
>>>  status: Active
>>>  role: provider
>>>  service: {http://www.hcsys.com/novaesb/}jms
>>>  endpoint: provider
>>>  operation: {http://www.hcsys.com/novaesb/}createCustomer
>>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="htt
>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>> e="createCustomer" type="msg:createCustomer"
>>> version="1.0"><jbi:part><pns:createCustomer
>>> xmlns:pns="http://geneva.nova.com/custome
>>> r">
>>>      <pns:value>aaaa</pns:value>
>>>    </pns:createCustomer></jbi:part></jbi:message>
>>> ]
>>> 2009-11-09 11:19:28,156 DEBUG - JmsComponent                   - Received
>>> exchange: status: Active, role: provider
>>> 2009-11-09 11:19:28,156 DEBUG - JmsComponent                   -
>>> Retrieved
>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>> 2009-11-09 11:19:28,156 DEBUG - DeliveryChannelImpl            - Send
>>> ID:10.80.12.85-124d6ebc094-2:10 in DeliveryChannel{servicemi
>>> x-jms}
>>> 2009-11-09 11:19:28,156 DEBUG - SecuredBroker                  - send
>>> exchange with secure broker
>>> 2009-11-09 11:19:28,156 DEBUG - SedaFlow                       - Called
>>> Flow
>>> send
>>> 2009-11-09 11:19:28,156 DEBUG - MultiplexingConsumerProcessor  - Received
>>> jms message ActiveMQTextMessage {commandId = 17, respons
>>> eRequired = true, messageId =
>>> ID:8014ac188efd43a-4422-1257736227984-2:10:1:1:11, originalDestination =
>>> null, originalTransactionId
>>>  = null, producerId = ID:8014ac188efd43a-4422-1257736227984-2:10:1:1,
>>> destination = queue://queue/A, transactionId = null, expirat
>>> ion = 0, timestamp = 1257736768156, arrival = 0, brokerInTime =
>>> 1257736768156, brokerOutTime = 1257736768156, correlationId = null
>>> , replyTo = null, persistent = true, type = null, priority = 4, groupID =
>>> null, groupSequence = 0, targetConsumerId = null, compre
>>> ssed = false, userID = null, content = null, marshalledProperties =
>>> org.apache.activemq.util.ByteSequence@1713c03, dataStructure =
>>>  null, redeliveryCounter = 0, size = 0, properties =
>>> {MimeContentType=text/xml;charset=UTF-8,
>>> SoapAction=/{http://www.hcsys.com/no
>>> vaesb/}createCustomer,
>>> SOAPJMS_soapAction=/{http://www.hcsys.com/novaesb/}createCustomer},
>>> readOnlyProperties = true, readOnlyBody
>>>  = true, droppable = false, text = <?xml version='1.0'
>>> encoding='UTF-8'?><jbi:me...jbi:message>}
>>> 2009-11-09 11:19:28,171 DEBUG - MultiplexingConsumerProcessor  - Handling
>>> jms message ActiveMQTextMessage {commandId = 17, respons
>>> eRequired = true, messageId =
>>> ID:8014ac188efd43a-4422-1257736227984-2:10:1:1:11, originalDestination =
>>> null, originalTransactionId
>>>  = null, producerId = ID:8014ac188efd43a-4422-1257736227984-2:10:1:1,
>>> destination = queue://queue/A, transactionId = null, expirat
>>> ion = 0, timestamp = 1257736768156, arrival = 0, brokerInTime =
>>> 1257736768156, brokerOutTime = 1257736768156, correlationId = null
>>> , replyTo = null, persistent = true, type = null, priority = 4, groupID =
>>> null, groupSequence = 0, targetConsumerId = null, compre
>>> ssed = false, userID = null, content = null, marshalledProperties =
>>> org.apache.activemq.util.ByteSequence@1713c03, dataStructure =
>>>  null, redeliveryCounter = 0, size = 0, properties =
>>> {MimeContentType=text/xml;charset=UTF-8,
>>> SoapAction=/{http://www.hcsys.com/no
>>> vaesb/}createCustomer,
>>> SOAPJMS_soapAction=/{http://www.hcsys.com/novaesb/}createCustomer},
>>> readOnlyProperties = true, readOnlyBody
>>>  = true, droppable = false, text = <?xml version='1.0'
>>> encoding='UTF-8'?><jbi:me...jbi:message>}
>>> 2009-11-09 11:19:28,171 DEBUG - SedaQueue                      -
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@89e163 dequeu
>>> ed exchange: InOnly[
>>>  id: ID:10.80.12.85-124d6ebc094-2:10
>>>  status: Done
>>>  role: consumer
>>>  service: {http://www.hcsys.com/novaesb/}jms
>>>  endpoint: provider
>>>  operation: {http://www.hcsys.com/novaesb/}createCustomer
>>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="htt
>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>> e="createCustomer" type="msg:createCustomer"
>>> version="1.0"><jbi:part><pns:createCustomer
>>> xmlns:pns="http://geneva.nova.com/custome
>>> r">
>>>      <pns:value>aaaa</pns:value>
>>>    </pns:createCustomer></jbi:part></jbi:message>
>>> ]
>>> 2009-11-09 11:19:28,171 DEBUG - JmsComponent                   - Created
>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>> 2009-11-09 11:19:28,171 DEBUG - CxfBcComponent                 - Received
>>> exchange: status: Done, role: consumer
>>> 2009-11-09 11:19:28,171 DEBUG - DeliveryChannelImpl            - Send
>>> ID:10.80.12.85-124d6ebc094-4:10 in DeliveryChannel{servicemi
>>> x-jms}
>>> 2009-11-09 11:19:28,171 DEBUG - CxfBcComponent                 -
>>> Retrieved
>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  - send
>>> exchange with secure broker
>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  - service
>>> name :{http://geneva.nova.com/customer}CustomerInImplServ
>>> ice
>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -
>>> operation
>>> name :{http://geneva.nova.com/customer}createCustomer
>>> 2009-11-09 11:19:28,171 DEBUG - SedaFlow                       - Called
>>> Flow
>>> send
>>> 2009-11-09 11:19:28,187 DEBUG - SedaQueue                      -
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@4437d3 dequeu
>>> ed exchange: InOnly[
>>>  id: ID:10.80.12.85-124d6ebc094-4:10
>>>  status: Active
>>>  role: provider
>>>  service: {http://geneva.nova.com/customer}CustomerInImplService
>>>  endpoint: CustomerInGenevaPortTypePort
>>>  operation: {http://geneva.nova.com/customer}createCustomer
>>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="htt
>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>> e="createCustomer" type="msg:createCustomer"
>>> version="1.0"><jbi:part><pns:createCustomer
>>> xmlns:pns="http://geneva.nova.com/custome
>>> r">
>>>      <pns:value>aaaa</pns:value>
>>>    </pns:createCustomer></jbi:part></jbi:message>
>>> ]
>>> 2009-11-09 11:19:28,187 DEBUG - CxfBcComponent                 - Received
>>> exchange: status: Active, role: provider
>>> 2009-11-09 11:19:28,187 DEBUG - CxfBcComponent                 -
>>> Retrieved
>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
>>> interceptor org.apache.servicemix.cxfbc.interceptors.JbiOu
>>> tInterceptor@dd6a50 to phase pre-stream
>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
>>> interceptor org.apache.servicemix.cxfbc.interceptors.JbiOu
>>> tWsdl1Interceptor@6ed9d1 to phase marshal
>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapPr
>>> eProtocolOutInterceptor@19e4f8b to phase post-logical
>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapOu
>>> tInterceptor@782f81 to phase write
>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapAc
>>> tionOutInterceptor@76df38 to phase post-logical
>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
>>> interceptor org.apache.cxf.interceptor.StaxOutInterceptor@
>>> 38df00 to phase pre-stream
>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Chain
>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was crea
>>> ted. Current flow:
>>>  post-logical [SoapPreProtocolOutInterceptor, SoapActionOutInterceptor]
>>>  pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>  write [SoapOutInterceptor]
>>>  marshal [JbiOutWsdl1Interceptor]
>>>
>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Invoking
>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>> .interceptor.SoapPreProtocolOutInterceptor@19e4f8b
>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Invoking
>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>> .interceptor.SoapActionOutInterceptor@76df38
>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Invoking
>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>> .interceptors.JbiOutInterceptor@dd6a50
>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Invoking
>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>> StaxOutInterceptor@38df00
>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
>>> interceptor org.apache.cxf.interceptor.StaxOutInterceptor$
>>> StaxOutEndingInterceptor@1073a2e to phase pre-stream-ending
>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Chain
>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was modi
>>> fied. Current flow:
>>>  post-logical [SoapPreProtocolOutInterceptor, SoapActionOutInterceptor]
>>>  pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>  write [SoapOutInterceptor]
>>>  marshal [JbiOutWsdl1Interceptor]
>>>  pre-stream-ending [StaxOutEndingInterceptor]
>>>
>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Invoking
>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>> .interceptor.SoapOutInterceptor@782f81
>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          - Adding
>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapOu
>>> tInterceptor$SoapOutEndingInterceptor@17cb4ff to phase write-ending
>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          - Chain
>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was modi
>>> fied. Current flow:
>>>  post-logical [SoapPreProtocolOutInterceptor, SoapActionOutInterceptor]
>>>  pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>  write [SoapOutInterceptor]
>>>  marshal [JbiOutWsdl1Interceptor]
>>>  write-ending [SoapOutEndingInterceptor]
>>>  pre-stream-ending [StaxOutEndingInterceptor]
>>>
>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          - Invoking
>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>> .interceptors.JbiOutWsdl1Interceptor@6ed9d1
>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          - Invoking
>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>> .interceptor.SoapOutInterceptor$SoapOutEndingInterceptor@17cb4ff
>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          - Invoking
>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>> StaxOutInterceptor$StaxOutEndingInterceptor@1073a2e
>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    - Sending
>>> POST Message with Headers to http://10.80.12.100:8080/Gen
>>> evaESB/services/CustomerAccount Conduit
>>> :{http://geneva.nova.com/customer}CustomerInGenevaPortTypePort.http-conduit
>>> Content-Type: text/xml; charset=UTF-8
>>>
>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>> SOAPAction:
>>> ""
>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    - Accept:
>>> *
>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    - No Trust
>>> Decider for Conduit '{http://geneva.nova.com/customer}Cu
>>> stomerInGenevaPortTypePort.http-conduit'. An afirmative Trust Decision is
>>> assumed.
>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    - Response
>>> Code: 404 Conduit: {http://geneva.nova.com/customer}Cust
>>> omerInGenevaPortTypePort.http-conduit
>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    - Content
>>> length: 952
>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    - Header
>>> fields:
>>>    null: [HTTP/1.1 404 Not Found]
>>>    Date: [Mon, 09 Nov 2009 03:19:04 GMT]
>>>    Content-Length: [952]
>>>    Content-Type: [text/html;charset=utf-8]
>>>    Server: [Apache-Coyote/1.1]
>>>
>>> 2009-11-09 11:19:28,265 ERROR - CxfBcComponent                 - Error
>>> processing exchange InOnly[
>>>  id: ID:10.80.12.85-124d6ebc094-4:10
>>>  status: Active
>>>  role: provider
>>>  service: {http://geneva.nova.com/customer}CustomerInImplService
>>>  endpoint: CustomerInGenevaPortTypePort
>>>  operation: {http://geneva.nova.com/customer}createCustomer
>>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="htt
>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>> e="createCustomer" type="msg:createCustomer"
>>> version="1.0"><jbi:part><pns:createCustomer
>>> xmlns:pns="http://geneva.nova.com/custome
>>> r">
>>>      <pns:value>aaaa</pns:value>
>>>    </pns:createCustomer></jbi:part></jbi:message>
>>> ]
>>> javax.jbi.messaging.MessagingException: Fault not supported
>>>        at
>>> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java:366)
>>>        at
>>> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setFault(MessageExchangeImpl.java:290)
>>>        at
>>> org.apache.servicemix.cxfbc.CxfBcProvider.faultProcess(CxfBcProvider.java:277)
>>>        at
>>> org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:261)
>>>        at
>>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>>        at
>>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
>>>        at
>>> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>>>        at
>>> org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
>>>        at
>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>>>        at
>>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
>>>        at
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
>>>        at
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>>>        at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>>        at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>>        at java.lang.Thread.run(Thread.java:619)
>>> 2009-11-09 11:19:28,296 DEBUG - DeliveryChannelImpl            - Send
>>> ID:10.80.12.85-124d6ebc094-4:10 in DeliveryChannel{servicemi
>>> x-cxf-bc}
>>> 2009-11-09 11:19:28,296 DEBUG - SecuredBroker                  - send
>>> exchange with secure broker
>>> 2009-11-09 11:19:28,296 DEBUG - SedaFlow                       - Called
>>> Flow
>>> send
>>> 2009-11-09 11:19:28,296 DEBUG - SedaQueue                      -
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@247262 dequeu
>>> ed exchange: InOnly[
>>>  id: ID:10.80.12.85-124d6ebc094-4:10
>>>  status: Error
>>>  role: consumer
>>>  service: {http://geneva.nova.com/customer}CustomerInImplService
>>>  endpoint: CustomerInGenevaPortTypePort
>>>  operation: {http://geneva.nova.com/customer}createCustomer
>>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="htt
>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>> e="createCustomer" type="msg:createCustomer"
>>> version="1.0"><jbi:part><pns:createCustomer
>>> xmlns:pns="http://geneva.nova.com/custome
>>> r">
>>>      <pns:value>aaaa</pns:value>
>>>    </pns:createCustomer></jbi:part></jbi:message>
>>>  error: javax.jbi.messaging.MessagingException: Fault not supported
>>> ]
>>> 2009-11-09 11:19:28,296 DEBUG - JmsComponent                   - Received
>>> exchange: status: Error, role: consumer
>>> 2009-11-09 11:19:28,296 DEBUG - JmsComponent                   -
>>> Retrieved
>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>> 2009-11-09 11:19:28,328 ERROR - JmsComponent                   - Error
>>> processing exchange InOnly[
>>>  id: ID:10.80.12.85-124d6ebc094-4:10
>>>  status: Error
>>>  role: consumer
>>>  service: {http://geneva.nova.com/customer}CustomerInImplService
>>>  endpoint: CustomerInGenevaPortTypePort
>>>  operation: {http://geneva.nova.com/customer}createCustomer
>>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="htt
>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>> e="createCustomer" type="msg:createCustomer"
>>> version="1.0"><jbi:part><pns:createCustomer
>>> xmlns:pns="http://geneva.nova.com/custome
>>> r">
>>>      <pns:value>aaaa</pns:value>
>>>    </pns:createCustomer></jbi:part></jbi:message>
>>>  error: javax.jbi.messaging.MessagingException: Fault not supported
>>> ]
>>> java.lang.UnsupportedOperationException: A destination must be specified.
>>>        at
>>> org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:195)
>>>        at
>>> org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:74)
>>>        at
>>> org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:59)
>>>        at
>>> org.apache.servicemix.jms.multiplexing.MultiplexingConsumerProcessor.process(MultiplexingConsumerProcessor.java:126)
>>>        at
>>> org.apache.servicemix.soap.SoapEndpoint.process(SoapEndpoint.java:368)
>>>        at
>>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>>        at
>>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:598)
>>>        at
>>> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>>>        at
>>> org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
>>>        at
>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>>>        at
>>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
>>>        at
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
>>>        at
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>>>        at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>>        at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>>        at java.lang.Thread.run(Thread.java:619)
>>>
>>>
>>> =======================log end==========================
>>> --
>>> View this message in context:
>>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26260776.html
>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>> -----
>> ---
>> Gert Vanthienen
>> http://gertvanthienen.blogspot.com
>>
>
> --
> View this message in context: http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26297802.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>

Re: When external service is shut down, message don't rollback to jms queue.

Posted by "colin.chi" <ib...@hotmail.com>.
Hi Gert,

I have done that what you told to write a customer Marshaller. I rewrite the
method createFault() like this:

public Message createFault(MessageExchange exchange, Fault fault,
            Session session, JmsContext context) throws Exception {
        //throw exception on a fault to force rollback
        logger.debug("===================fault != null : " + (fault !=
null));
        throw new Exception(fault.toString());
    }
I tested it and message was redeliverd and rolled back to DLQ.

In in-out MEP, when external service is shut down, Marshaller got a JBI
Fault message, not a error exception. 

Another question:
In class AbstractConsumerEndpoint
...
protected void processExchange(final...) throws Exception {
  ...
  Destination dest = null;
  ...
  else if (exchange.getStatus() == ExchangeStatus.DONE) {
    msg = session.createMessage();
    msg.setBooleanProperty(AbstractJmsMarshaler.DONE_JMS_PROPERTY, true);
    send(msg, session, dest);
  }
  ...
}

when send is executed, the param dest is null, so it catch a exception like
"A destination must be specified". Can you check the code of this class?

Thanks and regards


Gert Vanthienen wrote:
> 
> L.S.,
> 
> With the default ConsumerMarshaler, the Fault message that you get
> back is intended to be send back over a reply queue.  That's why
> you're now getting this exception, because you have not configured the
> reply queue.
> 
> However, if I understand correctly, you don't want the fault to end up
> in another queue, you would rather have the entire transaction to roll
> back.  That's why I was suggesting to build your own marshaler.  You
> can do this by creating a src/main/java folder in your JMS SU and add
> the Java class there.  The Maven build should pick that up, compile
> the class and add it to your SU so can use it in your configuration.
> 
> Regards,
> 
> Gert Vanthienen
> ------------------------
> Open Source SOA: http://fusesource.com
> Blog: http://gertvanthienen.blogspot.com/
> 
> 
> 
> 2009/11/13 colin.chi <ib...@hotmail.com>:
>>
>> Hi Gert,
>>
>> I am sorry, I don't know how to wirte MyConsumerMarshaler.
>>
>> But, I have find a issue from the log, and check the source code of class
>> AbstractConsumerEndpoint.java.
>>
>> In method processExchange, I add some logger.
>> ==================================================
>> protected void processExchange(final MessageExchange exchange, final
>> Session
>> session, final JmsContext context) throws Exception {
>>        logger.debug("===================exchange instanceof InOnly : " +
>> (exchange instanceof InOnly));
>>        if (exchange instanceof InOnly) {
>>            // throw an exception when the exchange is transacted to
>> ensure
>> correct rollback of the transaction
>>            if (exchange.isTransacted() &&
>> ExchangeStatus.ERROR.equals(exchange.getStatus())) {
>>                throw exchange.getError();
>>            }
>>            // ignore non-transacted and/or DONE exchanges
>>            return;
>>        }
>>        logger.debug("===================session == null : " + (session ==
>> null));
>>        // Create session if needed
>>        if (session == null) {
>>            template.execute(new SessionCallback() {
>>                public Object doInJms(Session session) throws JMSException
>> {
>>                    try {
>>                        processExchange(exchange, session, context);
>>                    } catch (Exception e) {
>>                        throw new
>> ListenerExecutionFailedException("Exchange
>> processing failed", e);
>>                    }
>>                    return null;
>>                }
>>            });
>>            return;
>>        }
>>        // Handle exchanges
>>        Message msg = null;
>>        Destination dest = null;
>>        logger.debug("===================exchange.getStatus() : " +
>> exchange.getStatus());
>>        if (exchange.getStatus() == ExchangeStatus.ACTIVE) {
>>            if (exchange.getFault() != null) {
>>                msg = marshaler.createFault(exchange, exchange.getFault(),
>> session, context);
>>                dest = getReplyDestination(exchange, exchange.getFault(),
>> session, context);
>>            } else if (exchange.getMessage("out") != null) {
>>                msg = marshaler.createOut(exchange,
>> exchange.getMessage("out"), session, context);
>>                dest = getReplyDestination(exchange,
>> exchange.getMessage("out"), session, context);
>>            }
>>            if (msg == null) {
>>                throw new IllegalStateException("Unable to send back
>> answer
>> or fault");
>>            }
>>            setCorrelationId(context.getMessage(), msg);
>>            try {
>>                send(msg, session, dest);
>>                done(exchange);
>>            } catch (Exception e) {
>>                fail(exchange, e);
>>                throw e;
>>            }
>>        } else if (exchange.getStatus() == ExchangeStatus.ERROR) {
>>            Exception error = exchange.getError();
>>            if (error == null) {
>>                error = new JBIException("Exchange in ERROR state, but no
>> exception provided");
>>            }
>>            msg = marshaler.createError(exchange, error, session,
>> context);
>>            dest = getReplyDestination(exchange, error, session, context);
>>            setCorrelationId(context.getMessage(), msg);
>>            send(msg, session, dest);
>>        } else if (exchange.getStatus() == ExchangeStatus.DONE) {
>>            msg = session.createMessage();
>>            msg.setBooleanProperty(AbstractJmsMarshaler.DONE_JMS_PROPERTY,
>> true);
>>            logger.debug("===================dest == null : " + (dest ==
>> null));
>>            send(msg, session, dest);
>>        } else {
>>            throw new IllegalStateException("Unrecognized exchange
>> status");
>>        }
>>    }
>>
>> protected void send(Message msg, Session session, Destination dest)
>> throws
>> JMSException {
>>        MessageProducer producer;
>>        logger.debug("===================isJms102() : " + isJms102());
>>        if (isJms102()) {
>>            if (isPubSubDomain()) {
>>                producer = ((TopicSession)
>> session).createPublisher((Topic)
>> dest);
>>            } else {
>>                producer = ((QueueSession) session).createSender((Queue)
>> dest);
>>            }
>>        } else {
>>            producer = session.createProducer(dest);
>>        }
>>        try {
>>            if (replyProperties != null) {
>>                for (Map.Entry<String, Object> e :
>> replyProperties.entrySet()) {
>>                    msg.setObjectProperty(e.getKey(), e.getValue());
>>                }
>>            }
>>            if (isJms102()) {
>>                if (isPubSubDomain()) {
>>                    if (replyExplicitQosEnabled) {
>>                        ((TopicPublisher) producer).publish(msg,
>> replyDeliveryMode, replyPriority, replyTimeToLive);
>>                    } else {
>>                        ((TopicPublisher) producer).publish(msg);
>>                    }
>>                } else {
>>                    if (replyExplicitQosEnabled) {
>>                        ((QueueSender) producer).send(msg,
>> replyDeliveryMode, replyPriority, replyTimeToLive);
>>                    } else {
>>                        ((QueueSender) producer).send(msg);
>>                    }
>>                }
>>            } else {
>>                if (replyExplicitQosEnabled) {
>>                    producer.send(msg, replyDeliveryMode, replyPriority,
>> replyTimeToLive);
>>                } else {
>>                      
>>  logger.debug("===================msg.getJMSDestination() :
>> " + msg.getJMSDestination().toString());
>>                        logger.debug("===================msg.toString() :
>> " +
>> msg.toString());
>>                    producer.send(msg);
>>                }
>>            }
>>        } finally {
>>            JmsUtils.closeMessageProducer(producer);
>>        }
>>    }
>> =============================================================
>>
>> Then I test it in "robust-in-only". result is :
>> =============================================================
>> 2009-11-13 16:20:41,765 DEBUG - DeliveryChannelImpl            -
>> Notified:
>> ID:10.80.12.85-124ec9e3f73-4:0(1f23ca4) in DeliveryChan
>> nel{servicemix-jms} from sendSync
>> 2009-11-13 16:20:41,765 DEBUG - AbstractConsumerEndpoint       -
>> ===================exchange instanceof InOnly : false
>> 2009-11-13 16:20:41,765 DEBUG - AbstractConsumerEndpoint       -
>> ===================session == null : false
>> 2009-11-13 16:20:41,765 DEBUG - AbstractConsumerEndpoint       -
>> ===================exchange.getStatus() : Done
>> 2009-11-13 16:20:41,765 DEBUG - AbstractConsumerEndpoint       -
>> ===================dest == null : true
>> 2009-11-13 16:20:41,765 DEBUG - AbstractConsumerEndpoint       -
>> ===================isJms102() : false
>> 2009-11-13 16:20:41,765 DEBUG - ActiveMQSession                -
>> ID:8014ac188efd43a-3350-1258100239656-2:12:1 Transaction Rollback
>>
>> 2009-11-13 16:20:41,781 WARN  - DefaultMessageListenerContainer -
>> Execution
>> of JMS message listener failed
>> javax.jms.JMSException: Error sending JBI exchange
>>        at
>> org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:587)
>>        at
>> org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint$1.onMessage(JmsConsumerEndpoint.java:505)
>>        at
>> org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.jav
>> a:518)
>>        at
>> org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:
>> 479)
>>        at
>> org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.ja
>> va:451)
>>        at
>> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageList
>> enerContainer.java:323)
>>        at
>> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListen
>> erContainer.java:241)
>>        at
>> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMess
>> ageListenerContainer.java:982)
>>        at
>> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(Default
>> MessageListenerContainer.java:974)
>>        at
>> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListener
>> Container.java:876)
>>        at java.lang.Thread.run(Thread.java:619)
>> Caused by: java.lang.NullPointerException
>>        at
>> org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.send(AbstractConsumerEndpoint.java:536)
>>        at
>> org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.processExchange(AbstractConsumerEndpoint.java:494)
>>        at
>> org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:564)
>>        ... 10 more
>> 2009-11-13 16:20:41,781 DEBUG - ActiveMQSession                -
>> ID:8014ac188efd43a-3350-1258100239656-2:32:1 Transaction Rollback
>> =============================================================
>>
>> from this log result, you can find that when exchange is not in-only and
>> exchange.getStatus() is DONE, the variable of dest which is defined in
>> processExchange method is not initialized, it is null.
>> So, in next method send(...), when session.createProducer(dest), it throw
>> a
>> NullPointerException.
>>
>> Is it a bug?
>>
>>
>> Gert Vanthienen wrote:
>>>
>>> Colin,
>>>
>>> It looks like your service is return a fault when it's unavailable
>>> instead of the usual ERROR message exchange.  With the InOnly
>>> exchange, the fault is lost because it can not be conveyed.  That's
>>> why we suggested using another MEP, like RobustInOnly.
>>>
>>> However, the default behavior of the jms:consumer endpoint is not to
>>> rollback on a fault message, but instead try to send it as a reply JMS
>>> message.  That's why you're now getting these exceptions, because the
>>> replyDestination has not been set.  Our marshaler currently doesn't
>>> support rolling back on a fault message.
>>>
>>> Just to test this hypothesis, could you add your own Marshaler class
>>> to the JMS SU and configure a replyDestination to hold the DONE
>>> exchanges:
>>> public class MyConsumerMarshaler extends DefaultConsumerMarshaler {
>>>
>>> public Message createFault(MessageExchange exchange, Fault fault,
>>> Session session, JmsContext context) throws Exception {
>>> //throw exception on a fault to force rollback
>>> throw new FaultException(fault);
>>> }
>>> }
>>>
>>> If that fixes the issue, we should probably look into making this
>>> option available from the default consumer marshaler.
>>>
>>> Regards,
>>>
>>> Gert Vanthienen
>>> ------------------------
>>> Open Source SOA: http://fusesource.com
>>> Blog: http://gertvanthienen.blogspot.com/
>>>
>>>
>>>
>>> 2009/11/12 colin.chi <ib...@hotmail.com>:
>>>>
>>>> Hi FF,
>>>>
>>>> I will repeat what scenario I tested.
>>>>
>>>> external client: I use examples\wsdl-first\client.html and change the
>>>> "Target" param and textarea content.
>>>> external service: I build a webservice by cxf framework. external
>>>> service
>>>> wsdl is :
>>>>    <wsdl:operation name="createCustomer">
>>>>      <soap:operation soapAction="" style="document" />
>>>>      <wsdl:input name="createCustomer">
>>>>        <soap:body use="literal" />
>>>>      </wsdl:input>
>>>>    </wsdl:operation>
>>>>
>>>> jms consumer endpoint configration:
>>>>    <bean id="Marshaler"
>>>> class="org.apache.servicemix.jms.endpoints.DefaultConsumerMarshaler">
>>>>        <property name="mep"
>>>> value="http://www.w3.org/2004/08/wsdl/in-only"
>>>> />
>>>>    </bean>
>>>>
>>>>    <bean id="connectionFactory1"
>>>> class="org.apache.activemq.ActiveMQConnectionFactory">
>>>>        <property name="brokerURL" value="tcp://localhost:61616" />
>>>>        <property name="redeliveryPolicy" ref="redeliveryPolicy" />
>>>>    </bean>
>>>>
>>>>    <bean id="redeliveryPolicy"
>>>> class="org.apache.activemq.RedeliveryPolicy">
>>>>        <property name="initialRedeliveryDelay" value="10000"/>
>>>>        <property name="maximumRedeliveries" value="2"/>
>>>>    </bean>
>>>>
>>>> and in activemq.xml, I configrate a DLQ.queue/A.
>>>>
>>>> first scenario:
>>>>  <jms:consumer service="novaesb:jms"
>>>>                  endpoint="consumer"
>>>>                  targetService="geneva:CustomerInImplService"
>>>>                  targetEndpoint="CustomerInGenevaPortTypePort"
>>>>                  destinationName="queue/A"
>>>>                  connectionFactory="#connectionFactory1"
>>>>                  transacted="jms"
>>>>                  cacheLevel="2"
>>>>                  marshaler="#Marshaler" /><!-- in-only -->
>>>>
>>>> first result:
>>>>  when external service is running, external service receive message,
>>>> and
>>>> test is ok.
>>>>  when external service is shutdown, there is an error, and message can
>>>> not
>>>> be rollback to jms consumer, and message lost.
>>>>   error log is :
>>>>     2009-11-12 14:50:09,359 ERROR - CxfBcComponent                 -
>>>> Error
>>>> processing exchange InOnly[
>>>>       ...
>>>>       status: Active
>>>>       role: provider
>>>>       service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>       ...
>>>>     javax.jbi.messaging.MessagingException: Fault not supported
>>>>     ...
>>>>     2009-11-12 14:50:09,359 DEBUG - SedaQueue                      -
>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@117d8d5 dequeued
>>>> exchange: InOnly[
>>>>       ...
>>>>       status: Error
>>>>       role: consumer
>>>>       service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>       ...
>>>>       error: javax.jbi.messaging.MessagingException: Fault not
>>>> supported
>>>>     ...
>>>>
>>>> second scenario:
>>>> I change bean "Marshaler" value to
>>>> "http://www.w3.org/2004/08/wsdl/robust-in-only".
>>>>  <jms:consumer service="novaesb:jms"
>>>>                  endpoint="consumer"
>>>>                  targetService="geneva:CustomerInImplService"
>>>>                  targetEndpoint="CustomerInGenevaPortTypePort"
>>>>                  destinationName="queue/A"
>>>>                  connectionFactory="#connectionFactory1"
>>>>                  transacted="jms"
>>>>                  cacheLevel="2"
>>>>                  marshaler="#Marshaler" /><!-- robust-in-only -->
>>>>
>>>> second result:
>>>>  when external service is running,
>>>>    external service receive message 2 times, external service receive
>>>> message time:
>>>>     1st receive time : Nov 12, 2009 2:58:31 PM
>>>> org.apache.cxf.interceptor.LoggingInInterceptor logging
>>>>     2nd receive time : Nov 12, 2009 2:58:32 PM
>>>> org.apache.cxf.interceptor.LoggingInInterceptor logging
>>>>
>>>>    message in ServiceMix rollback 2 times, then be sended to
>>>> DLQ.queue/A.
>>>>     1st rollback time : 2009-11-12 14:59:14,671 DEBUG - ActiveMQSession
>>>> - ID:8014ac188efd43a-3319-1258009050796-2:12:1 Transaction Rollback
>>>>                         ...
>>>>                         2009-11-12 14:59:14,687 DEBUG - ActiveMQSession
>>>> - ID:8014ac188efd43a-3319-1258009050796-2:17:1 Transaction Rollback
>>>>                         ...
>>>>     2nd rollback time : 2009-11-12 14:59:15,140 DEBUG - ActiveMQSession
>>>> - ID:8014ac188efd43a-3319-1258009050796-2:18:1 Transaction Rollback
>>>>                         ...
>>>>                         2009-11-12 14:59:15,140 DEBUG - ActiveMQSession
>>>> - ID:8014ac188efd43a-3319-1258009050796-2:19:1 Transaction Rollback
>>>>                         ...
>>>>
>>>>  when external service is shutdown, message is rollbacked 2 times, then
>>>> be
>>>> sended to DLQ.queue/A.
>>>>   1st rollback time : 2009-11-12 15:12:33,453 DEBUG - ActiveMQSession
>>>> - ID:8014ac188efd43a-3319-1258009050796-2:20:1 Transaction Rollback
>>>>                       ...
>>>>                       2009-11-12 15:12:33,468 DEBUG - ActiveMQSession
>>>> - ID:8014ac188efd43a-3319-1258009050796-2:768:1 Transaction Rollback
>>>>                       ...
>>>>   2nd rollback time : 2009-11-12 15:12:33,625 DEBUG - ActiveMQSession
>>>> - ID:8014ac188efd43a-3319-1258009050796-2:769:1 Transaction Rollback
>>>>                       ...
>>>>                       2009-11-12 15:12:33,640 DEBUG - ActiveMQSession
>>>> - ID:8014ac188efd43a-3319-1258009050796-2:770:1 Transaction Rollback
>>>>                       ...
>>>>
>>>> In these two test scenario, why rollback Delay time is not 10000ms?
>>>> when external service is ok, why servicemix get that error and last
>>>> send
>>>> message to dlq?
>>>>
>>>>
>>>> Freeman Fang wrote:
>>>>>
>>>>> Hi Colin,
>>>>>
>>>>> Did you ever test the scenario when external service is shutdown with
>>>>> current configuration? I don't think fault message can't  send back to
>>>>> jms consumer endpoint for your current configuration
>>>>>  From your first email, when external service is shutdown, you get
>>>>> exception like
>>>>>
>>>>> javax.jbi.messaging.MessagingException: Fault not supported
>>>>>         at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .jbi.messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java:
>>>>> 366)
>>>>>         at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .jbi.messaging.MessageExchangeImpl.setFault(MessageExchangeImpl.java:
>>>>> 290)
>>>>>         at
>>>>> org
>>>>> .apache.servicemix.cxfbc.CxfBcProvider.faultProcess(CxfBcProvider.java:
>>>>> 277)
>>>>>         at
>>>>> org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:
>>>>> 261)
>>>>>         at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>>>>         at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
>>>>>         at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:
>>>>> 535)
>>>>>         at
>>>>>
>>>>> That's caused by your MEP is InOnly, so you can't set Fault to the
>>>>> MessageExchange.  If you use RobustInOnly now, when external service
>>>>> is shutdown,  as same as you use InOnly, cxf bc provide can get a
>>>>> RuntimeException(thrown by underlying transport) and then set as
>>>>> faulut to MessageExchange(now it's ok as it's  no InOnly now), which
>>>>> can trigger rollback on jms consumer endpoint. Could you append the
>>>>> log when external service is shutdown?
>>>>>
>>>>>
>>>>> And I want to get more details about your workflow, as you mentioned,
>>>>> your flow looks like
>>>>> [external client]--->cxf-bc-consumer--->jms-provider--->jms queue
>>>>>
>>>>> jms queue--->jms-consumer--->cxf-bc-provider--->[external service]
>>>>>
>>>>> What the transport your external client and external service use? Http
>>>>> or JMS?
>>>>>
>>>>> Freeman
>>>>>
>>>>> On 2009-11-12, at 上午11:29, colin.chi wrote:
>>>>>
>>>>>>
>>>>>> Hi FF,
>>>>>>
>>>>>> Thanks for you reply.
>>>>>>
>>>>>> I have tested according to you suggestion, and the message is
>>>>>> rollbacked to
>>>>>> jms consumer, but this test scene is that external service is running
>>>>>> normal.
>>>>>>
>>>>>> The exception of rollback as follows:
>>>>>> ==========================================================
>>>>>> 2009-11-12 10:34:24,921 DEBUG - SedaQueue                      -
>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1425e17 deque
>>>>>> ued exchange: RobustInOnly[
>>>>>>  id: ID:10.80.12.85-124e63b1989-2:2
>>>>>>  status: Done
>>>>>>  role: consumer
>>>>>>  service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>>>  endpoint: CustomerInGenevaPortTypePort
>>>>>>  operation: {http://geneva.nova.com/customer}createCustomer
>>>>>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>> xmlns:msg="htt
>>>>>> p://www.hcsys.com/novaesb/"
>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>> "
>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>> r"><pns:value>5555</pns:value></pns:createCustomer></jbi:part></
>>>>>> jbi:message>
>>>>>> ]
>>>>>> 2009-11-12 10:34:24,953 DEBUG - DeliveryChannelImpl            -
>>>>>> Notifying
>>>>>> exchange ID:10.80.12.85-124e63b1989-2:2(1e67cdb) in Del
>>>>>> iveryChannel{servicemix-jms} from processInboundSynchronousExchange
>>>>>> 2009-11-12 10:34:24,953 DEBUG - DeliveryChannelImpl            -
>>>>>> Notified:
>>>>>> ID:10.80.12.85-124e63b1989-2:2(1e67cdb) in DeliveryChan
>>>>>> nel{servicemix-jms} from sendSync
>>>>>> 2009-11-12 10:34:24,968 DEBUG - DefaultMessageListenerContainer -
>>>>>> Initiating
>>>>>> transaction rollback on application exception
>>>>>> javax.jms.JMSException: Error sending JBI exchange
>>>>>>        at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix
>>>>>> .jms
>>>>>> .endpoints
>>>>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:575)
>>>>>>        at
>>>>>> org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint
>>>>>> $1.onMessage(JmsConsumerEndpoint.java:505)
>>>>>>        at
>>>>>> org
>>>>>> .springframework
>>>>>> .jms
>>>>>> .listener
>>>>>> .AbstractMessageListenerContainer
>>>>>> .doInvokeListener(AbstractMessageListenerContainer.jav
>>>>>> a:518)
>>>>>>        at
>>>>>> org
>>>>>> .springframework
>>>>>> .jms
>>>>>> .listener
>>>>>> .AbstractMessageListenerContainer
>>>>>> .invokeListener(AbstractMessageListenerContainer.java:
>>>>>> 479)
>>>>>>        at
>>>>>> org
>>>>>> .springframework
>>>>>> .jms
>>>>>> .listener
>>>>>> .AbstractMessageListenerContainer
>>>>>> .doExecuteListener(AbstractMessageListenerContainer.ja
>>>>>> va:451)
>>>>>>        at
>>>>>> org
>>>>>> .springframework
>>>>>> .jms
>>>>>> .listener
>>>>>> .AbstractPollingMessageListenerContainer
>>>>>> .doReceiveAndExecute(AbstractPollingMessageList
>>>>>> enerContainer.java:323)
>>>>>>        at
>>>>>> org
>>>>>> .springframework
>>>>>> .jms
>>>>>> .listener
>>>>>> .AbstractPollingMessageListenerContainer
>>>>>> .receiveAndExecute(AbstractPollingMessageListen
>>>>>> erContainer.java:241)
>>>>>>        at
>>>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>>>> $AsyncMessageListenerInvoker.invokeListener(DefaultMess
>>>>>> ageListenerContainer.java:982)
>>>>>>        at
>>>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>>>> $AsyncMessageListenerInvoker.executeOngoingLoop(Default
>>>>>> MessageListenerContainer.java:974)
>>>>>>        at
>>>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>>>> $AsyncMessageListenerInvoker.run(DefaultMessageListener
>>>>>> Container.java:876)
>>>>>>        at java.lang.Thread.run(Thread.java:619)
>>>>>> Caused by: java.lang.UnsupportedOperationException: A destination
>>>>>> must be
>>>>>> specified.
>>>>>>        at
>>>>>> org
>>>>>> .apache
>>>>>> .activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:
>>>>>> 195)
>>>>>>        at
>>>>>> org
>>>>>> .apache
>>>>>> .activemq
>>>>>> .ActiveMQMessageProducerSupport
>>>>>> .send(ActiveMQMessageProducerSupport.java:241)
>>>>>>        at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix
>>>>>> .jms
>>>>>> .endpoints
>>>>>> .AbstractConsumerEndpoint.send(AbstractConsumerEndpoint.java:526)
>>>>>>        at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix
>>>>>> .jms
>>>>>> .endpoints
>>>>>> .AbstractConsumerEndpoint
>>>>>> .processExchange(AbstractConsumerEndpoint.java:485)
>>>>>>        at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix
>>>>>> .jms
>>>>>> .endpoints
>>>>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:552)
>>>>>>        ... 10 more
>>>>>> 2009-11-12 10:34:25,031 DEBUG - ActiveMQSession                -
>>>>>> ID:8014ac188efd43a-3939-1257993081718-2:54:1 Transaction Rollback
>>>>>>
>>>>>> 2009-11-12 10:34:25,031 DEBUG - DefaultMessageListenerContainer -
>>>>>> Rolling
>>>>>> back transaction because of listener exception thrown: j
>>>>>> avax.jms.JMSException: Error sending JBI exchange
>>>>>> 2009-11-12 10:34:25,031 DEBUG - AMQMessageStore                -
>>>>>> Journalled
>>>>>> message add for: ID:8014ac188efd43a-3939-1257993081718
>>>>>> -2:10:1:1:1, at: offset = 1236, file = 1, size = 969, type = 1
>>>>>> 2009-11-12 10:34:25,031 WARN  - DefaultMessageListenerContainer -
>>>>>> Execution
>>>>>> of JMS message listener failed
>>>>>> javax.jms.JMSException: Error sending JBI exchange
>>>>>>        at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix
>>>>>> .jms
>>>>>> .endpoints
>>>>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:575)
>>>>>>        at
>>>>>> org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint
>>>>>> $1.onMessage(JmsConsumerEndpoint.java:505)
>>>>>>        at
>>>>>> org
>>>>>> .springframework
>>>>>> .jms
>>>>>> .listener
>>>>>> .AbstractMessageListenerContainer
>>>>>> .doInvokeListener(AbstractMessageListenerContainer.jav
>>>>>> a:518)
>>>>>>        at
>>>>>> org
>>>>>> .springframework
>>>>>> .jms
>>>>>> .listener
>>>>>> .AbstractMessageListenerContainer
>>>>>> .invokeListener(AbstractMessageListenerContainer.java:
>>>>>> 479)
>>>>>>        at
>>>>>> org
>>>>>> .springframework
>>>>>> .jms
>>>>>> .listener
>>>>>> .AbstractMessageListenerContainer
>>>>>> .doExecuteListener(AbstractMessageListenerContainer.ja
>>>>>> va:451)
>>>>>>        at
>>>>>> org
>>>>>> .springframework
>>>>>> .jms
>>>>>> .listener
>>>>>> .AbstractPollingMessageListenerContainer
>>>>>> .doReceiveAndExecute(AbstractPollingMessageList
>>>>>> enerContainer.java:323)
>>>>>>        at
>>>>>> org
>>>>>> .springframework
>>>>>> .jms
>>>>>> .listener
>>>>>> .AbstractPollingMessageListenerContainer
>>>>>> .receiveAndExecute(AbstractPollingMessageListen
>>>>>> erContainer.java:241)
>>>>>>        at
>>>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>>>> $AsyncMessageListenerInvoker.invokeListener(DefaultMess
>>>>>> ageListenerContainer.java:982)
>>>>>>        at
>>>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>>>> $AsyncMessageListenerInvoker.executeOngoingLoop(Default
>>>>>> MessageListenerContainer.java:974)
>>>>>>        at
>>>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>>>> $AsyncMessageListenerInvoker.run(DefaultMessageListener
>>>>>> Container.java:876)
>>>>>>        at java.lang.Thread.run(Thread.java:619)
>>>>>> Caused by: java.lang.UnsupportedOperationException: A destination
>>>>>> must be
>>>>>> specified.
>>>>>>        at
>>>>>> org
>>>>>> .apache
>>>>>> .activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:
>>>>>> 195)
>>>>>>        at
>>>>>> org
>>>>>> .apache
>>>>>> .activemq
>>>>>> .ActiveMQMessageProducerSupport
>>>>>> .send(ActiveMQMessageProducerSupport.java:241)
>>>>>>        at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix
>>>>>> .jms
>>>>>> .endpoints
>>>>>> .AbstractConsumerEndpoint.send(AbstractConsumerEndpoint.java:526)
>>>>>>        at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix
>>>>>> .jms
>>>>>> .endpoints
>>>>>> .AbstractConsumerEndpoint
>>>>>> .processExchange(AbstractConsumerEndpoint.java:485)
>>>>>>        at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix
>>>>>> .jms
>>>>>> .endpoints
>>>>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:552)
>>>>>>        ... 10 more
>>>>>> 2009-11-12 10:34:25,109 DEBUG - DefaultMessageListenerContainer -
>>>>>> Initiating
>>>>>> transaction rollback on listener exception
>>>>>> javax.jms.JMSException: Error sending JBI exchange
>>>>>>        at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix
>>>>>> .jms
>>>>>> .endpoints
>>>>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:575)
>>>>>>        at
>>>>>> org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint
>>>>>> $1.onMessage(JmsConsumerEndpoint.java:505)
>>>>>>        at
>>>>>> org
>>>>>> .springframework
>>>>>> .jms
>>>>>> .listener
>>>>>> .AbstractMessageListenerContainer
>>>>>> .doInvokeListener(AbstractMessageListenerContainer.jav
>>>>>> a:518)
>>>>>>        at
>>>>>> org
>>>>>> .springframework
>>>>>> .jms
>>>>>> .listener
>>>>>> .AbstractMessageListenerContainer
>>>>>> .invokeListener(AbstractMessageListenerContainer.java:
>>>>>> 479)
>>>>>>        at
>>>>>> org
>>>>>> .springframework
>>>>>> .jms
>>>>>> .listener
>>>>>> .AbstractMessageListenerContainer
>>>>>> .doExecuteListener(AbstractMessageListenerContainer.ja
>>>>>> va:451)
>>>>>>        at
>>>>>> org
>>>>>> .springframework
>>>>>> .jms
>>>>>> .listener
>>>>>> .AbstractPollingMessageListenerContainer
>>>>>> .doReceiveAndExecute(AbstractPollingMessageList
>>>>>> enerContainer.java:323)
>>>>>>        at
>>>>>> org
>>>>>> .springframework
>>>>>> .jms
>>>>>> .listener
>>>>>> .AbstractPollingMessageListenerContainer
>>>>>> .receiveAndExecute(AbstractPollingMessageListen
>>>>>> erContainer.java:241)
>>>>>>        at
>>>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>>>> $AsyncMessageListenerInvoker.invokeListener(DefaultMess
>>>>>> ageListenerContainer.java:982)
>>>>>>        at
>>>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>>>> $AsyncMessageListenerInvoker.executeOngoingLoop(Default
>>>>>> MessageListenerContainer.java:974)
>>>>>>        at
>>>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>>>> $AsyncMessageListenerInvoker.run(DefaultMessageListener
>>>>>> Container.java:876)
>>>>>>        at java.lang.Thread.run(Thread.java:619)
>>>>>> Caused by: java.lang.UnsupportedOperationException: A destination
>>>>>> must be
>>>>>> specified.
>>>>>>        at
>>>>>> org
>>>>>> .apache
>>>>>> .activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:
>>>>>> 195)
>>>>>>        at
>>>>>> org
>>>>>> .apache
>>>>>> .activemq
>>>>>> .ActiveMQMessageProducerSupport
>>>>>> .send(ActiveMQMessageProducerSupport.java:241)
>>>>>>        at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix
>>>>>> .jms
>>>>>> .endpoints
>>>>>> .AbstractConsumerEndpoint.send(AbstractConsumerEndpoint.java:526)
>>>>>>        at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix
>>>>>> .jms
>>>>>> .endpoints
>>>>>> .AbstractConsumerEndpoint
>>>>>> .processExchange(AbstractConsumerEndpoint.java:485)
>>>>>>        at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix
>>>>>> .jms
>>>>>> .endpoints
>>>>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:552)
>>>>>>        ... 10 more
>>>>>> 2009-11-12 10:34:25,171 DEBUG - JmsTransactionManager          -
>>>>>> Initiating
>>>>>> transaction rollback
>>>>>> 2009-11-12 10:34:25,171 DEBUG - JmsTransactionManager          -
>>>>>> Rolling
>>>>>> back JMS transaction on Session [ActiveMQSession {id=ID:8
>>>>>> 014ac188efd43a-3939-1257993081718-2:55:1,started=false}]
>>>>>> 2009-11-12 10:34:25,171 DEBUG - ActiveMQSession                -
>>>>>> ID:8014ac188efd43a-3939-1257993081718-2:55:1 Transaction Rollback
>>>>>> =====================================================
>>>>>>
>>>>>>
>>>>>> Freeman Fang wrote:
>>>>>>>
>>>>>>> Hi Colin,
>>>>>>>
>>>>>>> I think the problem actually come from the MEP (message exchange
>>>>>>> pattern) of your MessageChange is InOnly, so the fault message can't
>>>>>>> go back to JmsConsumer endpoint, which means the JmsConsumer
>>>>>>> endpoint
>>>>>>> have no chance to do the rollback.
>>>>>>>
>>>>>>>
>>>>>>> Freeman
>>>>>>>
>>>>>>> On 2009-11-11, at 下午4:41, colin.chi wrote:
>>>>>>>
>>>>>>>>
>>>>>>>> Hi Gert,
>>>>>>>>
>>>>>>>> Thanks for you reply.
>>>>>>>>
>>>>>>>> And I see some logs as following:
>>>>>>>>
>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - SedaQueue                      -
>>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@89e163 dequeu
>>>>>>>> ed exchange: InOnly[
>>>>>>>> id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>>>> status: Done
>>>>>>>> role: consumer
>>>>>>>> service: {http://www.hcsys.com/novaesb/}jms
>>>>>>>> endpoint: provider
>>>>>>>> operation: {http://www.hcsys.com/novaesb/}createCustomer
>>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>>> xmlns:msg="htt
>>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>>> "
>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>>> r">
>>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>>> ]
>>>>>>>>
>>>>>>>> This means the message is received and processed(send to cxf-
>>>>>>>> provider
>>>>>>>> endpoint) successfully by jms consumer endpoint.
>>>>>>>>
>>>>>>>> so when cxf-provider endpoint catch an exception or an error, the
>>>>>>>> message
>>>>>>>> can't be  rollbacked to jms queue where jms consumer endpoint
>>>>>>>> listen.
>>>>>>>>
>>>>>>>> I think this case can not be achieved in ServiceMix.
>>>>>>>>
>>>>>>>> If I am wrong, can you tell me how can I finish this case?
>>>>>>>>
>>>>>>>> thanks and regards.
>>>>>>>>
>>>>>>>>
>>>>>>>> Gert Vanthienen wrote:
>>>>>>>>>
>>>>>>>>> L.S.,
>>>>>>>>>
>>>>>>>>> One option would be to enable transactions on the jms consumer
>>>>>>>>> endpoint (transacted="jms").  Another option would be to get the
>>>>>>>>> JMS
>>>>>>>>> client to acknowledge the message, like this:
>>>>>>>>>
>>>>>>>>>   <jms:consumer ....
>>>>>>>>>                 sessionAcknowledgeMode="#AcknowledgeMode"/>
>>>>>>>>>
>>>>>>>>>    <util:constant id="AcknowledgeMode"
>>>>>>>>> static-field="javax.jms.Session.CLIENT_ACKNOWLEDGE"/>
>>>>>>>>>
>>>>>>>>> Regards,
>>>>>>>>>
>>>>>>>>> Gert Vanthienen
>>>>>>>>> ------------------------
>>>>>>>>> Open Source SOA: http://fusesource.com
>>>>>>>>> Blog: http://gertvanthienen.blogspot.com/
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 2009/11/9 colin.chi <ib...@hotmail.com>:
>>>>>>>>>>
>>>>>>>>>> work flow as follow:
>>>>>>>>>>
>>>>>>>>>> [external client]--->cxf-bc-consumer--->jms-provider--->jms queue
>>>>>>>>>>
>>>>>>>>>> jms queue--->jms-consumer--->cxf-bc-provider--->[external
>>>>>>>>>> service]
>>>>>>>>>>
>>>>>>>>>> when external service is shut down, message don't rollback to jms
>>>>>>>>>> queue
>>>>>>>>>> and
>>>>>>>>>> throw exception.
>>>>>>>>>>
>>>>>>>>>> how to config jms consumer and cxf bc provider to do this case?
>>>>>>>>>>
>>>>>>>>>> =======================log begin==========================
>>>>>>>>>>
>>>>>>>>>> 2009-11-09 11:19:28,046 DEBUG - JettyHTTPDestination           -
>>>>>>>>>> Service
>>>>>>>>>> http request on thread: Thread[22434271@qtp0-0,5,RMI Runt
>>>>>>>>>> ime]
>>>>>>>>>> 2009-11-09 11:19:28,046 DEBUG - AbstractHTTPDestination        -
>>>>>>>>>> Request
>>>>>>>>>> Headers: {connection=[Keep-Alive], Host=[localhost:8080],
>>>>>>>>>> Content-Length=[364], User-Agent=[Mozilla/4.0 (compatible; MSIE
>>>>>>>>>> 7.0;
>>>>>>>>>> Windows NT 5.1; Trident/4.0; GOSURF)], accept-encoding=[gzip
>>>>>>>>>> , deflate], Accept=[*/*], Cache-Control=[no-cache]}
>>>>>>>>>> 2009-11-09 11:19:28,046 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Chain
>>>>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain@735ad7 was creat
>>>>>>>>>> ed. Current flow:
>>>>>>>>>> receive [AttachmentInInterceptor]
>>>>>>>>>> post-stream [StaxInInterceptor]
>>>>>>>>>> read [ReadHeadersInterceptor]
>>>>>>>>>> pre-protocol [, MustUnderstandInterceptor, JbiJAASInterceptor]
>>>>>>>>>> unmarshal [JbiOperationInterceptor]
>>>>>>>>>> pre-invoke [JbiInWsdl1Interceptor, JbiInInterceptor]
>>>>>>>>>> invoke [JbiInvokerInterceptor]
>>>>>>>>>> post-invoke [JbiPostInvokerInterceptor, OutgoingChainInterceptor]
>>>>>>>>>>
>>>>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Invoking
>>>>>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>>>>>> AttachmentInInterceptor@14d8c8
>>>>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Invoking
>>>>>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>>>>>> StaxInInterceptor@a4480d
>>>>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Invoking
>>>>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>>>>> .interceptor.ReadHeadersInterceptor@1766d9c
>>>>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Invoking
>>>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>>>> .CxfBcConsumer$1@1b7715d
>>>>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Invoking
>>>>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>>>>> .interceptor.MustUnderstandInterceptor@73a403
>>>>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Invoking
>>>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>>>> .interceptors.JbiJAASInterceptor@ca7c93
>>>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Invoking
>>>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>>>> .interceptors.JbiOperationInterceptor@1626bf
>>>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Invoking
>>>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>>>> .interceptors.JbiInWsdl1Interceptor@49e885
>>>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Invoking
>>>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>>>> .interceptors.JbiInInterceptor@407909
>>>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Invoking
>>>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>>>> .CxfBcConsumer$JbiInvokerInterceptor@1b8a6af
>>>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - CxfBcComponent                 -
>>>>>>>>>> Created
>>>>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - DeliveryChannelImpl            -
>>>>>>>>>> Send
>>>>>>>>>> ID:10.80.12.85-124d6ebc094-2:10 in DeliveryChannel{servicemi
>>>>>>>>>> x-cxf-bc}
>>>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -
>>>>>>>>>> send
>>>>>>>>>> exchange with secure broker
>>>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -
>>>>>>>>>> service
>>>>>>>>>> name :{http://www.hcsys.com/novaesb/}jms
>>>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -
>>>>>>>>>> operation
>>>>>>>>>> name :{http://www.hcsys.com/novaesb/}createCustomer
>>>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - SedaFlow                       -
>>>>>>>>>> Called
>>>>>>>>>> Flow
>>>>>>>>>> send
>>>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Invoking
>>>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>>>> .CxfBcConsumer$JbiPostInvokerInterceptor@1c76cab
>>>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Invoking
>>>>>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>>>>>> OutgoingChainInterceptor@1af691b
>>>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - JettyHTTPDestination           -
>>>>>>>>>> Finished
>>>>>>>>>> servicing http request on thread: Thread[22434271@qtp0-0
>>>>>>>>>> ,5,RMI Runtime]
>>>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - SedaQueue                      -
>>>>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@45ac89 dequeu
>>>>>>>>>> ed exchange: InOnly[
>>>>>>>>>> id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>>>>>> status: Active
>>>>>>>>>> role: provider
>>>>>>>>>> service: {http://www.hcsys.com/novaesb/}jms
>>>>>>>>>> endpoint: provider
>>>>>>>>>> operation: {http://www.hcsys.com/novaesb/}createCustomer
>>>>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>>>>> xmlns:msg="htt
>>>>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>>>>> "
>>>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>>>>> r">
>>>>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>>>>> ]
>>>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - JmsComponent                   -
>>>>>>>>>> Received
>>>>>>>>>> exchange: status: Active, role: provider
>>>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - JmsComponent                   -
>>>>>>>>>> Retrieved
>>>>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - DeliveryChannelImpl            -
>>>>>>>>>> Send
>>>>>>>>>> ID:10.80.12.85-124d6ebc094-2:10 in DeliveryChannel{servicemi
>>>>>>>>>> x-jms}
>>>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - SecuredBroker                  -
>>>>>>>>>> send
>>>>>>>>>> exchange with secure broker
>>>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - SedaFlow                       -
>>>>>>>>>> Called
>>>>>>>>>> Flow
>>>>>>>>>> send
>>>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - MultiplexingConsumerProcessor  -
>>>>>>>>>> Received
>>>>>>>>>> jms message ActiveMQTextMessage {commandId = 17, respons
>>>>>>>>>> eRequired = true, messageId =
>>>>>>>>>> ID:8014ac188efd43a-4422-1257736227984-2:10:1:1:11,
>>>>>>>>>> originalDestination =
>>>>>>>>>> null, originalTransactionId
>>>>>>>>>> = null, producerId = ID:
>>>>>>>>>> 8014ac188efd43a-4422-1257736227984-2:10:1:1,
>>>>>>>>>> destination = queue://queue/A, transactionId = null, expirat
>>>>>>>>>> ion = 0, timestamp = 1257736768156, arrival = 0, brokerInTime =
>>>>>>>>>> 1257736768156, brokerOutTime = 1257736768156, correlationId =
>>>>>>>>>> null
>>>>>>>>>> , replyTo = null, persistent = true, type = null, priority = 4,
>>>>>>>>>> groupID =
>>>>>>>>>> null, groupSequence = 0, targetConsumerId = null, compre
>>>>>>>>>> ssed = false, userID = null, content = null,
>>>>>>>>>> marshalledProperties =
>>>>>>>>>> org.apache.activemq.util.ByteSequence@1713c03, dataStructure =
>>>>>>>>>> null, redeliveryCounter = 0, size = 0, properties =
>>>>>>>>>> {MimeContentType=text/xml;charset=UTF-8,
>>>>>>>>>> SoapAction=/{http://www.hcsys.com/no
>>>>>>>>>> vaesb/}createCustomer,
>>>>>>>>>> SOAPJMS_soapAction=/{http://www.hcsys.com/
>>>>>>>>>> novaesb/}createCustomer},
>>>>>>>>>> readOnlyProperties = true, readOnlyBody
>>>>>>>>>> = true, droppable = false, text = <?xml version='1.0'
>>>>>>>>>> encoding='UTF-8'?><jbi:me...jbi:message>}
>>>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - MultiplexingConsumerProcessor  -
>>>>>>>>>> Handling
>>>>>>>>>> jms message ActiveMQTextMessage {commandId = 17, respons
>>>>>>>>>> eRequired = true, messageId =
>>>>>>>>>> ID:8014ac188efd43a-4422-1257736227984-2:10:1:1:11,
>>>>>>>>>> originalDestination =
>>>>>>>>>> null, originalTransactionId
>>>>>>>>>> = null, producerId = ID:
>>>>>>>>>> 8014ac188efd43a-4422-1257736227984-2:10:1:1,
>>>>>>>>>> destination = queue://queue/A, transactionId = null, expirat
>>>>>>>>>> ion = 0, timestamp = 1257736768156, arrival = 0, brokerInTime =
>>>>>>>>>> 1257736768156, brokerOutTime = 1257736768156, correlationId =
>>>>>>>>>> null
>>>>>>>>>> , replyTo = null, persistent = true, type = null, priority = 4,
>>>>>>>>>> groupID =
>>>>>>>>>> null, groupSequence = 0, targetConsumerId = null, compre
>>>>>>>>>> ssed = false, userID = null, content = null,
>>>>>>>>>> marshalledProperties =
>>>>>>>>>> org.apache.activemq.util.ByteSequence@1713c03, dataStructure =
>>>>>>>>>> null, redeliveryCounter = 0, size = 0, properties =
>>>>>>>>>> {MimeContentType=text/xml;charset=UTF-8,
>>>>>>>>>> SoapAction=/{http://www.hcsys.com/no
>>>>>>>>>> vaesb/}createCustomer,
>>>>>>>>>> SOAPJMS_soapAction=/{http://www.hcsys.com/
>>>>>>>>>> novaesb/}createCustomer},
>>>>>>>>>> readOnlyProperties = true, readOnlyBody
>>>>>>>>>> = true, droppable = false, text = <?xml version='1.0'
>>>>>>>>>> encoding='UTF-8'?><jbi:me...jbi:message>}
>>>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - SedaQueue                      -
>>>>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@89e163 dequeu
>>>>>>>>>> ed exchange: InOnly[
>>>>>>>>>> id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>>>>>> status: Done
>>>>>>>>>> role: consumer
>>>>>>>>>> service: {http://www.hcsys.com/novaesb/}jms
>>>>>>>>>> endpoint: provider
>>>>>>>>>> operation: {http://www.hcsys.com/novaesb/}createCustomer
>>>>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>>>>> xmlns:msg="htt
>>>>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>>>>> "
>>>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>>>>> r">
>>>>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>>>>> ]
>>>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - JmsComponent                   -
>>>>>>>>>> Created
>>>>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - CxfBcComponent                 -
>>>>>>>>>> Received
>>>>>>>>>> exchange: status: Done, role: consumer
>>>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - DeliveryChannelImpl            -
>>>>>>>>>> Send
>>>>>>>>>> ID:10.80.12.85-124d6ebc094-4:10 in DeliveryChannel{servicemi
>>>>>>>>>> x-jms}
>>>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - CxfBcComponent                 -
>>>>>>>>>> Retrieved
>>>>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -
>>>>>>>>>> send
>>>>>>>>>> exchange with secure broker
>>>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -
>>>>>>>>>> service
>>>>>>>>>> name :{http://geneva.nova.com/customer}CustomerInImplServ
>>>>>>>>>> ice
>>>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -
>>>>>>>>>> operation
>>>>>>>>>> name :{http://geneva.nova.com/customer}createCustomer
>>>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - SedaFlow                       -
>>>>>>>>>> Called
>>>>>>>>>> Flow
>>>>>>>>>> send
>>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - SedaQueue                      -
>>>>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@4437d3 dequeu
>>>>>>>>>> ed exchange: InOnly[
>>>>>>>>>> id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>>>>> status: Active
>>>>>>>>>> role: provider
>>>>>>>>>> service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>>>>>>> endpoint: CustomerInGenevaPortTypePort
>>>>>>>>>> operation: {http://geneva.nova.com/customer}createCustomer
>>>>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>>>>> xmlns:msg="htt
>>>>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>>>>> "
>>>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>>>>> r">
>>>>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>>>>> ]
>>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - CxfBcComponent                 -
>>>>>>>>>> Received
>>>>>>>>>> exchange: status: Active, role: provider
>>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - CxfBcComponent                 -
>>>>>>>>>> Retrieved
>>>>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Adding
>>>>>>>>>> interceptor org.apache.servicemix.cxfbc.interceptors.JbiOu
>>>>>>>>>> tInterceptor@dd6a50 to phase pre-stream
>>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Adding
>>>>>>>>>> interceptor org.apache.servicemix.cxfbc.interceptors.JbiOu
>>>>>>>>>> tWsdl1Interceptor@6ed9d1 to phase marshal
>>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Adding
>>>>>>>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapPr
>>>>>>>>>> eProtocolOutInterceptor@19e4f8b to phase post-logical
>>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Adding
>>>>>>>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapOu
>>>>>>>>>> tInterceptor@782f81 to phase write
>>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Adding
>>>>>>>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapAc
>>>>>>>>>> tionOutInterceptor@76df38 to phase post-logical
>>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Adding
>>>>>>>>>> interceptor org.apache.cxf.interceptor.StaxOutInterceptor@
>>>>>>>>>> 38df00 to phase pre-stream
>>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Chain
>>>>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was crea
>>>>>>>>>> ted. Current flow:
>>>>>>>>>> post-logical [SoapPreProtocolOutInterceptor,
>>>>>>>>>> SoapActionOutInterceptor]
>>>>>>>>>> pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>>>>>>>> write [SoapOutInterceptor]
>>>>>>>>>> marshal [JbiOutWsdl1Interceptor]
>>>>>>>>>>
>>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Invoking
>>>>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>>>>> .interceptor.SoapPreProtocolOutInterceptor@19e4f8b
>>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Invoking
>>>>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>>>>> .interceptor.SoapActionOutInterceptor@76df38
>>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Invoking
>>>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>>>> .interceptors.JbiOutInterceptor@dd6a50
>>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Invoking
>>>>>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>>>>>> StaxOutInterceptor@38df00
>>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Adding
>>>>>>>>>> interceptor org.apache.cxf.interceptor.StaxOutInterceptor$
>>>>>>>>>> StaxOutEndingInterceptor@1073a2e to phase pre-stream-ending
>>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Chain
>>>>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was modi
>>>>>>>>>> fied. Current flow:
>>>>>>>>>> post-logical [SoapPreProtocolOutInterceptor,
>>>>>>>>>> SoapActionOutInterceptor]
>>>>>>>>>> pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>>>>>>>> write [SoapOutInterceptor]
>>>>>>>>>> marshal [JbiOutWsdl1Interceptor]
>>>>>>>>>> pre-stream-ending [StaxOutEndingInterceptor]
>>>>>>>>>>
>>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Invoking
>>>>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>>>>> .interceptor.SoapOutInterceptor@782f81
>>>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Adding
>>>>>>>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapOu
>>>>>>>>>> tInterceptor$SoapOutEndingInterceptor@17cb4ff to phase write-
>>>>>>>>>> ending
>>>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Chain
>>>>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was modi
>>>>>>>>>> fied. Current flow:
>>>>>>>>>> post-logical [SoapPreProtocolOutInterceptor,
>>>>>>>>>> SoapActionOutInterceptor]
>>>>>>>>>> pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>>>>>>>> write [SoapOutInterceptor]
>>>>>>>>>> marshal [JbiOutWsdl1Interceptor]
>>>>>>>>>> write-ending [SoapOutEndingInterceptor]
>>>>>>>>>> pre-stream-ending [StaxOutEndingInterceptor]
>>>>>>>>>>
>>>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Invoking
>>>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>>>> .interceptors.JbiOutWsdl1Interceptor@6ed9d1
>>>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Invoking
>>>>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>>>>> .interceptor.SoapOutInterceptor$SoapOutEndingInterceptor@17cb4ff
>>>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>>>>>> Invoking
>>>>>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>>>>>> StaxOutInterceptor$StaxOutEndingInterceptor@1073a2e
>>>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>>>>>>>> Sending
>>>>>>>>>> POST Message with Headers to http://10.80.12.100:8080/Gen
>>>>>>>>>> evaESB/services/CustomerAccount Conduit
>>>>>>>>>> :{http://geneva.nova.com/
>>>>>>>>>> customer}CustomerInGenevaPortTypePort.http-conduit
>>>>>>>>>> Content-Type: text/xml; charset=UTF-8
>>>>>>>>>>
>>>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>>>>>>>> SOAPAction:
>>>>>>>>>> ""
>>>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>>>>>>>> Accept:
>>>>>>>>>> *
>>>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>>>>>>>> No Trust
>>>>>>>>>> Decider for Conduit '{http://geneva.nova.com/customer}Cu
>>>>>>>>>> stomerInGenevaPortTypePort.http-conduit'. An afirmative Trust
>>>>>>>>>> Decision is
>>>>>>>>>> assumed.
>>>>>>>>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    -
>>>>>>>>>> Response
>>>>>>>>>> Code: 404 Conduit: {http://geneva.nova.com/customer}Cust
>>>>>>>>>> omerInGenevaPortTypePort.http-conduit
>>>>>>>>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    -
>>>>>>>>>> Content
>>>>>>>>>> length: 952
>>>>>>>>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    -
>>>>>>>>>> Header
>>>>>>>>>> fields:
>>>>>>>>>>   null: [HTTP/1.1 404 Not Found]
>>>>>>>>>>   Date: [Mon, 09 Nov 2009 03:19:04 GMT]
>>>>>>>>>>   Content-Length: [952]
>>>>>>>>>>   Content-Type: [text/html;charset=utf-8]
>>>>>>>>>>   Server: [Apache-Coyote/1.1]
>>>>>>>>>>
>>>>>>>>>> 2009-11-09 11:19:28,265 ERROR - CxfBcComponent                 -
>>>>>>>>>> Error
>>>>>>>>>> processing exchange InOnly[
>>>>>>>>>> id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>>>>> status: Active
>>>>>>>>>> role: provider
>>>>>>>>>> service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>>>>>>> endpoint: CustomerInGenevaPortTypePort
>>>>>>>>>> operation: {http://geneva.nova.com/customer}createCustomer
>>>>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>>>>> xmlns:msg="htt
>>>>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>>>>> "
>>>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>>>>> r">
>>>>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>>>>> ]
>>>>>>>>>> javax.jbi.messaging.MessagingException: Fault not supported
>>>>>>>>>>       at
>>>>>>>>>> org
>>>>>>>>>> .apache
>>>>>>>>>> .servicemix
>>>>>>>>>> .jbi
>>>>>>>>>> .messaging
>>>>>>>>>> .MessageExchangeImpl.setMessage(MessageExchangeImpl.java:
>>>>>>>>>> 366)
>>>>>>>>>>       at
>>>>>>>>>> org
>>>>>>>>>> .apache
>>>>>>>>>> .servicemix
>>>>>>>>>> .jbi
>>>>>>>>>> .messaging.MessageExchangeImpl.setFault(MessageExchangeImpl.java:
>>>>>>>>>> 290)
>>>>>>>>>>       at
>>>>>>>>>> org
>>>>>>>>>> .apache
>>>>>>>>>> .servicemix.cxfbc.CxfBcProvider.faultProcess(CxfBcProvider.java:
>>>>>>>>>> 277)
>>>>>>>>>>       at
>>>>>>>>>> org
>>>>>>>>>> .apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:
>>>>>>>>>> 261)
>>>>>>>>>>       at
>>>>>>>>>> org
>>>>>>>>>> .apache
>>>>>>>>>> .servicemix
>>>>>>>>>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>>>>>>>>>       at
>>>>>>>>>> org
>>>>>>>>>> .apache
>>>>>>>>>> .servicemix
>>>>>>>>>> .common
>>>>>>>>>> .AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:
>>>>>>>>>> 581)
>>>>>>>>>>       at
>>>>>>>>>> org
>>>>>>>>>> .apache
>>>>>>>>>> .servicemix
>>>>>>>>>> .common
>>>>>>>>>> .AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>>>>>>>>>>       at
>>>>>>>>>> org
>>>>>>>>>> .apache
>>>>>>>>>> .servicemix
>>>>>>>>>> .common
>>>>>>>>>> .SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:
>>>>>>>>>> 60)
>>>>>>>>>>       at
>>>>>>>>>> org
>>>>>>>>>> .apache
>>>>>>>>>> .servicemix
>>>>>>>>>> .jbi
>>>>>>>>>> .messaging
>>>>>>>>>> .DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>>>>>>>>>>       at
>>>>>>>>>> org
>>>>>>>>>> .apache
>>>>>>>>>> .servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:
>>>>>>>>>> 172)
>>>>>>>>>>       at
>>>>>>>>>> org
>>>>>>>>>> .apache
>>>>>>>>>> .servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:
>>>>>>>>>> 168)
>>>>>>>>>>       at
>>>>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue
>>>>>>>>>> $1.run(SedaQueue.java:134)
>>>>>>>>>>       at
>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>>>>>>> $Worker.runTask(ThreadPoolExecutor.java:886)
>>>>>>>>>>       at
>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>>>>>>> $Worker.run(ThreadPoolExecutor.java:908)
>>>>>>>>>>       at java.lang.Thread.run(Thread.java:619)
>>>>>>>>>> 2009-11-09 11:19:28,296 DEBUG - DeliveryChannelImpl            -
>>>>>>>>>> Send
>>>>>>>>>> ID:10.80.12.85-124d6ebc094-4:10 in DeliveryChannel{servicemi
>>>>>>>>>> x-cxf-bc}
>>>>>>>>>> 2009-11-09 11:19:28,296 DEBUG - SecuredBroker                  -
>>>>>>>>>> send
>>>>>>>>>> exchange with secure broker
>>>>>>>>>> 2009-11-09 11:19:28,296 DEBUG - SedaFlow                       -
>>>>>>>>>> Called
>>>>>>>>>> Flow
>>>>>>>>>> send
>>>>>>>>>> 2009-11-09 11:19:28,296 DEBUG - SedaQueue                      -
>>>>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@247262 dequeu
>>>>>>>>>> ed exchange: InOnly[
>>>>>>>>>> id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>>>>> status: Error
>>>>>>>>>> role: consumer
>>>>>>>>>> service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>>>>>>> endpoint: CustomerInGenevaPortTypePort
>>>>>>>>>> operation: {http://geneva.nova.com/customer}createCustomer
>>>>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>>>>> xmlns:msg="htt
>>>>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>>>>> "
>>>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>>>>> r">
>>>>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>>>>> error: javax.jbi.messaging.MessagingException: Fault not
>>>>>>>>>> supported
>>>>>>>>>> ]
>>>>>>>>>> 2009-11-09 11:19:28,296 DEBUG - JmsComponent                   -
>>>>>>>>>> Received
>>>>>>>>>> exchange: status: Error, role: consumer
>>>>>>>>>> 2009-11-09 11:19:28,296 DEBUG - JmsComponent                   -
>>>>>>>>>> Retrieved
>>>>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>>>>> 2009-11-09 11:19:28,328 ERROR - JmsComponent                   -
>>>>>>>>>> Error
>>>>>>>>>> processing exchange InOnly[
>>>>>>>>>> id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>>>>> status: Error
>>>>>>>>>> role: consumer
>>>>>>>>>> service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>>>>>>> endpoint: CustomerInGenevaPortTypePort
>>>>>>>>>> operation: {http://geneva.nova.com/customer}createCustomer
>>>>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>>>>> xmlns:msg="htt
>>>>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>>>>> "
>>>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>>>>> r">
>>>>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>>>>> error: javax.jbi.messaging.MessagingException: Fault not
>>>>>>>>>> supported
>>>>>>>>>> ]
>>>>>>>>>> java.lang.UnsupportedOperationException: A destination must be
>>>>>>>>>> specified.
>>>>>>>>>>       at
>>>>>>>>>> org
>>>>>>>>>> .apache
>>>>>>>>>> .activemq
>>>>>>>>>> .ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:195)
>>>>>>>>>>       at
>>>>>>>>>> org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:
>>>>>>>>>> 74)
>>>>>>>>>>       at
>>>>>>>>>> org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:
>>>>>>>>>> 59)
>>>>>>>>>>       at
>>>>>>>>>> org
>>>>>>>>>> .apache
>>>>>>>>>> .servicemix
>>>>>>>>>> .jms
>>>>>>>>>> .multiplexing
>>>>>>>>>> .MultiplexingConsumerProcessor
>>>>>>>>>> .process(MultiplexingConsumerProcessor.java:126)
>>>>>>>>>>       at
>>>>>>>>>> org.apache.servicemix.soap.SoapEndpoint.process(SoapEndpoint.java:
>>>>>>>>>> 368)
>>>>>>>>>>       at
>>>>>>>>>> org
>>>>>>>>>> .apache
>>>>>>>>>> .servicemix
>>>>>>>>>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>>>>>>>>>       at
>>>>>>>>>> org
>>>>>>>>>> .apache
>>>>>>>>>> .servicemix
>>>>>>>>>> .common
>>>>>>>>>> .AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:
>>>>>>>>>> 598)
>>>>>>>>>>       at
>>>>>>>>>> org
>>>>>>>>>> .apache
>>>>>>>>>> .servicemix
>>>>>>>>>> .common
>>>>>>>>>> .AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>>>>>>>>>>       at
>>>>>>>>>> org
>>>>>>>>>> .apache
>>>>>>>>>> .servicemix
>>>>>>>>>> .common
>>>>>>>>>> .SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:
>>>>>>>>>> 60)
>>>>>>>>>>       at
>>>>>>>>>> org
>>>>>>>>>> .apache
>>>>>>>>>> .servicemix
>>>>>>>>>> .jbi
>>>>>>>>>> .messaging
>>>>>>>>>> .DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>>>>>>>>>>       at
>>>>>>>>>> org
>>>>>>>>>> .apache
>>>>>>>>>> .servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:
>>>>>>>>>> 172)
>>>>>>>>>>       at
>>>>>>>>>> org
>>>>>>>>>> .apache
>>>>>>>>>> .servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:
>>>>>>>>>> 168)
>>>>>>>>>>       at
>>>>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue
>>>>>>>>>> $1.run(SedaQueue.java:134)
>>>>>>>>>>       at
>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>>>>>>> $Worker.runTask(ThreadPoolExecutor.java:886)
>>>>>>>>>>       at
>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>>>>>>> $Worker.run(ThreadPoolExecutor.java:908)
>>>>>>>>>>       at java.lang.Thread.run(Thread.java:619)
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> =======================log end==========================
>>>>>>>>>> --
>>>>>>>>>> View this message in context:
>>>>>>>>>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26260776.html
>>>>>>>>>> Sent from the ServiceMix - User mailing list archive at
>>>>>>>>>> Nabble.com.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> -----
>>>>>>>>> ---
>>>>>>>>> Gert Vanthienen
>>>>>>>>> http://gertvanthienen.blogspot.com
>>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> View this message in context:
>>>>>>>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26297802.html
>>>>>>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Freeman Fang
>>>>>>> ------------------------
>>>>>>> Open Source SOA: http://fusesource.com
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> View this message in context:
>>>>>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26312831.html
>>>>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Freeman Fang
>>>>> ------------------------
>>>>> Open Source SOA: http://fusesource.com
>>>>>
>>>>>
>>>>>
>>>>
>>>> --
>>>> View this message in context:
>>>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26314682.html
>>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>>
>>>>
>>>
>>>
>>> -----
>>> ---
>>> Gert Vanthienen
>>> http://gertvanthienen.blogspot.com
>>>
>>
>> --
>> View this message in context:
>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26333107.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>>
> 
> 
> -----
> ---
> Gert Vanthienen
> http://gertvanthienen.blogspot.com
> 

-- 
View this message in context: http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26509646.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: When external service is shut down, message don't rollback to jms queue.

Posted by Gert Vanthienen <ge...@gmail.com>.
L.S.,

With the default ConsumerMarshaler, the Fault message that you get
back is intended to be send back over a reply queue.  That's why
you're now getting this exception, because you have not configured the
reply queue.

However, if I understand correctly, you don't want the fault to end up
in another queue, you would rather have the entire transaction to roll
back.  That's why I was suggesting to build your own marshaler.  You
can do this by creating a src/main/java folder in your JMS SU and add
the Java class there.  The Maven build should pick that up, compile
the class and add it to your SU so can use it in your configuration.

Regards,

Gert Vanthienen
------------------------
Open Source SOA: http://fusesource.com
Blog: http://gertvanthienen.blogspot.com/



2009/11/13 colin.chi <ib...@hotmail.com>:
>
> Hi Gert,
>
> I am sorry, I don't know how to wirte MyConsumerMarshaler.
>
> But, I have find a issue from the log, and check the source code of class
> AbstractConsumerEndpoint.java.
>
> In method processExchange, I add some logger.
> ==================================================
> protected void processExchange(final MessageExchange exchange, final Session
> session, final JmsContext context) throws Exception {
>        logger.debug("===================exchange instanceof InOnly : " +
> (exchange instanceof InOnly));
>        if (exchange instanceof InOnly) {
>            // throw an exception when the exchange is transacted to ensure
> correct rollback of the transaction
>            if (exchange.isTransacted() &&
> ExchangeStatus.ERROR.equals(exchange.getStatus())) {
>                throw exchange.getError();
>            }
>            // ignore non-transacted and/or DONE exchanges
>            return;
>        }
>        logger.debug("===================session == null : " + (session ==
> null));
>        // Create session if needed
>        if (session == null) {
>            template.execute(new SessionCallback() {
>                public Object doInJms(Session session) throws JMSException {
>                    try {
>                        processExchange(exchange, session, context);
>                    } catch (Exception e) {
>                        throw new ListenerExecutionFailedException("Exchange
> processing failed", e);
>                    }
>                    return null;
>                }
>            });
>            return;
>        }
>        // Handle exchanges
>        Message msg = null;
>        Destination dest = null;
>        logger.debug("===================exchange.getStatus() : " +
> exchange.getStatus());
>        if (exchange.getStatus() == ExchangeStatus.ACTIVE) {
>            if (exchange.getFault() != null) {
>                msg = marshaler.createFault(exchange, exchange.getFault(),
> session, context);
>                dest = getReplyDestination(exchange, exchange.getFault(),
> session, context);
>            } else if (exchange.getMessage("out") != null) {
>                msg = marshaler.createOut(exchange,
> exchange.getMessage("out"), session, context);
>                dest = getReplyDestination(exchange,
> exchange.getMessage("out"), session, context);
>            }
>            if (msg == null) {
>                throw new IllegalStateException("Unable to send back answer
> or fault");
>            }
>            setCorrelationId(context.getMessage(), msg);
>            try {
>                send(msg, session, dest);
>                done(exchange);
>            } catch (Exception e) {
>                fail(exchange, e);
>                throw e;
>            }
>        } else if (exchange.getStatus() == ExchangeStatus.ERROR) {
>            Exception error = exchange.getError();
>            if (error == null) {
>                error = new JBIException("Exchange in ERROR state, but no
> exception provided");
>            }
>            msg = marshaler.createError(exchange, error, session, context);
>            dest = getReplyDestination(exchange, error, session, context);
>            setCorrelationId(context.getMessage(), msg);
>            send(msg, session, dest);
>        } else if (exchange.getStatus() == ExchangeStatus.DONE) {
>            msg = session.createMessage();
>            msg.setBooleanProperty(AbstractJmsMarshaler.DONE_JMS_PROPERTY,
> true);
>            logger.debug("===================dest == null : " + (dest ==
> null));
>            send(msg, session, dest);
>        } else {
>            throw new IllegalStateException("Unrecognized exchange status");
>        }
>    }
>
> protected void send(Message msg, Session session, Destination dest) throws
> JMSException {
>        MessageProducer producer;
>        logger.debug("===================isJms102() : " + isJms102());
>        if (isJms102()) {
>            if (isPubSubDomain()) {
>                producer = ((TopicSession) session).createPublisher((Topic)
> dest);
>            } else {
>                producer = ((QueueSession) session).createSender((Queue)
> dest);
>            }
>        } else {
>            producer = session.createProducer(dest);
>        }
>        try {
>            if (replyProperties != null) {
>                for (Map.Entry<String, Object> e :
> replyProperties.entrySet()) {
>                    msg.setObjectProperty(e.getKey(), e.getValue());
>                }
>            }
>            if (isJms102()) {
>                if (isPubSubDomain()) {
>                    if (replyExplicitQosEnabled) {
>                        ((TopicPublisher) producer).publish(msg,
> replyDeliveryMode, replyPriority, replyTimeToLive);
>                    } else {
>                        ((TopicPublisher) producer).publish(msg);
>                    }
>                } else {
>                    if (replyExplicitQosEnabled) {
>                        ((QueueSender) producer).send(msg,
> replyDeliveryMode, replyPriority, replyTimeToLive);
>                    } else {
>                        ((QueueSender) producer).send(msg);
>                    }
>                }
>            } else {
>                if (replyExplicitQosEnabled) {
>                    producer.send(msg, replyDeliveryMode, replyPriority,
> replyTimeToLive);
>                } else {
>                        logger.debug("===================msg.getJMSDestination() :
> " + msg.getJMSDestination().toString());
>                        logger.debug("===================msg.toString() : " +
> msg.toString());
>                    producer.send(msg);
>                }
>            }
>        } finally {
>            JmsUtils.closeMessageProducer(producer);
>        }
>    }
> =============================================================
>
> Then I test it in "robust-in-only". result is :
> =============================================================
> 2009-11-13 16:20:41,765 DEBUG - DeliveryChannelImpl            - Notified:
> ID:10.80.12.85-124ec9e3f73-4:0(1f23ca4) in DeliveryChan
> nel{servicemix-jms} from sendSync
> 2009-11-13 16:20:41,765 DEBUG - AbstractConsumerEndpoint       -
> ===================exchange instanceof InOnly : false
> 2009-11-13 16:20:41,765 DEBUG - AbstractConsumerEndpoint       -
> ===================session == null : false
> 2009-11-13 16:20:41,765 DEBUG - AbstractConsumerEndpoint       -
> ===================exchange.getStatus() : Done
> 2009-11-13 16:20:41,765 DEBUG - AbstractConsumerEndpoint       -
> ===================dest == null : true
> 2009-11-13 16:20:41,765 DEBUG - AbstractConsumerEndpoint       -
> ===================isJms102() : false
> 2009-11-13 16:20:41,765 DEBUG - ActiveMQSession                -
> ID:8014ac188efd43a-3350-1258100239656-2:12:1 Transaction Rollback
>
> 2009-11-13 16:20:41,781 WARN  - DefaultMessageListenerContainer - Execution
> of JMS message listener failed
> javax.jms.JMSException: Error sending JBI exchange
>        at
> org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:587)
>        at
> org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint$1.onMessage(JmsConsumerEndpoint.java:505)
>        at
> org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.jav
> a:518)
>        at
> org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:
> 479)
>        at
> org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.ja
> va:451)
>        at
> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageList
> enerContainer.java:323)
>        at
> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListen
> erContainer.java:241)
>        at
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMess
> ageListenerContainer.java:982)
>        at
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(Default
> MessageListenerContainer.java:974)
>        at
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListener
> Container.java:876)
>        at java.lang.Thread.run(Thread.java:619)
> Caused by: java.lang.NullPointerException
>        at
> org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.send(AbstractConsumerEndpoint.java:536)
>        at
> org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.processExchange(AbstractConsumerEndpoint.java:494)
>        at
> org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:564)
>        ... 10 more
> 2009-11-13 16:20:41,781 DEBUG - ActiveMQSession                -
> ID:8014ac188efd43a-3350-1258100239656-2:32:1 Transaction Rollback
> =============================================================
>
> from this log result, you can find that when exchange is not in-only and
> exchange.getStatus() is DONE, the variable of dest which is defined in
> processExchange method is not initialized, it is null.
> So, in next method send(...), when session.createProducer(dest), it throw a
> NullPointerException.
>
> Is it a bug?
>
>
> Gert Vanthienen wrote:
>>
>> Colin,
>>
>> It looks like your service is return a fault when it's unavailable
>> instead of the usual ERROR message exchange.  With the InOnly
>> exchange, the fault is lost because it can not be conveyed.  That's
>> why we suggested using another MEP, like RobustInOnly.
>>
>> However, the default behavior of the jms:consumer endpoint is not to
>> rollback on a fault message, but instead try to send it as a reply JMS
>> message.  That's why you're now getting these exceptions, because the
>> replyDestination has not been set.  Our marshaler currently doesn't
>> support rolling back on a fault message.
>>
>> Just to test this hypothesis, could you add your own Marshaler class
>> to the JMS SU and configure a replyDestination to hold the DONE
>> exchanges:
>> public class MyConsumerMarshaler extends DefaultConsumerMarshaler {
>>
>> public Message createFault(MessageExchange exchange, Fault fault,
>> Session session, JmsContext context) throws Exception {
>> //throw exception on a fault to force rollback
>> throw new FaultException(fault);
>> }
>> }
>>
>> If that fixes the issue, we should probably look into making this
>> option available from the default consumer marshaler.
>>
>> Regards,
>>
>> Gert Vanthienen
>> ------------------------
>> Open Source SOA: http://fusesource.com
>> Blog: http://gertvanthienen.blogspot.com/
>>
>>
>>
>> 2009/11/12 colin.chi <ib...@hotmail.com>:
>>>
>>> Hi FF,
>>>
>>> I will repeat what scenario I tested.
>>>
>>> external client: I use examples\wsdl-first\client.html and change the
>>> "Target" param and textarea content.
>>> external service: I build a webservice by cxf framework. external service
>>> wsdl is :
>>>    <wsdl:operation name="createCustomer">
>>>      <soap:operation soapAction="" style="document" />
>>>      <wsdl:input name="createCustomer">
>>>        <soap:body use="literal" />
>>>      </wsdl:input>
>>>    </wsdl:operation>
>>>
>>> jms consumer endpoint configration:
>>>    <bean id="Marshaler"
>>> class="org.apache.servicemix.jms.endpoints.DefaultConsumerMarshaler">
>>>        <property name="mep"
>>> value="http://www.w3.org/2004/08/wsdl/in-only"
>>> />
>>>    </bean>
>>>
>>>    <bean id="connectionFactory1"
>>> class="org.apache.activemq.ActiveMQConnectionFactory">
>>>        <property name="brokerURL" value="tcp://localhost:61616" />
>>>        <property name="redeliveryPolicy" ref="redeliveryPolicy" />
>>>    </bean>
>>>
>>>    <bean id="redeliveryPolicy"
>>> class="org.apache.activemq.RedeliveryPolicy">
>>>        <property name="initialRedeliveryDelay" value="10000"/>
>>>        <property name="maximumRedeliveries" value="2"/>
>>>    </bean>
>>>
>>> and in activemq.xml, I configrate a DLQ.queue/A.
>>>
>>> first scenario:
>>>  <jms:consumer service="novaesb:jms"
>>>                  endpoint="consumer"
>>>                  targetService="geneva:CustomerInImplService"
>>>                  targetEndpoint="CustomerInGenevaPortTypePort"
>>>                  destinationName="queue/A"
>>>                  connectionFactory="#connectionFactory1"
>>>                  transacted="jms"
>>>                  cacheLevel="2"
>>>                  marshaler="#Marshaler" /><!-- in-only -->
>>>
>>> first result:
>>>  when external service is running, external service receive message, and
>>> test is ok.
>>>  when external service is shutdown, there is an error, and message can
>>> not
>>> be rollback to jms consumer, and message lost.
>>>   error log is :
>>>     2009-11-12 14:50:09,359 ERROR - CxfBcComponent                 -
>>> Error
>>> processing exchange InOnly[
>>>       ...
>>>       status: Active
>>>       role: provider
>>>       service: {http://geneva.nova.com/customer}CustomerInImplService
>>>       ...
>>>     javax.jbi.messaging.MessagingException: Fault not supported
>>>     ...
>>>     2009-11-12 14:50:09,359 DEBUG - SedaQueue                      -
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@117d8d5 dequeued
>>> exchange: InOnly[
>>>       ...
>>>       status: Error
>>>       role: consumer
>>>       service: {http://geneva.nova.com/customer}CustomerInImplService
>>>       ...
>>>       error: javax.jbi.messaging.MessagingException: Fault not supported
>>>     ...
>>>
>>> second scenario:
>>> I change bean "Marshaler" value to
>>> "http://www.w3.org/2004/08/wsdl/robust-in-only".
>>>  <jms:consumer service="novaesb:jms"
>>>                  endpoint="consumer"
>>>                  targetService="geneva:CustomerInImplService"
>>>                  targetEndpoint="CustomerInGenevaPortTypePort"
>>>                  destinationName="queue/A"
>>>                  connectionFactory="#connectionFactory1"
>>>                  transacted="jms"
>>>                  cacheLevel="2"
>>>                  marshaler="#Marshaler" /><!-- robust-in-only -->
>>>
>>> second result:
>>>  when external service is running,
>>>    external service receive message 2 times, external service receive
>>> message time:
>>>     1st receive time : Nov 12, 2009 2:58:31 PM
>>> org.apache.cxf.interceptor.LoggingInInterceptor logging
>>>     2nd receive time : Nov 12, 2009 2:58:32 PM
>>> org.apache.cxf.interceptor.LoggingInInterceptor logging
>>>
>>>    message in ServiceMix rollback 2 times, then be sended to DLQ.queue/A.
>>>     1st rollback time : 2009-11-12 14:59:14,671 DEBUG - ActiveMQSession
>>> - ID:8014ac188efd43a-3319-1258009050796-2:12:1 Transaction Rollback
>>>                         ...
>>>                         2009-11-12 14:59:14,687 DEBUG - ActiveMQSession
>>> - ID:8014ac188efd43a-3319-1258009050796-2:17:1 Transaction Rollback
>>>                         ...
>>>     2nd rollback time : 2009-11-12 14:59:15,140 DEBUG - ActiveMQSession
>>> - ID:8014ac188efd43a-3319-1258009050796-2:18:1 Transaction Rollback
>>>                         ...
>>>                         2009-11-12 14:59:15,140 DEBUG - ActiveMQSession
>>> - ID:8014ac188efd43a-3319-1258009050796-2:19:1 Transaction Rollback
>>>                         ...
>>>
>>>  when external service is shutdown, message is rollbacked 2 times, then
>>> be
>>> sended to DLQ.queue/A.
>>>   1st rollback time : 2009-11-12 15:12:33,453 DEBUG - ActiveMQSession
>>> - ID:8014ac188efd43a-3319-1258009050796-2:20:1 Transaction Rollback
>>>                       ...
>>>                       2009-11-12 15:12:33,468 DEBUG - ActiveMQSession
>>> - ID:8014ac188efd43a-3319-1258009050796-2:768:1 Transaction Rollback
>>>                       ...
>>>   2nd rollback time : 2009-11-12 15:12:33,625 DEBUG - ActiveMQSession
>>> - ID:8014ac188efd43a-3319-1258009050796-2:769:1 Transaction Rollback
>>>                       ...
>>>                       2009-11-12 15:12:33,640 DEBUG - ActiveMQSession
>>> - ID:8014ac188efd43a-3319-1258009050796-2:770:1 Transaction Rollback
>>>                       ...
>>>
>>> In these two test scenario, why rollback Delay time is not 10000ms?
>>> when external service is ok, why servicemix get that error and last send
>>> message to dlq?
>>>
>>>
>>> Freeman Fang wrote:
>>>>
>>>> Hi Colin,
>>>>
>>>> Did you ever test the scenario when external service is shutdown with
>>>> current configuration? I don't think fault message can't  send back to
>>>> jms consumer endpoint for your current configuration
>>>>  From your first email, when external service is shutdown, you get
>>>> exception like
>>>>
>>>> javax.jbi.messaging.MessagingException: Fault not supported
>>>>         at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .jbi.messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java:
>>>> 366)
>>>>         at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .jbi.messaging.MessageExchangeImpl.setFault(MessageExchangeImpl.java:
>>>> 290)
>>>>         at
>>>> org
>>>> .apache.servicemix.cxfbc.CxfBcProvider.faultProcess(CxfBcProvider.java:
>>>> 277)
>>>>         at
>>>> org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:
>>>> 261)
>>>>         at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>>>         at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
>>>>         at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:
>>>> 535)
>>>>         at
>>>>
>>>> That's caused by your MEP is InOnly, so you can't set Fault to the
>>>> MessageExchange.  If you use RobustInOnly now, when external service
>>>> is shutdown,  as same as you use InOnly, cxf bc provide can get a
>>>> RuntimeException(thrown by underlying transport) and then set as
>>>> faulut to MessageExchange(now it's ok as it's  no InOnly now), which
>>>> can trigger rollback on jms consumer endpoint. Could you append the
>>>> log when external service is shutdown?
>>>>
>>>>
>>>> And I want to get more details about your workflow, as you mentioned,
>>>> your flow looks like
>>>> [external client]--->cxf-bc-consumer--->jms-provider--->jms queue
>>>>
>>>> jms queue--->jms-consumer--->cxf-bc-provider--->[external service]
>>>>
>>>> What the transport your external client and external service use? Http
>>>> or JMS?
>>>>
>>>> Freeman
>>>>
>>>> On 2009-11-12, at 上午11:29, colin.chi wrote:
>>>>
>>>>>
>>>>> Hi FF,
>>>>>
>>>>> Thanks for you reply.
>>>>>
>>>>> I have tested according to you suggestion, and the message is
>>>>> rollbacked to
>>>>> jms consumer, but this test scene is that external service is running
>>>>> normal.
>>>>>
>>>>> The exception of rollback as follows:
>>>>> ==========================================================
>>>>> 2009-11-12 10:34:24,921 DEBUG - SedaQueue                      -
>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1425e17 deque
>>>>> ued exchange: RobustInOnly[
>>>>>  id: ID:10.80.12.85-124e63b1989-2:2
>>>>>  status: Done
>>>>>  role: consumer
>>>>>  service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>>  endpoint: CustomerInGenevaPortTypePort
>>>>>  operation: {http://geneva.nova.com/customer}createCustomer
>>>>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>> xmlns:msg="htt
>>>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>> "
>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>> e="createCustomer" type="msg:createCustomer"
>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>> r"><pns:value>5555</pns:value></pns:createCustomer></jbi:part></
>>>>> jbi:message>
>>>>> ]
>>>>> 2009-11-12 10:34:24,953 DEBUG - DeliveryChannelImpl            -
>>>>> Notifying
>>>>> exchange ID:10.80.12.85-124e63b1989-2:2(1e67cdb) in Del
>>>>> iveryChannel{servicemix-jms} from processInboundSynchronousExchange
>>>>> 2009-11-12 10:34:24,953 DEBUG - DeliveryChannelImpl            -
>>>>> Notified:
>>>>> ID:10.80.12.85-124e63b1989-2:2(1e67cdb) in DeliveryChan
>>>>> nel{servicemix-jms} from sendSync
>>>>> 2009-11-12 10:34:24,968 DEBUG - DefaultMessageListenerContainer -
>>>>> Initiating
>>>>> transaction rollback on application exception
>>>>> javax.jms.JMSException: Error sending JBI exchange
>>>>>        at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .jms
>>>>> .endpoints
>>>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:575)
>>>>>        at
>>>>> org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint
>>>>> $1.onMessage(JmsConsumerEndpoint.java:505)
>>>>>        at
>>>>> org
>>>>> .springframework
>>>>> .jms
>>>>> .listener
>>>>> .AbstractMessageListenerContainer
>>>>> .doInvokeListener(AbstractMessageListenerContainer.jav
>>>>> a:518)
>>>>>        at
>>>>> org
>>>>> .springframework
>>>>> .jms
>>>>> .listener
>>>>> .AbstractMessageListenerContainer
>>>>> .invokeListener(AbstractMessageListenerContainer.java:
>>>>> 479)
>>>>>        at
>>>>> org
>>>>> .springframework
>>>>> .jms
>>>>> .listener
>>>>> .AbstractMessageListenerContainer
>>>>> .doExecuteListener(AbstractMessageListenerContainer.ja
>>>>> va:451)
>>>>>        at
>>>>> org
>>>>> .springframework
>>>>> .jms
>>>>> .listener
>>>>> .AbstractPollingMessageListenerContainer
>>>>> .doReceiveAndExecute(AbstractPollingMessageList
>>>>> enerContainer.java:323)
>>>>>        at
>>>>> org
>>>>> .springframework
>>>>> .jms
>>>>> .listener
>>>>> .AbstractPollingMessageListenerContainer
>>>>> .receiveAndExecute(AbstractPollingMessageListen
>>>>> erContainer.java:241)
>>>>>        at
>>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>>> $AsyncMessageListenerInvoker.invokeListener(DefaultMess
>>>>> ageListenerContainer.java:982)
>>>>>        at
>>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>>> $AsyncMessageListenerInvoker.executeOngoingLoop(Default
>>>>> MessageListenerContainer.java:974)
>>>>>        at
>>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>>> $AsyncMessageListenerInvoker.run(DefaultMessageListener
>>>>> Container.java:876)
>>>>>        at java.lang.Thread.run(Thread.java:619)
>>>>> Caused by: java.lang.UnsupportedOperationException: A destination
>>>>> must be
>>>>> specified.
>>>>>        at
>>>>> org
>>>>> .apache
>>>>> .activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:
>>>>> 195)
>>>>>        at
>>>>> org
>>>>> .apache
>>>>> .activemq
>>>>> .ActiveMQMessageProducerSupport
>>>>> .send(ActiveMQMessageProducerSupport.java:241)
>>>>>        at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .jms
>>>>> .endpoints
>>>>> .AbstractConsumerEndpoint.send(AbstractConsumerEndpoint.java:526)
>>>>>        at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .jms
>>>>> .endpoints
>>>>> .AbstractConsumerEndpoint
>>>>> .processExchange(AbstractConsumerEndpoint.java:485)
>>>>>        at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .jms
>>>>> .endpoints
>>>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:552)
>>>>>        ... 10 more
>>>>> 2009-11-12 10:34:25,031 DEBUG - ActiveMQSession                -
>>>>> ID:8014ac188efd43a-3939-1257993081718-2:54:1 Transaction Rollback
>>>>>
>>>>> 2009-11-12 10:34:25,031 DEBUG - DefaultMessageListenerContainer -
>>>>> Rolling
>>>>> back transaction because of listener exception thrown: j
>>>>> avax.jms.JMSException: Error sending JBI exchange
>>>>> 2009-11-12 10:34:25,031 DEBUG - AMQMessageStore                -
>>>>> Journalled
>>>>> message add for: ID:8014ac188efd43a-3939-1257993081718
>>>>> -2:10:1:1:1, at: offset = 1236, file = 1, size = 969, type = 1
>>>>> 2009-11-12 10:34:25,031 WARN  - DefaultMessageListenerContainer -
>>>>> Execution
>>>>> of JMS message listener failed
>>>>> javax.jms.JMSException: Error sending JBI exchange
>>>>>        at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .jms
>>>>> .endpoints
>>>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:575)
>>>>>        at
>>>>> org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint
>>>>> $1.onMessage(JmsConsumerEndpoint.java:505)
>>>>>        at
>>>>> org
>>>>> .springframework
>>>>> .jms
>>>>> .listener
>>>>> .AbstractMessageListenerContainer
>>>>> .doInvokeListener(AbstractMessageListenerContainer.jav
>>>>> a:518)
>>>>>        at
>>>>> org
>>>>> .springframework
>>>>> .jms
>>>>> .listener
>>>>> .AbstractMessageListenerContainer
>>>>> .invokeListener(AbstractMessageListenerContainer.java:
>>>>> 479)
>>>>>        at
>>>>> org
>>>>> .springframework
>>>>> .jms
>>>>> .listener
>>>>> .AbstractMessageListenerContainer
>>>>> .doExecuteListener(AbstractMessageListenerContainer.ja
>>>>> va:451)
>>>>>        at
>>>>> org
>>>>> .springframework
>>>>> .jms
>>>>> .listener
>>>>> .AbstractPollingMessageListenerContainer
>>>>> .doReceiveAndExecute(AbstractPollingMessageList
>>>>> enerContainer.java:323)
>>>>>        at
>>>>> org
>>>>> .springframework
>>>>> .jms
>>>>> .listener
>>>>> .AbstractPollingMessageListenerContainer
>>>>> .receiveAndExecute(AbstractPollingMessageListen
>>>>> erContainer.java:241)
>>>>>        at
>>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>>> $AsyncMessageListenerInvoker.invokeListener(DefaultMess
>>>>> ageListenerContainer.java:982)
>>>>>        at
>>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>>> $AsyncMessageListenerInvoker.executeOngoingLoop(Default
>>>>> MessageListenerContainer.java:974)
>>>>>        at
>>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>>> $AsyncMessageListenerInvoker.run(DefaultMessageListener
>>>>> Container.java:876)
>>>>>        at java.lang.Thread.run(Thread.java:619)
>>>>> Caused by: java.lang.UnsupportedOperationException: A destination
>>>>> must be
>>>>> specified.
>>>>>        at
>>>>> org
>>>>> .apache
>>>>> .activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:
>>>>> 195)
>>>>>        at
>>>>> org
>>>>> .apache
>>>>> .activemq
>>>>> .ActiveMQMessageProducerSupport
>>>>> .send(ActiveMQMessageProducerSupport.java:241)
>>>>>        at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .jms
>>>>> .endpoints
>>>>> .AbstractConsumerEndpoint.send(AbstractConsumerEndpoint.java:526)
>>>>>        at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .jms
>>>>> .endpoints
>>>>> .AbstractConsumerEndpoint
>>>>> .processExchange(AbstractConsumerEndpoint.java:485)
>>>>>        at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .jms
>>>>> .endpoints
>>>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:552)
>>>>>        ... 10 more
>>>>> 2009-11-12 10:34:25,109 DEBUG - DefaultMessageListenerContainer -
>>>>> Initiating
>>>>> transaction rollback on listener exception
>>>>> javax.jms.JMSException: Error sending JBI exchange
>>>>>        at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .jms
>>>>> .endpoints
>>>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:575)
>>>>>        at
>>>>> org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint
>>>>> $1.onMessage(JmsConsumerEndpoint.java:505)
>>>>>        at
>>>>> org
>>>>> .springframework
>>>>> .jms
>>>>> .listener
>>>>> .AbstractMessageListenerContainer
>>>>> .doInvokeListener(AbstractMessageListenerContainer.jav
>>>>> a:518)
>>>>>        at
>>>>> org
>>>>> .springframework
>>>>> .jms
>>>>> .listener
>>>>> .AbstractMessageListenerContainer
>>>>> .invokeListener(AbstractMessageListenerContainer.java:
>>>>> 479)
>>>>>        at
>>>>> org
>>>>> .springframework
>>>>> .jms
>>>>> .listener
>>>>> .AbstractMessageListenerContainer
>>>>> .doExecuteListener(AbstractMessageListenerContainer.ja
>>>>> va:451)
>>>>>        at
>>>>> org
>>>>> .springframework
>>>>> .jms
>>>>> .listener
>>>>> .AbstractPollingMessageListenerContainer
>>>>> .doReceiveAndExecute(AbstractPollingMessageList
>>>>> enerContainer.java:323)
>>>>>        at
>>>>> org
>>>>> .springframework
>>>>> .jms
>>>>> .listener
>>>>> .AbstractPollingMessageListenerContainer
>>>>> .receiveAndExecute(AbstractPollingMessageListen
>>>>> erContainer.java:241)
>>>>>        at
>>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>>> $AsyncMessageListenerInvoker.invokeListener(DefaultMess
>>>>> ageListenerContainer.java:982)
>>>>>        at
>>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>>> $AsyncMessageListenerInvoker.executeOngoingLoop(Default
>>>>> MessageListenerContainer.java:974)
>>>>>        at
>>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>>> $AsyncMessageListenerInvoker.run(DefaultMessageListener
>>>>> Container.java:876)
>>>>>        at java.lang.Thread.run(Thread.java:619)
>>>>> Caused by: java.lang.UnsupportedOperationException: A destination
>>>>> must be
>>>>> specified.
>>>>>        at
>>>>> org
>>>>> .apache
>>>>> .activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:
>>>>> 195)
>>>>>        at
>>>>> org
>>>>> .apache
>>>>> .activemq
>>>>> .ActiveMQMessageProducerSupport
>>>>> .send(ActiveMQMessageProducerSupport.java:241)
>>>>>        at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .jms
>>>>> .endpoints
>>>>> .AbstractConsumerEndpoint.send(AbstractConsumerEndpoint.java:526)
>>>>>        at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .jms
>>>>> .endpoints
>>>>> .AbstractConsumerEndpoint
>>>>> .processExchange(AbstractConsumerEndpoint.java:485)
>>>>>        at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .jms
>>>>> .endpoints
>>>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:552)
>>>>>        ... 10 more
>>>>> 2009-11-12 10:34:25,171 DEBUG - JmsTransactionManager          -
>>>>> Initiating
>>>>> transaction rollback
>>>>> 2009-11-12 10:34:25,171 DEBUG - JmsTransactionManager          -
>>>>> Rolling
>>>>> back JMS transaction on Session [ActiveMQSession {id=ID:8
>>>>> 014ac188efd43a-3939-1257993081718-2:55:1,started=false}]
>>>>> 2009-11-12 10:34:25,171 DEBUG - ActiveMQSession                -
>>>>> ID:8014ac188efd43a-3939-1257993081718-2:55:1 Transaction Rollback
>>>>> =====================================================
>>>>>
>>>>>
>>>>> Freeman Fang wrote:
>>>>>>
>>>>>> Hi Colin,
>>>>>>
>>>>>> I think the problem actually come from the MEP (message exchange
>>>>>> pattern) of your MessageChange is InOnly, so the fault message can't
>>>>>> go back to JmsConsumer endpoint, which means the JmsConsumer endpoint
>>>>>> have no chance to do the rollback.
>>>>>>
>>>>>>
>>>>>> Freeman
>>>>>>
>>>>>> On 2009-11-11, at 下午4:41, colin.chi wrote:
>>>>>>
>>>>>>>
>>>>>>> Hi Gert,
>>>>>>>
>>>>>>> Thanks for you reply.
>>>>>>>
>>>>>>> And I see some logs as following:
>>>>>>>
>>>>>>> 2009-11-09 11:19:28,171 DEBUG - SedaQueue                      -
>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@89e163 dequeu
>>>>>>> ed exchange: InOnly[
>>>>>>> id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>>> status: Done
>>>>>>> role: consumer
>>>>>>> service: {http://www.hcsys.com/novaesb/}jms
>>>>>>> endpoint: provider
>>>>>>> operation: {http://www.hcsys.com/novaesb/}createCustomer
>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>> xmlns:msg="htt
>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>> "
>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>> r">
>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>> ]
>>>>>>>
>>>>>>> This means the message is received and processed(send to cxf-
>>>>>>> provider
>>>>>>> endpoint) successfully by jms consumer endpoint.
>>>>>>>
>>>>>>> so when cxf-provider endpoint catch an exception or an error, the
>>>>>>> message
>>>>>>> can't be  rollbacked to jms queue where jms consumer endpoint
>>>>>>> listen.
>>>>>>>
>>>>>>> I think this case can not be achieved in ServiceMix.
>>>>>>>
>>>>>>> If I am wrong, can you tell me how can I finish this case?
>>>>>>>
>>>>>>> thanks and regards.
>>>>>>>
>>>>>>>
>>>>>>> Gert Vanthienen wrote:
>>>>>>>>
>>>>>>>> L.S.,
>>>>>>>>
>>>>>>>> One option would be to enable transactions on the jms consumer
>>>>>>>> endpoint (transacted="jms").  Another option would be to get the
>>>>>>>> JMS
>>>>>>>> client to acknowledge the message, like this:
>>>>>>>>
>>>>>>>>   <jms:consumer ....
>>>>>>>>                 sessionAcknowledgeMode="#AcknowledgeMode"/>
>>>>>>>>
>>>>>>>>    <util:constant id="AcknowledgeMode"
>>>>>>>> static-field="javax.jms.Session.CLIENT_ACKNOWLEDGE"/>
>>>>>>>>
>>>>>>>> Regards,
>>>>>>>>
>>>>>>>> Gert Vanthienen
>>>>>>>> ------------------------
>>>>>>>> Open Source SOA: http://fusesource.com
>>>>>>>> Blog: http://gertvanthienen.blogspot.com/
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> 2009/11/9 colin.chi <ib...@hotmail.com>:
>>>>>>>>>
>>>>>>>>> work flow as follow:
>>>>>>>>>
>>>>>>>>> [external client]--->cxf-bc-consumer--->jms-provider--->jms queue
>>>>>>>>>
>>>>>>>>> jms queue--->jms-consumer--->cxf-bc-provider--->[external service]
>>>>>>>>>
>>>>>>>>> when external service is shut down, message don't rollback to jms
>>>>>>>>> queue
>>>>>>>>> and
>>>>>>>>> throw exception.
>>>>>>>>>
>>>>>>>>> how to config jms consumer and cxf bc provider to do this case?
>>>>>>>>>
>>>>>>>>> =======================log begin==========================
>>>>>>>>>
>>>>>>>>> 2009-11-09 11:19:28,046 DEBUG - JettyHTTPDestination           -
>>>>>>>>> Service
>>>>>>>>> http request on thread: Thread[22434271@qtp0-0,5,RMI Runt
>>>>>>>>> ime]
>>>>>>>>> 2009-11-09 11:19:28,046 DEBUG - AbstractHTTPDestination        -
>>>>>>>>> Request
>>>>>>>>> Headers: {connection=[Keep-Alive], Host=[localhost:8080],
>>>>>>>>> Content-Length=[364], User-Agent=[Mozilla/4.0 (compatible; MSIE
>>>>>>>>> 7.0;
>>>>>>>>> Windows NT 5.1; Trident/4.0; GOSURF)], accept-encoding=[gzip
>>>>>>>>> , deflate], Accept=[*/*], Cache-Control=[no-cache]}
>>>>>>>>> 2009-11-09 11:19:28,046 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Chain
>>>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain@735ad7 was creat
>>>>>>>>> ed. Current flow:
>>>>>>>>> receive [AttachmentInInterceptor]
>>>>>>>>> post-stream [StaxInInterceptor]
>>>>>>>>> read [ReadHeadersInterceptor]
>>>>>>>>> pre-protocol [, MustUnderstandInterceptor, JbiJAASInterceptor]
>>>>>>>>> unmarshal [JbiOperationInterceptor]
>>>>>>>>> pre-invoke [JbiInWsdl1Interceptor, JbiInInterceptor]
>>>>>>>>> invoke [JbiInvokerInterceptor]
>>>>>>>>> post-invoke [JbiPostInvokerInterceptor, OutgoingChainInterceptor]
>>>>>>>>>
>>>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Invoking
>>>>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>>>>> AttachmentInInterceptor@14d8c8
>>>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Invoking
>>>>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>>>>> StaxInInterceptor@a4480d
>>>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Invoking
>>>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>>>> .interceptor.ReadHeadersInterceptor@1766d9c
>>>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Invoking
>>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>>> .CxfBcConsumer$1@1b7715d
>>>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Invoking
>>>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>>>> .interceptor.MustUnderstandInterceptor@73a403
>>>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Invoking
>>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>>> .interceptors.JbiJAASInterceptor@ca7c93
>>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Invoking
>>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>>> .interceptors.JbiOperationInterceptor@1626bf
>>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Invoking
>>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>>> .interceptors.JbiInWsdl1Interceptor@49e885
>>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Invoking
>>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>>> .interceptors.JbiInInterceptor@407909
>>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Invoking
>>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>>> .CxfBcConsumer$JbiInvokerInterceptor@1b8a6af
>>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - CxfBcComponent                 -
>>>>>>>>> Created
>>>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - DeliveryChannelImpl            -
>>>>>>>>> Send
>>>>>>>>> ID:10.80.12.85-124d6ebc094-2:10 in DeliveryChannel{servicemi
>>>>>>>>> x-cxf-bc}
>>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -
>>>>>>>>> send
>>>>>>>>> exchange with secure broker
>>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -
>>>>>>>>> service
>>>>>>>>> name :{http://www.hcsys.com/novaesb/}jms
>>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -
>>>>>>>>> operation
>>>>>>>>> name :{http://www.hcsys.com/novaesb/}createCustomer
>>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - SedaFlow                       -
>>>>>>>>> Called
>>>>>>>>> Flow
>>>>>>>>> send
>>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Invoking
>>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>>> .CxfBcConsumer$JbiPostInvokerInterceptor@1c76cab
>>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Invoking
>>>>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>>>>> OutgoingChainInterceptor@1af691b
>>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - JettyHTTPDestination           -
>>>>>>>>> Finished
>>>>>>>>> servicing http request on thread: Thread[22434271@qtp0-0
>>>>>>>>> ,5,RMI Runtime]
>>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - SedaQueue                      -
>>>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@45ac89 dequeu
>>>>>>>>> ed exchange: InOnly[
>>>>>>>>> id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>>>>> status: Active
>>>>>>>>> role: provider
>>>>>>>>> service: {http://www.hcsys.com/novaesb/}jms
>>>>>>>>> endpoint: provider
>>>>>>>>> operation: {http://www.hcsys.com/novaesb/}createCustomer
>>>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>>>> xmlns:msg="htt
>>>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>>>> "
>>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>>>> r">
>>>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>>>> ]
>>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - JmsComponent                   -
>>>>>>>>> Received
>>>>>>>>> exchange: status: Active, role: provider
>>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - JmsComponent                   -
>>>>>>>>> Retrieved
>>>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - DeliveryChannelImpl            -
>>>>>>>>> Send
>>>>>>>>> ID:10.80.12.85-124d6ebc094-2:10 in DeliveryChannel{servicemi
>>>>>>>>> x-jms}
>>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - SecuredBroker                  -
>>>>>>>>> send
>>>>>>>>> exchange with secure broker
>>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - SedaFlow                       -
>>>>>>>>> Called
>>>>>>>>> Flow
>>>>>>>>> send
>>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - MultiplexingConsumerProcessor  -
>>>>>>>>> Received
>>>>>>>>> jms message ActiveMQTextMessage {commandId = 17, respons
>>>>>>>>> eRequired = true, messageId =
>>>>>>>>> ID:8014ac188efd43a-4422-1257736227984-2:10:1:1:11,
>>>>>>>>> originalDestination =
>>>>>>>>> null, originalTransactionId
>>>>>>>>> = null, producerId = ID:
>>>>>>>>> 8014ac188efd43a-4422-1257736227984-2:10:1:1,
>>>>>>>>> destination = queue://queue/A, transactionId = null, expirat
>>>>>>>>> ion = 0, timestamp = 1257736768156, arrival = 0, brokerInTime =
>>>>>>>>> 1257736768156, brokerOutTime = 1257736768156, correlationId = null
>>>>>>>>> , replyTo = null, persistent = true, type = null, priority = 4,
>>>>>>>>> groupID =
>>>>>>>>> null, groupSequence = 0, targetConsumerId = null, compre
>>>>>>>>> ssed = false, userID = null, content = null,
>>>>>>>>> marshalledProperties =
>>>>>>>>> org.apache.activemq.util.ByteSequence@1713c03, dataStructure =
>>>>>>>>> null, redeliveryCounter = 0, size = 0, properties =
>>>>>>>>> {MimeContentType=text/xml;charset=UTF-8,
>>>>>>>>> SoapAction=/{http://www.hcsys.com/no
>>>>>>>>> vaesb/}createCustomer,
>>>>>>>>> SOAPJMS_soapAction=/{http://www.hcsys.com/
>>>>>>>>> novaesb/}createCustomer},
>>>>>>>>> readOnlyProperties = true, readOnlyBody
>>>>>>>>> = true, droppable = false, text = <?xml version='1.0'
>>>>>>>>> encoding='UTF-8'?><jbi:me...jbi:message>}
>>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - MultiplexingConsumerProcessor  -
>>>>>>>>> Handling
>>>>>>>>> jms message ActiveMQTextMessage {commandId = 17, respons
>>>>>>>>> eRequired = true, messageId =
>>>>>>>>> ID:8014ac188efd43a-4422-1257736227984-2:10:1:1:11,
>>>>>>>>> originalDestination =
>>>>>>>>> null, originalTransactionId
>>>>>>>>> = null, producerId = ID:
>>>>>>>>> 8014ac188efd43a-4422-1257736227984-2:10:1:1,
>>>>>>>>> destination = queue://queue/A, transactionId = null, expirat
>>>>>>>>> ion = 0, timestamp = 1257736768156, arrival = 0, brokerInTime =
>>>>>>>>> 1257736768156, brokerOutTime = 1257736768156, correlationId = null
>>>>>>>>> , replyTo = null, persistent = true, type = null, priority = 4,
>>>>>>>>> groupID =
>>>>>>>>> null, groupSequence = 0, targetConsumerId = null, compre
>>>>>>>>> ssed = false, userID = null, content = null,
>>>>>>>>> marshalledProperties =
>>>>>>>>> org.apache.activemq.util.ByteSequence@1713c03, dataStructure =
>>>>>>>>> null, redeliveryCounter = 0, size = 0, properties =
>>>>>>>>> {MimeContentType=text/xml;charset=UTF-8,
>>>>>>>>> SoapAction=/{http://www.hcsys.com/no
>>>>>>>>> vaesb/}createCustomer,
>>>>>>>>> SOAPJMS_soapAction=/{http://www.hcsys.com/
>>>>>>>>> novaesb/}createCustomer},
>>>>>>>>> readOnlyProperties = true, readOnlyBody
>>>>>>>>> = true, droppable = false, text = <?xml version='1.0'
>>>>>>>>> encoding='UTF-8'?><jbi:me...jbi:message>}
>>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - SedaQueue                      -
>>>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@89e163 dequeu
>>>>>>>>> ed exchange: InOnly[
>>>>>>>>> id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>>>>> status: Done
>>>>>>>>> role: consumer
>>>>>>>>> service: {http://www.hcsys.com/novaesb/}jms
>>>>>>>>> endpoint: provider
>>>>>>>>> operation: {http://www.hcsys.com/novaesb/}createCustomer
>>>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>>>> xmlns:msg="htt
>>>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>>>> "
>>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>>>> r">
>>>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>>>> ]
>>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - JmsComponent                   -
>>>>>>>>> Created
>>>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - CxfBcComponent                 -
>>>>>>>>> Received
>>>>>>>>> exchange: status: Done, role: consumer
>>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - DeliveryChannelImpl            -
>>>>>>>>> Send
>>>>>>>>> ID:10.80.12.85-124d6ebc094-4:10 in DeliveryChannel{servicemi
>>>>>>>>> x-jms}
>>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - CxfBcComponent                 -
>>>>>>>>> Retrieved
>>>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -
>>>>>>>>> send
>>>>>>>>> exchange with secure broker
>>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -
>>>>>>>>> service
>>>>>>>>> name :{http://geneva.nova.com/customer}CustomerInImplServ
>>>>>>>>> ice
>>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -
>>>>>>>>> operation
>>>>>>>>> name :{http://geneva.nova.com/customer}createCustomer
>>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - SedaFlow                       -
>>>>>>>>> Called
>>>>>>>>> Flow
>>>>>>>>> send
>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - SedaQueue                      -
>>>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@4437d3 dequeu
>>>>>>>>> ed exchange: InOnly[
>>>>>>>>> id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>>>> status: Active
>>>>>>>>> role: provider
>>>>>>>>> service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>>>>>> endpoint: CustomerInGenevaPortTypePort
>>>>>>>>> operation: {http://geneva.nova.com/customer}createCustomer
>>>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>>>> xmlns:msg="htt
>>>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>>>> "
>>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>>>> r">
>>>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>>>> ]
>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - CxfBcComponent                 -
>>>>>>>>> Received
>>>>>>>>> exchange: status: Active, role: provider
>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - CxfBcComponent                 -
>>>>>>>>> Retrieved
>>>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Adding
>>>>>>>>> interceptor org.apache.servicemix.cxfbc.interceptors.JbiOu
>>>>>>>>> tInterceptor@dd6a50 to phase pre-stream
>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Adding
>>>>>>>>> interceptor org.apache.servicemix.cxfbc.interceptors.JbiOu
>>>>>>>>> tWsdl1Interceptor@6ed9d1 to phase marshal
>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Adding
>>>>>>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapPr
>>>>>>>>> eProtocolOutInterceptor@19e4f8b to phase post-logical
>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Adding
>>>>>>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapOu
>>>>>>>>> tInterceptor@782f81 to phase write
>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Adding
>>>>>>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapAc
>>>>>>>>> tionOutInterceptor@76df38 to phase post-logical
>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Adding
>>>>>>>>> interceptor org.apache.cxf.interceptor.StaxOutInterceptor@
>>>>>>>>> 38df00 to phase pre-stream
>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Chain
>>>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was crea
>>>>>>>>> ted. Current flow:
>>>>>>>>> post-logical [SoapPreProtocolOutInterceptor,
>>>>>>>>> SoapActionOutInterceptor]
>>>>>>>>> pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>>>>>>> write [SoapOutInterceptor]
>>>>>>>>> marshal [JbiOutWsdl1Interceptor]
>>>>>>>>>
>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Invoking
>>>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>>>> .interceptor.SoapPreProtocolOutInterceptor@19e4f8b
>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Invoking
>>>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>>>> .interceptor.SoapActionOutInterceptor@76df38
>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Invoking
>>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>>> .interceptors.JbiOutInterceptor@dd6a50
>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Invoking
>>>>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>>>>> StaxOutInterceptor@38df00
>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Adding
>>>>>>>>> interceptor org.apache.cxf.interceptor.StaxOutInterceptor$
>>>>>>>>> StaxOutEndingInterceptor@1073a2e to phase pre-stream-ending
>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Chain
>>>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was modi
>>>>>>>>> fied. Current flow:
>>>>>>>>> post-logical [SoapPreProtocolOutInterceptor,
>>>>>>>>> SoapActionOutInterceptor]
>>>>>>>>> pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>>>>>>> write [SoapOutInterceptor]
>>>>>>>>> marshal [JbiOutWsdl1Interceptor]
>>>>>>>>> pre-stream-ending [StaxOutEndingInterceptor]
>>>>>>>>>
>>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Invoking
>>>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>>>> .interceptor.SoapOutInterceptor@782f81
>>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Adding
>>>>>>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapOu
>>>>>>>>> tInterceptor$SoapOutEndingInterceptor@17cb4ff to phase write-
>>>>>>>>> ending
>>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Chain
>>>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was modi
>>>>>>>>> fied. Current flow:
>>>>>>>>> post-logical [SoapPreProtocolOutInterceptor,
>>>>>>>>> SoapActionOutInterceptor]
>>>>>>>>> pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>>>>>>> write [SoapOutInterceptor]
>>>>>>>>> marshal [JbiOutWsdl1Interceptor]
>>>>>>>>> write-ending [SoapOutEndingInterceptor]
>>>>>>>>> pre-stream-ending [StaxOutEndingInterceptor]
>>>>>>>>>
>>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Invoking
>>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>>> .interceptors.JbiOutWsdl1Interceptor@6ed9d1
>>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Invoking
>>>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>>>> .interceptor.SoapOutInterceptor$SoapOutEndingInterceptor@17cb4ff
>>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>>>>> Invoking
>>>>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>>>>> StaxOutInterceptor$StaxOutEndingInterceptor@1073a2e
>>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>>>>>>> Sending
>>>>>>>>> POST Message with Headers to http://10.80.12.100:8080/Gen
>>>>>>>>> evaESB/services/CustomerAccount Conduit
>>>>>>>>> :{http://geneva.nova.com/
>>>>>>>>> customer}CustomerInGenevaPortTypePort.http-conduit
>>>>>>>>> Content-Type: text/xml; charset=UTF-8
>>>>>>>>>
>>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>>>>>>> SOAPAction:
>>>>>>>>> ""
>>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>>>>>>> Accept:
>>>>>>>>> *
>>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>>>>>>> No Trust
>>>>>>>>> Decider for Conduit '{http://geneva.nova.com/customer}Cu
>>>>>>>>> stomerInGenevaPortTypePort.http-conduit'. An afirmative Trust
>>>>>>>>> Decision is
>>>>>>>>> assumed.
>>>>>>>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    -
>>>>>>>>> Response
>>>>>>>>> Code: 404 Conduit: {http://geneva.nova.com/customer}Cust
>>>>>>>>> omerInGenevaPortTypePort.http-conduit
>>>>>>>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    -
>>>>>>>>> Content
>>>>>>>>> length: 952
>>>>>>>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    -
>>>>>>>>> Header
>>>>>>>>> fields:
>>>>>>>>>   null: [HTTP/1.1 404 Not Found]
>>>>>>>>>   Date: [Mon, 09 Nov 2009 03:19:04 GMT]
>>>>>>>>>   Content-Length: [952]
>>>>>>>>>   Content-Type: [text/html;charset=utf-8]
>>>>>>>>>   Server: [Apache-Coyote/1.1]
>>>>>>>>>
>>>>>>>>> 2009-11-09 11:19:28,265 ERROR - CxfBcComponent                 -
>>>>>>>>> Error
>>>>>>>>> processing exchange InOnly[
>>>>>>>>> id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>>>> status: Active
>>>>>>>>> role: provider
>>>>>>>>> service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>>>>>> endpoint: CustomerInGenevaPortTypePort
>>>>>>>>> operation: {http://geneva.nova.com/customer}createCustomer
>>>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>>>> xmlns:msg="htt
>>>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>>>> "
>>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>>>> r">
>>>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>>>> ]
>>>>>>>>> javax.jbi.messaging.MessagingException: Fault not supported
>>>>>>>>>       at
>>>>>>>>> org
>>>>>>>>> .apache
>>>>>>>>> .servicemix
>>>>>>>>> .jbi
>>>>>>>>> .messaging
>>>>>>>>> .MessageExchangeImpl.setMessage(MessageExchangeImpl.java:
>>>>>>>>> 366)
>>>>>>>>>       at
>>>>>>>>> org
>>>>>>>>> .apache
>>>>>>>>> .servicemix
>>>>>>>>> .jbi
>>>>>>>>> .messaging.MessageExchangeImpl.setFault(MessageExchangeImpl.java:
>>>>>>>>> 290)
>>>>>>>>>       at
>>>>>>>>> org
>>>>>>>>> .apache
>>>>>>>>> .servicemix.cxfbc.CxfBcProvider.faultProcess(CxfBcProvider.java:
>>>>>>>>> 277)
>>>>>>>>>       at
>>>>>>>>> org
>>>>>>>>> .apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:
>>>>>>>>> 261)
>>>>>>>>>       at
>>>>>>>>> org
>>>>>>>>> .apache
>>>>>>>>> .servicemix
>>>>>>>>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>>>>>>>>       at
>>>>>>>>> org
>>>>>>>>> .apache
>>>>>>>>> .servicemix
>>>>>>>>> .common
>>>>>>>>> .AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:
>>>>>>>>> 581)
>>>>>>>>>       at
>>>>>>>>> org
>>>>>>>>> .apache
>>>>>>>>> .servicemix
>>>>>>>>> .common
>>>>>>>>> .AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>>>>>>>>>       at
>>>>>>>>> org
>>>>>>>>> .apache
>>>>>>>>> .servicemix
>>>>>>>>> .common
>>>>>>>>> .SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:
>>>>>>>>> 60)
>>>>>>>>>       at
>>>>>>>>> org
>>>>>>>>> .apache
>>>>>>>>> .servicemix
>>>>>>>>> .jbi
>>>>>>>>> .messaging
>>>>>>>>> .DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>>>>>>>>>       at
>>>>>>>>> org
>>>>>>>>> .apache
>>>>>>>>> .servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:
>>>>>>>>> 172)
>>>>>>>>>       at
>>>>>>>>> org
>>>>>>>>> .apache
>>>>>>>>> .servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:
>>>>>>>>> 168)
>>>>>>>>>       at
>>>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue
>>>>>>>>> $1.run(SedaQueue.java:134)
>>>>>>>>>       at
>>>>>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>>>>>> $Worker.runTask(ThreadPoolExecutor.java:886)
>>>>>>>>>       at
>>>>>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>>>>>> $Worker.run(ThreadPoolExecutor.java:908)
>>>>>>>>>       at java.lang.Thread.run(Thread.java:619)
>>>>>>>>> 2009-11-09 11:19:28,296 DEBUG - DeliveryChannelImpl            -
>>>>>>>>> Send
>>>>>>>>> ID:10.80.12.85-124d6ebc094-4:10 in DeliveryChannel{servicemi
>>>>>>>>> x-cxf-bc}
>>>>>>>>> 2009-11-09 11:19:28,296 DEBUG - SecuredBroker                  -
>>>>>>>>> send
>>>>>>>>> exchange with secure broker
>>>>>>>>> 2009-11-09 11:19:28,296 DEBUG - SedaFlow                       -
>>>>>>>>> Called
>>>>>>>>> Flow
>>>>>>>>> send
>>>>>>>>> 2009-11-09 11:19:28,296 DEBUG - SedaQueue                      -
>>>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@247262 dequeu
>>>>>>>>> ed exchange: InOnly[
>>>>>>>>> id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>>>> status: Error
>>>>>>>>> role: consumer
>>>>>>>>> service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>>>>>> endpoint: CustomerInGenevaPortTypePort
>>>>>>>>> operation: {http://geneva.nova.com/customer}createCustomer
>>>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>>>> xmlns:msg="htt
>>>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>>>> "
>>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>>>> r">
>>>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>>>> error: javax.jbi.messaging.MessagingException: Fault not supported
>>>>>>>>> ]
>>>>>>>>> 2009-11-09 11:19:28,296 DEBUG - JmsComponent                   -
>>>>>>>>> Received
>>>>>>>>> exchange: status: Error, role: consumer
>>>>>>>>> 2009-11-09 11:19:28,296 DEBUG - JmsComponent                   -
>>>>>>>>> Retrieved
>>>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>>>> 2009-11-09 11:19:28,328 ERROR - JmsComponent                   -
>>>>>>>>> Error
>>>>>>>>> processing exchange InOnly[
>>>>>>>>> id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>>>> status: Error
>>>>>>>>> role: consumer
>>>>>>>>> service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>>>>>> endpoint: CustomerInGenevaPortTypePort
>>>>>>>>> operation: {http://geneva.nova.com/customer}createCustomer
>>>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>>>> xmlns:msg="htt
>>>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>>>> "
>>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>>>> r">
>>>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>>>> error: javax.jbi.messaging.MessagingException: Fault not supported
>>>>>>>>> ]
>>>>>>>>> java.lang.UnsupportedOperationException: A destination must be
>>>>>>>>> specified.
>>>>>>>>>       at
>>>>>>>>> org
>>>>>>>>> .apache
>>>>>>>>> .activemq
>>>>>>>>> .ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:195)
>>>>>>>>>       at
>>>>>>>>> org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:
>>>>>>>>> 74)
>>>>>>>>>       at
>>>>>>>>> org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:
>>>>>>>>> 59)
>>>>>>>>>       at
>>>>>>>>> org
>>>>>>>>> .apache
>>>>>>>>> .servicemix
>>>>>>>>> .jms
>>>>>>>>> .multiplexing
>>>>>>>>> .MultiplexingConsumerProcessor
>>>>>>>>> .process(MultiplexingConsumerProcessor.java:126)
>>>>>>>>>       at
>>>>>>>>> org.apache.servicemix.soap.SoapEndpoint.process(SoapEndpoint.java:
>>>>>>>>> 368)
>>>>>>>>>       at
>>>>>>>>> org
>>>>>>>>> .apache
>>>>>>>>> .servicemix
>>>>>>>>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>>>>>>>>       at
>>>>>>>>> org
>>>>>>>>> .apache
>>>>>>>>> .servicemix
>>>>>>>>> .common
>>>>>>>>> .AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:
>>>>>>>>> 598)
>>>>>>>>>       at
>>>>>>>>> org
>>>>>>>>> .apache
>>>>>>>>> .servicemix
>>>>>>>>> .common
>>>>>>>>> .AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>>>>>>>>>       at
>>>>>>>>> org
>>>>>>>>> .apache
>>>>>>>>> .servicemix
>>>>>>>>> .common
>>>>>>>>> .SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:
>>>>>>>>> 60)
>>>>>>>>>       at
>>>>>>>>> org
>>>>>>>>> .apache
>>>>>>>>> .servicemix
>>>>>>>>> .jbi
>>>>>>>>> .messaging
>>>>>>>>> .DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>>>>>>>>>       at
>>>>>>>>> org
>>>>>>>>> .apache
>>>>>>>>> .servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:
>>>>>>>>> 172)
>>>>>>>>>       at
>>>>>>>>> org
>>>>>>>>> .apache
>>>>>>>>> .servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:
>>>>>>>>> 168)
>>>>>>>>>       at
>>>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue
>>>>>>>>> $1.run(SedaQueue.java:134)
>>>>>>>>>       at
>>>>>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>>>>>> $Worker.runTask(ThreadPoolExecutor.java:886)
>>>>>>>>>       at
>>>>>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>>>>>> $Worker.run(ThreadPoolExecutor.java:908)
>>>>>>>>>       at java.lang.Thread.run(Thread.java:619)
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> =======================log end==========================
>>>>>>>>> --
>>>>>>>>> View this message in context:
>>>>>>>>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26260776.html
>>>>>>>>> Sent from the ServiceMix - User mailing list archive at
>>>>>>>>> Nabble.com.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> -----
>>>>>>>> ---
>>>>>>>> Gert Vanthienen
>>>>>>>> http://gertvanthienen.blogspot.com
>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> View this message in context:
>>>>>>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26297802.html
>>>>>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Freeman Fang
>>>>>> ------------------------
>>>>>> Open Source SOA: http://fusesource.com
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> View this message in context:
>>>>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26312831.html
>>>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>>>
>>>>
>>>>
>>>> --
>>>> Freeman Fang
>>>> ------------------------
>>>> Open Source SOA: http://fusesource.com
>>>>
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26314682.html
>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>> -----
>> ---
>> Gert Vanthienen
>> http://gertvanthienen.blogspot.com
>>
>
> --
> View this message in context: http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26333107.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>

Re: When external service is shut down, message don't rollback to jms queue.

Posted by "colin.chi" <ib...@hotmail.com>.
Hi Gert,

I am sorry, I don't know how to wirte MyConsumerMarshaler.

But, I have find a issue from the log, and check the source code of class
AbstractConsumerEndpoint.java.

In method processExchange, I add some logger.
==================================================
protected void processExchange(final MessageExchange exchange, final Session
session, final JmsContext context) throws Exception {
    	logger.debug("===================exchange instanceof InOnly : " +
(exchange instanceof InOnly));
        if (exchange instanceof InOnly) {
            // throw an exception when the exchange is transacted to ensure
correct rollback of the transaction
            if (exchange.isTransacted() &&
ExchangeStatus.ERROR.equals(exchange.getStatus())) {
                throw exchange.getError();
            }
            // ignore non-transacted and/or DONE exchanges
            return;
        }
        logger.debug("===================session == null : " + (session ==
null));
        // Create session if needed
        if (session == null) {
            template.execute(new SessionCallback() {
                public Object doInJms(Session session) throws JMSException {
                    try {
                        processExchange(exchange, session, context);
                    } catch (Exception e) {
                        throw new ListenerExecutionFailedException("Exchange
processing failed", e);
                    }
                    return null;
                }
            });
            return;
        }
        // Handle exchanges
        Message msg = null;
        Destination dest = null;
        logger.debug("===================exchange.getStatus() : " +
exchange.getStatus());
        if (exchange.getStatus() == ExchangeStatus.ACTIVE) {
            if (exchange.getFault() != null) {
                msg = marshaler.createFault(exchange, exchange.getFault(),
session, context);
                dest = getReplyDestination(exchange, exchange.getFault(),
session, context);
            } else if (exchange.getMessage("out") != null) {
                msg = marshaler.createOut(exchange,
exchange.getMessage("out"), session, context);
                dest = getReplyDestination(exchange,
exchange.getMessage("out"), session, context);
            }
            if (msg == null) {
                throw new IllegalStateException("Unable to send back answer
or fault");
            }
            setCorrelationId(context.getMessage(), msg);
            try {
                send(msg, session, dest);
                done(exchange);
            } catch (Exception e) {
                fail(exchange, e);
                throw e;
            }
        } else if (exchange.getStatus() == ExchangeStatus.ERROR) {
            Exception error = exchange.getError();
            if (error == null) {
                error = new JBIException("Exchange in ERROR state, but no
exception provided");
            }
            msg = marshaler.createError(exchange, error, session, context);
            dest = getReplyDestination(exchange, error, session, context);
            setCorrelationId(context.getMessage(), msg);
            send(msg, session, dest);
        } else if (exchange.getStatus() == ExchangeStatus.DONE) {
            msg = session.createMessage();
            msg.setBooleanProperty(AbstractJmsMarshaler.DONE_JMS_PROPERTY,
true);
            logger.debug("===================dest == null : " + (dest ==
null));
            send(msg, session, dest);
        } else {
            throw new IllegalStateException("Unrecognized exchange status");
        }
    }

protected void send(Message msg, Session session, Destination dest) throws
JMSException {
        MessageProducer producer;
        logger.debug("===================isJms102() : " + isJms102());
        if (isJms102()) {
            if (isPubSubDomain()) {
                producer = ((TopicSession) session).createPublisher((Topic)
dest);
            } else {
                producer = ((QueueSession) session).createSender((Queue)
dest);
            }
        } else {
            producer = session.createProducer(dest);
        }
        try {
            if (replyProperties != null) {
                for (Map.Entry<String, Object> e :
replyProperties.entrySet()) {
                    msg.setObjectProperty(e.getKey(), e.getValue());
                }
            }
            if (isJms102()) {
                if (isPubSubDomain()) {
                    if (replyExplicitQosEnabled) {
                        ((TopicPublisher) producer).publish(msg,
replyDeliveryMode, replyPriority, replyTimeToLive);
                    } else {
                        ((TopicPublisher) producer).publish(msg);
                    }
                } else {
                    if (replyExplicitQosEnabled) {
                        ((QueueSender) producer).send(msg,
replyDeliveryMode, replyPriority, replyTimeToLive);
                    } else {
                        ((QueueSender) producer).send(msg);
                    }
                }
            } else {
                if (replyExplicitQosEnabled) {
                    producer.send(msg, replyDeliveryMode, replyPriority,
replyTimeToLive);
                } else {
                	logger.debug("===================msg.getJMSDestination() :
" + msg.getJMSDestination().toString());
                	logger.debug("===================msg.toString() : " +
msg.toString());
                    producer.send(msg);
                }
            }
        } finally {
            JmsUtils.closeMessageProducer(producer);
        }
    }
=============================================================

Then I test it in "robust-in-only". result is :
=============================================================
2009-11-13 16:20:41,765 DEBUG - DeliveryChannelImpl            - Notified:
ID:10.80.12.85-124ec9e3f73-4:0(1f23ca4) in DeliveryChan
nel{servicemix-jms} from sendSync
2009-11-13 16:20:41,765 DEBUG - AbstractConsumerEndpoint       -
===================exchange instanceof InOnly : false
2009-11-13 16:20:41,765 DEBUG - AbstractConsumerEndpoint       -
===================session == null : false
2009-11-13 16:20:41,765 DEBUG - AbstractConsumerEndpoint       -
===================exchange.getStatus() : Done
2009-11-13 16:20:41,765 DEBUG - AbstractConsumerEndpoint       -
===================dest == null : true
2009-11-13 16:20:41,765 DEBUG - AbstractConsumerEndpoint       -
===================isJms102() : false
2009-11-13 16:20:41,765 DEBUG - ActiveMQSession                -
ID:8014ac188efd43a-3350-1258100239656-2:12:1 Transaction Rollback

2009-11-13 16:20:41,781 WARN  - DefaultMessageListenerContainer - Execution
of JMS message listener failed
javax.jms.JMSException: Error sending JBI exchange
        at
org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:587)
        at
org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint$1.onMessage(JmsConsumerEndpoint.java:505)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.jav
a:518)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:
479)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.ja
va:451)
        at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageList
enerContainer.java:323)
        at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListen
erContainer.java:241)
        at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMess
ageListenerContainer.java:982)
        at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(Default
MessageListenerContainer.java:974)
        at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListener
Container.java:876)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NullPointerException
        at
org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.send(AbstractConsumerEndpoint.java:536)
        at
org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.processExchange(AbstractConsumerEndpoint.java:494)
        at
org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:564)
        ... 10 more
2009-11-13 16:20:41,781 DEBUG - ActiveMQSession                -
ID:8014ac188efd43a-3350-1258100239656-2:32:1 Transaction Rollback
=============================================================

from this log result, you can find that when exchange is not in-only and
exchange.getStatus() is DONE, the variable of dest which is defined in
processExchange method is not initialized, it is null.
So, in next method send(...), when session.createProducer(dest), it throw a
NullPointerException.

Is it a bug?


Gert Vanthienen wrote:
> 
> Colin,
> 
> It looks like your service is return a fault when it's unavailable
> instead of the usual ERROR message exchange.  With the InOnly
> exchange, the fault is lost because it can not be conveyed.  That's
> why we suggested using another MEP, like RobustInOnly.
> 
> However, the default behavior of the jms:consumer endpoint is not to
> rollback on a fault message, but instead try to send it as a reply JMS
> message.  That's why you're now getting these exceptions, because the
> replyDestination has not been set.  Our marshaler currently doesn't
> support rolling back on a fault message.
> 
> Just to test this hypothesis, could you add your own Marshaler class
> to the JMS SU and configure a replyDestination to hold the DONE
> exchanges:
> public class MyConsumerMarshaler extends DefaultConsumerMarshaler {
> 
> public Message createFault(MessageExchange exchange, Fault fault,
> Session session, JmsContext context) throws Exception {
> //throw exception on a fault to force rollback
> throw new FaultException(fault);
> }
> }
> 
> If that fixes the issue, we should probably look into making this
> option available from the default consumer marshaler.
> 
> Regards,
> 
> Gert Vanthienen
> ------------------------
> Open Source SOA: http://fusesource.com
> Blog: http://gertvanthienen.blogspot.com/
> 
> 
> 
> 2009/11/12 colin.chi <ib...@hotmail.com>:
>>
>> Hi FF,
>>
>> I will repeat what scenario I tested.
>>
>> external client: I use examples\wsdl-first\client.html and change the
>> "Target" param and textarea content.
>> external service: I build a webservice by cxf framework. external service
>> wsdl is :
>>    <wsdl:operation name="createCustomer">
>>      <soap:operation soapAction="" style="document" />
>>      <wsdl:input name="createCustomer">
>>        <soap:body use="literal" />
>>      </wsdl:input>
>>    </wsdl:operation>
>>
>> jms consumer endpoint configration:
>>    <bean id="Marshaler"
>> class="org.apache.servicemix.jms.endpoints.DefaultConsumerMarshaler">
>>        <property name="mep"
>> value="http://www.w3.org/2004/08/wsdl/in-only"
>> />
>>    </bean>
>>
>>    <bean id="connectionFactory1"
>> class="org.apache.activemq.ActiveMQConnectionFactory">
>>        <property name="brokerURL" value="tcp://localhost:61616" />
>>        <property name="redeliveryPolicy" ref="redeliveryPolicy" />
>>    </bean>
>>
>>    <bean id="redeliveryPolicy"
>> class="org.apache.activemq.RedeliveryPolicy">
>>        <property name="initialRedeliveryDelay" value="10000"/>
>>        <property name="maximumRedeliveries" value="2"/>
>>    </bean>
>>
>> and in activemq.xml, I configrate a DLQ.queue/A.
>>
>> first scenario:
>>  <jms:consumer service="novaesb:jms"
>>                  endpoint="consumer"
>>                  targetService="geneva:CustomerInImplService"
>>                  targetEndpoint="CustomerInGenevaPortTypePort"
>>                  destinationName="queue/A"
>>                  connectionFactory="#connectionFactory1"
>>                  transacted="jms"
>>                  cacheLevel="2"
>>                  marshaler="#Marshaler" /><!-- in-only -->
>>
>> first result:
>>  when external service is running, external service receive message, and
>> test is ok.
>>  when external service is shutdown, there is an error, and message can
>> not
>> be rollback to jms consumer, and message lost.
>>   error log is :
>>     2009-11-12 14:50:09,359 ERROR - CxfBcComponent                 -
>> Error
>> processing exchange InOnly[
>>       ...
>>       status: Active
>>       role: provider
>>       service: {http://geneva.nova.com/customer}CustomerInImplService
>>       ...
>>     javax.jbi.messaging.MessagingException: Fault not supported
>>     ...
>>     2009-11-12 14:50:09,359 DEBUG - SedaQueue                      -
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@117d8d5 dequeued
>> exchange: InOnly[
>>       ...
>>       status: Error
>>       role: consumer
>>       service: {http://geneva.nova.com/customer}CustomerInImplService
>>       ...
>>       error: javax.jbi.messaging.MessagingException: Fault not supported
>>     ...
>>
>> second scenario:
>> I change bean "Marshaler" value to
>> "http://www.w3.org/2004/08/wsdl/robust-in-only".
>>  <jms:consumer service="novaesb:jms"
>>                  endpoint="consumer"
>>                  targetService="geneva:CustomerInImplService"
>>                  targetEndpoint="CustomerInGenevaPortTypePort"
>>                  destinationName="queue/A"
>>                  connectionFactory="#connectionFactory1"
>>                  transacted="jms"
>>                  cacheLevel="2"
>>                  marshaler="#Marshaler" /><!-- robust-in-only -->
>>
>> second result:
>>  when external service is running,
>>    external service receive message 2 times, external service receive
>> message time:
>>     1st receive time : Nov 12, 2009 2:58:31 PM
>> org.apache.cxf.interceptor.LoggingInInterceptor logging
>>     2nd receive time : Nov 12, 2009 2:58:32 PM
>> org.apache.cxf.interceptor.LoggingInInterceptor logging
>>
>>    message in ServiceMix rollback 2 times, then be sended to DLQ.queue/A.
>>     1st rollback time : 2009-11-12 14:59:14,671 DEBUG - ActiveMQSession
>> - ID:8014ac188efd43a-3319-1258009050796-2:12:1 Transaction Rollback
>>                         ...
>>                         2009-11-12 14:59:14,687 DEBUG - ActiveMQSession
>> - ID:8014ac188efd43a-3319-1258009050796-2:17:1 Transaction Rollback
>>                         ...
>>     2nd rollback time : 2009-11-12 14:59:15,140 DEBUG - ActiveMQSession
>> - ID:8014ac188efd43a-3319-1258009050796-2:18:1 Transaction Rollback
>>                         ...
>>                         2009-11-12 14:59:15,140 DEBUG - ActiveMQSession
>> - ID:8014ac188efd43a-3319-1258009050796-2:19:1 Transaction Rollback
>>                         ...
>>
>>  when external service is shutdown, message is rollbacked 2 times, then
>> be
>> sended to DLQ.queue/A.
>>   1st rollback time : 2009-11-12 15:12:33,453 DEBUG - ActiveMQSession
>> - ID:8014ac188efd43a-3319-1258009050796-2:20:1 Transaction Rollback
>>                       ...
>>                       2009-11-12 15:12:33,468 DEBUG - ActiveMQSession
>> - ID:8014ac188efd43a-3319-1258009050796-2:768:1 Transaction Rollback
>>                       ...
>>   2nd rollback time : 2009-11-12 15:12:33,625 DEBUG - ActiveMQSession
>> - ID:8014ac188efd43a-3319-1258009050796-2:769:1 Transaction Rollback
>>                       ...
>>                       2009-11-12 15:12:33,640 DEBUG - ActiveMQSession
>> - ID:8014ac188efd43a-3319-1258009050796-2:770:1 Transaction Rollback
>>                       ...
>>
>> In these two test scenario, why rollback Delay time is not 10000ms?
>> when external service is ok, why servicemix get that error and last send
>> message to dlq?
>>
>>
>> Freeman Fang wrote:
>>>
>>> Hi Colin,
>>>
>>> Did you ever test the scenario when external service is shutdown with
>>> current configuration? I don't think fault message can't  send back to
>>> jms consumer endpoint for your current configuration
>>>  From your first email, when external service is shutdown, you get
>>> exception like
>>>
>>> javax.jbi.messaging.MessagingException: Fault not supported
>>>         at
>>> org
>>> .apache
>>> .servicemix
>>> .jbi.messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java:
>>> 366)
>>>         at
>>> org
>>> .apache
>>> .servicemix
>>> .jbi.messaging.MessageExchangeImpl.setFault(MessageExchangeImpl.java:
>>> 290)
>>>         at
>>> org
>>> .apache.servicemix.cxfbc.CxfBcProvider.faultProcess(CxfBcProvider.java:
>>> 277)
>>>         at
>>> org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:
>>> 261)
>>>         at
>>> org
>>> .apache
>>> .servicemix
>>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>>         at
>>> org
>>> .apache
>>> .servicemix
>>> .common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
>>>         at
>>> org
>>> .apache
>>> .servicemix
>>> .common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:
>>> 535)
>>>         at
>>>
>>> That's caused by your MEP is InOnly, so you can't set Fault to the
>>> MessageExchange.  If you use RobustInOnly now, when external service
>>> is shutdown,  as same as you use InOnly, cxf bc provide can get a
>>> RuntimeException(thrown by underlying transport) and then set as
>>> faulut to MessageExchange(now it's ok as it's  no InOnly now), which
>>> can trigger rollback on jms consumer endpoint. Could you append the
>>> log when external service is shutdown?
>>>
>>>
>>> And I want to get more details about your workflow, as you mentioned,
>>> your flow looks like
>>> [external client]--->cxf-bc-consumer--->jms-provider--->jms queue
>>>
>>> jms queue--->jms-consumer--->cxf-bc-provider--->[external service]
>>>
>>> What the transport your external client and external service use? Http
>>> or JMS?
>>>
>>> Freeman
>>>
>>> On 2009-11-12, at 上午11:29, colin.chi wrote:
>>>
>>>>
>>>> Hi FF,
>>>>
>>>> Thanks for you reply.
>>>>
>>>> I have tested according to you suggestion, and the message is
>>>> rollbacked to
>>>> jms consumer, but this test scene is that external service is running
>>>> normal.
>>>>
>>>> The exception of rollback as follows:
>>>> ==========================================================
>>>> 2009-11-12 10:34:24,921 DEBUG - SedaQueue                      -
>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1425e17 deque
>>>> ued exchange: RobustInOnly[
>>>>  id: ID:10.80.12.85-124e63b1989-2:2
>>>>  status: Done
>>>>  role: consumer
>>>>  service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>  endpoint: CustomerInGenevaPortTypePort
>>>>  operation: {http://geneva.nova.com/customer}createCustomer
>>>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>> xmlns:msg="htt
>>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>> "
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>> e="createCustomer" type="msg:createCustomer"
>>>> version="1.0"><jbi:part><pns:createCustomer
>>>> xmlns:pns="http://geneva.nova.com/custome
>>>> r"><pns:value>5555</pns:value></pns:createCustomer></jbi:part></
>>>> jbi:message>
>>>> ]
>>>> 2009-11-12 10:34:24,953 DEBUG - DeliveryChannelImpl            -
>>>> Notifying
>>>> exchange ID:10.80.12.85-124e63b1989-2:2(1e67cdb) in Del
>>>> iveryChannel{servicemix-jms} from processInboundSynchronousExchange
>>>> 2009-11-12 10:34:24,953 DEBUG - DeliveryChannelImpl            -
>>>> Notified:
>>>> ID:10.80.12.85-124e63b1989-2:2(1e67cdb) in DeliveryChan
>>>> nel{servicemix-jms} from sendSync
>>>> 2009-11-12 10:34:24,968 DEBUG - DefaultMessageListenerContainer -
>>>> Initiating
>>>> transaction rollback on application exception
>>>> javax.jms.JMSException: Error sending JBI exchange
>>>>        at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .jms
>>>> .endpoints
>>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:575)
>>>>        at
>>>> org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint
>>>> $1.onMessage(JmsConsumerEndpoint.java:505)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractMessageListenerContainer
>>>> .doInvokeListener(AbstractMessageListenerContainer.jav
>>>> a:518)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractMessageListenerContainer
>>>> .invokeListener(AbstractMessageListenerContainer.java:
>>>> 479)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractMessageListenerContainer
>>>> .doExecuteListener(AbstractMessageListenerContainer.ja
>>>> va:451)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractPollingMessageListenerContainer
>>>> .doReceiveAndExecute(AbstractPollingMessageList
>>>> enerContainer.java:323)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractPollingMessageListenerContainer
>>>> .receiveAndExecute(AbstractPollingMessageListen
>>>> erContainer.java:241)
>>>>        at
>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>> $AsyncMessageListenerInvoker.invokeListener(DefaultMess
>>>> ageListenerContainer.java:982)
>>>>        at
>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>> $AsyncMessageListenerInvoker.executeOngoingLoop(Default
>>>> MessageListenerContainer.java:974)
>>>>        at
>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>> $AsyncMessageListenerInvoker.run(DefaultMessageListener
>>>> Container.java:876)
>>>>        at java.lang.Thread.run(Thread.java:619)
>>>> Caused by: java.lang.UnsupportedOperationException: A destination
>>>> must be
>>>> specified.
>>>>        at
>>>> org
>>>> .apache
>>>> .activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:
>>>> 195)
>>>>        at
>>>> org
>>>> .apache
>>>> .activemq
>>>> .ActiveMQMessageProducerSupport
>>>> .send(ActiveMQMessageProducerSupport.java:241)
>>>>        at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .jms
>>>> .endpoints
>>>> .AbstractConsumerEndpoint.send(AbstractConsumerEndpoint.java:526)
>>>>        at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .jms
>>>> .endpoints
>>>> .AbstractConsumerEndpoint
>>>> .processExchange(AbstractConsumerEndpoint.java:485)
>>>>        at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .jms
>>>> .endpoints
>>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:552)
>>>>        ... 10 more
>>>> 2009-11-12 10:34:25,031 DEBUG - ActiveMQSession                -
>>>> ID:8014ac188efd43a-3939-1257993081718-2:54:1 Transaction Rollback
>>>>
>>>> 2009-11-12 10:34:25,031 DEBUG - DefaultMessageListenerContainer -
>>>> Rolling
>>>> back transaction because of listener exception thrown: j
>>>> avax.jms.JMSException: Error sending JBI exchange
>>>> 2009-11-12 10:34:25,031 DEBUG - AMQMessageStore                -
>>>> Journalled
>>>> message add for: ID:8014ac188efd43a-3939-1257993081718
>>>> -2:10:1:1:1, at: offset = 1236, file = 1, size = 969, type = 1
>>>> 2009-11-12 10:34:25,031 WARN  - DefaultMessageListenerContainer -
>>>> Execution
>>>> of JMS message listener failed
>>>> javax.jms.JMSException: Error sending JBI exchange
>>>>        at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .jms
>>>> .endpoints
>>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:575)
>>>>        at
>>>> org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint
>>>> $1.onMessage(JmsConsumerEndpoint.java:505)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractMessageListenerContainer
>>>> .doInvokeListener(AbstractMessageListenerContainer.jav
>>>> a:518)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractMessageListenerContainer
>>>> .invokeListener(AbstractMessageListenerContainer.java:
>>>> 479)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractMessageListenerContainer
>>>> .doExecuteListener(AbstractMessageListenerContainer.ja
>>>> va:451)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractPollingMessageListenerContainer
>>>> .doReceiveAndExecute(AbstractPollingMessageList
>>>> enerContainer.java:323)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractPollingMessageListenerContainer
>>>> .receiveAndExecute(AbstractPollingMessageListen
>>>> erContainer.java:241)
>>>>        at
>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>> $AsyncMessageListenerInvoker.invokeListener(DefaultMess
>>>> ageListenerContainer.java:982)
>>>>        at
>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>> $AsyncMessageListenerInvoker.executeOngoingLoop(Default
>>>> MessageListenerContainer.java:974)
>>>>        at
>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>> $AsyncMessageListenerInvoker.run(DefaultMessageListener
>>>> Container.java:876)
>>>>        at java.lang.Thread.run(Thread.java:619)
>>>> Caused by: java.lang.UnsupportedOperationException: A destination
>>>> must be
>>>> specified.
>>>>        at
>>>> org
>>>> .apache
>>>> .activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:
>>>> 195)
>>>>        at
>>>> org
>>>> .apache
>>>> .activemq
>>>> .ActiveMQMessageProducerSupport
>>>> .send(ActiveMQMessageProducerSupport.java:241)
>>>>        at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .jms
>>>> .endpoints
>>>> .AbstractConsumerEndpoint.send(AbstractConsumerEndpoint.java:526)
>>>>        at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .jms
>>>> .endpoints
>>>> .AbstractConsumerEndpoint
>>>> .processExchange(AbstractConsumerEndpoint.java:485)
>>>>        at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .jms
>>>> .endpoints
>>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:552)
>>>>        ... 10 more
>>>> 2009-11-12 10:34:25,109 DEBUG - DefaultMessageListenerContainer -
>>>> Initiating
>>>> transaction rollback on listener exception
>>>> javax.jms.JMSException: Error sending JBI exchange
>>>>        at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .jms
>>>> .endpoints
>>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:575)
>>>>        at
>>>> org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint
>>>> $1.onMessage(JmsConsumerEndpoint.java:505)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractMessageListenerContainer
>>>> .doInvokeListener(AbstractMessageListenerContainer.jav
>>>> a:518)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractMessageListenerContainer
>>>> .invokeListener(AbstractMessageListenerContainer.java:
>>>> 479)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractMessageListenerContainer
>>>> .doExecuteListener(AbstractMessageListenerContainer.ja
>>>> va:451)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractPollingMessageListenerContainer
>>>> .doReceiveAndExecute(AbstractPollingMessageList
>>>> enerContainer.java:323)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractPollingMessageListenerContainer
>>>> .receiveAndExecute(AbstractPollingMessageListen
>>>> erContainer.java:241)
>>>>        at
>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>> $AsyncMessageListenerInvoker.invokeListener(DefaultMess
>>>> ageListenerContainer.java:982)
>>>>        at
>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>> $AsyncMessageListenerInvoker.executeOngoingLoop(Default
>>>> MessageListenerContainer.java:974)
>>>>        at
>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>> $AsyncMessageListenerInvoker.run(DefaultMessageListener
>>>> Container.java:876)
>>>>        at java.lang.Thread.run(Thread.java:619)
>>>> Caused by: java.lang.UnsupportedOperationException: A destination
>>>> must be
>>>> specified.
>>>>        at
>>>> org
>>>> .apache
>>>> .activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:
>>>> 195)
>>>>        at
>>>> org
>>>> .apache
>>>> .activemq
>>>> .ActiveMQMessageProducerSupport
>>>> .send(ActiveMQMessageProducerSupport.java:241)
>>>>        at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .jms
>>>> .endpoints
>>>> .AbstractConsumerEndpoint.send(AbstractConsumerEndpoint.java:526)
>>>>        at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .jms
>>>> .endpoints
>>>> .AbstractConsumerEndpoint
>>>> .processExchange(AbstractConsumerEndpoint.java:485)
>>>>        at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .jms
>>>> .endpoints
>>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:552)
>>>>        ... 10 more
>>>> 2009-11-12 10:34:25,171 DEBUG - JmsTransactionManager          -
>>>> Initiating
>>>> transaction rollback
>>>> 2009-11-12 10:34:25,171 DEBUG - JmsTransactionManager          -
>>>> Rolling
>>>> back JMS transaction on Session [ActiveMQSession {id=ID:8
>>>> 014ac188efd43a-3939-1257993081718-2:55:1,started=false}]
>>>> 2009-11-12 10:34:25,171 DEBUG - ActiveMQSession                -
>>>> ID:8014ac188efd43a-3939-1257993081718-2:55:1 Transaction Rollback
>>>> =====================================================
>>>>
>>>>
>>>> Freeman Fang wrote:
>>>>>
>>>>> Hi Colin,
>>>>>
>>>>> I think the problem actually come from the MEP (message exchange
>>>>> pattern) of your MessageChange is InOnly, so the fault message can't
>>>>> go back to JmsConsumer endpoint, which means the JmsConsumer endpoint
>>>>> have no chance to do the rollback.
>>>>>
>>>>>
>>>>> Freeman
>>>>>
>>>>> On 2009-11-11, at 下午4:41, colin.chi wrote:
>>>>>
>>>>>>
>>>>>> Hi Gert,
>>>>>>
>>>>>> Thanks for you reply.
>>>>>>
>>>>>> And I see some logs as following:
>>>>>>
>>>>>> 2009-11-09 11:19:28,171 DEBUG - SedaQueue                      -
>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@89e163 dequeu
>>>>>> ed exchange: InOnly[
>>>>>> id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>> status: Done
>>>>>> role: consumer
>>>>>> service: {http://www.hcsys.com/novaesb/}jms
>>>>>> endpoint: provider
>>>>>> operation: {http://www.hcsys.com/novaesb/}createCustomer
>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>> xmlns:msg="htt
>>>>>> p://www.hcsys.com/novaesb/"
>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>> "
>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>> r">
>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>> ]
>>>>>>
>>>>>> This means the message is received and processed(send to cxf-
>>>>>> provider
>>>>>> endpoint) successfully by jms consumer endpoint.
>>>>>>
>>>>>> so when cxf-provider endpoint catch an exception or an error, the
>>>>>> message
>>>>>> can't be  rollbacked to jms queue where jms consumer endpoint
>>>>>> listen.
>>>>>>
>>>>>> I think this case can not be achieved in ServiceMix.
>>>>>>
>>>>>> If I am wrong, can you tell me how can I finish this case?
>>>>>>
>>>>>> thanks and regards.
>>>>>>
>>>>>>
>>>>>> Gert Vanthienen wrote:
>>>>>>>
>>>>>>> L.S.,
>>>>>>>
>>>>>>> One option would be to enable transactions on the jms consumer
>>>>>>> endpoint (transacted="jms").  Another option would be to get the
>>>>>>> JMS
>>>>>>> client to acknowledge the message, like this:
>>>>>>>
>>>>>>>   <jms:consumer ....
>>>>>>>                 sessionAcknowledgeMode="#AcknowledgeMode"/>
>>>>>>>
>>>>>>>    <util:constant id="AcknowledgeMode"
>>>>>>> static-field="javax.jms.Session.CLIENT_ACKNOWLEDGE"/>
>>>>>>>
>>>>>>> Regards,
>>>>>>>
>>>>>>> Gert Vanthienen
>>>>>>> ------------------------
>>>>>>> Open Source SOA: http://fusesource.com
>>>>>>> Blog: http://gertvanthienen.blogspot.com/
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 2009/11/9 colin.chi <ib...@hotmail.com>:
>>>>>>>>
>>>>>>>> work flow as follow:
>>>>>>>>
>>>>>>>> [external client]--->cxf-bc-consumer--->jms-provider--->jms queue
>>>>>>>>
>>>>>>>> jms queue--->jms-consumer--->cxf-bc-provider--->[external service]
>>>>>>>>
>>>>>>>> when external service is shut down, message don't rollback to jms
>>>>>>>> queue
>>>>>>>> and
>>>>>>>> throw exception.
>>>>>>>>
>>>>>>>> how to config jms consumer and cxf bc provider to do this case?
>>>>>>>>
>>>>>>>> =======================log begin==========================
>>>>>>>>
>>>>>>>> 2009-11-09 11:19:28,046 DEBUG - JettyHTTPDestination           -
>>>>>>>> Service
>>>>>>>> http request on thread: Thread[22434271@qtp0-0,5,RMI Runt
>>>>>>>> ime]
>>>>>>>> 2009-11-09 11:19:28,046 DEBUG - AbstractHTTPDestination        -
>>>>>>>> Request
>>>>>>>> Headers: {connection=[Keep-Alive], Host=[localhost:8080],
>>>>>>>> Content-Length=[364], User-Agent=[Mozilla/4.0 (compatible; MSIE
>>>>>>>> 7.0;
>>>>>>>> Windows NT 5.1; Trident/4.0; GOSURF)], accept-encoding=[gzip
>>>>>>>> , deflate], Accept=[*/*], Cache-Control=[no-cache]}
>>>>>>>> 2009-11-09 11:19:28,046 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Chain
>>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain@735ad7 was creat
>>>>>>>> ed. Current flow:
>>>>>>>> receive [AttachmentInInterceptor]
>>>>>>>> post-stream [StaxInInterceptor]
>>>>>>>> read [ReadHeadersInterceptor]
>>>>>>>> pre-protocol [, MustUnderstandInterceptor, JbiJAASInterceptor]
>>>>>>>> unmarshal [JbiOperationInterceptor]
>>>>>>>> pre-invoke [JbiInWsdl1Interceptor, JbiInInterceptor]
>>>>>>>> invoke [JbiInvokerInterceptor]
>>>>>>>> post-invoke [JbiPostInvokerInterceptor, OutgoingChainInterceptor]
>>>>>>>>
>>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>>>> AttachmentInInterceptor@14d8c8
>>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>>>> StaxInInterceptor@a4480d
>>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>>> .interceptor.ReadHeadersInterceptor@1766d9c
>>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>> .CxfBcConsumer$1@1b7715d
>>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>>> .interceptor.MustUnderstandInterceptor@73a403
>>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>> .interceptors.JbiJAASInterceptor@ca7c93
>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>> .interceptors.JbiOperationInterceptor@1626bf
>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>> .interceptors.JbiInWsdl1Interceptor@49e885
>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>> .interceptors.JbiInInterceptor@407909
>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>> .CxfBcConsumer$JbiInvokerInterceptor@1b8a6af
>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - CxfBcComponent                 -
>>>>>>>> Created
>>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - DeliveryChannelImpl            -
>>>>>>>> Send
>>>>>>>> ID:10.80.12.85-124d6ebc094-2:10 in DeliveryChannel{servicemi
>>>>>>>> x-cxf-bc}
>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -
>>>>>>>> send
>>>>>>>> exchange with secure broker
>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -
>>>>>>>> service
>>>>>>>> name :{http://www.hcsys.com/novaesb/}jms
>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -
>>>>>>>> operation
>>>>>>>> name :{http://www.hcsys.com/novaesb/}createCustomer
>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - SedaFlow                       -
>>>>>>>> Called
>>>>>>>> Flow
>>>>>>>> send
>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>> .CxfBcConsumer$JbiPostInvokerInterceptor@1c76cab
>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>>>> OutgoingChainInterceptor@1af691b
>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - JettyHTTPDestination           -
>>>>>>>> Finished
>>>>>>>> servicing http request on thread: Thread[22434271@qtp0-0
>>>>>>>> ,5,RMI Runtime]
>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - SedaQueue                      -
>>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@45ac89 dequeu
>>>>>>>> ed exchange: InOnly[
>>>>>>>> id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>>>> status: Active
>>>>>>>> role: provider
>>>>>>>> service: {http://www.hcsys.com/novaesb/}jms
>>>>>>>> endpoint: provider
>>>>>>>> operation: {http://www.hcsys.com/novaesb/}createCustomer
>>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>>> xmlns:msg="htt
>>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>>> "
>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>>> r">
>>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>>> ]
>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - JmsComponent                   -
>>>>>>>> Received
>>>>>>>> exchange: status: Active, role: provider
>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - JmsComponent                   -
>>>>>>>> Retrieved
>>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - DeliveryChannelImpl            -
>>>>>>>> Send
>>>>>>>> ID:10.80.12.85-124d6ebc094-2:10 in DeliveryChannel{servicemi
>>>>>>>> x-jms}
>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - SecuredBroker                  -
>>>>>>>> send
>>>>>>>> exchange with secure broker
>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - SedaFlow                       -
>>>>>>>> Called
>>>>>>>> Flow
>>>>>>>> send
>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - MultiplexingConsumerProcessor  -
>>>>>>>> Received
>>>>>>>> jms message ActiveMQTextMessage {commandId = 17, respons
>>>>>>>> eRequired = true, messageId =
>>>>>>>> ID:8014ac188efd43a-4422-1257736227984-2:10:1:1:11,
>>>>>>>> originalDestination =
>>>>>>>> null, originalTransactionId
>>>>>>>> = null, producerId = ID:
>>>>>>>> 8014ac188efd43a-4422-1257736227984-2:10:1:1,
>>>>>>>> destination = queue://queue/A, transactionId = null, expirat
>>>>>>>> ion = 0, timestamp = 1257736768156, arrival = 0, brokerInTime =
>>>>>>>> 1257736768156, brokerOutTime = 1257736768156, correlationId = null
>>>>>>>> , replyTo = null, persistent = true, type = null, priority = 4,
>>>>>>>> groupID =
>>>>>>>> null, groupSequence = 0, targetConsumerId = null, compre
>>>>>>>> ssed = false, userID = null, content = null,
>>>>>>>> marshalledProperties =
>>>>>>>> org.apache.activemq.util.ByteSequence@1713c03, dataStructure =
>>>>>>>> null, redeliveryCounter = 0, size = 0, properties =
>>>>>>>> {MimeContentType=text/xml;charset=UTF-8,
>>>>>>>> SoapAction=/{http://www.hcsys.com/no
>>>>>>>> vaesb/}createCustomer,
>>>>>>>> SOAPJMS_soapAction=/{http://www.hcsys.com/
>>>>>>>> novaesb/}createCustomer},
>>>>>>>> readOnlyProperties = true, readOnlyBody
>>>>>>>> = true, droppable = false, text = <?xml version='1.0'
>>>>>>>> encoding='UTF-8'?><jbi:me...jbi:message>}
>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - MultiplexingConsumerProcessor  -
>>>>>>>> Handling
>>>>>>>> jms message ActiveMQTextMessage {commandId = 17, respons
>>>>>>>> eRequired = true, messageId =
>>>>>>>> ID:8014ac188efd43a-4422-1257736227984-2:10:1:1:11,
>>>>>>>> originalDestination =
>>>>>>>> null, originalTransactionId
>>>>>>>> = null, producerId = ID:
>>>>>>>> 8014ac188efd43a-4422-1257736227984-2:10:1:1,
>>>>>>>> destination = queue://queue/A, transactionId = null, expirat
>>>>>>>> ion = 0, timestamp = 1257736768156, arrival = 0, brokerInTime =
>>>>>>>> 1257736768156, brokerOutTime = 1257736768156, correlationId = null
>>>>>>>> , replyTo = null, persistent = true, type = null, priority = 4,
>>>>>>>> groupID =
>>>>>>>> null, groupSequence = 0, targetConsumerId = null, compre
>>>>>>>> ssed = false, userID = null, content = null,
>>>>>>>> marshalledProperties =
>>>>>>>> org.apache.activemq.util.ByteSequence@1713c03, dataStructure =
>>>>>>>> null, redeliveryCounter = 0, size = 0, properties =
>>>>>>>> {MimeContentType=text/xml;charset=UTF-8,
>>>>>>>> SoapAction=/{http://www.hcsys.com/no
>>>>>>>> vaesb/}createCustomer,
>>>>>>>> SOAPJMS_soapAction=/{http://www.hcsys.com/
>>>>>>>> novaesb/}createCustomer},
>>>>>>>> readOnlyProperties = true, readOnlyBody
>>>>>>>> = true, droppable = false, text = <?xml version='1.0'
>>>>>>>> encoding='UTF-8'?><jbi:me...jbi:message>}
>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - SedaQueue                      -
>>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@89e163 dequeu
>>>>>>>> ed exchange: InOnly[
>>>>>>>> id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>>>> status: Done
>>>>>>>> role: consumer
>>>>>>>> service: {http://www.hcsys.com/novaesb/}jms
>>>>>>>> endpoint: provider
>>>>>>>> operation: {http://www.hcsys.com/novaesb/}createCustomer
>>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>>> xmlns:msg="htt
>>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>>> "
>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>>> r">
>>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>>> ]
>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - JmsComponent                   -
>>>>>>>> Created
>>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - CxfBcComponent                 -
>>>>>>>> Received
>>>>>>>> exchange: status: Done, role: consumer
>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - DeliveryChannelImpl            -
>>>>>>>> Send
>>>>>>>> ID:10.80.12.85-124d6ebc094-4:10 in DeliveryChannel{servicemi
>>>>>>>> x-jms}
>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - CxfBcComponent                 -
>>>>>>>> Retrieved
>>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -
>>>>>>>> send
>>>>>>>> exchange with secure broker
>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -
>>>>>>>> service
>>>>>>>> name :{http://geneva.nova.com/customer}CustomerInImplServ
>>>>>>>> ice
>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -
>>>>>>>> operation
>>>>>>>> name :{http://geneva.nova.com/customer}createCustomer
>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - SedaFlow                       -
>>>>>>>> Called
>>>>>>>> Flow
>>>>>>>> send
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - SedaQueue                      -
>>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@4437d3 dequeu
>>>>>>>> ed exchange: InOnly[
>>>>>>>> id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>>> status: Active
>>>>>>>> role: provider
>>>>>>>> service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>>>>> endpoint: CustomerInGenevaPortTypePort
>>>>>>>> operation: {http://geneva.nova.com/customer}createCustomer
>>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>>> xmlns:msg="htt
>>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>>> "
>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>>> r">
>>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>>> ]
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - CxfBcComponent                 -
>>>>>>>> Received
>>>>>>>> exchange: status: Active, role: provider
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - CxfBcComponent                 -
>>>>>>>> Retrieved
>>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Adding
>>>>>>>> interceptor org.apache.servicemix.cxfbc.interceptors.JbiOu
>>>>>>>> tInterceptor@dd6a50 to phase pre-stream
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Adding
>>>>>>>> interceptor org.apache.servicemix.cxfbc.interceptors.JbiOu
>>>>>>>> tWsdl1Interceptor@6ed9d1 to phase marshal
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Adding
>>>>>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapPr
>>>>>>>> eProtocolOutInterceptor@19e4f8b to phase post-logical
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Adding
>>>>>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapOu
>>>>>>>> tInterceptor@782f81 to phase write
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Adding
>>>>>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapAc
>>>>>>>> tionOutInterceptor@76df38 to phase post-logical
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Adding
>>>>>>>> interceptor org.apache.cxf.interceptor.StaxOutInterceptor@
>>>>>>>> 38df00 to phase pre-stream
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Chain
>>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was crea
>>>>>>>> ted. Current flow:
>>>>>>>> post-logical [SoapPreProtocolOutInterceptor,
>>>>>>>> SoapActionOutInterceptor]
>>>>>>>> pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>>>>>> write [SoapOutInterceptor]
>>>>>>>> marshal [JbiOutWsdl1Interceptor]
>>>>>>>>
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>>> .interceptor.SoapPreProtocolOutInterceptor@19e4f8b
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>>> .interceptor.SoapActionOutInterceptor@76df38
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>> .interceptors.JbiOutInterceptor@dd6a50
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>>>> StaxOutInterceptor@38df00
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Adding
>>>>>>>> interceptor org.apache.cxf.interceptor.StaxOutInterceptor$
>>>>>>>> StaxOutEndingInterceptor@1073a2e to phase pre-stream-ending
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Chain
>>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was modi
>>>>>>>> fied. Current flow:
>>>>>>>> post-logical [SoapPreProtocolOutInterceptor,
>>>>>>>> SoapActionOutInterceptor]
>>>>>>>> pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>>>>>> write [SoapOutInterceptor]
>>>>>>>> marshal [JbiOutWsdl1Interceptor]
>>>>>>>> pre-stream-ending [StaxOutEndingInterceptor]
>>>>>>>>
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>>> .interceptor.SoapOutInterceptor@782f81
>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Adding
>>>>>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapOu
>>>>>>>> tInterceptor$SoapOutEndingInterceptor@17cb4ff to phase write-
>>>>>>>> ending
>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Chain
>>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was modi
>>>>>>>> fied. Current flow:
>>>>>>>> post-logical [SoapPreProtocolOutInterceptor,
>>>>>>>> SoapActionOutInterceptor]
>>>>>>>> pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>>>>>> write [SoapOutInterceptor]
>>>>>>>> marshal [JbiOutWsdl1Interceptor]
>>>>>>>> write-ending [SoapOutEndingInterceptor]
>>>>>>>> pre-stream-ending [StaxOutEndingInterceptor]
>>>>>>>>
>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>> .interceptors.JbiOutWsdl1Interceptor@6ed9d1
>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>>> .interceptor.SoapOutInterceptor$SoapOutEndingInterceptor@17cb4ff
>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>>>> StaxOutInterceptor$StaxOutEndingInterceptor@1073a2e
>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>>>>>> Sending
>>>>>>>> POST Message with Headers to http://10.80.12.100:8080/Gen
>>>>>>>> evaESB/services/CustomerAccount Conduit
>>>>>>>> :{http://geneva.nova.com/
>>>>>>>> customer}CustomerInGenevaPortTypePort.http-conduit
>>>>>>>> Content-Type: text/xml; charset=UTF-8
>>>>>>>>
>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>>>>>> SOAPAction:
>>>>>>>> ""
>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>>>>>> Accept:
>>>>>>>> *
>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>>>>>> No Trust
>>>>>>>> Decider for Conduit '{http://geneva.nova.com/customer}Cu
>>>>>>>> stomerInGenevaPortTypePort.http-conduit'. An afirmative Trust
>>>>>>>> Decision is
>>>>>>>> assumed.
>>>>>>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    -
>>>>>>>> Response
>>>>>>>> Code: 404 Conduit: {http://geneva.nova.com/customer}Cust
>>>>>>>> omerInGenevaPortTypePort.http-conduit
>>>>>>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    -
>>>>>>>> Content
>>>>>>>> length: 952
>>>>>>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    -
>>>>>>>> Header
>>>>>>>> fields:
>>>>>>>>   null: [HTTP/1.1 404 Not Found]
>>>>>>>>   Date: [Mon, 09 Nov 2009 03:19:04 GMT]
>>>>>>>>   Content-Length: [952]
>>>>>>>>   Content-Type: [text/html;charset=utf-8]
>>>>>>>>   Server: [Apache-Coyote/1.1]
>>>>>>>>
>>>>>>>> 2009-11-09 11:19:28,265 ERROR - CxfBcComponent                 -
>>>>>>>> Error
>>>>>>>> processing exchange InOnly[
>>>>>>>> id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>>> status: Active
>>>>>>>> role: provider
>>>>>>>> service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>>>>> endpoint: CustomerInGenevaPortTypePort
>>>>>>>> operation: {http://geneva.nova.com/customer}createCustomer
>>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>>> xmlns:msg="htt
>>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>>> "
>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>>> r">
>>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>>> ]
>>>>>>>> javax.jbi.messaging.MessagingException: Fault not supported
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix
>>>>>>>> .jbi
>>>>>>>> .messaging
>>>>>>>> .MessageExchangeImpl.setMessage(MessageExchangeImpl.java:
>>>>>>>> 366)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix
>>>>>>>> .jbi
>>>>>>>> .messaging.MessageExchangeImpl.setFault(MessageExchangeImpl.java:
>>>>>>>> 290)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix.cxfbc.CxfBcProvider.faultProcess(CxfBcProvider.java:
>>>>>>>> 277)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:
>>>>>>>> 261)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix
>>>>>>>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix
>>>>>>>> .common
>>>>>>>> .AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:
>>>>>>>> 581)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix
>>>>>>>> .common
>>>>>>>> .AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix
>>>>>>>> .common
>>>>>>>> .SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:
>>>>>>>> 60)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix
>>>>>>>> .jbi
>>>>>>>> .messaging
>>>>>>>> .DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:
>>>>>>>> 172)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:
>>>>>>>> 168)
>>>>>>>>       at
>>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue
>>>>>>>> $1.run(SedaQueue.java:134)
>>>>>>>>       at
>>>>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>>>>> $Worker.runTask(ThreadPoolExecutor.java:886)
>>>>>>>>       at
>>>>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>>>>> $Worker.run(ThreadPoolExecutor.java:908)
>>>>>>>>       at java.lang.Thread.run(Thread.java:619)
>>>>>>>> 2009-11-09 11:19:28,296 DEBUG - DeliveryChannelImpl            -
>>>>>>>> Send
>>>>>>>> ID:10.80.12.85-124d6ebc094-4:10 in DeliveryChannel{servicemi
>>>>>>>> x-cxf-bc}
>>>>>>>> 2009-11-09 11:19:28,296 DEBUG - SecuredBroker                  -
>>>>>>>> send
>>>>>>>> exchange with secure broker
>>>>>>>> 2009-11-09 11:19:28,296 DEBUG - SedaFlow                       -
>>>>>>>> Called
>>>>>>>> Flow
>>>>>>>> send
>>>>>>>> 2009-11-09 11:19:28,296 DEBUG - SedaQueue                      -
>>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@247262 dequeu
>>>>>>>> ed exchange: InOnly[
>>>>>>>> id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>>> status: Error
>>>>>>>> role: consumer
>>>>>>>> service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>>>>> endpoint: CustomerInGenevaPortTypePort
>>>>>>>> operation: {http://geneva.nova.com/customer}createCustomer
>>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>>> xmlns:msg="htt
>>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>>> "
>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>>> r">
>>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>>> error: javax.jbi.messaging.MessagingException: Fault not supported
>>>>>>>> ]
>>>>>>>> 2009-11-09 11:19:28,296 DEBUG - JmsComponent                   -
>>>>>>>> Received
>>>>>>>> exchange: status: Error, role: consumer
>>>>>>>> 2009-11-09 11:19:28,296 DEBUG - JmsComponent                   -
>>>>>>>> Retrieved
>>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>>> 2009-11-09 11:19:28,328 ERROR - JmsComponent                   -
>>>>>>>> Error
>>>>>>>> processing exchange InOnly[
>>>>>>>> id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>>> status: Error
>>>>>>>> role: consumer
>>>>>>>> service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>>>>> endpoint: CustomerInGenevaPortTypePort
>>>>>>>> operation: {http://geneva.nova.com/customer}createCustomer
>>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>>> xmlns:msg="htt
>>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>>> "
>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>>> r">
>>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>>> error: javax.jbi.messaging.MessagingException: Fault not supported
>>>>>>>> ]
>>>>>>>> java.lang.UnsupportedOperationException: A destination must be
>>>>>>>> specified.
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .activemq
>>>>>>>> .ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:195)
>>>>>>>>       at
>>>>>>>> org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:
>>>>>>>> 74)
>>>>>>>>       at
>>>>>>>> org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:
>>>>>>>> 59)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix
>>>>>>>> .jms
>>>>>>>> .multiplexing
>>>>>>>> .MultiplexingConsumerProcessor
>>>>>>>> .process(MultiplexingConsumerProcessor.java:126)
>>>>>>>>       at
>>>>>>>> org.apache.servicemix.soap.SoapEndpoint.process(SoapEndpoint.java:
>>>>>>>> 368)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix
>>>>>>>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix
>>>>>>>> .common
>>>>>>>> .AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:
>>>>>>>> 598)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix
>>>>>>>> .common
>>>>>>>> .AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix
>>>>>>>> .common
>>>>>>>> .SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:
>>>>>>>> 60)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix
>>>>>>>> .jbi
>>>>>>>> .messaging
>>>>>>>> .DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:
>>>>>>>> 172)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:
>>>>>>>> 168)
>>>>>>>>       at
>>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue
>>>>>>>> $1.run(SedaQueue.java:134)
>>>>>>>>       at
>>>>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>>>>> $Worker.runTask(ThreadPoolExecutor.java:886)
>>>>>>>>       at
>>>>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>>>>> $Worker.run(ThreadPoolExecutor.java:908)
>>>>>>>>       at java.lang.Thread.run(Thread.java:619)
>>>>>>>>
>>>>>>>>
>>>>>>>> =======================log end==========================
>>>>>>>> --
>>>>>>>> View this message in context:
>>>>>>>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26260776.html
>>>>>>>> Sent from the ServiceMix - User mailing list archive at
>>>>>>>> Nabble.com.
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> -----
>>>>>>> ---
>>>>>>> Gert Vanthienen
>>>>>>> http://gertvanthienen.blogspot.com
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> View this message in context:
>>>>>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26297802.html
>>>>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Freeman Fang
>>>>> ------------------------
>>>>> Open Source SOA: http://fusesource.com
>>>>>
>>>>>
>>>>>
>>>>
>>>> --
>>>> View this message in context:
>>>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26312831.html
>>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>>
>>>
>>>
>>> --
>>> Freeman Fang
>>> ------------------------
>>> Open Source SOA: http://fusesource.com
>>>
>>>
>>>
>>
>> --
>> View this message in context:
>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26314682.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>>
> 
> 
> -----
> ---
> Gert Vanthienen
> http://gertvanthienen.blogspot.com
> 

-- 
View this message in context: http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26333107.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: When external service is shut down, message don't rollback to jms queue.

Posted by "colin.chi" <ib...@hotmail.com>.
Hi Gert,

OK, I will test that configration scenario which you suggest.

thanks very much.


Gert Vanthienen wrote:
> 
> Colin,
> 
> It looks like your service is return a fault when it's unavailable
> instead of the usual ERROR message exchange.  With the InOnly
> exchange, the fault is lost because it can not be conveyed.  That's
> why we suggested using another MEP, like RobustInOnly.
> 
> However, the default behavior of the jms:consumer endpoint is not to
> rollback on a fault message, but instead try to send it as a reply JMS
> message.  That's why you're now getting these exceptions, because the
> replyDestination has not been set.  Our marshaler currently doesn't
> support rolling back on a fault message.
> 
> Just to test this hypothesis, could you add your own Marshaler class
> to the JMS SU and configure a replyDestination to hold the DONE
> exchanges:
> public class MyConsumerMarshaler extends DefaultConsumerMarshaler {
> 
> public Message createFault(MessageExchange exchange, Fault fault,
> Session session, JmsContext context) throws Exception {
> //throw exception on a fault to force rollback
> throw new FaultException(fault);
> }
> }
> 
> If that fixes the issue, we should probably look into making this
> option available from the default consumer marshaler.
> 
> Regards,
> 
> Gert Vanthienen
> ------------------------
> Open Source SOA: http://fusesource.com
> Blog: http://gertvanthienen.blogspot.com/
> 
> 
> 
> 2009/11/12 colin.chi <ib...@hotmail.com>:
>>
>> Hi FF,
>>
>> I will repeat what scenario I tested.
>>
>> external client: I use examples\wsdl-first\client.html and change the
>> "Target" param and textarea content.
>> external service: I build a webservice by cxf framework. external service
>> wsdl is :
>>    <wsdl:operation name="createCustomer">
>>      <soap:operation soapAction="" style="document" />
>>      <wsdl:input name="createCustomer">
>>        <soap:body use="literal" />
>>      </wsdl:input>
>>    </wsdl:operation>
>>
>> jms consumer endpoint configration:
>>    <bean id="Marshaler"
>> class="org.apache.servicemix.jms.endpoints.DefaultConsumerMarshaler">
>>        <property name="mep"
>> value="http://www.w3.org/2004/08/wsdl/in-only"
>> />
>>    </bean>
>>
>>    <bean id="connectionFactory1"
>> class="org.apache.activemq.ActiveMQConnectionFactory">
>>        <property name="brokerURL" value="tcp://localhost:61616" />
>>        <property name="redeliveryPolicy" ref="redeliveryPolicy" />
>>    </bean>
>>
>>    <bean id="redeliveryPolicy"
>> class="org.apache.activemq.RedeliveryPolicy">
>>        <property name="initialRedeliveryDelay" value="10000"/>
>>        <property name="maximumRedeliveries" value="2"/>
>>    </bean>
>>
>> and in activemq.xml, I configrate a DLQ.queue/A.
>>
>> first scenario:
>>  <jms:consumer service="novaesb:jms"
>>                  endpoint="consumer"
>>                  targetService="geneva:CustomerInImplService"
>>                  targetEndpoint="CustomerInGenevaPortTypePort"
>>                  destinationName="queue/A"
>>                  connectionFactory="#connectionFactory1"
>>                  transacted="jms"
>>                  cacheLevel="2"
>>                  marshaler="#Marshaler" /><!-- in-only -->
>>
>> first result:
>>  when external service is running, external service receive message, and
>> test is ok.
>>  when external service is shutdown, there is an error, and message can
>> not
>> be rollback to jms consumer, and message lost.
>>   error log is :
>>     2009-11-12 14:50:09,359 ERROR - CxfBcComponent                 -
>> Error
>> processing exchange InOnly[
>>       ...
>>       status: Active
>>       role: provider
>>       service: {http://geneva.nova.com/customer}CustomerInImplService
>>       ...
>>     javax.jbi.messaging.MessagingException: Fault not supported
>>     ...
>>     2009-11-12 14:50:09,359 DEBUG - SedaQueue                      -
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@117d8d5 dequeued
>> exchange: InOnly[
>>       ...
>>       status: Error
>>       role: consumer
>>       service: {http://geneva.nova.com/customer}CustomerInImplService
>>       ...
>>       error: javax.jbi.messaging.MessagingException: Fault not supported
>>     ...
>>
>> second scenario:
>> I change bean "Marshaler" value to
>> "http://www.w3.org/2004/08/wsdl/robust-in-only".
>>  <jms:consumer service="novaesb:jms"
>>                  endpoint="consumer"
>>                  targetService="geneva:CustomerInImplService"
>>                  targetEndpoint="CustomerInGenevaPortTypePort"
>>                  destinationName="queue/A"
>>                  connectionFactory="#connectionFactory1"
>>                  transacted="jms"
>>                  cacheLevel="2"
>>                  marshaler="#Marshaler" /><!-- robust-in-only -->
>>
>> second result:
>>  when external service is running,
>>    external service receive message 2 times, external service receive
>> message time:
>>     1st receive time : Nov 12, 2009 2:58:31 PM
>> org.apache.cxf.interceptor.LoggingInInterceptor logging
>>     2nd receive time : Nov 12, 2009 2:58:32 PM
>> org.apache.cxf.interceptor.LoggingInInterceptor logging
>>
>>    message in ServiceMix rollback 2 times, then be sended to DLQ.queue/A.
>>     1st rollback time : 2009-11-12 14:59:14,671 DEBUG - ActiveMQSession
>> - ID:8014ac188efd43a-3319-1258009050796-2:12:1 Transaction Rollback
>>                         ...
>>                         2009-11-12 14:59:14,687 DEBUG - ActiveMQSession
>> - ID:8014ac188efd43a-3319-1258009050796-2:17:1 Transaction Rollback
>>                         ...
>>     2nd rollback time : 2009-11-12 14:59:15,140 DEBUG - ActiveMQSession
>> - ID:8014ac188efd43a-3319-1258009050796-2:18:1 Transaction Rollback
>>                         ...
>>                         2009-11-12 14:59:15,140 DEBUG - ActiveMQSession
>> - ID:8014ac188efd43a-3319-1258009050796-2:19:1 Transaction Rollback
>>                         ...
>>
>>  when external service is shutdown, message is rollbacked 2 times, then
>> be
>> sended to DLQ.queue/A.
>>   1st rollback time : 2009-11-12 15:12:33,453 DEBUG - ActiveMQSession
>> - ID:8014ac188efd43a-3319-1258009050796-2:20:1 Transaction Rollback
>>                       ...
>>                       2009-11-12 15:12:33,468 DEBUG - ActiveMQSession
>> - ID:8014ac188efd43a-3319-1258009050796-2:768:1 Transaction Rollback
>>                       ...
>>   2nd rollback time : 2009-11-12 15:12:33,625 DEBUG - ActiveMQSession
>> - ID:8014ac188efd43a-3319-1258009050796-2:769:1 Transaction Rollback
>>                       ...
>>                       2009-11-12 15:12:33,640 DEBUG - ActiveMQSession
>> - ID:8014ac188efd43a-3319-1258009050796-2:770:1 Transaction Rollback
>>                       ...
>>
>> In these two test scenario, why rollback Delay time is not 10000ms?
>> when external service is ok, why servicemix get that error and last send
>> message to dlq?
>>
>>
>> Freeman Fang wrote:
>>>
>>> Hi Colin,
>>>
>>> Did you ever test the scenario when external service is shutdown with
>>> current configuration? I don't think fault message can't  send back to
>>> jms consumer endpoint for your current configuration
>>>  From your first email, when external service is shutdown, you get
>>> exception like
>>>
>>> javax.jbi.messaging.MessagingException: Fault not supported
>>>         at
>>> org
>>> .apache
>>> .servicemix
>>> .jbi.messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java:
>>> 366)
>>>         at
>>> org
>>> .apache
>>> .servicemix
>>> .jbi.messaging.MessageExchangeImpl.setFault(MessageExchangeImpl.java:
>>> 290)
>>>         at
>>> org
>>> .apache.servicemix.cxfbc.CxfBcProvider.faultProcess(CxfBcProvider.java:
>>> 277)
>>>         at
>>> org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:
>>> 261)
>>>         at
>>> org
>>> .apache
>>> .servicemix
>>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>>         at
>>> org
>>> .apache
>>> .servicemix
>>> .common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
>>>         at
>>> org
>>> .apache
>>> .servicemix
>>> .common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:
>>> 535)
>>>         at
>>>
>>> That's caused by your MEP is InOnly, so you can't set Fault to the
>>> MessageExchange.  If you use RobustInOnly now, when external service
>>> is shutdown,  as same as you use InOnly, cxf bc provide can get a
>>> RuntimeException(thrown by underlying transport) and then set as
>>> faulut to MessageExchange(now it's ok as it's  no InOnly now), which
>>> can trigger rollback on jms consumer endpoint. Could you append the
>>> log when external service is shutdown?
>>>
>>>
>>> And I want to get more details about your workflow, as you mentioned,
>>> your flow looks like
>>> [external client]--->cxf-bc-consumer--->jms-provider--->jms queue
>>>
>>> jms queue--->jms-consumer--->cxf-bc-provider--->[external service]
>>>
>>> What the transport your external client and external service use? Http
>>> or JMS?
>>>
>>> Freeman
>>>
>>> On 2009-11-12, at 上午11:29, colin.chi wrote:
>>>
>>>>
>>>> Hi FF,
>>>>
>>>> Thanks for you reply.
>>>>
>>>> I have tested according to you suggestion, and the message is
>>>> rollbacked to
>>>> jms consumer, but this test scene is that external service is running
>>>> normal.
>>>>
>>>> The exception of rollback as follows:
>>>> ==========================================================
>>>> 2009-11-12 10:34:24,921 DEBUG - SedaQueue                      -
>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1425e17 deque
>>>> ued exchange: RobustInOnly[
>>>>  id: ID:10.80.12.85-124e63b1989-2:2
>>>>  status: Done
>>>>  role: consumer
>>>>  service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>  endpoint: CustomerInGenevaPortTypePort
>>>>  operation: {http://geneva.nova.com/customer}createCustomer
>>>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>> xmlns:msg="htt
>>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>> "
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>> e="createCustomer" type="msg:createCustomer"
>>>> version="1.0"><jbi:part><pns:createCustomer
>>>> xmlns:pns="http://geneva.nova.com/custome
>>>> r"><pns:value>5555</pns:value></pns:createCustomer></jbi:part></
>>>> jbi:message>
>>>> ]
>>>> 2009-11-12 10:34:24,953 DEBUG - DeliveryChannelImpl            -
>>>> Notifying
>>>> exchange ID:10.80.12.85-124e63b1989-2:2(1e67cdb) in Del
>>>> iveryChannel{servicemix-jms} from processInboundSynchronousExchange
>>>> 2009-11-12 10:34:24,953 DEBUG - DeliveryChannelImpl            -
>>>> Notified:
>>>> ID:10.80.12.85-124e63b1989-2:2(1e67cdb) in DeliveryChan
>>>> nel{servicemix-jms} from sendSync
>>>> 2009-11-12 10:34:24,968 DEBUG - DefaultMessageListenerContainer -
>>>> Initiating
>>>> transaction rollback on application exception
>>>> javax.jms.JMSException: Error sending JBI exchange
>>>>        at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .jms
>>>> .endpoints
>>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:575)
>>>>        at
>>>> org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint
>>>> $1.onMessage(JmsConsumerEndpoint.java:505)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractMessageListenerContainer
>>>> .doInvokeListener(AbstractMessageListenerContainer.jav
>>>> a:518)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractMessageListenerContainer
>>>> .invokeListener(AbstractMessageListenerContainer.java:
>>>> 479)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractMessageListenerContainer
>>>> .doExecuteListener(AbstractMessageListenerContainer.ja
>>>> va:451)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractPollingMessageListenerContainer
>>>> .doReceiveAndExecute(AbstractPollingMessageList
>>>> enerContainer.java:323)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractPollingMessageListenerContainer
>>>> .receiveAndExecute(AbstractPollingMessageListen
>>>> erContainer.java:241)
>>>>        at
>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>> $AsyncMessageListenerInvoker.invokeListener(DefaultMess
>>>> ageListenerContainer.java:982)
>>>>        at
>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>> $AsyncMessageListenerInvoker.executeOngoingLoop(Default
>>>> MessageListenerContainer.java:974)
>>>>        at
>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>> $AsyncMessageListenerInvoker.run(DefaultMessageListener
>>>> Container.java:876)
>>>>        at java.lang.Thread.run(Thread.java:619)
>>>> Caused by: java.lang.UnsupportedOperationException: A destination
>>>> must be
>>>> specified.
>>>>        at
>>>> org
>>>> .apache
>>>> .activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:
>>>> 195)
>>>>        at
>>>> org
>>>> .apache
>>>> .activemq
>>>> .ActiveMQMessageProducerSupport
>>>> .send(ActiveMQMessageProducerSupport.java:241)
>>>>        at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .jms
>>>> .endpoints
>>>> .AbstractConsumerEndpoint.send(AbstractConsumerEndpoint.java:526)
>>>>        at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .jms
>>>> .endpoints
>>>> .AbstractConsumerEndpoint
>>>> .processExchange(AbstractConsumerEndpoint.java:485)
>>>>        at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .jms
>>>> .endpoints
>>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:552)
>>>>        ... 10 more
>>>> 2009-11-12 10:34:25,031 DEBUG - ActiveMQSession                -
>>>> ID:8014ac188efd43a-3939-1257993081718-2:54:1 Transaction Rollback
>>>>
>>>> 2009-11-12 10:34:25,031 DEBUG - DefaultMessageListenerContainer -
>>>> Rolling
>>>> back transaction because of listener exception thrown: j
>>>> avax.jms.JMSException: Error sending JBI exchange
>>>> 2009-11-12 10:34:25,031 DEBUG - AMQMessageStore                -
>>>> Journalled
>>>> message add for: ID:8014ac188efd43a-3939-1257993081718
>>>> -2:10:1:1:1, at: offset = 1236, file = 1, size = 969, type = 1
>>>> 2009-11-12 10:34:25,031 WARN  - DefaultMessageListenerContainer -
>>>> Execution
>>>> of JMS message listener failed
>>>> javax.jms.JMSException: Error sending JBI exchange
>>>>        at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .jms
>>>> .endpoints
>>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:575)
>>>>        at
>>>> org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint
>>>> $1.onMessage(JmsConsumerEndpoint.java:505)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractMessageListenerContainer
>>>> .doInvokeListener(AbstractMessageListenerContainer.jav
>>>> a:518)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractMessageListenerContainer
>>>> .invokeListener(AbstractMessageListenerContainer.java:
>>>> 479)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractMessageListenerContainer
>>>> .doExecuteListener(AbstractMessageListenerContainer.ja
>>>> va:451)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractPollingMessageListenerContainer
>>>> .doReceiveAndExecute(AbstractPollingMessageList
>>>> enerContainer.java:323)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractPollingMessageListenerContainer
>>>> .receiveAndExecute(AbstractPollingMessageListen
>>>> erContainer.java:241)
>>>>        at
>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>> $AsyncMessageListenerInvoker.invokeListener(DefaultMess
>>>> ageListenerContainer.java:982)
>>>>        at
>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>> $AsyncMessageListenerInvoker.executeOngoingLoop(Default
>>>> MessageListenerContainer.java:974)
>>>>        at
>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>> $AsyncMessageListenerInvoker.run(DefaultMessageListener
>>>> Container.java:876)
>>>>        at java.lang.Thread.run(Thread.java:619)
>>>> Caused by: java.lang.UnsupportedOperationException: A destination
>>>> must be
>>>> specified.
>>>>        at
>>>> org
>>>> .apache
>>>> .activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:
>>>> 195)
>>>>        at
>>>> org
>>>> .apache
>>>> .activemq
>>>> .ActiveMQMessageProducerSupport
>>>> .send(ActiveMQMessageProducerSupport.java:241)
>>>>        at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .jms
>>>> .endpoints
>>>> .AbstractConsumerEndpoint.send(AbstractConsumerEndpoint.java:526)
>>>>        at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .jms
>>>> .endpoints
>>>> .AbstractConsumerEndpoint
>>>> .processExchange(AbstractConsumerEndpoint.java:485)
>>>>        at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .jms
>>>> .endpoints
>>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:552)
>>>>        ... 10 more
>>>> 2009-11-12 10:34:25,109 DEBUG - DefaultMessageListenerContainer -
>>>> Initiating
>>>> transaction rollback on listener exception
>>>> javax.jms.JMSException: Error sending JBI exchange
>>>>        at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .jms
>>>> .endpoints
>>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:575)
>>>>        at
>>>> org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint
>>>> $1.onMessage(JmsConsumerEndpoint.java:505)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractMessageListenerContainer
>>>> .doInvokeListener(AbstractMessageListenerContainer.jav
>>>> a:518)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractMessageListenerContainer
>>>> .invokeListener(AbstractMessageListenerContainer.java:
>>>> 479)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractMessageListenerContainer
>>>> .doExecuteListener(AbstractMessageListenerContainer.ja
>>>> va:451)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractPollingMessageListenerContainer
>>>> .doReceiveAndExecute(AbstractPollingMessageList
>>>> enerContainer.java:323)
>>>>        at
>>>> org
>>>> .springframework
>>>> .jms
>>>> .listener
>>>> .AbstractPollingMessageListenerContainer
>>>> .receiveAndExecute(AbstractPollingMessageListen
>>>> erContainer.java:241)
>>>>        at
>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>> $AsyncMessageListenerInvoker.invokeListener(DefaultMess
>>>> ageListenerContainer.java:982)
>>>>        at
>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>> $AsyncMessageListenerInvoker.executeOngoingLoop(Default
>>>> MessageListenerContainer.java:974)
>>>>        at
>>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>>> $AsyncMessageListenerInvoker.run(DefaultMessageListener
>>>> Container.java:876)
>>>>        at java.lang.Thread.run(Thread.java:619)
>>>> Caused by: java.lang.UnsupportedOperationException: A destination
>>>> must be
>>>> specified.
>>>>        at
>>>> org
>>>> .apache
>>>> .activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:
>>>> 195)
>>>>        at
>>>> org
>>>> .apache
>>>> .activemq
>>>> .ActiveMQMessageProducerSupport
>>>> .send(ActiveMQMessageProducerSupport.java:241)
>>>>        at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .jms
>>>> .endpoints
>>>> .AbstractConsumerEndpoint.send(AbstractConsumerEndpoint.java:526)
>>>>        at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .jms
>>>> .endpoints
>>>> .AbstractConsumerEndpoint
>>>> .processExchange(AbstractConsumerEndpoint.java:485)
>>>>        at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .jms
>>>> .endpoints
>>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:552)
>>>>        ... 10 more
>>>> 2009-11-12 10:34:25,171 DEBUG - JmsTransactionManager          -
>>>> Initiating
>>>> transaction rollback
>>>> 2009-11-12 10:34:25,171 DEBUG - JmsTransactionManager          -
>>>> Rolling
>>>> back JMS transaction on Session [ActiveMQSession {id=ID:8
>>>> 014ac188efd43a-3939-1257993081718-2:55:1,started=false}]
>>>> 2009-11-12 10:34:25,171 DEBUG - ActiveMQSession                -
>>>> ID:8014ac188efd43a-3939-1257993081718-2:55:1 Transaction Rollback
>>>> =====================================================
>>>>
>>>>
>>>> Freeman Fang wrote:
>>>>>
>>>>> Hi Colin,
>>>>>
>>>>> I think the problem actually come from the MEP (message exchange
>>>>> pattern) of your MessageChange is InOnly, so the fault message can't
>>>>> go back to JmsConsumer endpoint, which means the JmsConsumer endpoint
>>>>> have no chance to do the rollback.
>>>>>
>>>>>
>>>>> Freeman
>>>>>
>>>>> On 2009-11-11, at 下午4:41, colin.chi wrote:
>>>>>
>>>>>>
>>>>>> Hi Gert,
>>>>>>
>>>>>> Thanks for you reply.
>>>>>>
>>>>>> And I see some logs as following:
>>>>>>
>>>>>> 2009-11-09 11:19:28,171 DEBUG - SedaQueue                      -
>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@89e163 dequeu
>>>>>> ed exchange: InOnly[
>>>>>> id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>> status: Done
>>>>>> role: consumer
>>>>>> service: {http://www.hcsys.com/novaesb/}jms
>>>>>> endpoint: provider
>>>>>> operation: {http://www.hcsys.com/novaesb/}createCustomer
>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>> xmlns:msg="htt
>>>>>> p://www.hcsys.com/novaesb/"
>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>> "
>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>> r">
>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>> ]
>>>>>>
>>>>>> This means the message is received and processed(send to cxf-
>>>>>> provider
>>>>>> endpoint) successfully by jms consumer endpoint.
>>>>>>
>>>>>> so when cxf-provider endpoint catch an exception or an error, the
>>>>>> message
>>>>>> can't be  rollbacked to jms queue where jms consumer endpoint
>>>>>> listen.
>>>>>>
>>>>>> I think this case can not be achieved in ServiceMix.
>>>>>>
>>>>>> If I am wrong, can you tell me how can I finish this case?
>>>>>>
>>>>>> thanks and regards.
>>>>>>
>>>>>>
>>>>>> Gert Vanthienen wrote:
>>>>>>>
>>>>>>> L.S.,
>>>>>>>
>>>>>>> One option would be to enable transactions on the jms consumer
>>>>>>> endpoint (transacted="jms").  Another option would be to get the
>>>>>>> JMS
>>>>>>> client to acknowledge the message, like this:
>>>>>>>
>>>>>>>   <jms:consumer ....
>>>>>>>                 sessionAcknowledgeMode="#AcknowledgeMode"/>
>>>>>>>
>>>>>>>    <util:constant id="AcknowledgeMode"
>>>>>>> static-field="javax.jms.Session.CLIENT_ACKNOWLEDGE"/>
>>>>>>>
>>>>>>> Regards,
>>>>>>>
>>>>>>> Gert Vanthienen
>>>>>>> ------------------------
>>>>>>> Open Source SOA: http://fusesource.com
>>>>>>> Blog: http://gertvanthienen.blogspot.com/
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 2009/11/9 colin.chi <ib...@hotmail.com>:
>>>>>>>>
>>>>>>>> work flow as follow:
>>>>>>>>
>>>>>>>> [external client]--->cxf-bc-consumer--->jms-provider--->jms queue
>>>>>>>>
>>>>>>>> jms queue--->jms-consumer--->cxf-bc-provider--->[external service]
>>>>>>>>
>>>>>>>> when external service is shut down, message don't rollback to jms
>>>>>>>> queue
>>>>>>>> and
>>>>>>>> throw exception.
>>>>>>>>
>>>>>>>> how to config jms consumer and cxf bc provider to do this case?
>>>>>>>>
>>>>>>>> =======================log begin==========================
>>>>>>>>
>>>>>>>> 2009-11-09 11:19:28,046 DEBUG - JettyHTTPDestination           -
>>>>>>>> Service
>>>>>>>> http request on thread: Thread[22434271@qtp0-0,5,RMI Runt
>>>>>>>> ime]
>>>>>>>> 2009-11-09 11:19:28,046 DEBUG - AbstractHTTPDestination        -
>>>>>>>> Request
>>>>>>>> Headers: {connection=[Keep-Alive], Host=[localhost:8080],
>>>>>>>> Content-Length=[364], User-Agent=[Mozilla/4.0 (compatible; MSIE
>>>>>>>> 7.0;
>>>>>>>> Windows NT 5.1; Trident/4.0; GOSURF)], accept-encoding=[gzip
>>>>>>>> , deflate], Accept=[*/*], Cache-Control=[no-cache]}
>>>>>>>> 2009-11-09 11:19:28,046 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Chain
>>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain@735ad7 was creat
>>>>>>>> ed. Current flow:
>>>>>>>> receive [AttachmentInInterceptor]
>>>>>>>> post-stream [StaxInInterceptor]
>>>>>>>> read [ReadHeadersInterceptor]
>>>>>>>> pre-protocol [, MustUnderstandInterceptor, JbiJAASInterceptor]
>>>>>>>> unmarshal [JbiOperationInterceptor]
>>>>>>>> pre-invoke [JbiInWsdl1Interceptor, JbiInInterceptor]
>>>>>>>> invoke [JbiInvokerInterceptor]
>>>>>>>> post-invoke [JbiPostInvokerInterceptor, OutgoingChainInterceptor]
>>>>>>>>
>>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>>>> AttachmentInInterceptor@14d8c8
>>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>>>> StaxInInterceptor@a4480d
>>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>>> .interceptor.ReadHeadersInterceptor@1766d9c
>>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>> .CxfBcConsumer$1@1b7715d
>>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>>> .interceptor.MustUnderstandInterceptor@73a403
>>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>> .interceptors.JbiJAASInterceptor@ca7c93
>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>> .interceptors.JbiOperationInterceptor@1626bf
>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>> .interceptors.JbiInWsdl1Interceptor@49e885
>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>> .interceptors.JbiInInterceptor@407909
>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>> .CxfBcConsumer$JbiInvokerInterceptor@1b8a6af
>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - CxfBcComponent                 -
>>>>>>>> Created
>>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - DeliveryChannelImpl            -
>>>>>>>> Send
>>>>>>>> ID:10.80.12.85-124d6ebc094-2:10 in DeliveryChannel{servicemi
>>>>>>>> x-cxf-bc}
>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -
>>>>>>>> send
>>>>>>>> exchange with secure broker
>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -
>>>>>>>> service
>>>>>>>> name :{http://www.hcsys.com/novaesb/}jms
>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -
>>>>>>>> operation
>>>>>>>> name :{http://www.hcsys.com/novaesb/}createCustomer
>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - SedaFlow                       -
>>>>>>>> Called
>>>>>>>> Flow
>>>>>>>> send
>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>> .CxfBcConsumer$JbiPostInvokerInterceptor@1c76cab
>>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>>>> OutgoingChainInterceptor@1af691b
>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - JettyHTTPDestination           -
>>>>>>>> Finished
>>>>>>>> servicing http request on thread: Thread[22434271@qtp0-0
>>>>>>>> ,5,RMI Runtime]
>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - SedaQueue                      -
>>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@45ac89 dequeu
>>>>>>>> ed exchange: InOnly[
>>>>>>>> id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>>>> status: Active
>>>>>>>> role: provider
>>>>>>>> service: {http://www.hcsys.com/novaesb/}jms
>>>>>>>> endpoint: provider
>>>>>>>> operation: {http://www.hcsys.com/novaesb/}createCustomer
>>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>>> xmlns:msg="htt
>>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>>> "
>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>>> r">
>>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>>> ]
>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - JmsComponent                   -
>>>>>>>> Received
>>>>>>>> exchange: status: Active, role: provider
>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - JmsComponent                   -
>>>>>>>> Retrieved
>>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - DeliveryChannelImpl            -
>>>>>>>> Send
>>>>>>>> ID:10.80.12.85-124d6ebc094-2:10 in DeliveryChannel{servicemi
>>>>>>>> x-jms}
>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - SecuredBroker                  -
>>>>>>>> send
>>>>>>>> exchange with secure broker
>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - SedaFlow                       -
>>>>>>>> Called
>>>>>>>> Flow
>>>>>>>> send
>>>>>>>> 2009-11-09 11:19:28,156 DEBUG - MultiplexingConsumerProcessor  -
>>>>>>>> Received
>>>>>>>> jms message ActiveMQTextMessage {commandId = 17, respons
>>>>>>>> eRequired = true, messageId =
>>>>>>>> ID:8014ac188efd43a-4422-1257736227984-2:10:1:1:11,
>>>>>>>> originalDestination =
>>>>>>>> null, originalTransactionId
>>>>>>>> = null, producerId = ID:
>>>>>>>> 8014ac188efd43a-4422-1257736227984-2:10:1:1,
>>>>>>>> destination = queue://queue/A, transactionId = null, expirat
>>>>>>>> ion = 0, timestamp = 1257736768156, arrival = 0, brokerInTime =
>>>>>>>> 1257736768156, brokerOutTime = 1257736768156, correlationId = null
>>>>>>>> , replyTo = null, persistent = true, type = null, priority = 4,
>>>>>>>> groupID =
>>>>>>>> null, groupSequence = 0, targetConsumerId = null, compre
>>>>>>>> ssed = false, userID = null, content = null,
>>>>>>>> marshalledProperties =
>>>>>>>> org.apache.activemq.util.ByteSequence@1713c03, dataStructure =
>>>>>>>> null, redeliveryCounter = 0, size = 0, properties =
>>>>>>>> {MimeContentType=text/xml;charset=UTF-8,
>>>>>>>> SoapAction=/{http://www.hcsys.com/no
>>>>>>>> vaesb/}createCustomer,
>>>>>>>> SOAPJMS_soapAction=/{http://www.hcsys.com/
>>>>>>>> novaesb/}createCustomer},
>>>>>>>> readOnlyProperties = true, readOnlyBody
>>>>>>>> = true, droppable = false, text = <?xml version='1.0'
>>>>>>>> encoding='UTF-8'?><jbi:me...jbi:message>}
>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - MultiplexingConsumerProcessor  -
>>>>>>>> Handling
>>>>>>>> jms message ActiveMQTextMessage {commandId = 17, respons
>>>>>>>> eRequired = true, messageId =
>>>>>>>> ID:8014ac188efd43a-4422-1257736227984-2:10:1:1:11,
>>>>>>>> originalDestination =
>>>>>>>> null, originalTransactionId
>>>>>>>> = null, producerId = ID:
>>>>>>>> 8014ac188efd43a-4422-1257736227984-2:10:1:1,
>>>>>>>> destination = queue://queue/A, transactionId = null, expirat
>>>>>>>> ion = 0, timestamp = 1257736768156, arrival = 0, brokerInTime =
>>>>>>>> 1257736768156, brokerOutTime = 1257736768156, correlationId = null
>>>>>>>> , replyTo = null, persistent = true, type = null, priority = 4,
>>>>>>>> groupID =
>>>>>>>> null, groupSequence = 0, targetConsumerId = null, compre
>>>>>>>> ssed = false, userID = null, content = null,
>>>>>>>> marshalledProperties =
>>>>>>>> org.apache.activemq.util.ByteSequence@1713c03, dataStructure =
>>>>>>>> null, redeliveryCounter = 0, size = 0, properties =
>>>>>>>> {MimeContentType=text/xml;charset=UTF-8,
>>>>>>>> SoapAction=/{http://www.hcsys.com/no
>>>>>>>> vaesb/}createCustomer,
>>>>>>>> SOAPJMS_soapAction=/{http://www.hcsys.com/
>>>>>>>> novaesb/}createCustomer},
>>>>>>>> readOnlyProperties = true, readOnlyBody
>>>>>>>> = true, droppable = false, text = <?xml version='1.0'
>>>>>>>> encoding='UTF-8'?><jbi:me...jbi:message>}
>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - SedaQueue                      -
>>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@89e163 dequeu
>>>>>>>> ed exchange: InOnly[
>>>>>>>> id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>>>> status: Done
>>>>>>>> role: consumer
>>>>>>>> service: {http://www.hcsys.com/novaesb/}jms
>>>>>>>> endpoint: provider
>>>>>>>> operation: {http://www.hcsys.com/novaesb/}createCustomer
>>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>>> xmlns:msg="htt
>>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>>> "
>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>>> r">
>>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>>> ]
>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - JmsComponent                   -
>>>>>>>> Created
>>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - CxfBcComponent                 -
>>>>>>>> Received
>>>>>>>> exchange: status: Done, role: consumer
>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - DeliveryChannelImpl            -
>>>>>>>> Send
>>>>>>>> ID:10.80.12.85-124d6ebc094-4:10 in DeliveryChannel{servicemi
>>>>>>>> x-jms}
>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - CxfBcComponent                 -
>>>>>>>> Retrieved
>>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -
>>>>>>>> send
>>>>>>>> exchange with secure broker
>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -
>>>>>>>> service
>>>>>>>> name :{http://geneva.nova.com/customer}CustomerInImplServ
>>>>>>>> ice
>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -
>>>>>>>> operation
>>>>>>>> name :{http://geneva.nova.com/customer}createCustomer
>>>>>>>> 2009-11-09 11:19:28,171 DEBUG - SedaFlow                       -
>>>>>>>> Called
>>>>>>>> Flow
>>>>>>>> send
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - SedaQueue                      -
>>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@4437d3 dequeu
>>>>>>>> ed exchange: InOnly[
>>>>>>>> id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>>> status: Active
>>>>>>>> role: provider
>>>>>>>> service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>>>>> endpoint: CustomerInGenevaPortTypePort
>>>>>>>> operation: {http://geneva.nova.com/customer}createCustomer
>>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>>> xmlns:msg="htt
>>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>>> "
>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>>> r">
>>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>>> ]
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - CxfBcComponent                 -
>>>>>>>> Received
>>>>>>>> exchange: status: Active, role: provider
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - CxfBcComponent                 -
>>>>>>>> Retrieved
>>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Adding
>>>>>>>> interceptor org.apache.servicemix.cxfbc.interceptors.JbiOu
>>>>>>>> tInterceptor@dd6a50 to phase pre-stream
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Adding
>>>>>>>> interceptor org.apache.servicemix.cxfbc.interceptors.JbiOu
>>>>>>>> tWsdl1Interceptor@6ed9d1 to phase marshal
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Adding
>>>>>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapPr
>>>>>>>> eProtocolOutInterceptor@19e4f8b to phase post-logical
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Adding
>>>>>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapOu
>>>>>>>> tInterceptor@782f81 to phase write
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Adding
>>>>>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapAc
>>>>>>>> tionOutInterceptor@76df38 to phase post-logical
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Adding
>>>>>>>> interceptor org.apache.cxf.interceptor.StaxOutInterceptor@
>>>>>>>> 38df00 to phase pre-stream
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Chain
>>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was crea
>>>>>>>> ted. Current flow:
>>>>>>>> post-logical [SoapPreProtocolOutInterceptor,
>>>>>>>> SoapActionOutInterceptor]
>>>>>>>> pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>>>>>> write [SoapOutInterceptor]
>>>>>>>> marshal [JbiOutWsdl1Interceptor]
>>>>>>>>
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>>> .interceptor.SoapPreProtocolOutInterceptor@19e4f8b
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>>> .interceptor.SoapActionOutInterceptor@76df38
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>> .interceptors.JbiOutInterceptor@dd6a50
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>>>> StaxOutInterceptor@38df00
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Adding
>>>>>>>> interceptor org.apache.cxf.interceptor.StaxOutInterceptor$
>>>>>>>> StaxOutEndingInterceptor@1073a2e to phase pre-stream-ending
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Chain
>>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was modi
>>>>>>>> fied. Current flow:
>>>>>>>> post-logical [SoapPreProtocolOutInterceptor,
>>>>>>>> SoapActionOutInterceptor]
>>>>>>>> pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>>>>>> write [SoapOutInterceptor]
>>>>>>>> marshal [JbiOutWsdl1Interceptor]
>>>>>>>> pre-stream-ending [StaxOutEndingInterceptor]
>>>>>>>>
>>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>>> .interceptor.SoapOutInterceptor@782f81
>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Adding
>>>>>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapOu
>>>>>>>> tInterceptor$SoapOutEndingInterceptor@17cb4ff to phase write-
>>>>>>>> ending
>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Chain
>>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was modi
>>>>>>>> fied. Current flow:
>>>>>>>> post-logical [SoapPreProtocolOutInterceptor,
>>>>>>>> SoapActionOutInterceptor]
>>>>>>>> pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>>>>>> write [SoapOutInterceptor]
>>>>>>>> marshal [JbiOutWsdl1Interceptor]
>>>>>>>> write-ending [SoapOutEndingInterceptor]
>>>>>>>> pre-stream-ending [StaxOutEndingInterceptor]
>>>>>>>>
>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>>> .interceptors.JbiOutWsdl1Interceptor@6ed9d1
>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>>> .interceptor.SoapOutInterceptor$SoapOutEndingInterceptor@17cb4ff
>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>>>> Invoking
>>>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>>>> StaxOutInterceptor$StaxOutEndingInterceptor@1073a2e
>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>>>>>> Sending
>>>>>>>> POST Message with Headers to http://10.80.12.100:8080/Gen
>>>>>>>> evaESB/services/CustomerAccount Conduit
>>>>>>>> :{http://geneva.nova.com/
>>>>>>>> customer}CustomerInGenevaPortTypePort.http-conduit
>>>>>>>> Content-Type: text/xml; charset=UTF-8
>>>>>>>>
>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>>>>>> SOAPAction:
>>>>>>>> ""
>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>>>>>> Accept:
>>>>>>>> *
>>>>>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>>>>>> No Trust
>>>>>>>> Decider for Conduit '{http://geneva.nova.com/customer}Cu
>>>>>>>> stomerInGenevaPortTypePort.http-conduit'. An afirmative Trust
>>>>>>>> Decision is
>>>>>>>> assumed.
>>>>>>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    -
>>>>>>>> Response
>>>>>>>> Code: 404 Conduit: {http://geneva.nova.com/customer}Cust
>>>>>>>> omerInGenevaPortTypePort.http-conduit
>>>>>>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    -
>>>>>>>> Content
>>>>>>>> length: 952
>>>>>>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    -
>>>>>>>> Header
>>>>>>>> fields:
>>>>>>>>   null: [HTTP/1.1 404 Not Found]
>>>>>>>>   Date: [Mon, 09 Nov 2009 03:19:04 GMT]
>>>>>>>>   Content-Length: [952]
>>>>>>>>   Content-Type: [text/html;charset=utf-8]
>>>>>>>>   Server: [Apache-Coyote/1.1]
>>>>>>>>
>>>>>>>> 2009-11-09 11:19:28,265 ERROR - CxfBcComponent                 -
>>>>>>>> Error
>>>>>>>> processing exchange InOnly[
>>>>>>>> id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>>> status: Active
>>>>>>>> role: provider
>>>>>>>> service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>>>>> endpoint: CustomerInGenevaPortTypePort
>>>>>>>> operation: {http://geneva.nova.com/customer}createCustomer
>>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>>> xmlns:msg="htt
>>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>>> "
>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>>> r">
>>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>>> ]
>>>>>>>> javax.jbi.messaging.MessagingException: Fault not supported
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix
>>>>>>>> .jbi
>>>>>>>> .messaging
>>>>>>>> .MessageExchangeImpl.setMessage(MessageExchangeImpl.java:
>>>>>>>> 366)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix
>>>>>>>> .jbi
>>>>>>>> .messaging.MessageExchangeImpl.setFault(MessageExchangeImpl.java:
>>>>>>>> 290)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix.cxfbc.CxfBcProvider.faultProcess(CxfBcProvider.java:
>>>>>>>> 277)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:
>>>>>>>> 261)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix
>>>>>>>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix
>>>>>>>> .common
>>>>>>>> .AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:
>>>>>>>> 581)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix
>>>>>>>> .common
>>>>>>>> .AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix
>>>>>>>> .common
>>>>>>>> .SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:
>>>>>>>> 60)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix
>>>>>>>> .jbi
>>>>>>>> .messaging
>>>>>>>> .DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:
>>>>>>>> 172)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:
>>>>>>>> 168)
>>>>>>>>       at
>>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue
>>>>>>>> $1.run(SedaQueue.java:134)
>>>>>>>>       at
>>>>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>>>>> $Worker.runTask(ThreadPoolExecutor.java:886)
>>>>>>>>       at
>>>>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>>>>> $Worker.run(ThreadPoolExecutor.java:908)
>>>>>>>>       at java.lang.Thread.run(Thread.java:619)
>>>>>>>> 2009-11-09 11:19:28,296 DEBUG - DeliveryChannelImpl            -
>>>>>>>> Send
>>>>>>>> ID:10.80.12.85-124d6ebc094-4:10 in DeliveryChannel{servicemi
>>>>>>>> x-cxf-bc}
>>>>>>>> 2009-11-09 11:19:28,296 DEBUG - SecuredBroker                  -
>>>>>>>> send
>>>>>>>> exchange with secure broker
>>>>>>>> 2009-11-09 11:19:28,296 DEBUG - SedaFlow                       -
>>>>>>>> Called
>>>>>>>> Flow
>>>>>>>> send
>>>>>>>> 2009-11-09 11:19:28,296 DEBUG - SedaQueue                      -
>>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@247262 dequeu
>>>>>>>> ed exchange: InOnly[
>>>>>>>> id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>>> status: Error
>>>>>>>> role: consumer
>>>>>>>> service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>>>>> endpoint: CustomerInGenevaPortTypePort
>>>>>>>> operation: {http://geneva.nova.com/customer}createCustomer
>>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>>> xmlns:msg="htt
>>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>>> "
>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>>> r">
>>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>>> error: javax.jbi.messaging.MessagingException: Fault not supported
>>>>>>>> ]
>>>>>>>> 2009-11-09 11:19:28,296 DEBUG - JmsComponent                   -
>>>>>>>> Received
>>>>>>>> exchange: status: Error, role: consumer
>>>>>>>> 2009-11-09 11:19:28,296 DEBUG - JmsComponent                   -
>>>>>>>> Retrieved
>>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>>> 2009-11-09 11:19:28,328 ERROR - JmsComponent                   -
>>>>>>>> Error
>>>>>>>> processing exchange InOnly[
>>>>>>>> id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>>> status: Error
>>>>>>>> role: consumer
>>>>>>>> service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>>>>> endpoint: CustomerInGenevaPortTypePort
>>>>>>>> operation: {http://geneva.nova.com/customer}createCustomer
>>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>>> xmlns:msg="htt
>>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>>> "
>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>>> r">
>>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>>> error: javax.jbi.messaging.MessagingException: Fault not supported
>>>>>>>> ]
>>>>>>>> java.lang.UnsupportedOperationException: A destination must be
>>>>>>>> specified.
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .activemq
>>>>>>>> .ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:195)
>>>>>>>>       at
>>>>>>>> org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:
>>>>>>>> 74)
>>>>>>>>       at
>>>>>>>> org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:
>>>>>>>> 59)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix
>>>>>>>> .jms
>>>>>>>> .multiplexing
>>>>>>>> .MultiplexingConsumerProcessor
>>>>>>>> .process(MultiplexingConsumerProcessor.java:126)
>>>>>>>>       at
>>>>>>>> org.apache.servicemix.soap.SoapEndpoint.process(SoapEndpoint.java:
>>>>>>>> 368)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix
>>>>>>>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix
>>>>>>>> .common
>>>>>>>> .AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:
>>>>>>>> 598)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix
>>>>>>>> .common
>>>>>>>> .AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix
>>>>>>>> .common
>>>>>>>> .SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:
>>>>>>>> 60)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix
>>>>>>>> .jbi
>>>>>>>> .messaging
>>>>>>>> .DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:
>>>>>>>> 172)
>>>>>>>>       at
>>>>>>>> org
>>>>>>>> .apache
>>>>>>>> .servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:
>>>>>>>> 168)
>>>>>>>>       at
>>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue
>>>>>>>> $1.run(SedaQueue.java:134)
>>>>>>>>       at
>>>>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>>>>> $Worker.runTask(ThreadPoolExecutor.java:886)
>>>>>>>>       at
>>>>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>>>>> $Worker.run(ThreadPoolExecutor.java:908)
>>>>>>>>       at java.lang.Thread.run(Thread.java:619)
>>>>>>>>
>>>>>>>>
>>>>>>>> =======================log end==========================
>>>>>>>> --
>>>>>>>> View this message in context:
>>>>>>>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26260776.html
>>>>>>>> Sent from the ServiceMix - User mailing list archive at
>>>>>>>> Nabble.com.
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> -----
>>>>>>> ---
>>>>>>> Gert Vanthienen
>>>>>>> http://gertvanthienen.blogspot.com
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> View this message in context:
>>>>>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26297802.html
>>>>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Freeman Fang
>>>>> ------------------------
>>>>> Open Source SOA: http://fusesource.com
>>>>>
>>>>>
>>>>>
>>>>
>>>> --
>>>> View this message in context:
>>>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26312831.html
>>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>>
>>>
>>>
>>> --
>>> Freeman Fang
>>> ------------------------
>>> Open Source SOA: http://fusesource.com
>>>
>>>
>>>
>>
>> --
>> View this message in context:
>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26314682.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>>
> 
> 
> -----
> ---
> Gert Vanthienen
> http://gertvanthienen.blogspot.com
> 

-- 
View this message in context: http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26315339.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: When external service is shut down, message don't rollback to jms queue.

Posted by Gert Vanthienen <ge...@gmail.com>.
Colin,

It looks like your service is return a fault when it's unavailable
instead of the usual ERROR message exchange.  With the InOnly
exchange, the fault is lost because it can not be conveyed.  That's
why we suggested using another MEP, like RobustInOnly.

However, the default behavior of the jms:consumer endpoint is not to
rollback on a fault message, but instead try to send it as a reply JMS
message.  That's why you're now getting these exceptions, because the
replyDestination has not been set.  Our marshaler currently doesn't
support rolling back on a fault message.

Just to test this hypothesis, could you add your own Marshaler class
to the JMS SU and configure a replyDestination to hold the DONE
exchanges:
public class MyConsumerMarshaler extends DefaultConsumerMarshaler {

public Message createFault(MessageExchange exchange, Fault fault,
Session session, JmsContext context) throws Exception {
//throw exception on a fault to force rollback
throw new FaultException(fault);
}
}

If that fixes the issue, we should probably look into making this
option available from the default consumer marshaler.

Regards,

Gert Vanthienen
------------------------
Open Source SOA: http://fusesource.com
Blog: http://gertvanthienen.blogspot.com/



2009/11/12 colin.chi <ib...@hotmail.com>:
>
> Hi FF,
>
> I will repeat what scenario I tested.
>
> external client: I use examples\wsdl-first\client.html and change the
> "Target" param and textarea content.
> external service: I build a webservice by cxf framework. external service
> wsdl is :
>    <wsdl:operation name="createCustomer">
>      <soap:operation soapAction="" style="document" />
>      <wsdl:input name="createCustomer">
>        <soap:body use="literal" />
>      </wsdl:input>
>    </wsdl:operation>
>
> jms consumer endpoint configration:
>    <bean id="Marshaler"
> class="org.apache.servicemix.jms.endpoints.DefaultConsumerMarshaler">
>        <property name="mep" value="http://www.w3.org/2004/08/wsdl/in-only"
> />
>    </bean>
>
>    <bean id="connectionFactory1"
> class="org.apache.activemq.ActiveMQConnectionFactory">
>        <property name="brokerURL" value="tcp://localhost:61616" />
>        <property name="redeliveryPolicy" ref="redeliveryPolicy" />
>    </bean>
>
>    <bean id="redeliveryPolicy"
> class="org.apache.activemq.RedeliveryPolicy">
>        <property name="initialRedeliveryDelay" value="10000"/>
>        <property name="maximumRedeliveries" value="2"/>
>    </bean>
>
> and in activemq.xml, I configrate a DLQ.queue/A.
>
> first scenario:
>  <jms:consumer service="novaesb:jms"
>                  endpoint="consumer"
>                  targetService="geneva:CustomerInImplService"
>                  targetEndpoint="CustomerInGenevaPortTypePort"
>                  destinationName="queue/A"
>                  connectionFactory="#connectionFactory1"
>                  transacted="jms"
>                  cacheLevel="2"
>                  marshaler="#Marshaler" /><!-- in-only -->
>
> first result:
>  when external service is running, external service receive message, and
> test is ok.
>  when external service is shutdown, there is an error, and message can not
> be rollback to jms consumer, and message lost.
>   error log is :
>     2009-11-12 14:50:09,359 ERROR - CxfBcComponent                 - Error
> processing exchange InOnly[
>       ...
>       status: Active
>       role: provider
>       service: {http://geneva.nova.com/customer}CustomerInImplService
>       ...
>     javax.jbi.messaging.MessagingException: Fault not supported
>     ...
>     2009-11-12 14:50:09,359 DEBUG - SedaQueue                      -
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@117d8d5 dequeued
> exchange: InOnly[
>       ...
>       status: Error
>       role: consumer
>       service: {http://geneva.nova.com/customer}CustomerInImplService
>       ...
>       error: javax.jbi.messaging.MessagingException: Fault not supported
>     ...
>
> second scenario:
> I change bean "Marshaler" value to
> "http://www.w3.org/2004/08/wsdl/robust-in-only".
>  <jms:consumer service="novaesb:jms"
>                  endpoint="consumer"
>                  targetService="geneva:CustomerInImplService"
>                  targetEndpoint="CustomerInGenevaPortTypePort"
>                  destinationName="queue/A"
>                  connectionFactory="#connectionFactory1"
>                  transacted="jms"
>                  cacheLevel="2"
>                  marshaler="#Marshaler" /><!-- robust-in-only -->
>
> second result:
>  when external service is running,
>    external service receive message 2 times, external service receive
> message time:
>     1st receive time : Nov 12, 2009 2:58:31 PM
> org.apache.cxf.interceptor.LoggingInInterceptor logging
>     2nd receive time : Nov 12, 2009 2:58:32 PM
> org.apache.cxf.interceptor.LoggingInInterceptor logging
>
>    message in ServiceMix rollback 2 times, then be sended to DLQ.queue/A.
>     1st rollback time : 2009-11-12 14:59:14,671 DEBUG - ActiveMQSession
> - ID:8014ac188efd43a-3319-1258009050796-2:12:1 Transaction Rollback
>                         ...
>                         2009-11-12 14:59:14,687 DEBUG - ActiveMQSession
> - ID:8014ac188efd43a-3319-1258009050796-2:17:1 Transaction Rollback
>                         ...
>     2nd rollback time : 2009-11-12 14:59:15,140 DEBUG - ActiveMQSession
> - ID:8014ac188efd43a-3319-1258009050796-2:18:1 Transaction Rollback
>                         ...
>                         2009-11-12 14:59:15,140 DEBUG - ActiveMQSession
> - ID:8014ac188efd43a-3319-1258009050796-2:19:1 Transaction Rollback
>                         ...
>
>  when external service is shutdown, message is rollbacked 2 times, then be
> sended to DLQ.queue/A.
>   1st rollback time : 2009-11-12 15:12:33,453 DEBUG - ActiveMQSession
> - ID:8014ac188efd43a-3319-1258009050796-2:20:1 Transaction Rollback
>                       ...
>                       2009-11-12 15:12:33,468 DEBUG - ActiveMQSession
> - ID:8014ac188efd43a-3319-1258009050796-2:768:1 Transaction Rollback
>                       ...
>   2nd rollback time : 2009-11-12 15:12:33,625 DEBUG - ActiveMQSession
> - ID:8014ac188efd43a-3319-1258009050796-2:769:1 Transaction Rollback
>                       ...
>                       2009-11-12 15:12:33,640 DEBUG - ActiveMQSession
> - ID:8014ac188efd43a-3319-1258009050796-2:770:1 Transaction Rollback
>                       ...
>
> In these two test scenario, why rollback Delay time is not 10000ms?
> when external service is ok, why servicemix get that error and last send
> message to dlq?
>
>
> Freeman Fang wrote:
>>
>> Hi Colin,
>>
>> Did you ever test the scenario when external service is shutdown with
>> current configuration? I don't think fault message can't  send back to
>> jms consumer endpoint for your current configuration
>>  From your first email, when external service is shutdown, you get
>> exception like
>>
>> javax.jbi.messaging.MessagingException: Fault not supported
>>         at
>> org
>> .apache
>> .servicemix
>> .jbi.messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java:
>> 366)
>>         at
>> org
>> .apache
>> .servicemix
>> .jbi.messaging.MessageExchangeImpl.setFault(MessageExchangeImpl.java:
>> 290)
>>         at
>> org
>> .apache.servicemix.cxfbc.CxfBcProvider.faultProcess(CxfBcProvider.java:
>> 277)
>>         at
>> org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:
>> 261)
>>         at
>> org
>> .apache
>> .servicemix
>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>         at
>> org
>> .apache
>> .servicemix
>> .common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
>>         at
>> org
>> .apache
>> .servicemix
>> .common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:
>> 535)
>>         at
>>
>> That's caused by your MEP is InOnly, so you can't set Fault to the
>> MessageExchange.  If you use RobustInOnly now, when external service
>> is shutdown,  as same as you use InOnly, cxf bc provide can get a
>> RuntimeException(thrown by underlying transport) and then set as
>> faulut to MessageExchange(now it's ok as it's  no InOnly now), which
>> can trigger rollback on jms consumer endpoint. Could you append the
>> log when external service is shutdown?
>>
>>
>> And I want to get more details about your workflow, as you mentioned,
>> your flow looks like
>> [external client]--->cxf-bc-consumer--->jms-provider--->jms queue
>>
>> jms queue--->jms-consumer--->cxf-bc-provider--->[external service]
>>
>> What the transport your external client and external service use? Http
>> or JMS?
>>
>> Freeman
>>
>> On 2009-11-12, at 上午11:29, colin.chi wrote:
>>
>>>
>>> Hi FF,
>>>
>>> Thanks for you reply.
>>>
>>> I have tested according to you suggestion, and the message is
>>> rollbacked to
>>> jms consumer, but this test scene is that external service is running
>>> normal.
>>>
>>> The exception of rollback as follows:
>>> ==========================================================
>>> 2009-11-12 10:34:24,921 DEBUG - SedaQueue                      -
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1425e17 deque
>>> ued exchange: RobustInOnly[
>>>  id: ID:10.80.12.85-124e63b1989-2:2
>>>  status: Done
>>>  role: consumer
>>>  service: {http://geneva.nova.com/customer}CustomerInImplService
>>>  endpoint: CustomerInGenevaPortTypePort
>>>  operation: {http://geneva.nova.com/customer}createCustomer
>>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>> xmlns:msg="htt
>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>> "
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>> e="createCustomer" type="msg:createCustomer"
>>> version="1.0"><jbi:part><pns:createCustomer
>>> xmlns:pns="http://geneva.nova.com/custome
>>> r"><pns:value>5555</pns:value></pns:createCustomer></jbi:part></
>>> jbi:message>
>>> ]
>>> 2009-11-12 10:34:24,953 DEBUG - DeliveryChannelImpl            -
>>> Notifying
>>> exchange ID:10.80.12.85-124e63b1989-2:2(1e67cdb) in Del
>>> iveryChannel{servicemix-jms} from processInboundSynchronousExchange
>>> 2009-11-12 10:34:24,953 DEBUG - DeliveryChannelImpl            -
>>> Notified:
>>> ID:10.80.12.85-124e63b1989-2:2(1e67cdb) in DeliveryChan
>>> nel{servicemix-jms} from sendSync
>>> 2009-11-12 10:34:24,968 DEBUG - DefaultMessageListenerContainer -
>>> Initiating
>>> transaction rollback on application exception
>>> javax.jms.JMSException: Error sending JBI exchange
>>>        at
>>> org
>>> .apache
>>> .servicemix
>>> .jms
>>> .endpoints
>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:575)
>>>        at
>>> org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint
>>> $1.onMessage(JmsConsumerEndpoint.java:505)
>>>        at
>>> org
>>> .springframework
>>> .jms
>>> .listener
>>> .AbstractMessageListenerContainer
>>> .doInvokeListener(AbstractMessageListenerContainer.jav
>>> a:518)
>>>        at
>>> org
>>> .springframework
>>> .jms
>>> .listener
>>> .AbstractMessageListenerContainer
>>> .invokeListener(AbstractMessageListenerContainer.java:
>>> 479)
>>>        at
>>> org
>>> .springframework
>>> .jms
>>> .listener
>>> .AbstractMessageListenerContainer
>>> .doExecuteListener(AbstractMessageListenerContainer.ja
>>> va:451)
>>>        at
>>> org
>>> .springframework
>>> .jms
>>> .listener
>>> .AbstractPollingMessageListenerContainer
>>> .doReceiveAndExecute(AbstractPollingMessageList
>>> enerContainer.java:323)
>>>        at
>>> org
>>> .springframework
>>> .jms
>>> .listener
>>> .AbstractPollingMessageListenerContainer
>>> .receiveAndExecute(AbstractPollingMessageListen
>>> erContainer.java:241)
>>>        at
>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>> $AsyncMessageListenerInvoker.invokeListener(DefaultMess
>>> ageListenerContainer.java:982)
>>>        at
>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>> $AsyncMessageListenerInvoker.executeOngoingLoop(Default
>>> MessageListenerContainer.java:974)
>>>        at
>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>> $AsyncMessageListenerInvoker.run(DefaultMessageListener
>>> Container.java:876)
>>>        at java.lang.Thread.run(Thread.java:619)
>>> Caused by: java.lang.UnsupportedOperationException: A destination
>>> must be
>>> specified.
>>>        at
>>> org
>>> .apache
>>> .activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:
>>> 195)
>>>        at
>>> org
>>> .apache
>>> .activemq
>>> .ActiveMQMessageProducerSupport
>>> .send(ActiveMQMessageProducerSupport.java:241)
>>>        at
>>> org
>>> .apache
>>> .servicemix
>>> .jms
>>> .endpoints
>>> .AbstractConsumerEndpoint.send(AbstractConsumerEndpoint.java:526)
>>>        at
>>> org
>>> .apache
>>> .servicemix
>>> .jms
>>> .endpoints
>>> .AbstractConsumerEndpoint
>>> .processExchange(AbstractConsumerEndpoint.java:485)
>>>        at
>>> org
>>> .apache
>>> .servicemix
>>> .jms
>>> .endpoints
>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:552)
>>>        ... 10 more
>>> 2009-11-12 10:34:25,031 DEBUG - ActiveMQSession                -
>>> ID:8014ac188efd43a-3939-1257993081718-2:54:1 Transaction Rollback
>>>
>>> 2009-11-12 10:34:25,031 DEBUG - DefaultMessageListenerContainer -
>>> Rolling
>>> back transaction because of listener exception thrown: j
>>> avax.jms.JMSException: Error sending JBI exchange
>>> 2009-11-12 10:34:25,031 DEBUG - AMQMessageStore                -
>>> Journalled
>>> message add for: ID:8014ac188efd43a-3939-1257993081718
>>> -2:10:1:1:1, at: offset = 1236, file = 1, size = 969, type = 1
>>> 2009-11-12 10:34:25,031 WARN  - DefaultMessageListenerContainer -
>>> Execution
>>> of JMS message listener failed
>>> javax.jms.JMSException: Error sending JBI exchange
>>>        at
>>> org
>>> .apache
>>> .servicemix
>>> .jms
>>> .endpoints
>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:575)
>>>        at
>>> org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint
>>> $1.onMessage(JmsConsumerEndpoint.java:505)
>>>        at
>>> org
>>> .springframework
>>> .jms
>>> .listener
>>> .AbstractMessageListenerContainer
>>> .doInvokeListener(AbstractMessageListenerContainer.jav
>>> a:518)
>>>        at
>>> org
>>> .springframework
>>> .jms
>>> .listener
>>> .AbstractMessageListenerContainer
>>> .invokeListener(AbstractMessageListenerContainer.java:
>>> 479)
>>>        at
>>> org
>>> .springframework
>>> .jms
>>> .listener
>>> .AbstractMessageListenerContainer
>>> .doExecuteListener(AbstractMessageListenerContainer.ja
>>> va:451)
>>>        at
>>> org
>>> .springframework
>>> .jms
>>> .listener
>>> .AbstractPollingMessageListenerContainer
>>> .doReceiveAndExecute(AbstractPollingMessageList
>>> enerContainer.java:323)
>>>        at
>>> org
>>> .springframework
>>> .jms
>>> .listener
>>> .AbstractPollingMessageListenerContainer
>>> .receiveAndExecute(AbstractPollingMessageListen
>>> erContainer.java:241)
>>>        at
>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>> $AsyncMessageListenerInvoker.invokeListener(DefaultMess
>>> ageListenerContainer.java:982)
>>>        at
>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>> $AsyncMessageListenerInvoker.executeOngoingLoop(Default
>>> MessageListenerContainer.java:974)
>>>        at
>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>> $AsyncMessageListenerInvoker.run(DefaultMessageListener
>>> Container.java:876)
>>>        at java.lang.Thread.run(Thread.java:619)
>>> Caused by: java.lang.UnsupportedOperationException: A destination
>>> must be
>>> specified.
>>>        at
>>> org
>>> .apache
>>> .activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:
>>> 195)
>>>        at
>>> org
>>> .apache
>>> .activemq
>>> .ActiveMQMessageProducerSupport
>>> .send(ActiveMQMessageProducerSupport.java:241)
>>>        at
>>> org
>>> .apache
>>> .servicemix
>>> .jms
>>> .endpoints
>>> .AbstractConsumerEndpoint.send(AbstractConsumerEndpoint.java:526)
>>>        at
>>> org
>>> .apache
>>> .servicemix
>>> .jms
>>> .endpoints
>>> .AbstractConsumerEndpoint
>>> .processExchange(AbstractConsumerEndpoint.java:485)
>>>        at
>>> org
>>> .apache
>>> .servicemix
>>> .jms
>>> .endpoints
>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:552)
>>>        ... 10 more
>>> 2009-11-12 10:34:25,109 DEBUG - DefaultMessageListenerContainer -
>>> Initiating
>>> transaction rollback on listener exception
>>> javax.jms.JMSException: Error sending JBI exchange
>>>        at
>>> org
>>> .apache
>>> .servicemix
>>> .jms
>>> .endpoints
>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:575)
>>>        at
>>> org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint
>>> $1.onMessage(JmsConsumerEndpoint.java:505)
>>>        at
>>> org
>>> .springframework
>>> .jms
>>> .listener
>>> .AbstractMessageListenerContainer
>>> .doInvokeListener(AbstractMessageListenerContainer.jav
>>> a:518)
>>>        at
>>> org
>>> .springframework
>>> .jms
>>> .listener
>>> .AbstractMessageListenerContainer
>>> .invokeListener(AbstractMessageListenerContainer.java:
>>> 479)
>>>        at
>>> org
>>> .springframework
>>> .jms
>>> .listener
>>> .AbstractMessageListenerContainer
>>> .doExecuteListener(AbstractMessageListenerContainer.ja
>>> va:451)
>>>        at
>>> org
>>> .springframework
>>> .jms
>>> .listener
>>> .AbstractPollingMessageListenerContainer
>>> .doReceiveAndExecute(AbstractPollingMessageList
>>> enerContainer.java:323)
>>>        at
>>> org
>>> .springframework
>>> .jms
>>> .listener
>>> .AbstractPollingMessageListenerContainer
>>> .receiveAndExecute(AbstractPollingMessageListen
>>> erContainer.java:241)
>>>        at
>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>> $AsyncMessageListenerInvoker.invokeListener(DefaultMess
>>> ageListenerContainer.java:982)
>>>        at
>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>> $AsyncMessageListenerInvoker.executeOngoingLoop(Default
>>> MessageListenerContainer.java:974)
>>>        at
>>> org.springframework.jms.listener.DefaultMessageListenerContainer
>>> $AsyncMessageListenerInvoker.run(DefaultMessageListener
>>> Container.java:876)
>>>        at java.lang.Thread.run(Thread.java:619)
>>> Caused by: java.lang.UnsupportedOperationException: A destination
>>> must be
>>> specified.
>>>        at
>>> org
>>> .apache
>>> .activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:
>>> 195)
>>>        at
>>> org
>>> .apache
>>> .activemq
>>> .ActiveMQMessageProducerSupport
>>> .send(ActiveMQMessageProducerSupport.java:241)
>>>        at
>>> org
>>> .apache
>>> .servicemix
>>> .jms
>>> .endpoints
>>> .AbstractConsumerEndpoint.send(AbstractConsumerEndpoint.java:526)
>>>        at
>>> org
>>> .apache
>>> .servicemix
>>> .jms
>>> .endpoints
>>> .AbstractConsumerEndpoint
>>> .processExchange(AbstractConsumerEndpoint.java:485)
>>>        at
>>> org
>>> .apache
>>> .servicemix
>>> .jms
>>> .endpoints
>>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:552)
>>>        ... 10 more
>>> 2009-11-12 10:34:25,171 DEBUG - JmsTransactionManager          -
>>> Initiating
>>> transaction rollback
>>> 2009-11-12 10:34:25,171 DEBUG - JmsTransactionManager          -
>>> Rolling
>>> back JMS transaction on Session [ActiveMQSession {id=ID:8
>>> 014ac188efd43a-3939-1257993081718-2:55:1,started=false}]
>>> 2009-11-12 10:34:25,171 DEBUG - ActiveMQSession                -
>>> ID:8014ac188efd43a-3939-1257993081718-2:55:1 Transaction Rollback
>>> =====================================================
>>>
>>>
>>> Freeman Fang wrote:
>>>>
>>>> Hi Colin,
>>>>
>>>> I think the problem actually come from the MEP (message exchange
>>>> pattern) of your MessageChange is InOnly, so the fault message can't
>>>> go back to JmsConsumer endpoint, which means the JmsConsumer endpoint
>>>> have no chance to do the rollback.
>>>>
>>>>
>>>> Freeman
>>>>
>>>> On 2009-11-11, at 下午4:41, colin.chi wrote:
>>>>
>>>>>
>>>>> Hi Gert,
>>>>>
>>>>> Thanks for you reply.
>>>>>
>>>>> And I see some logs as following:
>>>>>
>>>>> 2009-11-09 11:19:28,171 DEBUG - SedaQueue                      -
>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@89e163 dequeu
>>>>> ed exchange: InOnly[
>>>>> id: ID:10.80.12.85-124d6ebc094-2:10
>>>>> status: Done
>>>>> role: consumer
>>>>> service: {http://www.hcsys.com/novaesb/}jms
>>>>> endpoint: provider
>>>>> operation: {http://www.hcsys.com/novaesb/}createCustomer
>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>> xmlns:msg="htt
>>>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>> "
>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>> e="createCustomer" type="msg:createCustomer"
>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>> r">
>>>>>     <pns:value>aaaa</pns:value>
>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>> ]
>>>>>
>>>>> This means the message is received and processed(send to cxf-
>>>>> provider
>>>>> endpoint) successfully by jms consumer endpoint.
>>>>>
>>>>> so when cxf-provider endpoint catch an exception or an error, the
>>>>> message
>>>>> can't be  rollbacked to jms queue where jms consumer endpoint
>>>>> listen.
>>>>>
>>>>> I think this case can not be achieved in ServiceMix.
>>>>>
>>>>> If I am wrong, can you tell me how can I finish this case?
>>>>>
>>>>> thanks and regards.
>>>>>
>>>>>
>>>>> Gert Vanthienen wrote:
>>>>>>
>>>>>> L.S.,
>>>>>>
>>>>>> One option would be to enable transactions on the jms consumer
>>>>>> endpoint (transacted="jms").  Another option would be to get the
>>>>>> JMS
>>>>>> client to acknowledge the message, like this:
>>>>>>
>>>>>>   <jms:consumer ....
>>>>>>                 sessionAcknowledgeMode="#AcknowledgeMode"/>
>>>>>>
>>>>>>    <util:constant id="AcknowledgeMode"
>>>>>> static-field="javax.jms.Session.CLIENT_ACKNOWLEDGE"/>
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>> Gert Vanthienen
>>>>>> ------------------------
>>>>>> Open Source SOA: http://fusesource.com
>>>>>> Blog: http://gertvanthienen.blogspot.com/
>>>>>>
>>>>>>
>>>>>>
>>>>>> 2009/11/9 colin.chi <ib...@hotmail.com>:
>>>>>>>
>>>>>>> work flow as follow:
>>>>>>>
>>>>>>> [external client]--->cxf-bc-consumer--->jms-provider--->jms queue
>>>>>>>
>>>>>>> jms queue--->jms-consumer--->cxf-bc-provider--->[external service]
>>>>>>>
>>>>>>> when external service is shut down, message don't rollback to jms
>>>>>>> queue
>>>>>>> and
>>>>>>> throw exception.
>>>>>>>
>>>>>>> how to config jms consumer and cxf bc provider to do this case?
>>>>>>>
>>>>>>> =======================log begin==========================
>>>>>>>
>>>>>>> 2009-11-09 11:19:28,046 DEBUG - JettyHTTPDestination           -
>>>>>>> Service
>>>>>>> http request on thread: Thread[22434271@qtp0-0,5,RMI Runt
>>>>>>> ime]
>>>>>>> 2009-11-09 11:19:28,046 DEBUG - AbstractHTTPDestination        -
>>>>>>> Request
>>>>>>> Headers: {connection=[Keep-Alive], Host=[localhost:8080],
>>>>>>> Content-Length=[364], User-Agent=[Mozilla/4.0 (compatible; MSIE
>>>>>>> 7.0;
>>>>>>> Windows NT 5.1; Trident/4.0; GOSURF)], accept-encoding=[gzip
>>>>>>> , deflate], Accept=[*/*], Cache-Control=[no-cache]}
>>>>>>> 2009-11-09 11:19:28,046 DEBUG - PhaseInterceptorChain          -
>>>>>>> Chain
>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain@735ad7 was creat
>>>>>>> ed. Current flow:
>>>>>>> receive [AttachmentInInterceptor]
>>>>>>> post-stream [StaxInInterceptor]
>>>>>>> read [ReadHeadersInterceptor]
>>>>>>> pre-protocol [, MustUnderstandInterceptor, JbiJAASInterceptor]
>>>>>>> unmarshal [JbiOperationInterceptor]
>>>>>>> pre-invoke [JbiInWsdl1Interceptor, JbiInInterceptor]
>>>>>>> invoke [JbiInvokerInterceptor]
>>>>>>> post-invoke [JbiPostInvokerInterceptor, OutgoingChainInterceptor]
>>>>>>>
>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>> Invoking
>>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>>> AttachmentInInterceptor@14d8c8
>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>> Invoking
>>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>>> StaxInInterceptor@a4480d
>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>> Invoking
>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>> .interceptor.ReadHeadersInterceptor@1766d9c
>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>> Invoking
>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>> .CxfBcConsumer$1@1b7715d
>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>> Invoking
>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>> .interceptor.MustUnderstandInterceptor@73a403
>>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>>> Invoking
>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>> .interceptors.JbiJAASInterceptor@ca7c93
>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>> Invoking
>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>> .interceptors.JbiOperationInterceptor@1626bf
>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>> Invoking
>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>> .interceptors.JbiInWsdl1Interceptor@49e885
>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>> Invoking
>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>> .interceptors.JbiInInterceptor@407909
>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>> Invoking
>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>> .CxfBcConsumer$JbiInvokerInterceptor@1b8a6af
>>>>>>> 2009-11-09 11:19:28,140 DEBUG - CxfBcComponent                 -
>>>>>>> Created
>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>>> 2009-11-09 11:19:28,140 DEBUG - DeliveryChannelImpl            -
>>>>>>> Send
>>>>>>> ID:10.80.12.85-124d6ebc094-2:10 in DeliveryChannel{servicemi
>>>>>>> x-cxf-bc}
>>>>>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -
>>>>>>> send
>>>>>>> exchange with secure broker
>>>>>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -
>>>>>>> service
>>>>>>> name :{http://www.hcsys.com/novaesb/}jms
>>>>>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -
>>>>>>> operation
>>>>>>> name :{http://www.hcsys.com/novaesb/}createCustomer
>>>>>>> 2009-11-09 11:19:28,140 DEBUG - SedaFlow                       -
>>>>>>> Called
>>>>>>> Flow
>>>>>>> send
>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>> Invoking
>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>> .CxfBcConsumer$JbiPostInvokerInterceptor@1c76cab
>>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>>> Invoking
>>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>>> OutgoingChainInterceptor@1af691b
>>>>>>> 2009-11-09 11:19:28,156 DEBUG - JettyHTTPDestination           -
>>>>>>> Finished
>>>>>>> servicing http request on thread: Thread[22434271@qtp0-0
>>>>>>> ,5,RMI Runtime]
>>>>>>> 2009-11-09 11:19:28,156 DEBUG - SedaQueue                      -
>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@45ac89 dequeu
>>>>>>> ed exchange: InOnly[
>>>>>>> id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>>> status: Active
>>>>>>> role: provider
>>>>>>> service: {http://www.hcsys.com/novaesb/}jms
>>>>>>> endpoint: provider
>>>>>>> operation: {http://www.hcsys.com/novaesb/}createCustomer
>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>> xmlns:msg="htt
>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>> "
>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>> r">
>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>> ]
>>>>>>> 2009-11-09 11:19:28,156 DEBUG - JmsComponent                   -
>>>>>>> Received
>>>>>>> exchange: status: Active, role: provider
>>>>>>> 2009-11-09 11:19:28,156 DEBUG - JmsComponent                   -
>>>>>>> Retrieved
>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>>> 2009-11-09 11:19:28,156 DEBUG - DeliveryChannelImpl            -
>>>>>>> Send
>>>>>>> ID:10.80.12.85-124d6ebc094-2:10 in DeliveryChannel{servicemi
>>>>>>> x-jms}
>>>>>>> 2009-11-09 11:19:28,156 DEBUG - SecuredBroker                  -
>>>>>>> send
>>>>>>> exchange with secure broker
>>>>>>> 2009-11-09 11:19:28,156 DEBUG - SedaFlow                       -
>>>>>>> Called
>>>>>>> Flow
>>>>>>> send
>>>>>>> 2009-11-09 11:19:28,156 DEBUG - MultiplexingConsumerProcessor  -
>>>>>>> Received
>>>>>>> jms message ActiveMQTextMessage {commandId = 17, respons
>>>>>>> eRequired = true, messageId =
>>>>>>> ID:8014ac188efd43a-4422-1257736227984-2:10:1:1:11,
>>>>>>> originalDestination =
>>>>>>> null, originalTransactionId
>>>>>>> = null, producerId = ID:
>>>>>>> 8014ac188efd43a-4422-1257736227984-2:10:1:1,
>>>>>>> destination = queue://queue/A, transactionId = null, expirat
>>>>>>> ion = 0, timestamp = 1257736768156, arrival = 0, brokerInTime =
>>>>>>> 1257736768156, brokerOutTime = 1257736768156, correlationId = null
>>>>>>> , replyTo = null, persistent = true, type = null, priority = 4,
>>>>>>> groupID =
>>>>>>> null, groupSequence = 0, targetConsumerId = null, compre
>>>>>>> ssed = false, userID = null, content = null,
>>>>>>> marshalledProperties =
>>>>>>> org.apache.activemq.util.ByteSequence@1713c03, dataStructure =
>>>>>>> null, redeliveryCounter = 0, size = 0, properties =
>>>>>>> {MimeContentType=text/xml;charset=UTF-8,
>>>>>>> SoapAction=/{http://www.hcsys.com/no
>>>>>>> vaesb/}createCustomer,
>>>>>>> SOAPJMS_soapAction=/{http://www.hcsys.com/
>>>>>>> novaesb/}createCustomer},
>>>>>>> readOnlyProperties = true, readOnlyBody
>>>>>>> = true, droppable = false, text = <?xml version='1.0'
>>>>>>> encoding='UTF-8'?><jbi:me...jbi:message>}
>>>>>>> 2009-11-09 11:19:28,171 DEBUG - MultiplexingConsumerProcessor  -
>>>>>>> Handling
>>>>>>> jms message ActiveMQTextMessage {commandId = 17, respons
>>>>>>> eRequired = true, messageId =
>>>>>>> ID:8014ac188efd43a-4422-1257736227984-2:10:1:1:11,
>>>>>>> originalDestination =
>>>>>>> null, originalTransactionId
>>>>>>> = null, producerId = ID:
>>>>>>> 8014ac188efd43a-4422-1257736227984-2:10:1:1,
>>>>>>> destination = queue://queue/A, transactionId = null, expirat
>>>>>>> ion = 0, timestamp = 1257736768156, arrival = 0, brokerInTime =
>>>>>>> 1257736768156, brokerOutTime = 1257736768156, correlationId = null
>>>>>>> , replyTo = null, persistent = true, type = null, priority = 4,
>>>>>>> groupID =
>>>>>>> null, groupSequence = 0, targetConsumerId = null, compre
>>>>>>> ssed = false, userID = null, content = null,
>>>>>>> marshalledProperties =
>>>>>>> org.apache.activemq.util.ByteSequence@1713c03, dataStructure =
>>>>>>> null, redeliveryCounter = 0, size = 0, properties =
>>>>>>> {MimeContentType=text/xml;charset=UTF-8,
>>>>>>> SoapAction=/{http://www.hcsys.com/no
>>>>>>> vaesb/}createCustomer,
>>>>>>> SOAPJMS_soapAction=/{http://www.hcsys.com/
>>>>>>> novaesb/}createCustomer},
>>>>>>> readOnlyProperties = true, readOnlyBody
>>>>>>> = true, droppable = false, text = <?xml version='1.0'
>>>>>>> encoding='UTF-8'?><jbi:me...jbi:message>}
>>>>>>> 2009-11-09 11:19:28,171 DEBUG - SedaQueue                      -
>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@89e163 dequeu
>>>>>>> ed exchange: InOnly[
>>>>>>> id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>>> status: Done
>>>>>>> role: consumer
>>>>>>> service: {http://www.hcsys.com/novaesb/}jms
>>>>>>> endpoint: provider
>>>>>>> operation: {http://www.hcsys.com/novaesb/}createCustomer
>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>> xmlns:msg="htt
>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>> "
>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>> r">
>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>> ]
>>>>>>> 2009-11-09 11:19:28,171 DEBUG - JmsComponent                   -
>>>>>>> Created
>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>> 2009-11-09 11:19:28,171 DEBUG - CxfBcComponent                 -
>>>>>>> Received
>>>>>>> exchange: status: Done, role: consumer
>>>>>>> 2009-11-09 11:19:28,171 DEBUG - DeliveryChannelImpl            -
>>>>>>> Send
>>>>>>> ID:10.80.12.85-124d6ebc094-4:10 in DeliveryChannel{servicemi
>>>>>>> x-jms}
>>>>>>> 2009-11-09 11:19:28,171 DEBUG - CxfBcComponent                 -
>>>>>>> Retrieved
>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -
>>>>>>> send
>>>>>>> exchange with secure broker
>>>>>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -
>>>>>>> service
>>>>>>> name :{http://geneva.nova.com/customer}CustomerInImplServ
>>>>>>> ice
>>>>>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -
>>>>>>> operation
>>>>>>> name :{http://geneva.nova.com/customer}createCustomer
>>>>>>> 2009-11-09 11:19:28,171 DEBUG - SedaFlow                       -
>>>>>>> Called
>>>>>>> Flow
>>>>>>> send
>>>>>>> 2009-11-09 11:19:28,187 DEBUG - SedaQueue                      -
>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@4437d3 dequeu
>>>>>>> ed exchange: InOnly[
>>>>>>> id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>> status: Active
>>>>>>> role: provider
>>>>>>> service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>>>> endpoint: CustomerInGenevaPortTypePort
>>>>>>> operation: {http://geneva.nova.com/customer}createCustomer
>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>> xmlns:msg="htt
>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>> "
>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>> r">
>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>> ]
>>>>>>> 2009-11-09 11:19:28,187 DEBUG - CxfBcComponent                 -
>>>>>>> Received
>>>>>>> exchange: status: Active, role: provider
>>>>>>> 2009-11-09 11:19:28,187 DEBUG - CxfBcComponent                 -
>>>>>>> Retrieved
>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>> Adding
>>>>>>> interceptor org.apache.servicemix.cxfbc.interceptors.JbiOu
>>>>>>> tInterceptor@dd6a50 to phase pre-stream
>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>> Adding
>>>>>>> interceptor org.apache.servicemix.cxfbc.interceptors.JbiOu
>>>>>>> tWsdl1Interceptor@6ed9d1 to phase marshal
>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>> Adding
>>>>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapPr
>>>>>>> eProtocolOutInterceptor@19e4f8b to phase post-logical
>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>> Adding
>>>>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapOu
>>>>>>> tInterceptor@782f81 to phase write
>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>> Adding
>>>>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapAc
>>>>>>> tionOutInterceptor@76df38 to phase post-logical
>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>> Adding
>>>>>>> interceptor org.apache.cxf.interceptor.StaxOutInterceptor@
>>>>>>> 38df00 to phase pre-stream
>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>> Chain
>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was crea
>>>>>>> ted. Current flow:
>>>>>>> post-logical [SoapPreProtocolOutInterceptor,
>>>>>>> SoapActionOutInterceptor]
>>>>>>> pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>>>>> write [SoapOutInterceptor]
>>>>>>> marshal [JbiOutWsdl1Interceptor]
>>>>>>>
>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>> Invoking
>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>> .interceptor.SoapPreProtocolOutInterceptor@19e4f8b
>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>> Invoking
>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>> .interceptor.SoapActionOutInterceptor@76df38
>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>> Invoking
>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>> .interceptors.JbiOutInterceptor@dd6a50
>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>> Invoking
>>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>>> StaxOutInterceptor@38df00
>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>> Adding
>>>>>>> interceptor org.apache.cxf.interceptor.StaxOutInterceptor$
>>>>>>> StaxOutEndingInterceptor@1073a2e to phase pre-stream-ending
>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>> Chain
>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was modi
>>>>>>> fied. Current flow:
>>>>>>> post-logical [SoapPreProtocolOutInterceptor,
>>>>>>> SoapActionOutInterceptor]
>>>>>>> pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>>>>> write [SoapOutInterceptor]
>>>>>>> marshal [JbiOutWsdl1Interceptor]
>>>>>>> pre-stream-ending [StaxOutEndingInterceptor]
>>>>>>>
>>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>>> Invoking
>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>> .interceptor.SoapOutInterceptor@782f81
>>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>>> Adding
>>>>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapOu
>>>>>>> tInterceptor$SoapOutEndingInterceptor@17cb4ff to phase write-
>>>>>>> ending
>>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>>> Chain
>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was modi
>>>>>>> fied. Current flow:
>>>>>>> post-logical [SoapPreProtocolOutInterceptor,
>>>>>>> SoapActionOutInterceptor]
>>>>>>> pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>>>>> write [SoapOutInterceptor]
>>>>>>> marshal [JbiOutWsdl1Interceptor]
>>>>>>> write-ending [SoapOutEndingInterceptor]
>>>>>>> pre-stream-ending [StaxOutEndingInterceptor]
>>>>>>>
>>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>>> Invoking
>>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>>> .interceptors.JbiOutWsdl1Interceptor@6ed9d1
>>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>>> Invoking
>>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>>> .interceptor.SoapOutInterceptor$SoapOutEndingInterceptor@17cb4ff
>>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>>> Invoking
>>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>>> StaxOutInterceptor$StaxOutEndingInterceptor@1073a2e
>>>>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>>>>> Sending
>>>>>>> POST Message with Headers to http://10.80.12.100:8080/Gen
>>>>>>> evaESB/services/CustomerAccount Conduit
>>>>>>> :{http://geneva.nova.com/
>>>>>>> customer}CustomerInGenevaPortTypePort.http-conduit
>>>>>>> Content-Type: text/xml; charset=UTF-8
>>>>>>>
>>>>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>>>>> SOAPAction:
>>>>>>> ""
>>>>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>>>>> Accept:
>>>>>>> *
>>>>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>>>>> No Trust
>>>>>>> Decider for Conduit '{http://geneva.nova.com/customer}Cu
>>>>>>> stomerInGenevaPortTypePort.http-conduit'. An afirmative Trust
>>>>>>> Decision is
>>>>>>> assumed.
>>>>>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    -
>>>>>>> Response
>>>>>>> Code: 404 Conduit: {http://geneva.nova.com/customer}Cust
>>>>>>> omerInGenevaPortTypePort.http-conduit
>>>>>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    -
>>>>>>> Content
>>>>>>> length: 952
>>>>>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    -
>>>>>>> Header
>>>>>>> fields:
>>>>>>>   null: [HTTP/1.1 404 Not Found]
>>>>>>>   Date: [Mon, 09 Nov 2009 03:19:04 GMT]
>>>>>>>   Content-Length: [952]
>>>>>>>   Content-Type: [text/html;charset=utf-8]
>>>>>>>   Server: [Apache-Coyote/1.1]
>>>>>>>
>>>>>>> 2009-11-09 11:19:28,265 ERROR - CxfBcComponent                 -
>>>>>>> Error
>>>>>>> processing exchange InOnly[
>>>>>>> id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>> status: Active
>>>>>>> role: provider
>>>>>>> service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>>>> endpoint: CustomerInGenevaPortTypePort
>>>>>>> operation: {http://geneva.nova.com/customer}createCustomer
>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>> xmlns:msg="htt
>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>> "
>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>> r">
>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>> ]
>>>>>>> javax.jbi.messaging.MessagingException: Fault not supported
>>>>>>>       at
>>>>>>> org
>>>>>>> .apache
>>>>>>> .servicemix
>>>>>>> .jbi
>>>>>>> .messaging
>>>>>>> .MessageExchangeImpl.setMessage(MessageExchangeImpl.java:
>>>>>>> 366)
>>>>>>>       at
>>>>>>> org
>>>>>>> .apache
>>>>>>> .servicemix
>>>>>>> .jbi
>>>>>>> .messaging.MessageExchangeImpl.setFault(MessageExchangeImpl.java:
>>>>>>> 290)
>>>>>>>       at
>>>>>>> org
>>>>>>> .apache
>>>>>>> .servicemix.cxfbc.CxfBcProvider.faultProcess(CxfBcProvider.java:
>>>>>>> 277)
>>>>>>>       at
>>>>>>> org
>>>>>>> .apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:
>>>>>>> 261)
>>>>>>>       at
>>>>>>> org
>>>>>>> .apache
>>>>>>> .servicemix
>>>>>>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>>>>>>       at
>>>>>>> org
>>>>>>> .apache
>>>>>>> .servicemix
>>>>>>> .common
>>>>>>> .AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:
>>>>>>> 581)
>>>>>>>       at
>>>>>>> org
>>>>>>> .apache
>>>>>>> .servicemix
>>>>>>> .common
>>>>>>> .AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>>>>>>>       at
>>>>>>> org
>>>>>>> .apache
>>>>>>> .servicemix
>>>>>>> .common
>>>>>>> .SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:
>>>>>>> 60)
>>>>>>>       at
>>>>>>> org
>>>>>>> .apache
>>>>>>> .servicemix
>>>>>>> .jbi
>>>>>>> .messaging
>>>>>>> .DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>>>>>>>       at
>>>>>>> org
>>>>>>> .apache
>>>>>>> .servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:
>>>>>>> 172)
>>>>>>>       at
>>>>>>> org
>>>>>>> .apache
>>>>>>> .servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:
>>>>>>> 168)
>>>>>>>       at
>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue
>>>>>>> $1.run(SedaQueue.java:134)
>>>>>>>       at
>>>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>>>> $Worker.runTask(ThreadPoolExecutor.java:886)
>>>>>>>       at
>>>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>>>> $Worker.run(ThreadPoolExecutor.java:908)
>>>>>>>       at java.lang.Thread.run(Thread.java:619)
>>>>>>> 2009-11-09 11:19:28,296 DEBUG - DeliveryChannelImpl            -
>>>>>>> Send
>>>>>>> ID:10.80.12.85-124d6ebc094-4:10 in DeliveryChannel{servicemi
>>>>>>> x-cxf-bc}
>>>>>>> 2009-11-09 11:19:28,296 DEBUG - SecuredBroker                  -
>>>>>>> send
>>>>>>> exchange with secure broker
>>>>>>> 2009-11-09 11:19:28,296 DEBUG - SedaFlow                       -
>>>>>>> Called
>>>>>>> Flow
>>>>>>> send
>>>>>>> 2009-11-09 11:19:28,296 DEBUG - SedaQueue                      -
>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@247262 dequeu
>>>>>>> ed exchange: InOnly[
>>>>>>> id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>> status: Error
>>>>>>> role: consumer
>>>>>>> service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>>>> endpoint: CustomerInGenevaPortTypePort
>>>>>>> operation: {http://geneva.nova.com/customer}createCustomer
>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>> xmlns:msg="htt
>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>> "
>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>> r">
>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>> error: javax.jbi.messaging.MessagingException: Fault not supported
>>>>>>> ]
>>>>>>> 2009-11-09 11:19:28,296 DEBUG - JmsComponent                   -
>>>>>>> Received
>>>>>>> exchange: status: Error, role: consumer
>>>>>>> 2009-11-09 11:19:28,296 DEBUG - JmsComponent                   -
>>>>>>> Retrieved
>>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>> 2009-11-09 11:19:28,328 ERROR - JmsComponent                   -
>>>>>>> Error
>>>>>>> processing exchange InOnly[
>>>>>>> id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>>> status: Error
>>>>>>> role: consumer
>>>>>>> service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>>>> endpoint: CustomerInGenevaPortTypePort
>>>>>>> operation: {http://geneva.nova.com/customer}createCustomer
>>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>>> xmlns:msg="htt
>>>>>>> p://www.hcsys.com/novaesb/"
>>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>>> "
>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>>> r">
>>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>>> error: javax.jbi.messaging.MessagingException: Fault not supported
>>>>>>> ]
>>>>>>> java.lang.UnsupportedOperationException: A destination must be
>>>>>>> specified.
>>>>>>>       at
>>>>>>> org
>>>>>>> .apache
>>>>>>> .activemq
>>>>>>> .ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:195)
>>>>>>>       at
>>>>>>> org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:
>>>>>>> 74)
>>>>>>>       at
>>>>>>> org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:
>>>>>>> 59)
>>>>>>>       at
>>>>>>> org
>>>>>>> .apache
>>>>>>> .servicemix
>>>>>>> .jms
>>>>>>> .multiplexing
>>>>>>> .MultiplexingConsumerProcessor
>>>>>>> .process(MultiplexingConsumerProcessor.java:126)
>>>>>>>       at
>>>>>>> org.apache.servicemix.soap.SoapEndpoint.process(SoapEndpoint.java:
>>>>>>> 368)
>>>>>>>       at
>>>>>>> org
>>>>>>> .apache
>>>>>>> .servicemix
>>>>>>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>>>>>>       at
>>>>>>> org
>>>>>>> .apache
>>>>>>> .servicemix
>>>>>>> .common
>>>>>>> .AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:
>>>>>>> 598)
>>>>>>>       at
>>>>>>> org
>>>>>>> .apache
>>>>>>> .servicemix
>>>>>>> .common
>>>>>>> .AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>>>>>>>       at
>>>>>>> org
>>>>>>> .apache
>>>>>>> .servicemix
>>>>>>> .common
>>>>>>> .SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:
>>>>>>> 60)
>>>>>>>       at
>>>>>>> org
>>>>>>> .apache
>>>>>>> .servicemix
>>>>>>> .jbi
>>>>>>> .messaging
>>>>>>> .DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>>>>>>>       at
>>>>>>> org
>>>>>>> .apache
>>>>>>> .servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:
>>>>>>> 172)
>>>>>>>       at
>>>>>>> org
>>>>>>> .apache
>>>>>>> .servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:
>>>>>>> 168)
>>>>>>>       at
>>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue
>>>>>>> $1.run(SedaQueue.java:134)
>>>>>>>       at
>>>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>>>> $Worker.runTask(ThreadPoolExecutor.java:886)
>>>>>>>       at
>>>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>>>> $Worker.run(ThreadPoolExecutor.java:908)
>>>>>>>       at java.lang.Thread.run(Thread.java:619)
>>>>>>>
>>>>>>>
>>>>>>> =======================log end==========================
>>>>>>> --
>>>>>>> View this message in context:
>>>>>>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26260776.html
>>>>>>> Sent from the ServiceMix - User mailing list archive at
>>>>>>> Nabble.com.
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> -----
>>>>>> ---
>>>>>> Gert Vanthienen
>>>>>> http://gertvanthienen.blogspot.com
>>>>>>
>>>>>
>>>>> --
>>>>> View this message in context:
>>>>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26297802.html
>>>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>>>
>>>>
>>>>
>>>> --
>>>> Freeman Fang
>>>> ------------------------
>>>> Open Source SOA: http://fusesource.com
>>>>
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26312831.html
>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>
>>
>>
>> --
>> Freeman Fang
>> ------------------------
>> Open Source SOA: http://fusesource.com
>>
>>
>>
>
> --
> View this message in context: http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26314682.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>

Re: When external service is shut down, message don't rollback to jms queue.

Posted by "colin.chi" <ib...@hotmail.com>.
Hi FF,

I will repeat what scenario I tested.

external client: I use examples\wsdl-first\client.html and change the
"Target" param and textarea content.
external service: I build a webservice by cxf framework. external service
wsdl is :
    <wsdl:operation name="createCustomer">
      <soap:operation soapAction="" style="document" /> 
      <wsdl:input name="createCustomer">
        <soap:body use="literal" /> 
      </wsdl:input>
    </wsdl:operation>

jms consumer endpoint configration:
    <bean id="Marshaler"
class="org.apache.servicemix.jms.endpoints.DefaultConsumerMarshaler">
        <property name="mep" value="http://www.w3.org/2004/08/wsdl/in-only"
/>
    </bean>
    
    <bean id="connectionFactory1"
class="org.apache.activemq.ActiveMQConnectionFactory">
        <property name="brokerURL" value="tcp://localhost:61616" />
        <property name="redeliveryPolicy" ref="redeliveryPolicy" />
    </bean>

    <bean id="redeliveryPolicy"
class="org.apache.activemq.RedeliveryPolicy">
        <property name="initialRedeliveryDelay" value="10000"/>
        <property name="maximumRedeliveries" value="2"/>
    </bean>

and in activemq.xml, I configrate a DLQ.queue/A.

first scenario:
  <jms:consumer service="novaesb:jms"
                  endpoint="consumer"
                  targetService="geneva:CustomerInImplService"
                  targetEndpoint="CustomerInGenevaPortTypePort"
                  destinationName="queue/A"
                  connectionFactory="#connectionFactory1"
                  transacted="jms"
                  cacheLevel="2"
                  marshaler="#Marshaler" /><!-- in-only -->

first result:
  when external service is running, external service receive message, and
test is ok.
  when external service is shutdown, there is an error, and message can not
be rollback to jms consumer, and message lost.
   error log is :
     2009-11-12 14:50:09,359 ERROR - CxfBcComponent                 - Error
processing exchange InOnly[
       ...
       status: Active
       role: provider
       service: {http://geneva.nova.com/customer}CustomerInImplService
       ...
     javax.jbi.messaging.MessagingException: Fault not supported
     ...
     2009-11-12 14:50:09,359 DEBUG - SedaQueue                      -
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@117d8d5 dequeued
exchange: InOnly[
       ...
       status: Error
       role: consumer
       service: {http://geneva.nova.com/customer}CustomerInImplService
       ...
       error: javax.jbi.messaging.MessagingException: Fault not supported
     ...

second scenario:
I change bean "Marshaler" value to
"http://www.w3.org/2004/08/wsdl/robust-in-only".
  <jms:consumer service="novaesb:jms"
                  endpoint="consumer"
                  targetService="geneva:CustomerInImplService"
                  targetEndpoint="CustomerInGenevaPortTypePort"
                  destinationName="queue/A"
                  connectionFactory="#connectionFactory1"
                  transacted="jms"
                  cacheLevel="2"
                  marshaler="#Marshaler" /><!-- robust-in-only -->

second result:
  when external service is running, 
    external service receive message 2 times, external service receive
message time:
     1st receive time : Nov 12, 2009 2:58:31 PM
org.apache.cxf.interceptor.LoggingInInterceptor logging
     2nd receive time : Nov 12, 2009 2:58:32 PM
org.apache.cxf.interceptor.LoggingInInterceptor logging
     
    message in ServiceMix rollback 2 times, then be sended to DLQ.queue/A.
     1st rollback time : 2009-11-12 14:59:14,671 DEBUG - ActiveMQSession               
- ID:8014ac188efd43a-3319-1258009050796-2:12:1 Transaction Rollback
                         ...
                         2009-11-12 14:59:14,687 DEBUG - ActiveMQSession               
- ID:8014ac188efd43a-3319-1258009050796-2:17:1 Transaction Rollback
                         ...
     2nd rollback time : 2009-11-12 14:59:15,140 DEBUG - ActiveMQSession               
- ID:8014ac188efd43a-3319-1258009050796-2:18:1 Transaction Rollback
                         ...
                         2009-11-12 14:59:15,140 DEBUG - ActiveMQSession               
- ID:8014ac188efd43a-3319-1258009050796-2:19:1 Transaction Rollback
                         ...                 
   
  when external service is shutdown, message is rollbacked 2 times, then be
sended to DLQ.queue/A.
   1st rollback time : 2009-11-12 15:12:33,453 DEBUG - ActiveMQSession               
- ID:8014ac188efd43a-3319-1258009050796-2:20:1 Transaction Rollback
                       ...
                       2009-11-12 15:12:33,468 DEBUG - ActiveMQSession               
- ID:8014ac188efd43a-3319-1258009050796-2:768:1 Transaction Rollback
                       ...
   2nd rollback time : 2009-11-12 15:12:33,625 DEBUG - ActiveMQSession               
- ID:8014ac188efd43a-3319-1258009050796-2:769:1 Transaction Rollback
                       ...
                       2009-11-12 15:12:33,640 DEBUG - ActiveMQSession               
- ID:8014ac188efd43a-3319-1258009050796-2:770:1 Transaction Rollback
                       ...
                       
In these two test scenario, why rollback Delay time is not 10000ms? 
when external service is ok, why servicemix get that error and last send
message to dlq?


Freeman Fang wrote:
> 
> Hi Colin,
> 
> Did you ever test the scenario when external service is shutdown with  
> current configuration? I don't think fault message can't  send back to  
> jms consumer endpoint for your current configuration
>  From your first email, when external service is shutdown, you get  
> exception like
> 
> javax.jbi.messaging.MessagingException: Fault not supported
>         at
> org 
> .apache 
> .servicemix 
> .jbi.messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java: 
> 366)
>         at
> org 
> .apache 
> .servicemix 
> .jbi.messaging.MessageExchangeImpl.setFault(MessageExchangeImpl.java: 
> 290)
>         at
> org 
> .apache.servicemix.cxfbc.CxfBcProvider.faultProcess(CxfBcProvider.java: 
> 277)
>         at
> org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java: 
> 261)
>         at
> org 
> .apache 
> .servicemix 
> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>         at
> org 
> .apache 
> .servicemix 
> .common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
>         at
> org 
> .apache 
> .servicemix 
> .common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java: 
> 535)
>         at
> 
> That's caused by your MEP is InOnly, so you can't set Fault to the  
> MessageExchange.  If you use RobustInOnly now, when external service  
> is shutdown,  as same as you use InOnly, cxf bc provide can get a  
> RuntimeException(thrown by underlying transport) and then set as  
> faulut to MessageExchange(now it's ok as it's  no InOnly now), which  
> can trigger rollback on jms consumer endpoint. Could you append the  
> log when external service is shutdown?
> 
> 
> And I want to get more details about your workflow, as you mentioned,  
> your flow looks like
> [external client]--->cxf-bc-consumer--->jms-provider--->jms queue
> 
> jms queue--->jms-consumer--->cxf-bc-provider--->[external service]
> 
> What the transport your external client and external service use? Http  
> or JMS?
> 
> Freeman
> 
> On 2009-11-12, at 上午11:29, colin.chi wrote:
> 
>>
>> Hi FF,
>>
>> Thanks for you reply.
>>
>> I have tested according to you suggestion, and the message is  
>> rollbacked to
>> jms consumer, but this test scene is that external service is running
>> normal.
>>
>> The exception of rollback as follows:
>> ==========================================================
>> 2009-11-12 10:34:24,921 DEBUG - SedaQueue                      -
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1425e17 deque
>> ued exchange: RobustInOnly[
>>  id: ID:10.80.12.85-124e63b1989-2:2
>>  status: Done
>>  role: consumer
>>  service: {http://geneva.nova.com/customer}CustomerInImplService
>>  endpoint: CustomerInGenevaPortTypePort
>>  operation: {http://geneva.nova.com/customer}createCustomer
>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"  
>> xmlns:msg="htt
>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema 
>> "
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>> e="createCustomer" type="msg:createCustomer"
>> version="1.0"><jbi:part><pns:createCustomer
>> xmlns:pns="http://geneva.nova.com/custome
>> r"><pns:value>5555</pns:value></pns:createCustomer></jbi:part></ 
>> jbi:message>
>> ]
>> 2009-11-12 10:34:24,953 DEBUG - DeliveryChannelImpl            -  
>> Notifying
>> exchange ID:10.80.12.85-124e63b1989-2:2(1e67cdb) in Del
>> iveryChannel{servicemix-jms} from processInboundSynchronousExchange
>> 2009-11-12 10:34:24,953 DEBUG - DeliveryChannelImpl            -  
>> Notified:
>> ID:10.80.12.85-124e63b1989-2:2(1e67cdb) in DeliveryChan
>> nel{servicemix-jms} from sendSync
>> 2009-11-12 10:34:24,968 DEBUG - DefaultMessageListenerContainer -  
>> Initiating
>> transaction rollback on application exception
>> javax.jms.JMSException: Error sending JBI exchange
>>        at
>> org 
>> .apache 
>> .servicemix 
>> .jms 
>> .endpoints 
>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:575)
>>        at
>> org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint 
>> $1.onMessage(JmsConsumerEndpoint.java:505)
>>        at
>> org 
>> .springframework 
>> .jms 
>> .listener 
>> .AbstractMessageListenerContainer 
>> .doInvokeListener(AbstractMessageListenerContainer.jav
>> a:518)
>>        at
>> org 
>> .springframework 
>> .jms 
>> .listener 
>> .AbstractMessageListenerContainer 
>> .invokeListener(AbstractMessageListenerContainer.java:
>> 479)
>>        at
>> org 
>> .springframework 
>> .jms 
>> .listener 
>> .AbstractMessageListenerContainer 
>> .doExecuteListener(AbstractMessageListenerContainer.ja
>> va:451)
>>        at
>> org 
>> .springframework 
>> .jms 
>> .listener 
>> .AbstractPollingMessageListenerContainer 
>> .doReceiveAndExecute(AbstractPollingMessageList
>> enerContainer.java:323)
>>        at
>> org 
>> .springframework 
>> .jms 
>> .listener 
>> .AbstractPollingMessageListenerContainer 
>> .receiveAndExecute(AbstractPollingMessageListen
>> erContainer.java:241)
>>        at
>> org.springframework.jms.listener.DefaultMessageListenerContainer 
>> $AsyncMessageListenerInvoker.invokeListener(DefaultMess
>> ageListenerContainer.java:982)
>>        at
>> org.springframework.jms.listener.DefaultMessageListenerContainer 
>> $AsyncMessageListenerInvoker.executeOngoingLoop(Default
>> MessageListenerContainer.java:974)
>>        at
>> org.springframework.jms.listener.DefaultMessageListenerContainer 
>> $AsyncMessageListenerInvoker.run(DefaultMessageListener
>> Container.java:876)
>>        at java.lang.Thread.run(Thread.java:619)
>> Caused by: java.lang.UnsupportedOperationException: A destination  
>> must be
>> specified.
>>        at
>> org 
>> .apache 
>> .activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java: 
>> 195)
>>        at
>> org 
>> .apache 
>> .activemq 
>> .ActiveMQMessageProducerSupport 
>> .send(ActiveMQMessageProducerSupport.java:241)
>>        at
>> org 
>> .apache 
>> .servicemix 
>> .jms 
>> .endpoints 
>> .AbstractConsumerEndpoint.send(AbstractConsumerEndpoint.java:526)
>>        at
>> org 
>> .apache 
>> .servicemix 
>> .jms 
>> .endpoints 
>> .AbstractConsumerEndpoint 
>> .processExchange(AbstractConsumerEndpoint.java:485)
>>        at
>> org 
>> .apache 
>> .servicemix 
>> .jms 
>> .endpoints 
>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:552)
>>        ... 10 more
>> 2009-11-12 10:34:25,031 DEBUG - ActiveMQSession                -
>> ID:8014ac188efd43a-3939-1257993081718-2:54:1 Transaction Rollback
>>
>> 2009-11-12 10:34:25,031 DEBUG - DefaultMessageListenerContainer -  
>> Rolling
>> back transaction because of listener exception thrown: j
>> avax.jms.JMSException: Error sending JBI exchange
>> 2009-11-12 10:34:25,031 DEBUG - AMQMessageStore                -  
>> Journalled
>> message add for: ID:8014ac188efd43a-3939-1257993081718
>> -2:10:1:1:1, at: offset = 1236, file = 1, size = 969, type = 1
>> 2009-11-12 10:34:25,031 WARN  - DefaultMessageListenerContainer -  
>> Execution
>> of JMS message listener failed
>> javax.jms.JMSException: Error sending JBI exchange
>>        at
>> org 
>> .apache 
>> .servicemix 
>> .jms 
>> .endpoints 
>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:575)
>>        at
>> org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint 
>> $1.onMessage(JmsConsumerEndpoint.java:505)
>>        at
>> org 
>> .springframework 
>> .jms 
>> .listener 
>> .AbstractMessageListenerContainer 
>> .doInvokeListener(AbstractMessageListenerContainer.jav
>> a:518)
>>        at
>> org 
>> .springframework 
>> .jms 
>> .listener 
>> .AbstractMessageListenerContainer 
>> .invokeListener(AbstractMessageListenerContainer.java:
>> 479)
>>        at
>> org 
>> .springframework 
>> .jms 
>> .listener 
>> .AbstractMessageListenerContainer 
>> .doExecuteListener(AbstractMessageListenerContainer.ja
>> va:451)
>>        at
>> org 
>> .springframework 
>> .jms 
>> .listener 
>> .AbstractPollingMessageListenerContainer 
>> .doReceiveAndExecute(AbstractPollingMessageList
>> enerContainer.java:323)
>>        at
>> org 
>> .springframework 
>> .jms 
>> .listener 
>> .AbstractPollingMessageListenerContainer 
>> .receiveAndExecute(AbstractPollingMessageListen
>> erContainer.java:241)
>>        at
>> org.springframework.jms.listener.DefaultMessageListenerContainer 
>> $AsyncMessageListenerInvoker.invokeListener(DefaultMess
>> ageListenerContainer.java:982)
>>        at
>> org.springframework.jms.listener.DefaultMessageListenerContainer 
>> $AsyncMessageListenerInvoker.executeOngoingLoop(Default
>> MessageListenerContainer.java:974)
>>        at
>> org.springframework.jms.listener.DefaultMessageListenerContainer 
>> $AsyncMessageListenerInvoker.run(DefaultMessageListener
>> Container.java:876)
>>        at java.lang.Thread.run(Thread.java:619)
>> Caused by: java.lang.UnsupportedOperationException: A destination  
>> must be
>> specified.
>>        at
>> org 
>> .apache 
>> .activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java: 
>> 195)
>>        at
>> org 
>> .apache 
>> .activemq 
>> .ActiveMQMessageProducerSupport 
>> .send(ActiveMQMessageProducerSupport.java:241)
>>        at
>> org 
>> .apache 
>> .servicemix 
>> .jms 
>> .endpoints 
>> .AbstractConsumerEndpoint.send(AbstractConsumerEndpoint.java:526)
>>        at
>> org 
>> .apache 
>> .servicemix 
>> .jms 
>> .endpoints 
>> .AbstractConsumerEndpoint 
>> .processExchange(AbstractConsumerEndpoint.java:485)
>>        at
>> org 
>> .apache 
>> .servicemix 
>> .jms 
>> .endpoints 
>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:552)
>>        ... 10 more
>> 2009-11-12 10:34:25,109 DEBUG - DefaultMessageListenerContainer -  
>> Initiating
>> transaction rollback on listener exception
>> javax.jms.JMSException: Error sending JBI exchange
>>        at
>> org 
>> .apache 
>> .servicemix 
>> .jms 
>> .endpoints 
>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:575)
>>        at
>> org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint 
>> $1.onMessage(JmsConsumerEndpoint.java:505)
>>        at
>> org 
>> .springframework 
>> .jms 
>> .listener 
>> .AbstractMessageListenerContainer 
>> .doInvokeListener(AbstractMessageListenerContainer.jav
>> a:518)
>>        at
>> org 
>> .springframework 
>> .jms 
>> .listener 
>> .AbstractMessageListenerContainer 
>> .invokeListener(AbstractMessageListenerContainer.java:
>> 479)
>>        at
>> org 
>> .springframework 
>> .jms 
>> .listener 
>> .AbstractMessageListenerContainer 
>> .doExecuteListener(AbstractMessageListenerContainer.ja
>> va:451)
>>        at
>> org 
>> .springframework 
>> .jms 
>> .listener 
>> .AbstractPollingMessageListenerContainer 
>> .doReceiveAndExecute(AbstractPollingMessageList
>> enerContainer.java:323)
>>        at
>> org 
>> .springframework 
>> .jms 
>> .listener 
>> .AbstractPollingMessageListenerContainer 
>> .receiveAndExecute(AbstractPollingMessageListen
>> erContainer.java:241)
>>        at
>> org.springframework.jms.listener.DefaultMessageListenerContainer 
>> $AsyncMessageListenerInvoker.invokeListener(DefaultMess
>> ageListenerContainer.java:982)
>>        at
>> org.springframework.jms.listener.DefaultMessageListenerContainer 
>> $AsyncMessageListenerInvoker.executeOngoingLoop(Default
>> MessageListenerContainer.java:974)
>>        at
>> org.springframework.jms.listener.DefaultMessageListenerContainer 
>> $AsyncMessageListenerInvoker.run(DefaultMessageListener
>> Container.java:876)
>>        at java.lang.Thread.run(Thread.java:619)
>> Caused by: java.lang.UnsupportedOperationException: A destination  
>> must be
>> specified.
>>        at
>> org 
>> .apache 
>> .activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java: 
>> 195)
>>        at
>> org 
>> .apache 
>> .activemq 
>> .ActiveMQMessageProducerSupport 
>> .send(ActiveMQMessageProducerSupport.java:241)
>>        at
>> org 
>> .apache 
>> .servicemix 
>> .jms 
>> .endpoints 
>> .AbstractConsumerEndpoint.send(AbstractConsumerEndpoint.java:526)
>>        at
>> org 
>> .apache 
>> .servicemix 
>> .jms 
>> .endpoints 
>> .AbstractConsumerEndpoint 
>> .processExchange(AbstractConsumerEndpoint.java:485)
>>        at
>> org 
>> .apache 
>> .servicemix 
>> .jms 
>> .endpoints 
>> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:552)
>>        ... 10 more
>> 2009-11-12 10:34:25,171 DEBUG - JmsTransactionManager          -  
>> Initiating
>> transaction rollback
>> 2009-11-12 10:34:25,171 DEBUG - JmsTransactionManager          -  
>> Rolling
>> back JMS transaction on Session [ActiveMQSession {id=ID:8
>> 014ac188efd43a-3939-1257993081718-2:55:1,started=false}]
>> 2009-11-12 10:34:25,171 DEBUG - ActiveMQSession                -
>> ID:8014ac188efd43a-3939-1257993081718-2:55:1 Transaction Rollback
>> =====================================================
>>
>>
>> Freeman Fang wrote:
>>>
>>> Hi Colin,
>>>
>>> I think the problem actually come from the MEP (message exchange
>>> pattern) of your MessageChange is InOnly, so the fault message can't
>>> go back to JmsConsumer endpoint, which means the JmsConsumer endpoint
>>> have no chance to do the rollback.
>>>
>>>
>>> Freeman
>>>
>>> On 2009-11-11, at 下午4:41, colin.chi wrote:
>>>
>>>>
>>>> Hi Gert,
>>>>
>>>> Thanks for you reply.
>>>>
>>>> And I see some logs as following:
>>>>
>>>> 2009-11-09 11:19:28,171 DEBUG - SedaQueue                      -
>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@89e163 dequeu
>>>> ed exchange: InOnly[
>>>> id: ID:10.80.12.85-124d6ebc094-2:10
>>>> status: Done
>>>> role: consumer
>>>> service: {http://www.hcsys.com/novaesb/}jms
>>>> endpoint: provider
>>>> operation: {http://www.hcsys.com/novaesb/}createCustomer
>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>> xmlns:msg="htt
>>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>> "
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>> e="createCustomer" type="msg:createCustomer"
>>>> version="1.0"><jbi:part><pns:createCustomer
>>>> xmlns:pns="http://geneva.nova.com/custome
>>>> r">
>>>>     <pns:value>aaaa</pns:value>
>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>> ]
>>>>
>>>> This means the message is received and processed(send to cxf- 
>>>> provider
>>>> endpoint) successfully by jms consumer endpoint.
>>>>
>>>> so when cxf-provider endpoint catch an exception or an error, the
>>>> message
>>>> can't be  rollbacked to jms queue where jms consumer endpoint  
>>>> listen.
>>>>
>>>> I think this case can not be achieved in ServiceMix.
>>>>
>>>> If I am wrong, can you tell me how can I finish this case?
>>>>
>>>> thanks and regards.
>>>>
>>>>
>>>> Gert Vanthienen wrote:
>>>>>
>>>>> L.S.,
>>>>>
>>>>> One option would be to enable transactions on the jms consumer
>>>>> endpoint (transacted="jms").  Another option would be to get the  
>>>>> JMS
>>>>> client to acknowledge the message, like this:
>>>>>
>>>>>   <jms:consumer ....
>>>>>                 sessionAcknowledgeMode="#AcknowledgeMode"/>
>>>>>
>>>>>    <util:constant id="AcknowledgeMode"
>>>>> static-field="javax.jms.Session.CLIENT_ACKNOWLEDGE"/>
>>>>>
>>>>> Regards,
>>>>>
>>>>> Gert Vanthienen
>>>>> ------------------------
>>>>> Open Source SOA: http://fusesource.com
>>>>> Blog: http://gertvanthienen.blogspot.com/
>>>>>
>>>>>
>>>>>
>>>>> 2009/11/9 colin.chi <ib...@hotmail.com>:
>>>>>>
>>>>>> work flow as follow:
>>>>>>
>>>>>> [external client]--->cxf-bc-consumer--->jms-provider--->jms queue
>>>>>>
>>>>>> jms queue--->jms-consumer--->cxf-bc-provider--->[external service]
>>>>>>
>>>>>> when external service is shut down, message don't rollback to jms
>>>>>> queue
>>>>>> and
>>>>>> throw exception.
>>>>>>
>>>>>> how to config jms consumer and cxf bc provider to do this case?
>>>>>>
>>>>>> =======================log begin==========================
>>>>>>
>>>>>> 2009-11-09 11:19:28,046 DEBUG - JettyHTTPDestination           -
>>>>>> Service
>>>>>> http request on thread: Thread[22434271@qtp0-0,5,RMI Runt
>>>>>> ime]
>>>>>> 2009-11-09 11:19:28,046 DEBUG - AbstractHTTPDestination        -
>>>>>> Request
>>>>>> Headers: {connection=[Keep-Alive], Host=[localhost:8080],
>>>>>> Content-Length=[364], User-Agent=[Mozilla/4.0 (compatible; MSIE
>>>>>> 7.0;
>>>>>> Windows NT 5.1; Trident/4.0; GOSURF)], accept-encoding=[gzip
>>>>>> , deflate], Accept=[*/*], Cache-Control=[no-cache]}
>>>>>> 2009-11-09 11:19:28,046 DEBUG - PhaseInterceptorChain          -
>>>>>> Chain
>>>>>> org.apache.cxf.phase.PhaseInterceptorChain@735ad7 was creat
>>>>>> ed. Current flow:
>>>>>> receive [AttachmentInInterceptor]
>>>>>> post-stream [StaxInInterceptor]
>>>>>> read [ReadHeadersInterceptor]
>>>>>> pre-protocol [, MustUnderstandInterceptor, JbiJAASInterceptor]
>>>>>> unmarshal [JbiOperationInterceptor]
>>>>>> pre-invoke [JbiInWsdl1Interceptor, JbiInInterceptor]
>>>>>> invoke [JbiInvokerInterceptor]
>>>>>> post-invoke [JbiPostInvokerInterceptor, OutgoingChainInterceptor]
>>>>>>
>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>> Invoking
>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>> AttachmentInInterceptor@14d8c8
>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>> Invoking
>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>> StaxInInterceptor@a4480d
>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>> Invoking
>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>> .interceptor.ReadHeadersInterceptor@1766d9c
>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>> Invoking
>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>> .CxfBcConsumer$1@1b7715d
>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>> Invoking
>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>> .interceptor.MustUnderstandInterceptor@73a403
>>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>>> Invoking
>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>> .interceptors.JbiJAASInterceptor@ca7c93
>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>> Invoking
>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>> .interceptors.JbiOperationInterceptor@1626bf
>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>> Invoking
>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>> .interceptors.JbiInWsdl1Interceptor@49e885
>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>> Invoking
>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>> .interceptors.JbiInInterceptor@407909
>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>> Invoking
>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>> .CxfBcConsumer$JbiInvokerInterceptor@1b8a6af
>>>>>> 2009-11-09 11:19:28,140 DEBUG - CxfBcComponent                 -
>>>>>> Created
>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>> 2009-11-09 11:19:28,140 DEBUG - DeliveryChannelImpl            -
>>>>>> Send
>>>>>> ID:10.80.12.85-124d6ebc094-2:10 in DeliveryChannel{servicemi
>>>>>> x-cxf-bc}
>>>>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -
>>>>>> send
>>>>>> exchange with secure broker
>>>>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -
>>>>>> service
>>>>>> name :{http://www.hcsys.com/novaesb/}jms
>>>>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -
>>>>>> operation
>>>>>> name :{http://www.hcsys.com/novaesb/}createCustomer
>>>>>> 2009-11-09 11:19:28,140 DEBUG - SedaFlow                       -
>>>>>> Called
>>>>>> Flow
>>>>>> send
>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>> Invoking
>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>> .CxfBcConsumer$JbiPostInvokerInterceptor@1c76cab
>>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>>> Invoking
>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>> OutgoingChainInterceptor@1af691b
>>>>>> 2009-11-09 11:19:28,156 DEBUG - JettyHTTPDestination           -
>>>>>> Finished
>>>>>> servicing http request on thread: Thread[22434271@qtp0-0
>>>>>> ,5,RMI Runtime]
>>>>>> 2009-11-09 11:19:28,156 DEBUG - SedaQueue                      -
>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@45ac89 dequeu
>>>>>> ed exchange: InOnly[
>>>>>> id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>> status: Active
>>>>>> role: provider
>>>>>> service: {http://www.hcsys.com/novaesb/}jms
>>>>>> endpoint: provider
>>>>>> operation: {http://www.hcsys.com/novaesb/}createCustomer
>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>> xmlns:msg="htt
>>>>>> p://www.hcsys.com/novaesb/"
>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>> "
>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>> r">
>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>> ]
>>>>>> 2009-11-09 11:19:28,156 DEBUG - JmsComponent                   -
>>>>>> Received
>>>>>> exchange: status: Active, role: provider
>>>>>> 2009-11-09 11:19:28,156 DEBUG - JmsComponent                   -
>>>>>> Retrieved
>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>> 2009-11-09 11:19:28,156 DEBUG - DeliveryChannelImpl            -
>>>>>> Send
>>>>>> ID:10.80.12.85-124d6ebc094-2:10 in DeliveryChannel{servicemi
>>>>>> x-jms}
>>>>>> 2009-11-09 11:19:28,156 DEBUG - SecuredBroker                  -
>>>>>> send
>>>>>> exchange with secure broker
>>>>>> 2009-11-09 11:19:28,156 DEBUG - SedaFlow                       -
>>>>>> Called
>>>>>> Flow
>>>>>> send
>>>>>> 2009-11-09 11:19:28,156 DEBUG - MultiplexingConsumerProcessor  -
>>>>>> Received
>>>>>> jms message ActiveMQTextMessage {commandId = 17, respons
>>>>>> eRequired = true, messageId =
>>>>>> ID:8014ac188efd43a-4422-1257736227984-2:10:1:1:11,
>>>>>> originalDestination =
>>>>>> null, originalTransactionId
>>>>>> = null, producerId = ID:
>>>>>> 8014ac188efd43a-4422-1257736227984-2:10:1:1,
>>>>>> destination = queue://queue/A, transactionId = null, expirat
>>>>>> ion = 0, timestamp = 1257736768156, arrival = 0, brokerInTime =
>>>>>> 1257736768156, brokerOutTime = 1257736768156, correlationId = null
>>>>>> , replyTo = null, persistent = true, type = null, priority = 4,
>>>>>> groupID =
>>>>>> null, groupSequence = 0, targetConsumerId = null, compre
>>>>>> ssed = false, userID = null, content = null,  
>>>>>> marshalledProperties =
>>>>>> org.apache.activemq.util.ByteSequence@1713c03, dataStructure =
>>>>>> null, redeliveryCounter = 0, size = 0, properties =
>>>>>> {MimeContentType=text/xml;charset=UTF-8,
>>>>>> SoapAction=/{http://www.hcsys.com/no
>>>>>> vaesb/}createCustomer,
>>>>>> SOAPJMS_soapAction=/{http://www.hcsys.com/ 
>>>>>> novaesb/}createCustomer},
>>>>>> readOnlyProperties = true, readOnlyBody
>>>>>> = true, droppable = false, text = <?xml version='1.0'
>>>>>> encoding='UTF-8'?><jbi:me...jbi:message>}
>>>>>> 2009-11-09 11:19:28,171 DEBUG - MultiplexingConsumerProcessor  -
>>>>>> Handling
>>>>>> jms message ActiveMQTextMessage {commandId = 17, respons
>>>>>> eRequired = true, messageId =
>>>>>> ID:8014ac188efd43a-4422-1257736227984-2:10:1:1:11,
>>>>>> originalDestination =
>>>>>> null, originalTransactionId
>>>>>> = null, producerId = ID:
>>>>>> 8014ac188efd43a-4422-1257736227984-2:10:1:1,
>>>>>> destination = queue://queue/A, transactionId = null, expirat
>>>>>> ion = 0, timestamp = 1257736768156, arrival = 0, brokerInTime =
>>>>>> 1257736768156, brokerOutTime = 1257736768156, correlationId = null
>>>>>> , replyTo = null, persistent = true, type = null, priority = 4,
>>>>>> groupID =
>>>>>> null, groupSequence = 0, targetConsumerId = null, compre
>>>>>> ssed = false, userID = null, content = null,  
>>>>>> marshalledProperties =
>>>>>> org.apache.activemq.util.ByteSequence@1713c03, dataStructure =
>>>>>> null, redeliveryCounter = 0, size = 0, properties =
>>>>>> {MimeContentType=text/xml;charset=UTF-8,
>>>>>> SoapAction=/{http://www.hcsys.com/no
>>>>>> vaesb/}createCustomer,
>>>>>> SOAPJMS_soapAction=/{http://www.hcsys.com/ 
>>>>>> novaesb/}createCustomer},
>>>>>> readOnlyProperties = true, readOnlyBody
>>>>>> = true, droppable = false, text = <?xml version='1.0'
>>>>>> encoding='UTF-8'?><jbi:me...jbi:message>}
>>>>>> 2009-11-09 11:19:28,171 DEBUG - SedaQueue                      -
>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@89e163 dequeu
>>>>>> ed exchange: InOnly[
>>>>>> id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>> status: Done
>>>>>> role: consumer
>>>>>> service: {http://www.hcsys.com/novaesb/}jms
>>>>>> endpoint: provider
>>>>>> operation: {http://www.hcsys.com/novaesb/}createCustomer
>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>> xmlns:msg="htt
>>>>>> p://www.hcsys.com/novaesb/"
>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>> "
>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>> r">
>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>> ]
>>>>>> 2009-11-09 11:19:28,171 DEBUG - JmsComponent                   -
>>>>>> Created
>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>> 2009-11-09 11:19:28,171 DEBUG - CxfBcComponent                 -
>>>>>> Received
>>>>>> exchange: status: Done, role: consumer
>>>>>> 2009-11-09 11:19:28,171 DEBUG - DeliveryChannelImpl            -
>>>>>> Send
>>>>>> ID:10.80.12.85-124d6ebc094-4:10 in DeliveryChannel{servicemi
>>>>>> x-jms}
>>>>>> 2009-11-09 11:19:28,171 DEBUG - CxfBcComponent                 -
>>>>>> Retrieved
>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>>>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -
>>>>>> send
>>>>>> exchange with secure broker
>>>>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -
>>>>>> service
>>>>>> name :{http://geneva.nova.com/customer}CustomerInImplServ
>>>>>> ice
>>>>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -
>>>>>> operation
>>>>>> name :{http://geneva.nova.com/customer}createCustomer
>>>>>> 2009-11-09 11:19:28,171 DEBUG - SedaFlow                       -
>>>>>> Called
>>>>>> Flow
>>>>>> send
>>>>>> 2009-11-09 11:19:28,187 DEBUG - SedaQueue                      -
>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@4437d3 dequeu
>>>>>> ed exchange: InOnly[
>>>>>> id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>> status: Active
>>>>>> role: provider
>>>>>> service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>>> endpoint: CustomerInGenevaPortTypePort
>>>>>> operation: {http://geneva.nova.com/customer}createCustomer
>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>> xmlns:msg="htt
>>>>>> p://www.hcsys.com/novaesb/"
>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>> "
>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>> r">
>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>> ]
>>>>>> 2009-11-09 11:19:28,187 DEBUG - CxfBcComponent                 -
>>>>>> Received
>>>>>> exchange: status: Active, role: provider
>>>>>> 2009-11-09 11:19:28,187 DEBUG - CxfBcComponent                 -
>>>>>> Retrieved
>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>> Adding
>>>>>> interceptor org.apache.servicemix.cxfbc.interceptors.JbiOu
>>>>>> tInterceptor@dd6a50 to phase pre-stream
>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>> Adding
>>>>>> interceptor org.apache.servicemix.cxfbc.interceptors.JbiOu
>>>>>> tWsdl1Interceptor@6ed9d1 to phase marshal
>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>> Adding
>>>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapPr
>>>>>> eProtocolOutInterceptor@19e4f8b to phase post-logical
>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>> Adding
>>>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapOu
>>>>>> tInterceptor@782f81 to phase write
>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>> Adding
>>>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapAc
>>>>>> tionOutInterceptor@76df38 to phase post-logical
>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>> Adding
>>>>>> interceptor org.apache.cxf.interceptor.StaxOutInterceptor@
>>>>>> 38df00 to phase pre-stream
>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>> Chain
>>>>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was crea
>>>>>> ted. Current flow:
>>>>>> post-logical [SoapPreProtocolOutInterceptor,
>>>>>> SoapActionOutInterceptor]
>>>>>> pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>>>> write [SoapOutInterceptor]
>>>>>> marshal [JbiOutWsdl1Interceptor]
>>>>>>
>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>> Invoking
>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>> .interceptor.SoapPreProtocolOutInterceptor@19e4f8b
>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>> Invoking
>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>> .interceptor.SoapActionOutInterceptor@76df38
>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>> Invoking
>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>> .interceptors.JbiOutInterceptor@dd6a50
>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>> Invoking
>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>> StaxOutInterceptor@38df00
>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>> Adding
>>>>>> interceptor org.apache.cxf.interceptor.StaxOutInterceptor$
>>>>>> StaxOutEndingInterceptor@1073a2e to phase pre-stream-ending
>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>> Chain
>>>>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was modi
>>>>>> fied. Current flow:
>>>>>> post-logical [SoapPreProtocolOutInterceptor,
>>>>>> SoapActionOutInterceptor]
>>>>>> pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>>>> write [SoapOutInterceptor]
>>>>>> marshal [JbiOutWsdl1Interceptor]
>>>>>> pre-stream-ending [StaxOutEndingInterceptor]
>>>>>>
>>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>>> Invoking
>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>> .interceptor.SoapOutInterceptor@782f81
>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>> Adding
>>>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapOu
>>>>>> tInterceptor$SoapOutEndingInterceptor@17cb4ff to phase write- 
>>>>>> ending
>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>> Chain
>>>>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was modi
>>>>>> fied. Current flow:
>>>>>> post-logical [SoapPreProtocolOutInterceptor,
>>>>>> SoapActionOutInterceptor]
>>>>>> pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>>>> write [SoapOutInterceptor]
>>>>>> marshal [JbiOutWsdl1Interceptor]
>>>>>> write-ending [SoapOutEndingInterceptor]
>>>>>> pre-stream-ending [StaxOutEndingInterceptor]
>>>>>>
>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>> Invoking
>>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>>> .interceptors.JbiOutWsdl1Interceptor@6ed9d1
>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>> Invoking
>>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>>> .interceptor.SoapOutInterceptor$SoapOutEndingInterceptor@17cb4ff
>>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>>> Invoking
>>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>>> StaxOutInterceptor$StaxOutEndingInterceptor@1073a2e
>>>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>>>> Sending
>>>>>> POST Message with Headers to http://10.80.12.100:8080/Gen
>>>>>> evaESB/services/CustomerAccount Conduit
>>>>>> :{http://geneva.nova.com/
>>>>>> customer}CustomerInGenevaPortTypePort.http-conduit
>>>>>> Content-Type: text/xml; charset=UTF-8
>>>>>>
>>>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>>>> SOAPAction:
>>>>>> ""
>>>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>>>> Accept:
>>>>>> *
>>>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>>>> No Trust
>>>>>> Decider for Conduit '{http://geneva.nova.com/customer}Cu
>>>>>> stomerInGenevaPortTypePort.http-conduit'. An afirmative Trust
>>>>>> Decision is
>>>>>> assumed.
>>>>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    -
>>>>>> Response
>>>>>> Code: 404 Conduit: {http://geneva.nova.com/customer}Cust
>>>>>> omerInGenevaPortTypePort.http-conduit
>>>>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    -
>>>>>> Content
>>>>>> length: 952
>>>>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    -
>>>>>> Header
>>>>>> fields:
>>>>>>   null: [HTTP/1.1 404 Not Found]
>>>>>>   Date: [Mon, 09 Nov 2009 03:19:04 GMT]
>>>>>>   Content-Length: [952]
>>>>>>   Content-Type: [text/html;charset=utf-8]
>>>>>>   Server: [Apache-Coyote/1.1]
>>>>>>
>>>>>> 2009-11-09 11:19:28,265 ERROR - CxfBcComponent                 -
>>>>>> Error
>>>>>> processing exchange InOnly[
>>>>>> id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>> status: Active
>>>>>> role: provider
>>>>>> service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>>> endpoint: CustomerInGenevaPortTypePort
>>>>>> operation: {http://geneva.nova.com/customer}createCustomer
>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>> xmlns:msg="htt
>>>>>> p://www.hcsys.com/novaesb/"
>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>> "
>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>> r">
>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>> ]
>>>>>> javax.jbi.messaging.MessagingException: Fault not supported
>>>>>>       at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix
>>>>>> .jbi
>>>>>> .messaging 
>>>>>> .MessageExchangeImpl.setMessage(MessageExchangeImpl.java:
>>>>>> 366)
>>>>>>       at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix
>>>>>> .jbi
>>>>>> .messaging.MessageExchangeImpl.setFault(MessageExchangeImpl.java:
>>>>>> 290)
>>>>>>       at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix.cxfbc.CxfBcProvider.faultProcess(CxfBcProvider.java: 
>>>>>> 277)
>>>>>>       at
>>>>>> org
>>>>>> .apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:
>>>>>> 261)
>>>>>>       at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix
>>>>>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>>>>>       at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix
>>>>>> .common 
>>>>>> .AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:
>>>>>> 581)
>>>>>>       at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix
>>>>>> .common
>>>>>> .AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>>>>>>       at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix
>>>>>> .common
>>>>>> .SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:
>>>>>> 60)
>>>>>>       at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix
>>>>>> .jbi
>>>>>> .messaging
>>>>>> .DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>>>>>>       at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:
>>>>>> 172)
>>>>>>       at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java: 
>>>>>> 168)
>>>>>>       at
>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue
>>>>>> $1.run(SedaQueue.java:134)
>>>>>>       at
>>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>>> $Worker.runTask(ThreadPoolExecutor.java:886)
>>>>>>       at
>>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>>> $Worker.run(ThreadPoolExecutor.java:908)
>>>>>>       at java.lang.Thread.run(Thread.java:619)
>>>>>> 2009-11-09 11:19:28,296 DEBUG - DeliveryChannelImpl            -
>>>>>> Send
>>>>>> ID:10.80.12.85-124d6ebc094-4:10 in DeliveryChannel{servicemi
>>>>>> x-cxf-bc}
>>>>>> 2009-11-09 11:19:28,296 DEBUG - SecuredBroker                  -
>>>>>> send
>>>>>> exchange with secure broker
>>>>>> 2009-11-09 11:19:28,296 DEBUG - SedaFlow                       -
>>>>>> Called
>>>>>> Flow
>>>>>> send
>>>>>> 2009-11-09 11:19:28,296 DEBUG - SedaQueue                      -
>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@247262 dequeu
>>>>>> ed exchange: InOnly[
>>>>>> id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>> status: Error
>>>>>> role: consumer
>>>>>> service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>>> endpoint: CustomerInGenevaPortTypePort
>>>>>> operation: {http://geneva.nova.com/customer}createCustomer
>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>> xmlns:msg="htt
>>>>>> p://www.hcsys.com/novaesb/"
>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>> "
>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>> r">
>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>> error: javax.jbi.messaging.MessagingException: Fault not supported
>>>>>> ]
>>>>>> 2009-11-09 11:19:28,296 DEBUG - JmsComponent                   -
>>>>>> Received
>>>>>> exchange: status: Error, role: consumer
>>>>>> 2009-11-09 11:19:28,296 DEBUG - JmsComponent                   -
>>>>>> Retrieved
>>>>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>> 2009-11-09 11:19:28,328 ERROR - JmsComponent                   -
>>>>>> Error
>>>>>> processing exchange InOnly[
>>>>>> id: ID:10.80.12.85-124d6ebc094-4:10
>>>>>> status: Error
>>>>>> role: consumer
>>>>>> service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>>> endpoint: CustomerInGenevaPortTypePort
>>>>>> operation: {http://geneva.nova.com/customer}createCustomer
>>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>>> xmlns:msg="htt
>>>>>> p://www.hcsys.com/novaesb/"
>>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>>> "
>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>>> e="createCustomer" type="msg:createCustomer"
>>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>>> r">
>>>>>>     <pns:value>aaaa</pns:value>
>>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>>> error: javax.jbi.messaging.MessagingException: Fault not supported
>>>>>> ]
>>>>>> java.lang.UnsupportedOperationException: A destination must be
>>>>>> specified.
>>>>>>       at
>>>>>> org
>>>>>> .apache
>>>>>> .activemq
>>>>>> .ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:195)
>>>>>>       at
>>>>>> org.apache.activemq.pool.PooledProducer.send(PooledProducer.java: 
>>>>>> 74)
>>>>>>       at
>>>>>> org.apache.activemq.pool.PooledProducer.send(PooledProducer.java: 
>>>>>> 59)
>>>>>>       at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix
>>>>>> .jms
>>>>>> .multiplexing
>>>>>> .MultiplexingConsumerProcessor
>>>>>> .process(MultiplexingConsumerProcessor.java:126)
>>>>>>       at
>>>>>> org.apache.servicemix.soap.SoapEndpoint.process(SoapEndpoint.java:
>>>>>> 368)
>>>>>>       at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix
>>>>>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>>>>>       at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix
>>>>>> .common 
>>>>>> .AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:
>>>>>> 598)
>>>>>>       at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix
>>>>>> .common
>>>>>> .AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>>>>>>       at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix
>>>>>> .common
>>>>>> .SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:
>>>>>> 60)
>>>>>>       at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix
>>>>>> .jbi
>>>>>> .messaging
>>>>>> .DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>>>>>>       at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:
>>>>>> 172)
>>>>>>       at
>>>>>> org
>>>>>> .apache
>>>>>> .servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java: 
>>>>>> 168)
>>>>>>       at
>>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue
>>>>>> $1.run(SedaQueue.java:134)
>>>>>>       at
>>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>>> $Worker.runTask(ThreadPoolExecutor.java:886)
>>>>>>       at
>>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>>> $Worker.run(ThreadPoolExecutor.java:908)
>>>>>>       at java.lang.Thread.run(Thread.java:619)
>>>>>>
>>>>>>
>>>>>> =======================log end==========================
>>>>>> --
>>>>>> View this message in context:
>>>>>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26260776.html
>>>>>> Sent from the ServiceMix - User mailing list archive at  
>>>>>> Nabble.com.
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> -----
>>>>> ---
>>>>> Gert Vanthienen
>>>>> http://gertvanthienen.blogspot.com
>>>>>
>>>>
>>>> -- 
>>>> View this message in context:
>>>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26297802.html
>>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>>
>>>
>>>
>>> -- 
>>> Freeman Fang
>>> ------------------------
>>> Open Source SOA: http://fusesource.com
>>>
>>>
>>>
>>
>> -- 
>> View this message in context:
>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26312831.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
> 
> 
> -- 
> Freeman Fang
> ------------------------
> Open Source SOA: http://fusesource.com
> 
> 
> 

-- 
View this message in context: http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26314682.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: When external service is shut down, message don't rollback to jms queue.

Posted by Freeman Fang <fr...@gmail.com>.
Hi Colin,

Did you ever test the scenario when external service is shutdown with  
current configuration? I don't think fault message can't  send back to  
jms consumer endpoint for your current configuration
 From your first email, when external service is shutdown, you get  
exception like

javax.jbi.messaging.MessagingException: Fault not supported
        at
org 
.apache 
.servicemix 
.jbi.messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java: 
366)
        at
org 
.apache 
.servicemix 
.jbi.messaging.MessageExchangeImpl.setFault(MessageExchangeImpl.java: 
290)
        at
org 
.apache.servicemix.cxfbc.CxfBcProvider.faultProcess(CxfBcProvider.java: 
277)
        at
org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java: 
261)
        at
org 
.apache 
.servicemix 
.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
        at
org 
.apache 
.servicemix 
.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
        at
org 
.apache 
.servicemix 
.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java: 
535)
        at

That's caused by your MEP is InOnly, so you can't set Fault to the  
MessageExchange.  If you use RobustInOnly now, when external service  
is shutdown,  as same as you use InOnly, cxf bc provide can get a  
RuntimeException(thrown by underlying transport) and then set as  
faulut to MessageExchange(now it's ok as it's  no InOnly now), which  
can trigger rollback on jms consumer endpoint. Could you append the  
log when external service is shutdown?


And I want to get more details about your workflow, as you mentioned,  
your flow looks like
[external client]--->cxf-bc-consumer--->jms-provider--->jms queue

jms queue--->jms-consumer--->cxf-bc-provider--->[external service]

What the transport your external client and external service use? Http  
or JMS?

Freeman

On 2009-11-12, at 上午11:29, colin.chi wrote:

>
> Hi FF,
>
> Thanks for you reply.
>
> I have tested according to you suggestion, and the message is  
> rollbacked to
> jms consumer, but this test scene is that external service is running
> normal.
>
> The exception of rollback as follows:
> ==========================================================
> 2009-11-12 10:34:24,921 DEBUG - SedaQueue                      -
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1425e17 deque
> ued exchange: RobustInOnly[
>  id: ID:10.80.12.85-124e63b1989-2:2
>  status: Done
>  role: consumer
>  service: {http://geneva.nova.com/customer}CustomerInImplService
>  endpoint: CustomerInGenevaPortTypePort
>  operation: {http://geneva.nova.com/customer}createCustomer
>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"  
> xmlns:msg="htt
> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema 
> "
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
> e="createCustomer" type="msg:createCustomer"
> version="1.0"><jbi:part><pns:createCustomer
> xmlns:pns="http://geneva.nova.com/custome
> r"><pns:value>5555</pns:value></pns:createCustomer></jbi:part></ 
> jbi:message>
> ]
> 2009-11-12 10:34:24,953 DEBUG - DeliveryChannelImpl            -  
> Notifying
> exchange ID:10.80.12.85-124e63b1989-2:2(1e67cdb) in Del
> iveryChannel{servicemix-jms} from processInboundSynchronousExchange
> 2009-11-12 10:34:24,953 DEBUG - DeliveryChannelImpl            -  
> Notified:
> ID:10.80.12.85-124e63b1989-2:2(1e67cdb) in DeliveryChan
> nel{servicemix-jms} from sendSync
> 2009-11-12 10:34:24,968 DEBUG - DefaultMessageListenerContainer -  
> Initiating
> transaction rollback on application exception
> javax.jms.JMSException: Error sending JBI exchange
>        at
> org 
> .apache 
> .servicemix 
> .jms 
> .endpoints 
> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:575)
>        at
> org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint 
> $1.onMessage(JmsConsumerEndpoint.java:505)
>        at
> org 
> .springframework 
> .jms 
> .listener 
> .AbstractMessageListenerContainer 
> .doInvokeListener(AbstractMessageListenerContainer.jav
> a:518)
>        at
> org 
> .springframework 
> .jms 
> .listener 
> .AbstractMessageListenerContainer 
> .invokeListener(AbstractMessageListenerContainer.java:
> 479)
>        at
> org 
> .springframework 
> .jms 
> .listener 
> .AbstractMessageListenerContainer 
> .doExecuteListener(AbstractMessageListenerContainer.ja
> va:451)
>        at
> org 
> .springframework 
> .jms 
> .listener 
> .AbstractPollingMessageListenerContainer 
> .doReceiveAndExecute(AbstractPollingMessageList
> enerContainer.java:323)
>        at
> org 
> .springframework 
> .jms 
> .listener 
> .AbstractPollingMessageListenerContainer 
> .receiveAndExecute(AbstractPollingMessageListen
> erContainer.java:241)
>        at
> org.springframework.jms.listener.DefaultMessageListenerContainer 
> $AsyncMessageListenerInvoker.invokeListener(DefaultMess
> ageListenerContainer.java:982)
>        at
> org.springframework.jms.listener.DefaultMessageListenerContainer 
> $AsyncMessageListenerInvoker.executeOngoingLoop(Default
> MessageListenerContainer.java:974)
>        at
> org.springframework.jms.listener.DefaultMessageListenerContainer 
> $AsyncMessageListenerInvoker.run(DefaultMessageListener
> Container.java:876)
>        at java.lang.Thread.run(Thread.java:619)
> Caused by: java.lang.UnsupportedOperationException: A destination  
> must be
> specified.
>        at
> org 
> .apache 
> .activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java: 
> 195)
>        at
> org 
> .apache 
> .activemq 
> .ActiveMQMessageProducerSupport 
> .send(ActiveMQMessageProducerSupport.java:241)
>        at
> org 
> .apache 
> .servicemix 
> .jms 
> .endpoints 
> .AbstractConsumerEndpoint.send(AbstractConsumerEndpoint.java:526)
>        at
> org 
> .apache 
> .servicemix 
> .jms 
> .endpoints 
> .AbstractConsumerEndpoint 
> .processExchange(AbstractConsumerEndpoint.java:485)
>        at
> org 
> .apache 
> .servicemix 
> .jms 
> .endpoints 
> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:552)
>        ... 10 more
> 2009-11-12 10:34:25,031 DEBUG - ActiveMQSession                -
> ID:8014ac188efd43a-3939-1257993081718-2:54:1 Transaction Rollback
>
> 2009-11-12 10:34:25,031 DEBUG - DefaultMessageListenerContainer -  
> Rolling
> back transaction because of listener exception thrown: j
> avax.jms.JMSException: Error sending JBI exchange
> 2009-11-12 10:34:25,031 DEBUG - AMQMessageStore                -  
> Journalled
> message add for: ID:8014ac188efd43a-3939-1257993081718
> -2:10:1:1:1, at: offset = 1236, file = 1, size = 969, type = 1
> 2009-11-12 10:34:25,031 WARN  - DefaultMessageListenerContainer -  
> Execution
> of JMS message listener failed
> javax.jms.JMSException: Error sending JBI exchange
>        at
> org 
> .apache 
> .servicemix 
> .jms 
> .endpoints 
> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:575)
>        at
> org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint 
> $1.onMessage(JmsConsumerEndpoint.java:505)
>        at
> org 
> .springframework 
> .jms 
> .listener 
> .AbstractMessageListenerContainer 
> .doInvokeListener(AbstractMessageListenerContainer.jav
> a:518)
>        at
> org 
> .springframework 
> .jms 
> .listener 
> .AbstractMessageListenerContainer 
> .invokeListener(AbstractMessageListenerContainer.java:
> 479)
>        at
> org 
> .springframework 
> .jms 
> .listener 
> .AbstractMessageListenerContainer 
> .doExecuteListener(AbstractMessageListenerContainer.ja
> va:451)
>        at
> org 
> .springframework 
> .jms 
> .listener 
> .AbstractPollingMessageListenerContainer 
> .doReceiveAndExecute(AbstractPollingMessageList
> enerContainer.java:323)
>        at
> org 
> .springframework 
> .jms 
> .listener 
> .AbstractPollingMessageListenerContainer 
> .receiveAndExecute(AbstractPollingMessageListen
> erContainer.java:241)
>        at
> org.springframework.jms.listener.DefaultMessageListenerContainer 
> $AsyncMessageListenerInvoker.invokeListener(DefaultMess
> ageListenerContainer.java:982)
>        at
> org.springframework.jms.listener.DefaultMessageListenerContainer 
> $AsyncMessageListenerInvoker.executeOngoingLoop(Default
> MessageListenerContainer.java:974)
>        at
> org.springframework.jms.listener.DefaultMessageListenerContainer 
> $AsyncMessageListenerInvoker.run(DefaultMessageListener
> Container.java:876)
>        at java.lang.Thread.run(Thread.java:619)
> Caused by: java.lang.UnsupportedOperationException: A destination  
> must be
> specified.
>        at
> org 
> .apache 
> .activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java: 
> 195)
>        at
> org 
> .apache 
> .activemq 
> .ActiveMQMessageProducerSupport 
> .send(ActiveMQMessageProducerSupport.java:241)
>        at
> org 
> .apache 
> .servicemix 
> .jms 
> .endpoints 
> .AbstractConsumerEndpoint.send(AbstractConsumerEndpoint.java:526)
>        at
> org 
> .apache 
> .servicemix 
> .jms 
> .endpoints 
> .AbstractConsumerEndpoint 
> .processExchange(AbstractConsumerEndpoint.java:485)
>        at
> org 
> .apache 
> .servicemix 
> .jms 
> .endpoints 
> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:552)
>        ... 10 more
> 2009-11-12 10:34:25,109 DEBUG - DefaultMessageListenerContainer -  
> Initiating
> transaction rollback on listener exception
> javax.jms.JMSException: Error sending JBI exchange
>        at
> org 
> .apache 
> .servicemix 
> .jms 
> .endpoints 
> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:575)
>        at
> org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint 
> $1.onMessage(JmsConsumerEndpoint.java:505)
>        at
> org 
> .springframework 
> .jms 
> .listener 
> .AbstractMessageListenerContainer 
> .doInvokeListener(AbstractMessageListenerContainer.jav
> a:518)
>        at
> org 
> .springframework 
> .jms 
> .listener 
> .AbstractMessageListenerContainer 
> .invokeListener(AbstractMessageListenerContainer.java:
> 479)
>        at
> org 
> .springframework 
> .jms 
> .listener 
> .AbstractMessageListenerContainer 
> .doExecuteListener(AbstractMessageListenerContainer.ja
> va:451)
>        at
> org 
> .springframework 
> .jms 
> .listener 
> .AbstractPollingMessageListenerContainer 
> .doReceiveAndExecute(AbstractPollingMessageList
> enerContainer.java:323)
>        at
> org 
> .springframework 
> .jms 
> .listener 
> .AbstractPollingMessageListenerContainer 
> .receiveAndExecute(AbstractPollingMessageListen
> erContainer.java:241)
>        at
> org.springframework.jms.listener.DefaultMessageListenerContainer 
> $AsyncMessageListenerInvoker.invokeListener(DefaultMess
> ageListenerContainer.java:982)
>        at
> org.springframework.jms.listener.DefaultMessageListenerContainer 
> $AsyncMessageListenerInvoker.executeOngoingLoop(Default
> MessageListenerContainer.java:974)
>        at
> org.springframework.jms.listener.DefaultMessageListenerContainer 
> $AsyncMessageListenerInvoker.run(DefaultMessageListener
> Container.java:876)
>        at java.lang.Thread.run(Thread.java:619)
> Caused by: java.lang.UnsupportedOperationException: A destination  
> must be
> specified.
>        at
> org 
> .apache 
> .activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java: 
> 195)
>        at
> org 
> .apache 
> .activemq 
> .ActiveMQMessageProducerSupport 
> .send(ActiveMQMessageProducerSupport.java:241)
>        at
> org 
> .apache 
> .servicemix 
> .jms 
> .endpoints 
> .AbstractConsumerEndpoint.send(AbstractConsumerEndpoint.java:526)
>        at
> org 
> .apache 
> .servicemix 
> .jms 
> .endpoints 
> .AbstractConsumerEndpoint 
> .processExchange(AbstractConsumerEndpoint.java:485)
>        at
> org 
> .apache 
> .servicemix 
> .jms 
> .endpoints 
> .AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:552)
>        ... 10 more
> 2009-11-12 10:34:25,171 DEBUG - JmsTransactionManager          -  
> Initiating
> transaction rollback
> 2009-11-12 10:34:25,171 DEBUG - JmsTransactionManager          -  
> Rolling
> back JMS transaction on Session [ActiveMQSession {id=ID:8
> 014ac188efd43a-3939-1257993081718-2:55:1,started=false}]
> 2009-11-12 10:34:25,171 DEBUG - ActiveMQSession                -
> ID:8014ac188efd43a-3939-1257993081718-2:55:1 Transaction Rollback
> =====================================================
>
>
> Freeman Fang wrote:
>>
>> Hi Colin,
>>
>> I think the problem actually come from the MEP (message exchange
>> pattern) of your MessageChange is InOnly, so the fault message can't
>> go back to JmsConsumer endpoint, which means the JmsConsumer endpoint
>> have no chance to do the rollback.
>>
>>
>> Freeman
>>
>> On 2009-11-11, at 下午4:41, colin.chi wrote:
>>
>>>
>>> Hi Gert,
>>>
>>> Thanks for you reply.
>>>
>>> And I see some logs as following:
>>>
>>> 2009-11-09 11:19:28,171 DEBUG - SedaQueue                      -
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@89e163 dequeu
>>> ed exchange: InOnly[
>>> id: ID:10.80.12.85-124d6ebc094-2:10
>>> status: Done
>>> role: consumer
>>> service: {http://www.hcsys.com/novaesb/}jms
>>> endpoint: provider
>>> operation: {http://www.hcsys.com/novaesb/}createCustomer
>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>> xmlns:msg="htt
>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>> "
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>> e="createCustomer" type="msg:createCustomer"
>>> version="1.0"><jbi:part><pns:createCustomer
>>> xmlns:pns="http://geneva.nova.com/custome
>>> r">
>>>     <pns:value>aaaa</pns:value>
>>>   </pns:createCustomer></jbi:part></jbi:message>
>>> ]
>>>
>>> This means the message is received and processed(send to cxf- 
>>> provider
>>> endpoint) successfully by jms consumer endpoint.
>>>
>>> so when cxf-provider endpoint catch an exception or an error, the
>>> message
>>> can't be  rollbacked to jms queue where jms consumer endpoint  
>>> listen.
>>>
>>> I think this case can not be achieved in ServiceMix.
>>>
>>> If I am wrong, can you tell me how can I finish this case?
>>>
>>> thanks and regards.
>>>
>>>
>>> Gert Vanthienen wrote:
>>>>
>>>> L.S.,
>>>>
>>>> One option would be to enable transactions on the jms consumer
>>>> endpoint (transacted="jms").  Another option would be to get the  
>>>> JMS
>>>> client to acknowledge the message, like this:
>>>>
>>>>   <jms:consumer ....
>>>>                 sessionAcknowledgeMode="#AcknowledgeMode"/>
>>>>
>>>>    <util:constant id="AcknowledgeMode"
>>>> static-field="javax.jms.Session.CLIENT_ACKNOWLEDGE"/>
>>>>
>>>> Regards,
>>>>
>>>> Gert Vanthienen
>>>> ------------------------
>>>> Open Source SOA: http://fusesource.com
>>>> Blog: http://gertvanthienen.blogspot.com/
>>>>
>>>>
>>>>
>>>> 2009/11/9 colin.chi <ib...@hotmail.com>:
>>>>>
>>>>> work flow as follow:
>>>>>
>>>>> [external client]--->cxf-bc-consumer--->jms-provider--->jms queue
>>>>>
>>>>> jms queue--->jms-consumer--->cxf-bc-provider--->[external service]
>>>>>
>>>>> when external service is shut down, message don't rollback to jms
>>>>> queue
>>>>> and
>>>>> throw exception.
>>>>>
>>>>> how to config jms consumer and cxf bc provider to do this case?
>>>>>
>>>>> =======================log begin==========================
>>>>>
>>>>> 2009-11-09 11:19:28,046 DEBUG - JettyHTTPDestination           -
>>>>> Service
>>>>> http request on thread: Thread[22434271@qtp0-0,5,RMI Runt
>>>>> ime]
>>>>> 2009-11-09 11:19:28,046 DEBUG - AbstractHTTPDestination        -
>>>>> Request
>>>>> Headers: {connection=[Keep-Alive], Host=[localhost:8080],
>>>>> Content-Length=[364], User-Agent=[Mozilla/4.0 (compatible; MSIE
>>>>> 7.0;
>>>>> Windows NT 5.1; Trident/4.0; GOSURF)], accept-encoding=[gzip
>>>>> , deflate], Accept=[*/*], Cache-Control=[no-cache]}
>>>>> 2009-11-09 11:19:28,046 DEBUG - PhaseInterceptorChain          -
>>>>> Chain
>>>>> org.apache.cxf.phase.PhaseInterceptorChain@735ad7 was creat
>>>>> ed. Current flow:
>>>>> receive [AttachmentInInterceptor]
>>>>> post-stream [StaxInInterceptor]
>>>>> read [ReadHeadersInterceptor]
>>>>> pre-protocol [, MustUnderstandInterceptor, JbiJAASInterceptor]
>>>>> unmarshal [JbiOperationInterceptor]
>>>>> pre-invoke [JbiInWsdl1Interceptor, JbiInInterceptor]
>>>>> invoke [JbiInvokerInterceptor]
>>>>> post-invoke [JbiPostInvokerInterceptor, OutgoingChainInterceptor]
>>>>>
>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>> Invoking
>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>> AttachmentInInterceptor@14d8c8
>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>> Invoking
>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>> StaxInInterceptor@a4480d
>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>> Invoking
>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>> .interceptor.ReadHeadersInterceptor@1766d9c
>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>> Invoking
>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>> .CxfBcConsumer$1@1b7715d
>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>> Invoking
>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>> .interceptor.MustUnderstandInterceptor@73a403
>>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -
>>>>> Invoking
>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>> .interceptors.JbiJAASInterceptor@ca7c93
>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>> Invoking
>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>> .interceptors.JbiOperationInterceptor@1626bf
>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>> Invoking
>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>> .interceptors.JbiInWsdl1Interceptor@49e885
>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>> Invoking
>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>> .interceptors.JbiInInterceptor@407909
>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>> Invoking
>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>> .CxfBcConsumer$JbiInvokerInterceptor@1b8a6af
>>>>> 2009-11-09 11:19:28,140 DEBUG - CxfBcComponent                 -
>>>>> Created
>>>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>>>> 2009-11-09 11:19:28,140 DEBUG - DeliveryChannelImpl            -
>>>>> Send
>>>>> ID:10.80.12.85-124d6ebc094-2:10 in DeliveryChannel{servicemi
>>>>> x-cxf-bc}
>>>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -
>>>>> send
>>>>> exchange with secure broker
>>>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -
>>>>> service
>>>>> name :{http://www.hcsys.com/novaesb/}jms
>>>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -
>>>>> operation
>>>>> name :{http://www.hcsys.com/novaesb/}createCustomer
>>>>> 2009-11-09 11:19:28,140 DEBUG - SedaFlow                       -
>>>>> Called
>>>>> Flow
>>>>> send
>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>> Invoking
>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>> .CxfBcConsumer$JbiPostInvokerInterceptor@1c76cab
>>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -
>>>>> Invoking
>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>> OutgoingChainInterceptor@1af691b
>>>>> 2009-11-09 11:19:28,156 DEBUG - JettyHTTPDestination           -
>>>>> Finished
>>>>> servicing http request on thread: Thread[22434271@qtp0-0
>>>>> ,5,RMI Runtime]
>>>>> 2009-11-09 11:19:28,156 DEBUG - SedaQueue                      -
>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@45ac89 dequeu
>>>>> ed exchange: InOnly[
>>>>> id: ID:10.80.12.85-124d6ebc094-2:10
>>>>> status: Active
>>>>> role: provider
>>>>> service: {http://www.hcsys.com/novaesb/}jms
>>>>> endpoint: provider
>>>>> operation: {http://www.hcsys.com/novaesb/}createCustomer
>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>> xmlns:msg="htt
>>>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>> "
>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>> e="createCustomer" type="msg:createCustomer"
>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>> r">
>>>>>     <pns:value>aaaa</pns:value>
>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>> ]
>>>>> 2009-11-09 11:19:28,156 DEBUG - JmsComponent                   -
>>>>> Received
>>>>> exchange: status: Active, role: provider
>>>>> 2009-11-09 11:19:28,156 DEBUG - JmsComponent                   -
>>>>> Retrieved
>>>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>>>> 2009-11-09 11:19:28,156 DEBUG - DeliveryChannelImpl            -
>>>>> Send
>>>>> ID:10.80.12.85-124d6ebc094-2:10 in DeliveryChannel{servicemi
>>>>> x-jms}
>>>>> 2009-11-09 11:19:28,156 DEBUG - SecuredBroker                  -
>>>>> send
>>>>> exchange with secure broker
>>>>> 2009-11-09 11:19:28,156 DEBUG - SedaFlow                       -
>>>>> Called
>>>>> Flow
>>>>> send
>>>>> 2009-11-09 11:19:28,156 DEBUG - MultiplexingConsumerProcessor  -
>>>>> Received
>>>>> jms message ActiveMQTextMessage {commandId = 17, respons
>>>>> eRequired = true, messageId =
>>>>> ID:8014ac188efd43a-4422-1257736227984-2:10:1:1:11,
>>>>> originalDestination =
>>>>> null, originalTransactionId
>>>>> = null, producerId = ID:
>>>>> 8014ac188efd43a-4422-1257736227984-2:10:1:1,
>>>>> destination = queue://queue/A, transactionId = null, expirat
>>>>> ion = 0, timestamp = 1257736768156, arrival = 0, brokerInTime =
>>>>> 1257736768156, brokerOutTime = 1257736768156, correlationId = null
>>>>> , replyTo = null, persistent = true, type = null, priority = 4,
>>>>> groupID =
>>>>> null, groupSequence = 0, targetConsumerId = null, compre
>>>>> ssed = false, userID = null, content = null,  
>>>>> marshalledProperties =
>>>>> org.apache.activemq.util.ByteSequence@1713c03, dataStructure =
>>>>> null, redeliveryCounter = 0, size = 0, properties =
>>>>> {MimeContentType=text/xml;charset=UTF-8,
>>>>> SoapAction=/{http://www.hcsys.com/no
>>>>> vaesb/}createCustomer,
>>>>> SOAPJMS_soapAction=/{http://www.hcsys.com/ 
>>>>> novaesb/}createCustomer},
>>>>> readOnlyProperties = true, readOnlyBody
>>>>> = true, droppable = false, text = <?xml version='1.0'
>>>>> encoding='UTF-8'?><jbi:me...jbi:message>}
>>>>> 2009-11-09 11:19:28,171 DEBUG - MultiplexingConsumerProcessor  -
>>>>> Handling
>>>>> jms message ActiveMQTextMessage {commandId = 17, respons
>>>>> eRequired = true, messageId =
>>>>> ID:8014ac188efd43a-4422-1257736227984-2:10:1:1:11,
>>>>> originalDestination =
>>>>> null, originalTransactionId
>>>>> = null, producerId = ID:
>>>>> 8014ac188efd43a-4422-1257736227984-2:10:1:1,
>>>>> destination = queue://queue/A, transactionId = null, expirat
>>>>> ion = 0, timestamp = 1257736768156, arrival = 0, brokerInTime =
>>>>> 1257736768156, brokerOutTime = 1257736768156, correlationId = null
>>>>> , replyTo = null, persistent = true, type = null, priority = 4,
>>>>> groupID =
>>>>> null, groupSequence = 0, targetConsumerId = null, compre
>>>>> ssed = false, userID = null, content = null,  
>>>>> marshalledProperties =
>>>>> org.apache.activemq.util.ByteSequence@1713c03, dataStructure =
>>>>> null, redeliveryCounter = 0, size = 0, properties =
>>>>> {MimeContentType=text/xml;charset=UTF-8,
>>>>> SoapAction=/{http://www.hcsys.com/no
>>>>> vaesb/}createCustomer,
>>>>> SOAPJMS_soapAction=/{http://www.hcsys.com/ 
>>>>> novaesb/}createCustomer},
>>>>> readOnlyProperties = true, readOnlyBody
>>>>> = true, droppable = false, text = <?xml version='1.0'
>>>>> encoding='UTF-8'?><jbi:me...jbi:message>}
>>>>> 2009-11-09 11:19:28,171 DEBUG - SedaQueue                      -
>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@89e163 dequeu
>>>>> ed exchange: InOnly[
>>>>> id: ID:10.80.12.85-124d6ebc094-2:10
>>>>> status: Done
>>>>> role: consumer
>>>>> service: {http://www.hcsys.com/novaesb/}jms
>>>>> endpoint: provider
>>>>> operation: {http://www.hcsys.com/novaesb/}createCustomer
>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>> xmlns:msg="htt
>>>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>> "
>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>> e="createCustomer" type="msg:createCustomer"
>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>> r">
>>>>>     <pns:value>aaaa</pns:value>
>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>> ]
>>>>> 2009-11-09 11:19:28,171 DEBUG - JmsComponent                   -
>>>>> Created
>>>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>>>> 2009-11-09 11:19:28,171 DEBUG - CxfBcComponent                 -
>>>>> Received
>>>>> exchange: status: Done, role: consumer
>>>>> 2009-11-09 11:19:28,171 DEBUG - DeliveryChannelImpl            -
>>>>> Send
>>>>> ID:10.80.12.85-124d6ebc094-4:10 in DeliveryChannel{servicemi
>>>>> x-jms}
>>>>> 2009-11-09 11:19:28,171 DEBUG - CxfBcComponent                 -
>>>>> Retrieved
>>>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -
>>>>> send
>>>>> exchange with secure broker
>>>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -
>>>>> service
>>>>> name :{http://geneva.nova.com/customer}CustomerInImplServ
>>>>> ice
>>>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -
>>>>> operation
>>>>> name :{http://geneva.nova.com/customer}createCustomer
>>>>> 2009-11-09 11:19:28,171 DEBUG - SedaFlow                       -
>>>>> Called
>>>>> Flow
>>>>> send
>>>>> 2009-11-09 11:19:28,187 DEBUG - SedaQueue                      -
>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@4437d3 dequeu
>>>>> ed exchange: InOnly[
>>>>> id: ID:10.80.12.85-124d6ebc094-4:10
>>>>> status: Active
>>>>> role: provider
>>>>> service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>> endpoint: CustomerInGenevaPortTypePort
>>>>> operation: {http://geneva.nova.com/customer}createCustomer
>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>> xmlns:msg="htt
>>>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>> "
>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>> e="createCustomer" type="msg:createCustomer"
>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>> r">
>>>>>     <pns:value>aaaa</pns:value>
>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>> ]
>>>>> 2009-11-09 11:19:28,187 DEBUG - CxfBcComponent                 -
>>>>> Received
>>>>> exchange: status: Active, role: provider
>>>>> 2009-11-09 11:19:28,187 DEBUG - CxfBcComponent                 -
>>>>> Retrieved
>>>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>> Adding
>>>>> interceptor org.apache.servicemix.cxfbc.interceptors.JbiOu
>>>>> tInterceptor@dd6a50 to phase pre-stream
>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>> Adding
>>>>> interceptor org.apache.servicemix.cxfbc.interceptors.JbiOu
>>>>> tWsdl1Interceptor@6ed9d1 to phase marshal
>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>> Adding
>>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapPr
>>>>> eProtocolOutInterceptor@19e4f8b to phase post-logical
>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>> Adding
>>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapOu
>>>>> tInterceptor@782f81 to phase write
>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>> Adding
>>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapAc
>>>>> tionOutInterceptor@76df38 to phase post-logical
>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>> Adding
>>>>> interceptor org.apache.cxf.interceptor.StaxOutInterceptor@
>>>>> 38df00 to phase pre-stream
>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>> Chain
>>>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was crea
>>>>> ted. Current flow:
>>>>> post-logical [SoapPreProtocolOutInterceptor,
>>>>> SoapActionOutInterceptor]
>>>>> pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>>> write [SoapOutInterceptor]
>>>>> marshal [JbiOutWsdl1Interceptor]
>>>>>
>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>> Invoking
>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>> .interceptor.SoapPreProtocolOutInterceptor@19e4f8b
>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>> Invoking
>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>> .interceptor.SoapActionOutInterceptor@76df38
>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>> Invoking
>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>> .interceptors.JbiOutInterceptor@dd6a50
>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>> Invoking
>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>> StaxOutInterceptor@38df00
>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>> Adding
>>>>> interceptor org.apache.cxf.interceptor.StaxOutInterceptor$
>>>>> StaxOutEndingInterceptor@1073a2e to phase pre-stream-ending
>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>> Chain
>>>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was modi
>>>>> fied. Current flow:
>>>>> post-logical [SoapPreProtocolOutInterceptor,
>>>>> SoapActionOutInterceptor]
>>>>> pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>>> write [SoapOutInterceptor]
>>>>> marshal [JbiOutWsdl1Interceptor]
>>>>> pre-stream-ending [StaxOutEndingInterceptor]
>>>>>
>>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -
>>>>> Invoking
>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>> .interceptor.SoapOutInterceptor@782f81
>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>> Adding
>>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapOu
>>>>> tInterceptor$SoapOutEndingInterceptor@17cb4ff to phase write- 
>>>>> ending
>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>> Chain
>>>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was modi
>>>>> fied. Current flow:
>>>>> post-logical [SoapPreProtocolOutInterceptor,
>>>>> SoapActionOutInterceptor]
>>>>> pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>>> write [SoapOutInterceptor]
>>>>> marshal [JbiOutWsdl1Interceptor]
>>>>> write-ending [SoapOutEndingInterceptor]
>>>>> pre-stream-ending [StaxOutEndingInterceptor]
>>>>>
>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>> Invoking
>>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>>> .interceptors.JbiOutWsdl1Interceptor@6ed9d1
>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>> Invoking
>>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>>> .interceptor.SoapOutInterceptor$SoapOutEndingInterceptor@17cb4ff
>>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -
>>>>> Invoking
>>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>>> StaxOutInterceptor$StaxOutEndingInterceptor@1073a2e
>>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>>> Sending
>>>>> POST Message with Headers to http://10.80.12.100:8080/Gen
>>>>> evaESB/services/CustomerAccount Conduit
>>>>> :{http://geneva.nova.com/
>>>>> customer}CustomerInGenevaPortTypePort.http-conduit
>>>>> Content-Type: text/xml; charset=UTF-8
>>>>>
>>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>>> SOAPAction:
>>>>> ""
>>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>>> Accept:
>>>>> *
>>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>>> No Trust
>>>>> Decider for Conduit '{http://geneva.nova.com/customer}Cu
>>>>> stomerInGenevaPortTypePort.http-conduit'. An afirmative Trust
>>>>> Decision is
>>>>> assumed.
>>>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    -
>>>>> Response
>>>>> Code: 404 Conduit: {http://geneva.nova.com/customer}Cust
>>>>> omerInGenevaPortTypePort.http-conduit
>>>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    -
>>>>> Content
>>>>> length: 952
>>>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    -
>>>>> Header
>>>>> fields:
>>>>>   null: [HTTP/1.1 404 Not Found]
>>>>>   Date: [Mon, 09 Nov 2009 03:19:04 GMT]
>>>>>   Content-Length: [952]
>>>>>   Content-Type: [text/html;charset=utf-8]
>>>>>   Server: [Apache-Coyote/1.1]
>>>>>
>>>>> 2009-11-09 11:19:28,265 ERROR - CxfBcComponent                 -
>>>>> Error
>>>>> processing exchange InOnly[
>>>>> id: ID:10.80.12.85-124d6ebc094-4:10
>>>>> status: Active
>>>>> role: provider
>>>>> service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>> endpoint: CustomerInGenevaPortTypePort
>>>>> operation: {http://geneva.nova.com/customer}createCustomer
>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>> xmlns:msg="htt
>>>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>> "
>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>> e="createCustomer" type="msg:createCustomer"
>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>> r">
>>>>>     <pns:value>aaaa</pns:value>
>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>> ]
>>>>> javax.jbi.messaging.MessagingException: Fault not supported
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .jbi
>>>>> .messaging 
>>>>> .MessageExchangeImpl.setMessage(MessageExchangeImpl.java:
>>>>> 366)
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .jbi
>>>>> .messaging.MessageExchangeImpl.setFault(MessageExchangeImpl.java:
>>>>> 290)
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .servicemix.cxfbc.CxfBcProvider.faultProcess(CxfBcProvider.java: 
>>>>> 277)
>>>>>       at
>>>>> org
>>>>> .apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:
>>>>> 261)
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .common 
>>>>> .AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:
>>>>> 581)
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .common
>>>>> .AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .common
>>>>> .SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:
>>>>> 60)
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .jbi
>>>>> .messaging
>>>>> .DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:
>>>>> 172)
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java: 
>>>>> 168)
>>>>>       at
>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue
>>>>> $1.run(SedaQueue.java:134)
>>>>>       at
>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>> $Worker.runTask(ThreadPoolExecutor.java:886)
>>>>>       at
>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>> $Worker.run(ThreadPoolExecutor.java:908)
>>>>>       at java.lang.Thread.run(Thread.java:619)
>>>>> 2009-11-09 11:19:28,296 DEBUG - DeliveryChannelImpl            -
>>>>> Send
>>>>> ID:10.80.12.85-124d6ebc094-4:10 in DeliveryChannel{servicemi
>>>>> x-cxf-bc}
>>>>> 2009-11-09 11:19:28,296 DEBUG - SecuredBroker                  -
>>>>> send
>>>>> exchange with secure broker
>>>>> 2009-11-09 11:19:28,296 DEBUG - SedaFlow                       -
>>>>> Called
>>>>> Flow
>>>>> send
>>>>> 2009-11-09 11:19:28,296 DEBUG - SedaQueue                      -
>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@247262 dequeu
>>>>> ed exchange: InOnly[
>>>>> id: ID:10.80.12.85-124d6ebc094-4:10
>>>>> status: Error
>>>>> role: consumer
>>>>> service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>> endpoint: CustomerInGenevaPortTypePort
>>>>> operation: {http://geneva.nova.com/customer}createCustomer
>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>> xmlns:msg="htt
>>>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>> "
>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>> e="createCustomer" type="msg:createCustomer"
>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>> r">
>>>>>     <pns:value>aaaa</pns:value>
>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>> error: javax.jbi.messaging.MessagingException: Fault not supported
>>>>> ]
>>>>> 2009-11-09 11:19:28,296 DEBUG - JmsComponent                   -
>>>>> Received
>>>>> exchange: status: Error, role: consumer
>>>>> 2009-11-09 11:19:28,296 DEBUG - JmsComponent                   -
>>>>> Retrieved
>>>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>>>> 2009-11-09 11:19:28,328 ERROR - JmsComponent                   -
>>>>> Error
>>>>> processing exchange InOnly[
>>>>> id: ID:10.80.12.85-124d6ebc094-4:10
>>>>> status: Error
>>>>> role: consumer
>>>>> service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>> endpoint: CustomerInGenevaPortTypePort
>>>>> operation: {http://geneva.nova.com/customer}createCustomer
>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>> xmlns:msg="htt
>>>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema
>>>>> "
>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>>> e="createCustomer" type="msg:createCustomer"
>>>>> version="1.0"><jbi:part><pns:createCustomer
>>>>> xmlns:pns="http://geneva.nova.com/custome
>>>>> r">
>>>>>     <pns:value>aaaa</pns:value>
>>>>>   </pns:createCustomer></jbi:part></jbi:message>
>>>>> error: javax.jbi.messaging.MessagingException: Fault not supported
>>>>> ]
>>>>> java.lang.UnsupportedOperationException: A destination must be
>>>>> specified.
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .activemq
>>>>> .ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:195)
>>>>>       at
>>>>> org.apache.activemq.pool.PooledProducer.send(PooledProducer.java: 
>>>>> 74)
>>>>>       at
>>>>> org.apache.activemq.pool.PooledProducer.send(PooledProducer.java: 
>>>>> 59)
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .jms
>>>>> .multiplexing
>>>>> .MultiplexingConsumerProcessor
>>>>> .process(MultiplexingConsumerProcessor.java:126)
>>>>>       at
>>>>> org.apache.servicemix.soap.SoapEndpoint.process(SoapEndpoint.java:
>>>>> 368)
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .common 
>>>>> .AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:
>>>>> 598)
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .common
>>>>> .AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .common
>>>>> .SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:
>>>>> 60)
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .jbi
>>>>> .messaging
>>>>> .DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:
>>>>> 172)
>>>>>       at
>>>>> org
>>>>> .apache
>>>>> .servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java: 
>>>>> 168)
>>>>>       at
>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue
>>>>> $1.run(SedaQueue.java:134)
>>>>>       at
>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>> $Worker.runTask(ThreadPoolExecutor.java:886)
>>>>>       at
>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>> $Worker.run(ThreadPoolExecutor.java:908)
>>>>>       at java.lang.Thread.run(Thread.java:619)
>>>>>
>>>>>
>>>>> =======================log end==========================
>>>>> --
>>>>> View this message in context:
>>>>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26260776.html
>>>>> Sent from the ServiceMix - User mailing list archive at  
>>>>> Nabble.com.
>>>>>
>>>>>
>>>>
>>>>
>>>> -----
>>>> ---
>>>> Gert Vanthienen
>>>> http://gertvanthienen.blogspot.com
>>>>
>>>
>>> -- 
>>> View this message in context:
>>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26297802.html
>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>
>>
>>
>> -- 
>> Freeman Fang
>> ------------------------
>> Open Source SOA: http://fusesource.com
>>
>>
>>
>
> -- 
> View this message in context: http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26312831.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>


-- 
Freeman Fang
------------------------
Open Source SOA: http://fusesource.com


Re: When external service is shut down, message don't rollback to jms queue.

Posted by "colin.chi" <ib...@hotmail.com>.
Hi FF,

Thanks for you reply.

I have tested according to you suggestion, and the message is rollbacked to
jms consumer, but this test scene is that external service is running
normal.

The exception of rollback as follows:
==========================================================
2009-11-12 10:34:24,921 DEBUG - SedaQueue                      -
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1425e17 deque
ued exchange: RobustInOnly[
  id: ID:10.80.12.85-124e63b1989-2:2
  status: Done
  role: consumer
  service: {http://geneva.nova.com/customer}CustomerInImplService
  endpoint: CustomerInGenevaPortTypePort
  operation: {http://geneva.nova.com/customer}createCustomer
  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="htt
p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
e="createCustomer" type="msg:createCustomer"
version="1.0"><jbi:part><pns:createCustomer
xmlns:pns="http://geneva.nova.com/custome
r"><pns:value>5555</pns:value></pns:createCustomer></jbi:part></jbi:message>
]
2009-11-12 10:34:24,953 DEBUG - DeliveryChannelImpl            - Notifying
exchange ID:10.80.12.85-124e63b1989-2:2(1e67cdb) in Del
iveryChannel{servicemix-jms} from processInboundSynchronousExchange
2009-11-12 10:34:24,953 DEBUG - DeliveryChannelImpl            - Notified:
ID:10.80.12.85-124e63b1989-2:2(1e67cdb) in DeliveryChan
nel{servicemix-jms} from sendSync
2009-11-12 10:34:24,968 DEBUG - DefaultMessageListenerContainer - Initiating
transaction rollback on application exception
javax.jms.JMSException: Error sending JBI exchange
        at
org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:575)
        at
org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint$1.onMessage(JmsConsumerEndpoint.java:505)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.jav
a:518)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:
479)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.ja
va:451)
        at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageList
enerContainer.java:323)
        at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListen
erContainer.java:241)
        at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMess
ageListenerContainer.java:982)
        at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(Default
MessageListenerContainer.java:974)
        at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListener
Container.java:876)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.UnsupportedOperationException: A destination must be
specified.
        at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:195)
        at
org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:241)
        at
org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.send(AbstractConsumerEndpoint.java:526)
        at
org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.processExchange(AbstractConsumerEndpoint.java:485)
        at
org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:552)
        ... 10 more
2009-11-12 10:34:25,031 DEBUG - ActiveMQSession                -
ID:8014ac188efd43a-3939-1257993081718-2:54:1 Transaction Rollback

2009-11-12 10:34:25,031 DEBUG - DefaultMessageListenerContainer - Rolling
back transaction because of listener exception thrown: j
avax.jms.JMSException: Error sending JBI exchange
2009-11-12 10:34:25,031 DEBUG - AMQMessageStore                - Journalled
message add for: ID:8014ac188efd43a-3939-1257993081718
-2:10:1:1:1, at: offset = 1236, file = 1, size = 969, type = 1
2009-11-12 10:34:25,031 WARN  - DefaultMessageListenerContainer - Execution
of JMS message listener failed
javax.jms.JMSException: Error sending JBI exchange
        at
org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:575)
        at
org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint$1.onMessage(JmsConsumerEndpoint.java:505)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.jav
a:518)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:
479)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.ja
va:451)
        at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageList
enerContainer.java:323)
        at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListen
erContainer.java:241)
        at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMess
ageListenerContainer.java:982)
        at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(Default
MessageListenerContainer.java:974)
        at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListener
Container.java:876)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.UnsupportedOperationException: A destination must be
specified.
        at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:195)
        at
org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:241)
        at
org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.send(AbstractConsumerEndpoint.java:526)
        at
org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.processExchange(AbstractConsumerEndpoint.java:485)
        at
org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:552)
        ... 10 more
2009-11-12 10:34:25,109 DEBUG - DefaultMessageListenerContainer - Initiating
transaction rollback on listener exception
javax.jms.JMSException: Error sending JBI exchange
        at
org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:575)
        at
org.apache.servicemix.jms.endpoints.JmsConsumerEndpoint$1.onMessage(JmsConsumerEndpoint.java:505)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.jav
a:518)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:
479)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.ja
va:451)
        at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageList
enerContainer.java:323)
        at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListen
erContainer.java:241)
        at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMess
ageListenerContainer.java:982)
        at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(Default
MessageListenerContainer.java:974)
        at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListener
Container.java:876)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.UnsupportedOperationException: A destination must be
specified.
        at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:195)
        at
org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:241)
        at
org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.send(AbstractConsumerEndpoint.java:526)
        at
org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.processExchange(AbstractConsumerEndpoint.java:485)
        at
org.apache.servicemix.jms.endpoints.AbstractConsumerEndpoint.onMessage(AbstractConsumerEndpoint.java:552)
        ... 10 more
2009-11-12 10:34:25,171 DEBUG - JmsTransactionManager          - Initiating
transaction rollback
2009-11-12 10:34:25,171 DEBUG - JmsTransactionManager          - Rolling
back JMS transaction on Session [ActiveMQSession {id=ID:8
014ac188efd43a-3939-1257993081718-2:55:1,started=false}]
2009-11-12 10:34:25,171 DEBUG - ActiveMQSession                -
ID:8014ac188efd43a-3939-1257993081718-2:55:1 Transaction Rollback
=====================================================


Freeman Fang wrote:
> 
> Hi Colin,
> 
> I think the problem actually come from the MEP (message exchange  
> pattern) of your MessageChange is InOnly, so the fault message can't  
> go back to JmsConsumer endpoint, which means the JmsConsumer endpoint  
> have no chance to do the rollback.
> 
> 
> Freeman
> 
> On 2009-11-11, at 下午4:41, colin.chi wrote:
> 
>>
>> Hi Gert,
>>
>> Thanks for you reply.
>>
>> And I see some logs as following:
>>
>> 2009-11-09 11:19:28,171 DEBUG - SedaQueue                      -
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@89e163 dequeu
>> ed exchange: InOnly[
>>  id: ID:10.80.12.85-124d6ebc094-2:10
>>  status: Done
>>  role: consumer
>>  service: {http://www.hcsys.com/novaesb/}jms
>>  endpoint: provider
>>  operation: {http://www.hcsys.com/novaesb/}createCustomer
>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"  
>> xmlns:msg="htt
>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema 
>> "
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>> e="createCustomer" type="msg:createCustomer"
>> version="1.0"><jbi:part><pns:createCustomer
>> xmlns:pns="http://geneva.nova.com/custome
>> r">
>>      <pns:value>aaaa</pns:value>
>>    </pns:createCustomer></jbi:part></jbi:message>
>> ]
>>
>> This means the message is received and processed(send to cxf-provider
>> endpoint) successfully by jms consumer endpoint.
>>
>> so when cxf-provider endpoint catch an exception or an error, the  
>> message
>> can't be  rollbacked to jms queue where jms consumer endpoint listen.
>>
>> I think this case can not be achieved in ServiceMix.
>>
>> If I am wrong, can you tell me how can I finish this case?
>>
>> thanks and regards.
>>
>>
>> Gert Vanthienen wrote:
>>>
>>> L.S.,
>>>
>>> One option would be to enable transactions on the jms consumer
>>> endpoint (transacted="jms").  Another option would be to get the JMS
>>> client to acknowledge the message, like this:
>>>
>>>    <jms:consumer ....
>>>                  sessionAcknowledgeMode="#AcknowledgeMode"/>
>>>
>>>     <util:constant id="AcknowledgeMode"
>>> static-field="javax.jms.Session.CLIENT_ACKNOWLEDGE"/>
>>>
>>> Regards,
>>>
>>> Gert Vanthienen
>>> ------------------------
>>> Open Source SOA: http://fusesource.com
>>> Blog: http://gertvanthienen.blogspot.com/
>>>
>>>
>>>
>>> 2009/11/9 colin.chi <ib...@hotmail.com>:
>>>>
>>>> work flow as follow:
>>>>
>>>> [external client]--->cxf-bc-consumer--->jms-provider--->jms queue
>>>>
>>>> jms queue--->jms-consumer--->cxf-bc-provider--->[external service]
>>>>
>>>> when external service is shut down, message don't rollback to jms  
>>>> queue
>>>> and
>>>> throw exception.
>>>>
>>>> how to config jms consumer and cxf bc provider to do this case?
>>>>
>>>> =======================log begin==========================
>>>>
>>>> 2009-11-09 11:19:28,046 DEBUG - JettyHTTPDestination           -  
>>>> Service
>>>> http request on thread: Thread[22434271@qtp0-0,5,RMI Runt
>>>> ime]
>>>> 2009-11-09 11:19:28,046 DEBUG - AbstractHTTPDestination        -  
>>>> Request
>>>> Headers: {connection=[Keep-Alive], Host=[localhost:8080],
>>>>  Content-Length=[364], User-Agent=[Mozilla/4.0 (compatible; MSIE  
>>>> 7.0;
>>>> Windows NT 5.1; Trident/4.0; GOSURF)], accept-encoding=[gzip
>>>> , deflate], Accept=[*/*], Cache-Control=[no-cache]}
>>>> 2009-11-09 11:19:28,046 DEBUG - PhaseInterceptorChain          -  
>>>> Chain
>>>> org.apache.cxf.phase.PhaseInterceptorChain@735ad7 was creat
>>>> ed. Current flow:
>>>>  receive [AttachmentInInterceptor]
>>>>  post-stream [StaxInInterceptor]
>>>>  read [ReadHeadersInterceptor]
>>>>  pre-protocol [, MustUnderstandInterceptor, JbiJAASInterceptor]
>>>>  unmarshal [JbiOperationInterceptor]
>>>>  pre-invoke [JbiInWsdl1Interceptor, JbiInInterceptor]
>>>>  invoke [JbiInvokerInterceptor]
>>>>  post-invoke [JbiPostInvokerInterceptor, OutgoingChainInterceptor]
>>>>
>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -  
>>>> Invoking
>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>> AttachmentInInterceptor@14d8c8
>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -  
>>>> Invoking
>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>> StaxInInterceptor@a4480d
>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -  
>>>> Invoking
>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>> .interceptor.ReadHeadersInterceptor@1766d9c
>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -  
>>>> Invoking
>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>> .CxfBcConsumer$1@1b7715d
>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -  
>>>> Invoking
>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>> .interceptor.MustUnderstandInterceptor@73a403
>>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -  
>>>> Invoking
>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>> .interceptors.JbiJAASInterceptor@ca7c93
>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -  
>>>> Invoking
>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>> .interceptors.JbiOperationInterceptor@1626bf
>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -  
>>>> Invoking
>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>> .interceptors.JbiInWsdl1Interceptor@49e885
>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -  
>>>> Invoking
>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>> .interceptors.JbiInInterceptor@407909
>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -  
>>>> Invoking
>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>> .CxfBcConsumer$JbiInvokerInterceptor@1b8a6af
>>>> 2009-11-09 11:19:28,140 DEBUG - CxfBcComponent                 -  
>>>> Created
>>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>>> 2009-11-09 11:19:28,140 DEBUG - DeliveryChannelImpl            -  
>>>> Send
>>>> ID:10.80.12.85-124d6ebc094-2:10 in DeliveryChannel{servicemi
>>>> x-cxf-bc}
>>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -  
>>>> send
>>>> exchange with secure broker
>>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -  
>>>> service
>>>> name :{http://www.hcsys.com/novaesb/}jms
>>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -
>>>> operation
>>>> name :{http://www.hcsys.com/novaesb/}createCustomer
>>>> 2009-11-09 11:19:28,140 DEBUG - SedaFlow                       -  
>>>> Called
>>>> Flow
>>>> send
>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -  
>>>> Invoking
>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>> .CxfBcConsumer$JbiPostInvokerInterceptor@1c76cab
>>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -  
>>>> Invoking
>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>> OutgoingChainInterceptor@1af691b
>>>> 2009-11-09 11:19:28,156 DEBUG - JettyHTTPDestination           -  
>>>> Finished
>>>> servicing http request on thread: Thread[22434271@qtp0-0
>>>> ,5,RMI Runtime]
>>>> 2009-11-09 11:19:28,156 DEBUG - SedaQueue                      -
>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@45ac89 dequeu
>>>> ed exchange: InOnly[
>>>>  id: ID:10.80.12.85-124d6ebc094-2:10
>>>>  status: Active
>>>>  role: provider
>>>>  service: {http://www.hcsys.com/novaesb/}jms
>>>>  endpoint: provider
>>>>  operation: {http://www.hcsys.com/novaesb/}createCustomer
>>>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"  
>>>> xmlns:msg="htt
>>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema 
>>>> "
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>> e="createCustomer" type="msg:createCustomer"
>>>> version="1.0"><jbi:part><pns:createCustomer
>>>> xmlns:pns="http://geneva.nova.com/custome
>>>> r">
>>>>      <pns:value>aaaa</pns:value>
>>>>    </pns:createCustomer></jbi:part></jbi:message>
>>>> ]
>>>> 2009-11-09 11:19:28,156 DEBUG - JmsComponent                   -  
>>>> Received
>>>> exchange: status: Active, role: provider
>>>> 2009-11-09 11:19:28,156 DEBUG - JmsComponent                   -
>>>> Retrieved
>>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>>> 2009-11-09 11:19:28,156 DEBUG - DeliveryChannelImpl            -  
>>>> Send
>>>> ID:10.80.12.85-124d6ebc094-2:10 in DeliveryChannel{servicemi
>>>> x-jms}
>>>> 2009-11-09 11:19:28,156 DEBUG - SecuredBroker                  -  
>>>> send
>>>> exchange with secure broker
>>>> 2009-11-09 11:19:28,156 DEBUG - SedaFlow                       -  
>>>> Called
>>>> Flow
>>>> send
>>>> 2009-11-09 11:19:28,156 DEBUG - MultiplexingConsumerProcessor  -  
>>>> Received
>>>> jms message ActiveMQTextMessage {commandId = 17, respons
>>>> eRequired = true, messageId =
>>>> ID:8014ac188efd43a-4422-1257736227984-2:10:1:1:11,  
>>>> originalDestination =
>>>> null, originalTransactionId
>>>>  = null, producerId = ID: 
>>>> 8014ac188efd43a-4422-1257736227984-2:10:1:1,
>>>> destination = queue://queue/A, transactionId = null, expirat
>>>> ion = 0, timestamp = 1257736768156, arrival = 0, brokerInTime =
>>>> 1257736768156, brokerOutTime = 1257736768156, correlationId = null
>>>> , replyTo = null, persistent = true, type = null, priority = 4,  
>>>> groupID =
>>>> null, groupSequence = 0, targetConsumerId = null, compre
>>>> ssed = false, userID = null, content = null, marshalledProperties =
>>>> org.apache.activemq.util.ByteSequence@1713c03, dataStructure =
>>>>  null, redeliveryCounter = 0, size = 0, properties =
>>>> {MimeContentType=text/xml;charset=UTF-8,
>>>> SoapAction=/{http://www.hcsys.com/no
>>>> vaesb/}createCustomer,
>>>> SOAPJMS_soapAction=/{http://www.hcsys.com/novaesb/}createCustomer},
>>>> readOnlyProperties = true, readOnlyBody
>>>>  = true, droppable = false, text = <?xml version='1.0'
>>>> encoding='UTF-8'?><jbi:me...jbi:message>}
>>>> 2009-11-09 11:19:28,171 DEBUG - MultiplexingConsumerProcessor  -  
>>>> Handling
>>>> jms message ActiveMQTextMessage {commandId = 17, respons
>>>> eRequired = true, messageId =
>>>> ID:8014ac188efd43a-4422-1257736227984-2:10:1:1:11,  
>>>> originalDestination =
>>>> null, originalTransactionId
>>>>  = null, producerId = ID: 
>>>> 8014ac188efd43a-4422-1257736227984-2:10:1:1,
>>>> destination = queue://queue/A, transactionId = null, expirat
>>>> ion = 0, timestamp = 1257736768156, arrival = 0, brokerInTime =
>>>> 1257736768156, brokerOutTime = 1257736768156, correlationId = null
>>>> , replyTo = null, persistent = true, type = null, priority = 4,  
>>>> groupID =
>>>> null, groupSequence = 0, targetConsumerId = null, compre
>>>> ssed = false, userID = null, content = null, marshalledProperties =
>>>> org.apache.activemq.util.ByteSequence@1713c03, dataStructure =
>>>>  null, redeliveryCounter = 0, size = 0, properties =
>>>> {MimeContentType=text/xml;charset=UTF-8,
>>>> SoapAction=/{http://www.hcsys.com/no
>>>> vaesb/}createCustomer,
>>>> SOAPJMS_soapAction=/{http://www.hcsys.com/novaesb/}createCustomer},
>>>> readOnlyProperties = true, readOnlyBody
>>>>  = true, droppable = false, text = <?xml version='1.0'
>>>> encoding='UTF-8'?><jbi:me...jbi:message>}
>>>> 2009-11-09 11:19:28,171 DEBUG - SedaQueue                      -
>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@89e163 dequeu
>>>> ed exchange: InOnly[
>>>>  id: ID:10.80.12.85-124d6ebc094-2:10
>>>>  status: Done
>>>>  role: consumer
>>>>  service: {http://www.hcsys.com/novaesb/}jms
>>>>  endpoint: provider
>>>>  operation: {http://www.hcsys.com/novaesb/}createCustomer
>>>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"  
>>>> xmlns:msg="htt
>>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema 
>>>> "
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>> e="createCustomer" type="msg:createCustomer"
>>>> version="1.0"><jbi:part><pns:createCustomer
>>>> xmlns:pns="http://geneva.nova.com/custome
>>>> r">
>>>>      <pns:value>aaaa</pns:value>
>>>>    </pns:createCustomer></jbi:part></jbi:message>
>>>> ]
>>>> 2009-11-09 11:19:28,171 DEBUG - JmsComponent                   -  
>>>> Created
>>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>>> 2009-11-09 11:19:28,171 DEBUG - CxfBcComponent                 -  
>>>> Received
>>>> exchange: status: Done, role: consumer
>>>> 2009-11-09 11:19:28,171 DEBUG - DeliveryChannelImpl            -  
>>>> Send
>>>> ID:10.80.12.85-124d6ebc094-4:10 in DeliveryChannel{servicemi
>>>> x-jms}
>>>> 2009-11-09 11:19:28,171 DEBUG - CxfBcComponent                 -
>>>> Retrieved
>>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -  
>>>> send
>>>> exchange with secure broker
>>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -  
>>>> service
>>>> name :{http://geneva.nova.com/customer}CustomerInImplServ
>>>> ice
>>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -
>>>> operation
>>>> name :{http://geneva.nova.com/customer}createCustomer
>>>> 2009-11-09 11:19:28,171 DEBUG - SedaFlow                       -  
>>>> Called
>>>> Flow
>>>> send
>>>> 2009-11-09 11:19:28,187 DEBUG - SedaQueue                      -
>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@4437d3 dequeu
>>>> ed exchange: InOnly[
>>>>  id: ID:10.80.12.85-124d6ebc094-4:10
>>>>  status: Active
>>>>  role: provider
>>>>  service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>  endpoint: CustomerInGenevaPortTypePort
>>>>  operation: {http://geneva.nova.com/customer}createCustomer
>>>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"  
>>>> xmlns:msg="htt
>>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema 
>>>> "
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>> e="createCustomer" type="msg:createCustomer"
>>>> version="1.0"><jbi:part><pns:createCustomer
>>>> xmlns:pns="http://geneva.nova.com/custome
>>>> r">
>>>>      <pns:value>aaaa</pns:value>
>>>>    </pns:createCustomer></jbi:part></jbi:message>
>>>> ]
>>>> 2009-11-09 11:19:28,187 DEBUG - CxfBcComponent                 -  
>>>> Received
>>>> exchange: status: Active, role: provider
>>>> 2009-11-09 11:19:28,187 DEBUG - CxfBcComponent                 -
>>>> Retrieved
>>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -  
>>>> Adding
>>>> interceptor org.apache.servicemix.cxfbc.interceptors.JbiOu
>>>> tInterceptor@dd6a50 to phase pre-stream
>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -  
>>>> Adding
>>>> interceptor org.apache.servicemix.cxfbc.interceptors.JbiOu
>>>> tWsdl1Interceptor@6ed9d1 to phase marshal
>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -  
>>>> Adding
>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapPr
>>>> eProtocolOutInterceptor@19e4f8b to phase post-logical
>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -  
>>>> Adding
>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapOu
>>>> tInterceptor@782f81 to phase write
>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -  
>>>> Adding
>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapAc
>>>> tionOutInterceptor@76df38 to phase post-logical
>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -  
>>>> Adding
>>>> interceptor org.apache.cxf.interceptor.StaxOutInterceptor@
>>>> 38df00 to phase pre-stream
>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -  
>>>> Chain
>>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was crea
>>>> ted. Current flow:
>>>>  post-logical [SoapPreProtocolOutInterceptor,  
>>>> SoapActionOutInterceptor]
>>>>  pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>>  write [SoapOutInterceptor]
>>>>  marshal [JbiOutWsdl1Interceptor]
>>>>
>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -  
>>>> Invoking
>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>> .interceptor.SoapPreProtocolOutInterceptor@19e4f8b
>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -  
>>>> Invoking
>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>> .interceptor.SoapActionOutInterceptor@76df38
>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -  
>>>> Invoking
>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>> .interceptors.JbiOutInterceptor@dd6a50
>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -  
>>>> Invoking
>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>> StaxOutInterceptor@38df00
>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -  
>>>> Adding
>>>> interceptor org.apache.cxf.interceptor.StaxOutInterceptor$
>>>> StaxOutEndingInterceptor@1073a2e to phase pre-stream-ending
>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -  
>>>> Chain
>>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was modi
>>>> fied. Current flow:
>>>>  post-logical [SoapPreProtocolOutInterceptor,  
>>>> SoapActionOutInterceptor]
>>>>  pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>>  write [SoapOutInterceptor]
>>>>  marshal [JbiOutWsdl1Interceptor]
>>>>  pre-stream-ending [StaxOutEndingInterceptor]
>>>>
>>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -  
>>>> Invoking
>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>> .interceptor.SoapOutInterceptor@782f81
>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -  
>>>> Adding
>>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapOu
>>>> tInterceptor$SoapOutEndingInterceptor@17cb4ff to phase write-ending
>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -  
>>>> Chain
>>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was modi
>>>> fied. Current flow:
>>>>  post-logical [SoapPreProtocolOutInterceptor,  
>>>> SoapActionOutInterceptor]
>>>>  pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>>  write [SoapOutInterceptor]
>>>>  marshal [JbiOutWsdl1Interceptor]
>>>>  write-ending [SoapOutEndingInterceptor]
>>>>  pre-stream-ending [StaxOutEndingInterceptor]
>>>>
>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -  
>>>> Invoking
>>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>>> .interceptors.JbiOutWsdl1Interceptor@6ed9d1
>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -  
>>>> Invoking
>>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>>> .interceptor.SoapOutInterceptor$SoapOutEndingInterceptor@17cb4ff
>>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -  
>>>> Invoking
>>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>>> StaxOutInterceptor$StaxOutEndingInterceptor@1073a2e
>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -  
>>>> Sending
>>>> POST Message with Headers to http://10.80.12.100:8080/Gen
>>>> evaESB/services/CustomerAccount Conduit
>>>> :{http://geneva.nova.com/ 
>>>> customer}CustomerInGenevaPortTypePort.http-conduit
>>>> Content-Type: text/xml; charset=UTF-8
>>>>
>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>>> SOAPAction:
>>>> ""
>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -  
>>>> Accept:
>>>> *
>>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -  
>>>> No Trust
>>>> Decider for Conduit '{http://geneva.nova.com/customer}Cu
>>>> stomerInGenevaPortTypePort.http-conduit'. An afirmative Trust  
>>>> Decision is
>>>> assumed.
>>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    -  
>>>> Response
>>>> Code: 404 Conduit: {http://geneva.nova.com/customer}Cust
>>>> omerInGenevaPortTypePort.http-conduit
>>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    -  
>>>> Content
>>>> length: 952
>>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    -  
>>>> Header
>>>> fields:
>>>>    null: [HTTP/1.1 404 Not Found]
>>>>    Date: [Mon, 09 Nov 2009 03:19:04 GMT]
>>>>    Content-Length: [952]
>>>>    Content-Type: [text/html;charset=utf-8]
>>>>    Server: [Apache-Coyote/1.1]
>>>>
>>>> 2009-11-09 11:19:28,265 ERROR - CxfBcComponent                 -  
>>>> Error
>>>> processing exchange InOnly[
>>>>  id: ID:10.80.12.85-124d6ebc094-4:10
>>>>  status: Active
>>>>  role: provider
>>>>  service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>  endpoint: CustomerInGenevaPortTypePort
>>>>  operation: {http://geneva.nova.com/customer}createCustomer
>>>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"  
>>>> xmlns:msg="htt
>>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema 
>>>> "
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>> e="createCustomer" type="msg:createCustomer"
>>>> version="1.0"><jbi:part><pns:createCustomer
>>>> xmlns:pns="http://geneva.nova.com/custome
>>>> r">
>>>>      <pns:value>aaaa</pns:value>
>>>>    </pns:createCustomer></jbi:part></jbi:message>
>>>> ]
>>>> javax.jbi.messaging.MessagingException: Fault not supported
>>>>        at
>>>> org 
>>>> .apache 
>>>> .servicemix 
>>>> .jbi 
>>>> .messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java: 
>>>> 366)
>>>>        at
>>>> org 
>>>> .apache 
>>>> .servicemix 
>>>> .jbi 
>>>> .messaging.MessageExchangeImpl.setFault(MessageExchangeImpl.java: 
>>>> 290)
>>>>        at
>>>> org 
>>>> .apache 
>>>> .servicemix.cxfbc.CxfBcProvider.faultProcess(CxfBcProvider.java:277)
>>>>        at
>>>> org 
>>>> .apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java: 
>>>> 261)
>>>>        at
>>>> org 
>>>> .apache 
>>>> .servicemix 
>>>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>>>        at
>>>> org 
>>>> .apache 
>>>> .servicemix 
>>>> .common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java: 
>>>> 581)
>>>>        at
>>>> org 
>>>> .apache 
>>>> .servicemix 
>>>> .common 
>>>> .AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>>>>        at
>>>> org 
>>>> .apache 
>>>> .servicemix 
>>>> .common 
>>>> .SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java: 
>>>> 60)
>>>>        at
>>>> org 
>>>> .apache 
>>>> .servicemix 
>>>> .jbi 
>>>> .messaging 
>>>> .DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>>>>        at
>>>> org 
>>>> .apache 
>>>> .servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java: 
>>>> 172)
>>>>        at
>>>> org 
>>>> .apache 
>>>> .servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
>>>>        at
>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue 
>>>> $1.run(SedaQueue.java:134)
>>>>        at
>>>> java.util.concurrent.ThreadPoolExecutor 
>>>> $Worker.runTask(ThreadPoolExecutor.java:886)
>>>>        at
>>>> java.util.concurrent.ThreadPoolExecutor 
>>>> $Worker.run(ThreadPoolExecutor.java:908)
>>>>        at java.lang.Thread.run(Thread.java:619)
>>>> 2009-11-09 11:19:28,296 DEBUG - DeliveryChannelImpl            -  
>>>> Send
>>>> ID:10.80.12.85-124d6ebc094-4:10 in DeliveryChannel{servicemi
>>>> x-cxf-bc}
>>>> 2009-11-09 11:19:28,296 DEBUG - SecuredBroker                  -  
>>>> send
>>>> exchange with secure broker
>>>> 2009-11-09 11:19:28,296 DEBUG - SedaFlow                       -  
>>>> Called
>>>> Flow
>>>> send
>>>> 2009-11-09 11:19:28,296 DEBUG - SedaQueue                      -
>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@247262 dequeu
>>>> ed exchange: InOnly[
>>>>  id: ID:10.80.12.85-124d6ebc094-4:10
>>>>  status: Error
>>>>  role: consumer
>>>>  service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>  endpoint: CustomerInGenevaPortTypePort
>>>>  operation: {http://geneva.nova.com/customer}createCustomer
>>>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"  
>>>> xmlns:msg="htt
>>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema 
>>>> "
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>> e="createCustomer" type="msg:createCustomer"
>>>> version="1.0"><jbi:part><pns:createCustomer
>>>> xmlns:pns="http://geneva.nova.com/custome
>>>> r">
>>>>      <pns:value>aaaa</pns:value>
>>>>    </pns:createCustomer></jbi:part></jbi:message>
>>>>  error: javax.jbi.messaging.MessagingException: Fault not supported
>>>> ]
>>>> 2009-11-09 11:19:28,296 DEBUG - JmsComponent                   -  
>>>> Received
>>>> exchange: status: Error, role: consumer
>>>> 2009-11-09 11:19:28,296 DEBUG - JmsComponent                   -
>>>> Retrieved
>>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>>> 2009-11-09 11:19:28,328 ERROR - JmsComponent                   -  
>>>> Error
>>>> processing exchange InOnly[
>>>>  id: ID:10.80.12.85-124d6ebc094-4:10
>>>>  status: Error
>>>>  role: consumer
>>>>  service: {http://geneva.nova.com/customer}CustomerInImplService
>>>>  endpoint: CustomerInGenevaPortTypePort
>>>>  operation: {http://geneva.nova.com/customer}createCustomer
>>>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"  
>>>> xmlns:msg="htt
>>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema 
>>>> "
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>>> e="createCustomer" type="msg:createCustomer"
>>>> version="1.0"><jbi:part><pns:createCustomer
>>>> xmlns:pns="http://geneva.nova.com/custome
>>>> r">
>>>>      <pns:value>aaaa</pns:value>
>>>>    </pns:createCustomer></jbi:part></jbi:message>
>>>>  error: javax.jbi.messaging.MessagingException: Fault not supported
>>>> ]
>>>> java.lang.UnsupportedOperationException: A destination must be  
>>>> specified.
>>>>        at
>>>> org 
>>>> .apache 
>>>> .activemq 
>>>> .ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:195)
>>>>        at
>>>> org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:74)
>>>>        at
>>>> org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:59)
>>>>        at
>>>> org 
>>>> .apache 
>>>> .servicemix 
>>>> .jms 
>>>> .multiplexing 
>>>> .MultiplexingConsumerProcessor 
>>>> .process(MultiplexingConsumerProcessor.java:126)
>>>>        at
>>>> org.apache.servicemix.soap.SoapEndpoint.process(SoapEndpoint.java: 
>>>> 368)
>>>>        at
>>>> org 
>>>> .apache 
>>>> .servicemix 
>>>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>>>        at
>>>> org 
>>>> .apache 
>>>> .servicemix 
>>>> .common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java: 
>>>> 598)
>>>>        at
>>>> org 
>>>> .apache 
>>>> .servicemix 
>>>> .common 
>>>> .AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>>>>        at
>>>> org 
>>>> .apache 
>>>> .servicemix 
>>>> .common 
>>>> .SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java: 
>>>> 60)
>>>>        at
>>>> org 
>>>> .apache 
>>>> .servicemix 
>>>> .jbi 
>>>> .messaging 
>>>> .DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>>>>        at
>>>> org 
>>>> .apache 
>>>> .servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java: 
>>>> 172)
>>>>        at
>>>> org 
>>>> .apache 
>>>> .servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
>>>>        at
>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue 
>>>> $1.run(SedaQueue.java:134)
>>>>        at
>>>> java.util.concurrent.ThreadPoolExecutor 
>>>> $Worker.runTask(ThreadPoolExecutor.java:886)
>>>>        at
>>>> java.util.concurrent.ThreadPoolExecutor 
>>>> $Worker.run(ThreadPoolExecutor.java:908)
>>>>        at java.lang.Thread.run(Thread.java:619)
>>>>
>>>>
>>>> =======================log end==========================
>>>> --
>>>> View this message in context:
>>>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26260776.html
>>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>>
>>>>
>>>
>>>
>>> -----
>>> ---
>>> Gert Vanthienen
>>> http://gertvanthienen.blogspot.com
>>>
>>
>> -- 
>> View this message in context:
>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26297802.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
> 
> 
> -- 
> Freeman Fang
> ------------------------
> Open Source SOA: http://fusesource.com
> 
> 
> 

-- 
View this message in context: http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26312831.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: When external service is shut down, message don't rollback to jms queue.

Posted by Freeman Fang <fr...@gmail.com>.
Hi Colin,

I think the problem actually come from the MEP (message exchange  
pattern) of your MessageChange is InOnly, so the fault message can't  
go back to JmsConsumer endpoint, which means the JmsConsumer endpoint  
have no chance to do the rollback.


Freeman

On 2009-11-11, at 下午4:41, colin.chi wrote:

>
> Hi Gert,
>
> Thanks for you reply.
>
> And I see some logs as following:
>
> 2009-11-09 11:19:28,171 DEBUG - SedaQueue                      -
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@89e163 dequeu
> ed exchange: InOnly[
>  id: ID:10.80.12.85-124d6ebc094-2:10
>  status: Done
>  role: consumer
>  service: {http://www.hcsys.com/novaesb/}jms
>  endpoint: provider
>  operation: {http://www.hcsys.com/novaesb/}createCustomer
>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"  
> xmlns:msg="htt
> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema 
> "
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
> e="createCustomer" type="msg:createCustomer"
> version="1.0"><jbi:part><pns:createCustomer
> xmlns:pns="http://geneva.nova.com/custome
> r">
>      <pns:value>aaaa</pns:value>
>    </pns:createCustomer></jbi:part></jbi:message>
> ]
>
> This means the message is received and processed(send to cxf-provider
> endpoint) successfully by jms consumer endpoint.
>
> so when cxf-provider endpoint catch an exception or an error, the  
> message
> can't be  rollbacked to jms queue where jms consumer endpoint listen.
>
> I think this case can not be achieved in ServiceMix.
>
> If I am wrong, can you tell me how can I finish this case?
>
> thanks and regards.
>
>
> Gert Vanthienen wrote:
>>
>> L.S.,
>>
>> One option would be to enable transactions on the jms consumer
>> endpoint (transacted="jms").  Another option would be to get the JMS
>> client to acknowledge the message, like this:
>>
>>    <jms:consumer ....
>>                  sessionAcknowledgeMode="#AcknowledgeMode"/>
>>
>>     <util:constant id="AcknowledgeMode"
>> static-field="javax.jms.Session.CLIENT_ACKNOWLEDGE"/>
>>
>> Regards,
>>
>> Gert Vanthienen
>> ------------------------
>> Open Source SOA: http://fusesource.com
>> Blog: http://gertvanthienen.blogspot.com/
>>
>>
>>
>> 2009/11/9 colin.chi <ib...@hotmail.com>:
>>>
>>> work flow as follow:
>>>
>>> [external client]--->cxf-bc-consumer--->jms-provider--->jms queue
>>>
>>> jms queue--->jms-consumer--->cxf-bc-provider--->[external service]
>>>
>>> when external service is shut down, message don't rollback to jms  
>>> queue
>>> and
>>> throw exception.
>>>
>>> how to config jms consumer and cxf bc provider to do this case?
>>>
>>> =======================log begin==========================
>>>
>>> 2009-11-09 11:19:28,046 DEBUG - JettyHTTPDestination           -  
>>> Service
>>> http request on thread: Thread[22434271@qtp0-0,5,RMI Runt
>>> ime]
>>> 2009-11-09 11:19:28,046 DEBUG - AbstractHTTPDestination        -  
>>> Request
>>> Headers: {connection=[Keep-Alive], Host=[localhost:8080],
>>>  Content-Length=[364], User-Agent=[Mozilla/4.0 (compatible; MSIE  
>>> 7.0;
>>> Windows NT 5.1; Trident/4.0; GOSURF)], accept-encoding=[gzip
>>> , deflate], Accept=[*/*], Cache-Control=[no-cache]}
>>> 2009-11-09 11:19:28,046 DEBUG - PhaseInterceptorChain          -  
>>> Chain
>>> org.apache.cxf.phase.PhaseInterceptorChain@735ad7 was creat
>>> ed. Current flow:
>>>  receive [AttachmentInInterceptor]
>>>  post-stream [StaxInInterceptor]
>>>  read [ReadHeadersInterceptor]
>>>  pre-protocol [, MustUnderstandInterceptor, JbiJAASInterceptor]
>>>  unmarshal [JbiOperationInterceptor]
>>>  pre-invoke [JbiInWsdl1Interceptor, JbiInInterceptor]
>>>  invoke [JbiInvokerInterceptor]
>>>  post-invoke [JbiPostInvokerInterceptor, OutgoingChainInterceptor]
>>>
>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -  
>>> Invoking
>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>> AttachmentInInterceptor@14d8c8
>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -  
>>> Invoking
>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>> StaxInInterceptor@a4480d
>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -  
>>> Invoking
>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>> .interceptor.ReadHeadersInterceptor@1766d9c
>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -  
>>> Invoking
>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>> .CxfBcConsumer$1@1b7715d
>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -  
>>> Invoking
>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>> .interceptor.MustUnderstandInterceptor@73a403
>>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          -  
>>> Invoking
>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>> .interceptors.JbiJAASInterceptor@ca7c93
>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -  
>>> Invoking
>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>> .interceptors.JbiOperationInterceptor@1626bf
>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -  
>>> Invoking
>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>> .interceptors.JbiInWsdl1Interceptor@49e885
>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -  
>>> Invoking
>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>> .interceptors.JbiInInterceptor@407909
>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -  
>>> Invoking
>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>> .CxfBcConsumer$JbiInvokerInterceptor@1b8a6af
>>> 2009-11-09 11:19:28,140 DEBUG - CxfBcComponent                 -  
>>> Created
>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>> 2009-11-09 11:19:28,140 DEBUG - DeliveryChannelImpl            -  
>>> Send
>>> ID:10.80.12.85-124d6ebc094-2:10 in DeliveryChannel{servicemi
>>> x-cxf-bc}
>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -  
>>> send
>>> exchange with secure broker
>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -  
>>> service
>>> name :{http://www.hcsys.com/novaesb/}jms
>>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -
>>> operation
>>> name :{http://www.hcsys.com/novaesb/}createCustomer
>>> 2009-11-09 11:19:28,140 DEBUG - SedaFlow                       -  
>>> Called
>>> Flow
>>> send
>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -  
>>> Invoking
>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>> .CxfBcConsumer$JbiPostInvokerInterceptor@1c76cab
>>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          -  
>>> Invoking
>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>> OutgoingChainInterceptor@1af691b
>>> 2009-11-09 11:19:28,156 DEBUG - JettyHTTPDestination           -  
>>> Finished
>>> servicing http request on thread: Thread[22434271@qtp0-0
>>> ,5,RMI Runtime]
>>> 2009-11-09 11:19:28,156 DEBUG - SedaQueue                      -
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@45ac89 dequeu
>>> ed exchange: InOnly[
>>>  id: ID:10.80.12.85-124d6ebc094-2:10
>>>  status: Active
>>>  role: provider
>>>  service: {http://www.hcsys.com/novaesb/}jms
>>>  endpoint: provider
>>>  operation: {http://www.hcsys.com/novaesb/}createCustomer
>>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"  
>>> xmlns:msg="htt
>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema 
>>> "
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>> e="createCustomer" type="msg:createCustomer"
>>> version="1.0"><jbi:part><pns:createCustomer
>>> xmlns:pns="http://geneva.nova.com/custome
>>> r">
>>>      <pns:value>aaaa</pns:value>
>>>    </pns:createCustomer></jbi:part></jbi:message>
>>> ]
>>> 2009-11-09 11:19:28,156 DEBUG - JmsComponent                   -  
>>> Received
>>> exchange: status: Active, role: provider
>>> 2009-11-09 11:19:28,156 DEBUG - JmsComponent                   -
>>> Retrieved
>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>> 2009-11-09 11:19:28,156 DEBUG - DeliveryChannelImpl            -  
>>> Send
>>> ID:10.80.12.85-124d6ebc094-2:10 in DeliveryChannel{servicemi
>>> x-jms}
>>> 2009-11-09 11:19:28,156 DEBUG - SecuredBroker                  -  
>>> send
>>> exchange with secure broker
>>> 2009-11-09 11:19:28,156 DEBUG - SedaFlow                       -  
>>> Called
>>> Flow
>>> send
>>> 2009-11-09 11:19:28,156 DEBUG - MultiplexingConsumerProcessor  -  
>>> Received
>>> jms message ActiveMQTextMessage {commandId = 17, respons
>>> eRequired = true, messageId =
>>> ID:8014ac188efd43a-4422-1257736227984-2:10:1:1:11,  
>>> originalDestination =
>>> null, originalTransactionId
>>>  = null, producerId = ID: 
>>> 8014ac188efd43a-4422-1257736227984-2:10:1:1,
>>> destination = queue://queue/A, transactionId = null, expirat
>>> ion = 0, timestamp = 1257736768156, arrival = 0, brokerInTime =
>>> 1257736768156, brokerOutTime = 1257736768156, correlationId = null
>>> , replyTo = null, persistent = true, type = null, priority = 4,  
>>> groupID =
>>> null, groupSequence = 0, targetConsumerId = null, compre
>>> ssed = false, userID = null, content = null, marshalledProperties =
>>> org.apache.activemq.util.ByteSequence@1713c03, dataStructure =
>>>  null, redeliveryCounter = 0, size = 0, properties =
>>> {MimeContentType=text/xml;charset=UTF-8,
>>> SoapAction=/{http://www.hcsys.com/no
>>> vaesb/}createCustomer,
>>> SOAPJMS_soapAction=/{http://www.hcsys.com/novaesb/}createCustomer},
>>> readOnlyProperties = true, readOnlyBody
>>>  = true, droppable = false, text = <?xml version='1.0'
>>> encoding='UTF-8'?><jbi:me...jbi:message>}
>>> 2009-11-09 11:19:28,171 DEBUG - MultiplexingConsumerProcessor  -  
>>> Handling
>>> jms message ActiveMQTextMessage {commandId = 17, respons
>>> eRequired = true, messageId =
>>> ID:8014ac188efd43a-4422-1257736227984-2:10:1:1:11,  
>>> originalDestination =
>>> null, originalTransactionId
>>>  = null, producerId = ID: 
>>> 8014ac188efd43a-4422-1257736227984-2:10:1:1,
>>> destination = queue://queue/A, transactionId = null, expirat
>>> ion = 0, timestamp = 1257736768156, arrival = 0, brokerInTime =
>>> 1257736768156, brokerOutTime = 1257736768156, correlationId = null
>>> , replyTo = null, persistent = true, type = null, priority = 4,  
>>> groupID =
>>> null, groupSequence = 0, targetConsumerId = null, compre
>>> ssed = false, userID = null, content = null, marshalledProperties =
>>> org.apache.activemq.util.ByteSequence@1713c03, dataStructure =
>>>  null, redeliveryCounter = 0, size = 0, properties =
>>> {MimeContentType=text/xml;charset=UTF-8,
>>> SoapAction=/{http://www.hcsys.com/no
>>> vaesb/}createCustomer,
>>> SOAPJMS_soapAction=/{http://www.hcsys.com/novaesb/}createCustomer},
>>> readOnlyProperties = true, readOnlyBody
>>>  = true, droppable = false, text = <?xml version='1.0'
>>> encoding='UTF-8'?><jbi:me...jbi:message>}
>>> 2009-11-09 11:19:28,171 DEBUG - SedaQueue                      -
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@89e163 dequeu
>>> ed exchange: InOnly[
>>>  id: ID:10.80.12.85-124d6ebc094-2:10
>>>  status: Done
>>>  role: consumer
>>>  service: {http://www.hcsys.com/novaesb/}jms
>>>  endpoint: provider
>>>  operation: {http://www.hcsys.com/novaesb/}createCustomer
>>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"  
>>> xmlns:msg="htt
>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema 
>>> "
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>> e="createCustomer" type="msg:createCustomer"
>>> version="1.0"><jbi:part><pns:createCustomer
>>> xmlns:pns="http://geneva.nova.com/custome
>>> r">
>>>      <pns:value>aaaa</pns:value>
>>>    </pns:createCustomer></jbi:part></jbi:message>
>>> ]
>>> 2009-11-09 11:19:28,171 DEBUG - JmsComponent                   -  
>>> Created
>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>> 2009-11-09 11:19:28,171 DEBUG - CxfBcComponent                 -  
>>> Received
>>> exchange: status: Done, role: consumer
>>> 2009-11-09 11:19:28,171 DEBUG - DeliveryChannelImpl            -  
>>> Send
>>> ID:10.80.12.85-124d6ebc094-4:10 in DeliveryChannel{servicemi
>>> x-jms}
>>> 2009-11-09 11:19:28,171 DEBUG - CxfBcComponent                 -
>>> Retrieved
>>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -  
>>> send
>>> exchange with secure broker
>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -  
>>> service
>>> name :{http://geneva.nova.com/customer}CustomerInImplServ
>>> ice
>>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -
>>> operation
>>> name :{http://geneva.nova.com/customer}createCustomer
>>> 2009-11-09 11:19:28,171 DEBUG - SedaFlow                       -  
>>> Called
>>> Flow
>>> send
>>> 2009-11-09 11:19:28,187 DEBUG - SedaQueue                      -
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@4437d3 dequeu
>>> ed exchange: InOnly[
>>>  id: ID:10.80.12.85-124d6ebc094-4:10
>>>  status: Active
>>>  role: provider
>>>  service: {http://geneva.nova.com/customer}CustomerInImplService
>>>  endpoint: CustomerInGenevaPortTypePort
>>>  operation: {http://geneva.nova.com/customer}createCustomer
>>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"  
>>> xmlns:msg="htt
>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema 
>>> "
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>> e="createCustomer" type="msg:createCustomer"
>>> version="1.0"><jbi:part><pns:createCustomer
>>> xmlns:pns="http://geneva.nova.com/custome
>>> r">
>>>      <pns:value>aaaa</pns:value>
>>>    </pns:createCustomer></jbi:part></jbi:message>
>>> ]
>>> 2009-11-09 11:19:28,187 DEBUG - CxfBcComponent                 -  
>>> Received
>>> exchange: status: Active, role: provider
>>> 2009-11-09 11:19:28,187 DEBUG - CxfBcComponent                 -
>>> Retrieved
>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -  
>>> Adding
>>> interceptor org.apache.servicemix.cxfbc.interceptors.JbiOu
>>> tInterceptor@dd6a50 to phase pre-stream
>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -  
>>> Adding
>>> interceptor org.apache.servicemix.cxfbc.interceptors.JbiOu
>>> tWsdl1Interceptor@6ed9d1 to phase marshal
>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -  
>>> Adding
>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapPr
>>> eProtocolOutInterceptor@19e4f8b to phase post-logical
>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -  
>>> Adding
>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapOu
>>> tInterceptor@782f81 to phase write
>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -  
>>> Adding
>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapAc
>>> tionOutInterceptor@76df38 to phase post-logical
>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -  
>>> Adding
>>> interceptor org.apache.cxf.interceptor.StaxOutInterceptor@
>>> 38df00 to phase pre-stream
>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -  
>>> Chain
>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was crea
>>> ted. Current flow:
>>>  post-logical [SoapPreProtocolOutInterceptor,  
>>> SoapActionOutInterceptor]
>>>  pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>  write [SoapOutInterceptor]
>>>  marshal [JbiOutWsdl1Interceptor]
>>>
>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -  
>>> Invoking
>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>> .interceptor.SoapPreProtocolOutInterceptor@19e4f8b
>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -  
>>> Invoking
>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>> .interceptor.SoapActionOutInterceptor@76df38
>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -  
>>> Invoking
>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>> .interceptors.JbiOutInterceptor@dd6a50
>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -  
>>> Invoking
>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>> StaxOutInterceptor@38df00
>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -  
>>> Adding
>>> interceptor org.apache.cxf.interceptor.StaxOutInterceptor$
>>> StaxOutEndingInterceptor@1073a2e to phase pre-stream-ending
>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -  
>>> Chain
>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was modi
>>> fied. Current flow:
>>>  post-logical [SoapPreProtocolOutInterceptor,  
>>> SoapActionOutInterceptor]
>>>  pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>  write [SoapOutInterceptor]
>>>  marshal [JbiOutWsdl1Interceptor]
>>>  pre-stream-ending [StaxOutEndingInterceptor]
>>>
>>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          -  
>>> Invoking
>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>> .interceptor.SoapOutInterceptor@782f81
>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -  
>>> Adding
>>> interceptor org.apache.cxf.binding.soap.interceptor.SoapOu
>>> tInterceptor$SoapOutEndingInterceptor@17cb4ff to phase write-ending
>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -  
>>> Chain
>>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was modi
>>> fied. Current flow:
>>>  post-logical [SoapPreProtocolOutInterceptor,  
>>> SoapActionOutInterceptor]
>>>  pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>>  write [SoapOutInterceptor]
>>>  marshal [JbiOutWsdl1Interceptor]
>>>  write-ending [SoapOutEndingInterceptor]
>>>  pre-stream-ending [StaxOutEndingInterceptor]
>>>
>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -  
>>> Invoking
>>> handleMessage on interceptor org.apache.servicemix.cxfbc
>>> .interceptors.JbiOutWsdl1Interceptor@6ed9d1
>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -  
>>> Invoking
>>> handleMessage on interceptor org.apache.cxf.binding.soap
>>> .interceptor.SoapOutInterceptor$SoapOutEndingInterceptor@17cb4ff
>>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          -  
>>> Invoking
>>> handleMessage on interceptor org.apache.cxf.interceptor.
>>> StaxOutInterceptor$StaxOutEndingInterceptor@1073a2e
>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -  
>>> Sending
>>> POST Message with Headers to http://10.80.12.100:8080/Gen
>>> evaESB/services/CustomerAccount Conduit
>>> :{http://geneva.nova.com/ 
>>> customer}CustomerInGenevaPortTypePort.http-conduit
>>> Content-Type: text/xml; charset=UTF-8
>>>
>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>>> SOAPAction:
>>> ""
>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -  
>>> Accept:
>>> *
>>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -  
>>> No Trust
>>> Decider for Conduit '{http://geneva.nova.com/customer}Cu
>>> stomerInGenevaPortTypePort.http-conduit'. An afirmative Trust  
>>> Decision is
>>> assumed.
>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    -  
>>> Response
>>> Code: 404 Conduit: {http://geneva.nova.com/customer}Cust
>>> omerInGenevaPortTypePort.http-conduit
>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    -  
>>> Content
>>> length: 952
>>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    -  
>>> Header
>>> fields:
>>>    null: [HTTP/1.1 404 Not Found]
>>>    Date: [Mon, 09 Nov 2009 03:19:04 GMT]
>>>    Content-Length: [952]
>>>    Content-Type: [text/html;charset=utf-8]
>>>    Server: [Apache-Coyote/1.1]
>>>
>>> 2009-11-09 11:19:28,265 ERROR - CxfBcComponent                 -  
>>> Error
>>> processing exchange InOnly[
>>>  id: ID:10.80.12.85-124d6ebc094-4:10
>>>  status: Active
>>>  role: provider
>>>  service: {http://geneva.nova.com/customer}CustomerInImplService
>>>  endpoint: CustomerInGenevaPortTypePort
>>>  operation: {http://geneva.nova.com/customer}createCustomer
>>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"  
>>> xmlns:msg="htt
>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema 
>>> "
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>> e="createCustomer" type="msg:createCustomer"
>>> version="1.0"><jbi:part><pns:createCustomer
>>> xmlns:pns="http://geneva.nova.com/custome
>>> r">
>>>      <pns:value>aaaa</pns:value>
>>>    </pns:createCustomer></jbi:part></jbi:message>
>>> ]
>>> javax.jbi.messaging.MessagingException: Fault not supported
>>>        at
>>> org 
>>> .apache 
>>> .servicemix 
>>> .jbi 
>>> .messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java: 
>>> 366)
>>>        at
>>> org 
>>> .apache 
>>> .servicemix 
>>> .jbi 
>>> .messaging.MessageExchangeImpl.setFault(MessageExchangeImpl.java: 
>>> 290)
>>>        at
>>> org 
>>> .apache 
>>> .servicemix.cxfbc.CxfBcProvider.faultProcess(CxfBcProvider.java:277)
>>>        at
>>> org 
>>> .apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java: 
>>> 261)
>>>        at
>>> org 
>>> .apache 
>>> .servicemix 
>>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>>        at
>>> org 
>>> .apache 
>>> .servicemix 
>>> .common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java: 
>>> 581)
>>>        at
>>> org 
>>> .apache 
>>> .servicemix 
>>> .common 
>>> .AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>>>        at
>>> org 
>>> .apache 
>>> .servicemix 
>>> .common 
>>> .SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java: 
>>> 60)
>>>        at
>>> org 
>>> .apache 
>>> .servicemix 
>>> .jbi 
>>> .messaging 
>>> .DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>>>        at
>>> org 
>>> .apache 
>>> .servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java: 
>>> 172)
>>>        at
>>> org 
>>> .apache 
>>> .servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
>>>        at
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue 
>>> $1.run(SedaQueue.java:134)
>>>        at
>>> java.util.concurrent.ThreadPoolExecutor 
>>> $Worker.runTask(ThreadPoolExecutor.java:886)
>>>        at
>>> java.util.concurrent.ThreadPoolExecutor 
>>> $Worker.run(ThreadPoolExecutor.java:908)
>>>        at java.lang.Thread.run(Thread.java:619)
>>> 2009-11-09 11:19:28,296 DEBUG - DeliveryChannelImpl            -  
>>> Send
>>> ID:10.80.12.85-124d6ebc094-4:10 in DeliveryChannel{servicemi
>>> x-cxf-bc}
>>> 2009-11-09 11:19:28,296 DEBUG - SecuredBroker                  -  
>>> send
>>> exchange with secure broker
>>> 2009-11-09 11:19:28,296 DEBUG - SedaFlow                       -  
>>> Called
>>> Flow
>>> send
>>> 2009-11-09 11:19:28,296 DEBUG - SedaQueue                      -
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@247262 dequeu
>>> ed exchange: InOnly[
>>>  id: ID:10.80.12.85-124d6ebc094-4:10
>>>  status: Error
>>>  role: consumer
>>>  service: {http://geneva.nova.com/customer}CustomerInImplService
>>>  endpoint: CustomerInGenevaPortTypePort
>>>  operation: {http://geneva.nova.com/customer}createCustomer
>>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"  
>>> xmlns:msg="htt
>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema 
>>> "
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>> e="createCustomer" type="msg:createCustomer"
>>> version="1.0"><jbi:part><pns:createCustomer
>>> xmlns:pns="http://geneva.nova.com/custome
>>> r">
>>>      <pns:value>aaaa</pns:value>
>>>    </pns:createCustomer></jbi:part></jbi:message>
>>>  error: javax.jbi.messaging.MessagingException: Fault not supported
>>> ]
>>> 2009-11-09 11:19:28,296 DEBUG - JmsComponent                   -  
>>> Received
>>> exchange: status: Error, role: consumer
>>> 2009-11-09 11:19:28,296 DEBUG - JmsComponent                   -
>>> Retrieved
>>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>>> 2009-11-09 11:19:28,328 ERROR - JmsComponent                   -  
>>> Error
>>> processing exchange InOnly[
>>>  id: ID:10.80.12.85-124d6ebc094-4:10
>>>  status: Error
>>>  role: consumer
>>>  service: {http://geneva.nova.com/customer}CustomerInImplService
>>>  endpoint: CustomerInGenevaPortTypePort
>>>  operation: {http://geneva.nova.com/customer}createCustomer
>>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"  
>>> xmlns:msg="htt
>>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema 
>>> "
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>>> e="createCustomer" type="msg:createCustomer"
>>> version="1.0"><jbi:part><pns:createCustomer
>>> xmlns:pns="http://geneva.nova.com/custome
>>> r">
>>>      <pns:value>aaaa</pns:value>
>>>    </pns:createCustomer></jbi:part></jbi:message>
>>>  error: javax.jbi.messaging.MessagingException: Fault not supported
>>> ]
>>> java.lang.UnsupportedOperationException: A destination must be  
>>> specified.
>>>        at
>>> org 
>>> .apache 
>>> .activemq 
>>> .ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:195)
>>>        at
>>> org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:74)
>>>        at
>>> org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:59)
>>>        at
>>> org 
>>> .apache 
>>> .servicemix 
>>> .jms 
>>> .multiplexing 
>>> .MultiplexingConsumerProcessor 
>>> .process(MultiplexingConsumerProcessor.java:126)
>>>        at
>>> org.apache.servicemix.soap.SoapEndpoint.process(SoapEndpoint.java: 
>>> 368)
>>>        at
>>> org 
>>> .apache 
>>> .servicemix 
>>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>>        at
>>> org 
>>> .apache 
>>> .servicemix 
>>> .common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java: 
>>> 598)
>>>        at
>>> org 
>>> .apache 
>>> .servicemix 
>>> .common 
>>> .AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>>>        at
>>> org 
>>> .apache 
>>> .servicemix 
>>> .common 
>>> .SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java: 
>>> 60)
>>>        at
>>> org 
>>> .apache 
>>> .servicemix 
>>> .jbi 
>>> .messaging 
>>> .DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>>>        at
>>> org 
>>> .apache 
>>> .servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java: 
>>> 172)
>>>        at
>>> org 
>>> .apache 
>>> .servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
>>>        at
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue 
>>> $1.run(SedaQueue.java:134)
>>>        at
>>> java.util.concurrent.ThreadPoolExecutor 
>>> $Worker.runTask(ThreadPoolExecutor.java:886)
>>>        at
>>> java.util.concurrent.ThreadPoolExecutor 
>>> $Worker.run(ThreadPoolExecutor.java:908)
>>>        at java.lang.Thread.run(Thread.java:619)
>>>
>>>
>>> =======================log end==========================
>>> --
>>> View this message in context:
>>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26260776.html
>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>> -----
>> ---
>> Gert Vanthienen
>> http://gertvanthienen.blogspot.com
>>
>
> -- 
> View this message in context: http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26297802.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>


-- 
Freeman Fang
------------------------
Open Source SOA: http://fusesource.com


Re: When external service is shut down, message don't rollback to jms queue.

Posted by "colin.chi" <ib...@hotmail.com>.
Hi Gert, 

Thanks for you reply.

And I see some logs as following:

2009-11-09 11:19:28,171 DEBUG - SedaQueue                      -
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@89e163 dequeu
ed exchange: InOnly[
  id: ID:10.80.12.85-124d6ebc094-2:10
  status: Done
  role: consumer
  service: {http://www.hcsys.com/novaesb/}jms
  endpoint: provider
  operation: {http://www.hcsys.com/novaesb/}createCustomer
  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="htt
p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
e="createCustomer" type="msg:createCustomer"
version="1.0"><jbi:part><pns:createCustomer
xmlns:pns="http://geneva.nova.com/custome
r">
      <pns:value>aaaa</pns:value>
    </pns:createCustomer></jbi:part></jbi:message>
] 

This means the message is received and processed(send to cxf-provider
endpoint) successfully by jms consumer endpoint.

so when cxf-provider endpoint catch an exception or an error, the message
can't be  rollbacked to jms queue where jms consumer endpoint listen.

I think this case can not be achieved in ServiceMix.

If I am wrong, can you tell me how can I finish this case?

thanks and regards.


Gert Vanthienen wrote:
> 
> L.S.,
> 
> One option would be to enable transactions on the jms consumer
> endpoint (transacted="jms").  Another option would be to get the JMS
> client to acknowledge the message, like this:
> 
>     <jms:consumer ....
>                   sessionAcknowledgeMode="#AcknowledgeMode"/>
> 
>      <util:constant id="AcknowledgeMode"
> static-field="javax.jms.Session.CLIENT_ACKNOWLEDGE"/>
> 
> Regards,
> 
> Gert Vanthienen
> ------------------------
> Open Source SOA: http://fusesource.com
> Blog: http://gertvanthienen.blogspot.com/
> 
> 
> 
> 2009/11/9 colin.chi <ib...@hotmail.com>:
>>
>> work flow as follow:
>>
>> [external client]--->cxf-bc-consumer--->jms-provider--->jms queue
>>
>> jms queue--->jms-consumer--->cxf-bc-provider--->[external service]
>>
>> when external service is shut down, message don't rollback to jms queue
>> and
>> throw exception.
>>
>> how to config jms consumer and cxf bc provider to do this case?
>>
>> =======================log begin==========================
>>
>> 2009-11-09 11:19:28,046 DEBUG - JettyHTTPDestination           - Service
>> http request on thread: Thread[22434271@qtp0-0,5,RMI Runt
>> ime]
>> 2009-11-09 11:19:28,046 DEBUG - AbstractHTTPDestination        - Request
>> Headers: {connection=[Keep-Alive], Host=[localhost:8080],
>>  Content-Length=[364], User-Agent=[Mozilla/4.0 (compatible; MSIE 7.0;
>> Windows NT 5.1; Trident/4.0; GOSURF)], accept-encoding=[gzip
>> , deflate], Accept=[*/*], Cache-Control=[no-cache]}
>> 2009-11-09 11:19:28,046 DEBUG - PhaseInterceptorChain          - Chain
>> org.apache.cxf.phase.PhaseInterceptorChain@735ad7 was creat
>> ed. Current flow:
>>  receive [AttachmentInInterceptor]
>>  post-stream [StaxInInterceptor]
>>  read [ReadHeadersInterceptor]
>>  pre-protocol [, MustUnderstandInterceptor, JbiJAASInterceptor]
>>  unmarshal [JbiOperationInterceptor]
>>  pre-invoke [JbiInWsdl1Interceptor, JbiInInterceptor]
>>  invoke [JbiInvokerInterceptor]
>>  post-invoke [JbiPostInvokerInterceptor, OutgoingChainInterceptor]
>>
>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          - Invoking
>> handleMessage on interceptor org.apache.cxf.interceptor.
>> AttachmentInInterceptor@14d8c8
>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          - Invoking
>> handleMessage on interceptor org.apache.cxf.interceptor.
>> StaxInInterceptor@a4480d
>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          - Invoking
>> handleMessage on interceptor org.apache.cxf.binding.soap
>> .interceptor.ReadHeadersInterceptor@1766d9c
>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          - Invoking
>> handleMessage on interceptor org.apache.servicemix.cxfbc
>> .CxfBcConsumer$1@1b7715d
>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          - Invoking
>> handleMessage on interceptor org.apache.cxf.binding.soap
>> .interceptor.MustUnderstandInterceptor@73a403
>> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          - Invoking
>> handleMessage on interceptor org.apache.servicemix.cxfbc
>> .interceptors.JbiJAASInterceptor@ca7c93
>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          - Invoking
>> handleMessage on interceptor org.apache.servicemix.cxfbc
>> .interceptors.JbiOperationInterceptor@1626bf
>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          - Invoking
>> handleMessage on interceptor org.apache.servicemix.cxfbc
>> .interceptors.JbiInWsdl1Interceptor@49e885
>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          - Invoking
>> handleMessage on interceptor org.apache.servicemix.cxfbc
>> .interceptors.JbiInInterceptor@407909
>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          - Invoking
>> handleMessage on interceptor org.apache.servicemix.cxfbc
>> .CxfBcConsumer$JbiInvokerInterceptor@1b8a6af
>> 2009-11-09 11:19:28,140 DEBUG - CxfBcComponent                 - Created
>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>> 2009-11-09 11:19:28,140 DEBUG - DeliveryChannelImpl            - Send
>> ID:10.80.12.85-124d6ebc094-2:10 in DeliveryChannel{servicemi
>> x-cxf-bc}
>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  - send
>> exchange with secure broker
>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  - service
>> name :{http://www.hcsys.com/novaesb/}jms
>> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  -
>> operation
>> name :{http://www.hcsys.com/novaesb/}createCustomer
>> 2009-11-09 11:19:28,140 DEBUG - SedaFlow                       - Called
>> Flow
>> send
>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          - Invoking
>> handleMessage on interceptor org.apache.servicemix.cxfbc
>> .CxfBcConsumer$JbiPostInvokerInterceptor@1c76cab
>> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          - Invoking
>> handleMessage on interceptor org.apache.cxf.interceptor.
>> OutgoingChainInterceptor@1af691b
>> 2009-11-09 11:19:28,156 DEBUG - JettyHTTPDestination           - Finished
>> servicing http request on thread: Thread[22434271@qtp0-0
>> ,5,RMI Runtime]
>> 2009-11-09 11:19:28,156 DEBUG - SedaQueue                      -
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@45ac89 dequeu
>> ed exchange: InOnly[
>>  id: ID:10.80.12.85-124d6ebc094-2:10
>>  status: Active
>>  role: provider
>>  service: {http://www.hcsys.com/novaesb/}jms
>>  endpoint: provider
>>  operation: {http://www.hcsys.com/novaesb/}createCustomer
>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="htt
>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>> e="createCustomer" type="msg:createCustomer"
>> version="1.0"><jbi:part><pns:createCustomer
>> xmlns:pns="http://geneva.nova.com/custome
>> r">
>>      <pns:value>aaaa</pns:value>
>>    </pns:createCustomer></jbi:part></jbi:message>
>> ]
>> 2009-11-09 11:19:28,156 DEBUG - JmsComponent                   - Received
>> exchange: status: Active, role: provider
>> 2009-11-09 11:19:28,156 DEBUG - JmsComponent                   -
>> Retrieved
>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>> 2009-11-09 11:19:28,156 DEBUG - DeliveryChannelImpl            - Send
>> ID:10.80.12.85-124d6ebc094-2:10 in DeliveryChannel{servicemi
>> x-jms}
>> 2009-11-09 11:19:28,156 DEBUG - SecuredBroker                  - send
>> exchange with secure broker
>> 2009-11-09 11:19:28,156 DEBUG - SedaFlow                       - Called
>> Flow
>> send
>> 2009-11-09 11:19:28,156 DEBUG - MultiplexingConsumerProcessor  - Received
>> jms message ActiveMQTextMessage {commandId = 17, respons
>> eRequired = true, messageId =
>> ID:8014ac188efd43a-4422-1257736227984-2:10:1:1:11, originalDestination =
>> null, originalTransactionId
>>  = null, producerId = ID:8014ac188efd43a-4422-1257736227984-2:10:1:1,
>> destination = queue://queue/A, transactionId = null, expirat
>> ion = 0, timestamp = 1257736768156, arrival = 0, brokerInTime =
>> 1257736768156, brokerOutTime = 1257736768156, correlationId = null
>> , replyTo = null, persistent = true, type = null, priority = 4, groupID =
>> null, groupSequence = 0, targetConsumerId = null, compre
>> ssed = false, userID = null, content = null, marshalledProperties =
>> org.apache.activemq.util.ByteSequence@1713c03, dataStructure =
>>  null, redeliveryCounter = 0, size = 0, properties =
>> {MimeContentType=text/xml;charset=UTF-8,
>> SoapAction=/{http://www.hcsys.com/no
>> vaesb/}createCustomer,
>> SOAPJMS_soapAction=/{http://www.hcsys.com/novaesb/}createCustomer},
>> readOnlyProperties = true, readOnlyBody
>>  = true, droppable = false, text = <?xml version='1.0'
>> encoding='UTF-8'?><jbi:me...jbi:message>}
>> 2009-11-09 11:19:28,171 DEBUG - MultiplexingConsumerProcessor  - Handling
>> jms message ActiveMQTextMessage {commandId = 17, respons
>> eRequired = true, messageId =
>> ID:8014ac188efd43a-4422-1257736227984-2:10:1:1:11, originalDestination =
>> null, originalTransactionId
>>  = null, producerId = ID:8014ac188efd43a-4422-1257736227984-2:10:1:1,
>> destination = queue://queue/A, transactionId = null, expirat
>> ion = 0, timestamp = 1257736768156, arrival = 0, brokerInTime =
>> 1257736768156, brokerOutTime = 1257736768156, correlationId = null
>> , replyTo = null, persistent = true, type = null, priority = 4, groupID =
>> null, groupSequence = 0, targetConsumerId = null, compre
>> ssed = false, userID = null, content = null, marshalledProperties =
>> org.apache.activemq.util.ByteSequence@1713c03, dataStructure =
>>  null, redeliveryCounter = 0, size = 0, properties =
>> {MimeContentType=text/xml;charset=UTF-8,
>> SoapAction=/{http://www.hcsys.com/no
>> vaesb/}createCustomer,
>> SOAPJMS_soapAction=/{http://www.hcsys.com/novaesb/}createCustomer},
>> readOnlyProperties = true, readOnlyBody
>>  = true, droppable = false, text = <?xml version='1.0'
>> encoding='UTF-8'?><jbi:me...jbi:message>}
>> 2009-11-09 11:19:28,171 DEBUG - SedaQueue                      -
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@89e163 dequeu
>> ed exchange: InOnly[
>>  id: ID:10.80.12.85-124d6ebc094-2:10
>>  status: Done
>>  role: consumer
>>  service: {http://www.hcsys.com/novaesb/}jms
>>  endpoint: provider
>>  operation: {http://www.hcsys.com/novaesb/}createCustomer
>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="htt
>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>> e="createCustomer" type="msg:createCustomer"
>> version="1.0"><jbi:part><pns:createCustomer
>> xmlns:pns="http://geneva.nova.com/custome
>> r">
>>      <pns:value>aaaa</pns:value>
>>    </pns:createCustomer></jbi:part></jbi:message>
>> ]
>> 2009-11-09 11:19:28,171 DEBUG - JmsComponent                   - Created
>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>> 2009-11-09 11:19:28,171 DEBUG - CxfBcComponent                 - Received
>> exchange: status: Done, role: consumer
>> 2009-11-09 11:19:28,171 DEBUG - DeliveryChannelImpl            - Send
>> ID:10.80.12.85-124d6ebc094-4:10 in DeliveryChannel{servicemi
>> x-jms}
>> 2009-11-09 11:19:28,171 DEBUG - CxfBcComponent                 -
>> Retrieved
>> correlation id: ID:10.80.12.85-124d6ebc094-2:10
>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  - send
>> exchange with secure broker
>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  - service
>> name :{http://geneva.nova.com/customer}CustomerInImplServ
>> ice
>> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  -
>> operation
>> name :{http://geneva.nova.com/customer}createCustomer
>> 2009-11-09 11:19:28,171 DEBUG - SedaFlow                       - Called
>> Flow
>> send
>> 2009-11-09 11:19:28,187 DEBUG - SedaQueue                      -
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@4437d3 dequeu
>> ed exchange: InOnly[
>>  id: ID:10.80.12.85-124d6ebc094-4:10
>>  status: Active
>>  role: provider
>>  service: {http://geneva.nova.com/customer}CustomerInImplService
>>  endpoint: CustomerInGenevaPortTypePort
>>  operation: {http://geneva.nova.com/customer}createCustomer
>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="htt
>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>> e="createCustomer" type="msg:createCustomer"
>> version="1.0"><jbi:part><pns:createCustomer
>> xmlns:pns="http://geneva.nova.com/custome
>> r">
>>      <pns:value>aaaa</pns:value>
>>    </pns:createCustomer></jbi:part></jbi:message>
>> ]
>> 2009-11-09 11:19:28,187 DEBUG - CxfBcComponent                 - Received
>> exchange: status: Active, role: provider
>> 2009-11-09 11:19:28,187 DEBUG - CxfBcComponent                 -
>> Retrieved
>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
>> interceptor org.apache.servicemix.cxfbc.interceptors.JbiOu
>> tInterceptor@dd6a50 to phase pre-stream
>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
>> interceptor org.apache.servicemix.cxfbc.interceptors.JbiOu
>> tWsdl1Interceptor@6ed9d1 to phase marshal
>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
>> interceptor org.apache.cxf.binding.soap.interceptor.SoapPr
>> eProtocolOutInterceptor@19e4f8b to phase post-logical
>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
>> interceptor org.apache.cxf.binding.soap.interceptor.SoapOu
>> tInterceptor@782f81 to phase write
>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
>> interceptor org.apache.cxf.binding.soap.interceptor.SoapAc
>> tionOutInterceptor@76df38 to phase post-logical
>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
>> interceptor org.apache.cxf.interceptor.StaxOutInterceptor@
>> 38df00 to phase pre-stream
>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Chain
>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was crea
>> ted. Current flow:
>>  post-logical [SoapPreProtocolOutInterceptor, SoapActionOutInterceptor]
>>  pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>  write [SoapOutInterceptor]
>>  marshal [JbiOutWsdl1Interceptor]
>>
>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Invoking
>> handleMessage on interceptor org.apache.cxf.binding.soap
>> .interceptor.SoapPreProtocolOutInterceptor@19e4f8b
>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Invoking
>> handleMessage on interceptor org.apache.cxf.binding.soap
>> .interceptor.SoapActionOutInterceptor@76df38
>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Invoking
>> handleMessage on interceptor org.apache.servicemix.cxfbc
>> .interceptors.JbiOutInterceptor@dd6a50
>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Invoking
>> handleMessage on interceptor org.apache.cxf.interceptor.
>> StaxOutInterceptor@38df00
>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
>> interceptor org.apache.cxf.interceptor.StaxOutInterceptor$
>> StaxOutEndingInterceptor@1073a2e to phase pre-stream-ending
>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Chain
>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was modi
>> fied. Current flow:
>>  post-logical [SoapPreProtocolOutInterceptor, SoapActionOutInterceptor]
>>  pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>  write [SoapOutInterceptor]
>>  marshal [JbiOutWsdl1Interceptor]
>>  pre-stream-ending [StaxOutEndingInterceptor]
>>
>> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Invoking
>> handleMessage on interceptor org.apache.cxf.binding.soap
>> .interceptor.SoapOutInterceptor@782f81
>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          - Adding
>> interceptor org.apache.cxf.binding.soap.interceptor.SoapOu
>> tInterceptor$SoapOutEndingInterceptor@17cb4ff to phase write-ending
>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          - Chain
>> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was modi
>> fied. Current flow:
>>  post-logical [SoapPreProtocolOutInterceptor, SoapActionOutInterceptor]
>>  pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>>  write [SoapOutInterceptor]
>>  marshal [JbiOutWsdl1Interceptor]
>>  write-ending [SoapOutEndingInterceptor]
>>  pre-stream-ending [StaxOutEndingInterceptor]
>>
>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          - Invoking
>> handleMessage on interceptor org.apache.servicemix.cxfbc
>> .interceptors.JbiOutWsdl1Interceptor@6ed9d1
>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          - Invoking
>> handleMessage on interceptor org.apache.cxf.binding.soap
>> .interceptor.SoapOutInterceptor$SoapOutEndingInterceptor@17cb4ff
>> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          - Invoking
>> handleMessage on interceptor org.apache.cxf.interceptor.
>> StaxOutInterceptor$StaxOutEndingInterceptor@1073a2e
>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    - Sending
>> POST Message with Headers to http://10.80.12.100:8080/Gen
>> evaESB/services/CustomerAccount Conduit
>> :{http://geneva.nova.com/customer}CustomerInGenevaPortTypePort.http-conduit
>> Content-Type: text/xml; charset=UTF-8
>>
>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    -
>> SOAPAction:
>> ""
>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    - Accept:
>> *
>> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    - No Trust
>> Decider for Conduit '{http://geneva.nova.com/customer}Cu
>> stomerInGenevaPortTypePort.http-conduit'. An afirmative Trust Decision is
>> assumed.
>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    - Response
>> Code: 404 Conduit: {http://geneva.nova.com/customer}Cust
>> omerInGenevaPortTypePort.http-conduit
>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    - Content
>> length: 952
>> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    - Header
>> fields:
>>    null: [HTTP/1.1 404 Not Found]
>>    Date: [Mon, 09 Nov 2009 03:19:04 GMT]
>>    Content-Length: [952]
>>    Content-Type: [text/html;charset=utf-8]
>>    Server: [Apache-Coyote/1.1]
>>
>> 2009-11-09 11:19:28,265 ERROR - CxfBcComponent                 - Error
>> processing exchange InOnly[
>>  id: ID:10.80.12.85-124d6ebc094-4:10
>>  status: Active
>>  role: provider
>>  service: {http://geneva.nova.com/customer}CustomerInImplService
>>  endpoint: CustomerInGenevaPortTypePort
>>  operation: {http://geneva.nova.com/customer}createCustomer
>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="htt
>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>> e="createCustomer" type="msg:createCustomer"
>> version="1.0"><jbi:part><pns:createCustomer
>> xmlns:pns="http://geneva.nova.com/custome
>> r">
>>      <pns:value>aaaa</pns:value>
>>    </pns:createCustomer></jbi:part></jbi:message>
>> ]
>> javax.jbi.messaging.MessagingException: Fault not supported
>>        at
>> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java:366)
>>        at
>> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setFault(MessageExchangeImpl.java:290)
>>        at
>> org.apache.servicemix.cxfbc.CxfBcProvider.faultProcess(CxfBcProvider.java:277)
>>        at
>> org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:261)
>>        at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>        at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
>>        at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>>        at
>> org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
>>        at
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>>        at
>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
>>        at
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
>>        at
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>>        at
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>        at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>        at java.lang.Thread.run(Thread.java:619)
>> 2009-11-09 11:19:28,296 DEBUG - DeliveryChannelImpl            - Send
>> ID:10.80.12.85-124d6ebc094-4:10 in DeliveryChannel{servicemi
>> x-cxf-bc}
>> 2009-11-09 11:19:28,296 DEBUG - SecuredBroker                  - send
>> exchange with secure broker
>> 2009-11-09 11:19:28,296 DEBUG - SedaFlow                       - Called
>> Flow
>> send
>> 2009-11-09 11:19:28,296 DEBUG - SedaQueue                      -
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@247262 dequeu
>> ed exchange: InOnly[
>>  id: ID:10.80.12.85-124d6ebc094-4:10
>>  status: Error
>>  role: consumer
>>  service: {http://geneva.nova.com/customer}CustomerInImplService
>>  endpoint: CustomerInGenevaPortTypePort
>>  operation: {http://geneva.nova.com/customer}createCustomer
>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="htt
>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>> e="createCustomer" type="msg:createCustomer"
>> version="1.0"><jbi:part><pns:createCustomer
>> xmlns:pns="http://geneva.nova.com/custome
>> r">
>>      <pns:value>aaaa</pns:value>
>>    </pns:createCustomer></jbi:part></jbi:message>
>>  error: javax.jbi.messaging.MessagingException: Fault not supported
>> ]
>> 2009-11-09 11:19:28,296 DEBUG - JmsComponent                   - Received
>> exchange: status: Error, role: consumer
>> 2009-11-09 11:19:28,296 DEBUG - JmsComponent                   -
>> Retrieved
>> correlation id: ID:10.80.12.85-124d6ebc094-4:10
>> 2009-11-09 11:19:28,328 ERROR - JmsComponent                   - Error
>> processing exchange InOnly[
>>  id: ID:10.80.12.85-124d6ebc094-4:10
>>  status: Error
>>  role: consumer
>>  service: {http://geneva.nova.com/customer}CustomerInImplService
>>  endpoint: CustomerInGenevaPortTypePort
>>  operation: {http://geneva.nova.com/customer}createCustomer
>>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="htt
>> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
>> e="createCustomer" type="msg:createCustomer"
>> version="1.0"><jbi:part><pns:createCustomer
>> xmlns:pns="http://geneva.nova.com/custome
>> r">
>>      <pns:value>aaaa</pns:value>
>>    </pns:createCustomer></jbi:part></jbi:message>
>>  error: javax.jbi.messaging.MessagingException: Fault not supported
>> ]
>> java.lang.UnsupportedOperationException: A destination must be specified.
>>        at
>> org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:195)
>>        at
>> org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:74)
>>        at
>> org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:59)
>>        at
>> org.apache.servicemix.jms.multiplexing.MultiplexingConsumerProcessor.process(MultiplexingConsumerProcessor.java:126)
>>        at
>> org.apache.servicemix.soap.SoapEndpoint.process(SoapEndpoint.java:368)
>>        at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>>        at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:598)
>>        at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>>        at
>> org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
>>        at
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>>        at
>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
>>        at
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
>>        at
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>>        at
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>        at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>        at java.lang.Thread.run(Thread.java:619)
>>
>>
>> =======================log end==========================
>> --
>> View this message in context:
>> http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26260776.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>>
> 
> 
> -----
> ---
> Gert Vanthienen
> http://gertvanthienen.blogspot.com
> 

-- 
View this message in context: http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26297802.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: When external service is shut down, message don't rollback to jms queue.

Posted by Gert Vanthienen <ge...@gmail.com>.
L.S.,

One option would be to enable transactions on the jms consumer
endpoint (transacted="jms").  Another option would be to get the JMS
client to acknowledge the message, like this:

    <jms:consumer ....
                  sessionAcknowledgeMode="#AcknowledgeMode"/>

     <util:constant id="AcknowledgeMode"
static-field="javax.jms.Session.CLIENT_ACKNOWLEDGE"/>

Regards,

Gert Vanthienen
------------------------
Open Source SOA: http://fusesource.com
Blog: http://gertvanthienen.blogspot.com/



2009/11/9 colin.chi <ib...@hotmail.com>:
>
> work flow as follow:
>
> [external client]--->cxf-bc-consumer--->jms-provider--->jms queue
>
> jms queue--->jms-consumer--->cxf-bc-provider--->[external service]
>
> when external service is shut down, message don't rollback to jms queue and
> throw exception.
>
> how to config jms consumer and cxf bc provider to do this case?
>
> =======================log begin==========================
>
> 2009-11-09 11:19:28,046 DEBUG - JettyHTTPDestination           - Service
> http request on thread: Thread[22434271@qtp0-0,5,RMI Runt
> ime]
> 2009-11-09 11:19:28,046 DEBUG - AbstractHTTPDestination        - Request
> Headers: {connection=[Keep-Alive], Host=[localhost:8080],
>  Content-Length=[364], User-Agent=[Mozilla/4.0 (compatible; MSIE 7.0;
> Windows NT 5.1; Trident/4.0; GOSURF)], accept-encoding=[gzip
> , deflate], Accept=[*/*], Cache-Control=[no-cache]}
> 2009-11-09 11:19:28,046 DEBUG - PhaseInterceptorChain          - Chain
> org.apache.cxf.phase.PhaseInterceptorChain@735ad7 was creat
> ed. Current flow:
>  receive [AttachmentInInterceptor]
>  post-stream [StaxInInterceptor]
>  read [ReadHeadersInterceptor]
>  pre-protocol [, MustUnderstandInterceptor, JbiJAASInterceptor]
>  unmarshal [JbiOperationInterceptor]
>  pre-invoke [JbiInWsdl1Interceptor, JbiInInterceptor]
>  invoke [JbiInvokerInterceptor]
>  post-invoke [JbiPostInvokerInterceptor, OutgoingChainInterceptor]
>
> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          - Invoking
> handleMessage on interceptor org.apache.cxf.interceptor.
> AttachmentInInterceptor@14d8c8
> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          - Invoking
> handleMessage on interceptor org.apache.cxf.interceptor.
> StaxInInterceptor@a4480d
> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          - Invoking
> handleMessage on interceptor org.apache.cxf.binding.soap
> .interceptor.ReadHeadersInterceptor@1766d9c
> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          - Invoking
> handleMessage on interceptor org.apache.servicemix.cxfbc
> .CxfBcConsumer$1@1b7715d
> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          - Invoking
> handleMessage on interceptor org.apache.cxf.binding.soap
> .interceptor.MustUnderstandInterceptor@73a403
> 2009-11-09 11:19:28,125 DEBUG - PhaseInterceptorChain          - Invoking
> handleMessage on interceptor org.apache.servicemix.cxfbc
> .interceptors.JbiJAASInterceptor@ca7c93
> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          - Invoking
> handleMessage on interceptor org.apache.servicemix.cxfbc
> .interceptors.JbiOperationInterceptor@1626bf
> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          - Invoking
> handleMessage on interceptor org.apache.servicemix.cxfbc
> .interceptors.JbiInWsdl1Interceptor@49e885
> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          - Invoking
> handleMessage on interceptor org.apache.servicemix.cxfbc
> .interceptors.JbiInInterceptor@407909
> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          - Invoking
> handleMessage on interceptor org.apache.servicemix.cxfbc
> .CxfBcConsumer$JbiInvokerInterceptor@1b8a6af
> 2009-11-09 11:19:28,140 DEBUG - CxfBcComponent                 - Created
> correlation id: ID:10.80.12.85-124d6ebc094-2:10
> 2009-11-09 11:19:28,140 DEBUG - DeliveryChannelImpl            - Send
> ID:10.80.12.85-124d6ebc094-2:10 in DeliveryChannel{servicemi
> x-cxf-bc}
> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  - send
> exchange with secure broker
> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  - service
> name :{http://www.hcsys.com/novaesb/}jms
> 2009-11-09 11:19:28,140 DEBUG - SecuredBroker                  - operation
> name :{http://www.hcsys.com/novaesb/}createCustomer
> 2009-11-09 11:19:28,140 DEBUG - SedaFlow                       - Called Flow
> send
> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          - Invoking
> handleMessage on interceptor org.apache.servicemix.cxfbc
> .CxfBcConsumer$JbiPostInvokerInterceptor@1c76cab
> 2009-11-09 11:19:28,140 DEBUG - PhaseInterceptorChain          - Invoking
> handleMessage on interceptor org.apache.cxf.interceptor.
> OutgoingChainInterceptor@1af691b
> 2009-11-09 11:19:28,156 DEBUG - JettyHTTPDestination           - Finished
> servicing http request on thread: Thread[22434271@qtp0-0
> ,5,RMI Runtime]
> 2009-11-09 11:19:28,156 DEBUG - SedaQueue                      -
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@45ac89 dequeu
> ed exchange: InOnly[
>  id: ID:10.80.12.85-124d6ebc094-2:10
>  status: Active
>  role: provider
>  service: {http://www.hcsys.com/novaesb/}jms
>  endpoint: provider
>  operation: {http://www.hcsys.com/novaesb/}createCustomer
>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="htt
> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
> e="createCustomer" type="msg:createCustomer"
> version="1.0"><jbi:part><pns:createCustomer
> xmlns:pns="http://geneva.nova.com/custome
> r">
>      <pns:value>aaaa</pns:value>
>    </pns:createCustomer></jbi:part></jbi:message>
> ]
> 2009-11-09 11:19:28,156 DEBUG - JmsComponent                   - Received
> exchange: status: Active, role: provider
> 2009-11-09 11:19:28,156 DEBUG - JmsComponent                   - Retrieved
> correlation id: ID:10.80.12.85-124d6ebc094-2:10
> 2009-11-09 11:19:28,156 DEBUG - DeliveryChannelImpl            - Send
> ID:10.80.12.85-124d6ebc094-2:10 in DeliveryChannel{servicemi
> x-jms}
> 2009-11-09 11:19:28,156 DEBUG - SecuredBroker                  - send
> exchange with secure broker
> 2009-11-09 11:19:28,156 DEBUG - SedaFlow                       - Called Flow
> send
> 2009-11-09 11:19:28,156 DEBUG - MultiplexingConsumerProcessor  - Received
> jms message ActiveMQTextMessage {commandId = 17, respons
> eRequired = true, messageId =
> ID:8014ac188efd43a-4422-1257736227984-2:10:1:1:11, originalDestination =
> null, originalTransactionId
>  = null, producerId = ID:8014ac188efd43a-4422-1257736227984-2:10:1:1,
> destination = queue://queue/A, transactionId = null, expirat
> ion = 0, timestamp = 1257736768156, arrival = 0, brokerInTime =
> 1257736768156, brokerOutTime = 1257736768156, correlationId = null
> , replyTo = null, persistent = true, type = null, priority = 4, groupID =
> null, groupSequence = 0, targetConsumerId = null, compre
> ssed = false, userID = null, content = null, marshalledProperties =
> org.apache.activemq.util.ByteSequence@1713c03, dataStructure =
>  null, redeliveryCounter = 0, size = 0, properties =
> {MimeContentType=text/xml;charset=UTF-8,
> SoapAction=/{http://www.hcsys.com/no
> vaesb/}createCustomer,
> SOAPJMS_soapAction=/{http://www.hcsys.com/novaesb/}createCustomer},
> readOnlyProperties = true, readOnlyBody
>  = true, droppable = false, text = <?xml version='1.0'
> encoding='UTF-8'?><jbi:me...jbi:message>}
> 2009-11-09 11:19:28,171 DEBUG - MultiplexingConsumerProcessor  - Handling
> jms message ActiveMQTextMessage {commandId = 17, respons
> eRequired = true, messageId =
> ID:8014ac188efd43a-4422-1257736227984-2:10:1:1:11, originalDestination =
> null, originalTransactionId
>  = null, producerId = ID:8014ac188efd43a-4422-1257736227984-2:10:1:1,
> destination = queue://queue/A, transactionId = null, expirat
> ion = 0, timestamp = 1257736768156, arrival = 0, brokerInTime =
> 1257736768156, brokerOutTime = 1257736768156, correlationId = null
> , replyTo = null, persistent = true, type = null, priority = 4, groupID =
> null, groupSequence = 0, targetConsumerId = null, compre
> ssed = false, userID = null, content = null, marshalledProperties =
> org.apache.activemq.util.ByteSequence@1713c03, dataStructure =
>  null, redeliveryCounter = 0, size = 0, properties =
> {MimeContentType=text/xml;charset=UTF-8,
> SoapAction=/{http://www.hcsys.com/no
> vaesb/}createCustomer,
> SOAPJMS_soapAction=/{http://www.hcsys.com/novaesb/}createCustomer},
> readOnlyProperties = true, readOnlyBody
>  = true, droppable = false, text = <?xml version='1.0'
> encoding='UTF-8'?><jbi:me...jbi:message>}
> 2009-11-09 11:19:28,171 DEBUG - SedaQueue                      -
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@89e163 dequeu
> ed exchange: InOnly[
>  id: ID:10.80.12.85-124d6ebc094-2:10
>  status: Done
>  role: consumer
>  service: {http://www.hcsys.com/novaesb/}jms
>  endpoint: provider
>  operation: {http://www.hcsys.com/novaesb/}createCustomer
>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="htt
> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
> e="createCustomer" type="msg:createCustomer"
> version="1.0"><jbi:part><pns:createCustomer
> xmlns:pns="http://geneva.nova.com/custome
> r">
>      <pns:value>aaaa</pns:value>
>    </pns:createCustomer></jbi:part></jbi:message>
> ]
> 2009-11-09 11:19:28,171 DEBUG - JmsComponent                   - Created
> correlation id: ID:10.80.12.85-124d6ebc094-4:10
> 2009-11-09 11:19:28,171 DEBUG - CxfBcComponent                 - Received
> exchange: status: Done, role: consumer
> 2009-11-09 11:19:28,171 DEBUG - DeliveryChannelImpl            - Send
> ID:10.80.12.85-124d6ebc094-4:10 in DeliveryChannel{servicemi
> x-jms}
> 2009-11-09 11:19:28,171 DEBUG - CxfBcComponent                 - Retrieved
> correlation id: ID:10.80.12.85-124d6ebc094-2:10
> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  - send
> exchange with secure broker
> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  - service
> name :{http://geneva.nova.com/customer}CustomerInImplServ
> ice
> 2009-11-09 11:19:28,171 DEBUG - SecuredBroker                  - operation
> name :{http://geneva.nova.com/customer}createCustomer
> 2009-11-09 11:19:28,171 DEBUG - SedaFlow                       - Called Flow
> send
> 2009-11-09 11:19:28,187 DEBUG - SedaQueue                      -
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@4437d3 dequeu
> ed exchange: InOnly[
>  id: ID:10.80.12.85-124d6ebc094-4:10
>  status: Active
>  role: provider
>  service: {http://geneva.nova.com/customer}CustomerInImplService
>  endpoint: CustomerInGenevaPortTypePort
>  operation: {http://geneva.nova.com/customer}createCustomer
>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="htt
> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
> e="createCustomer" type="msg:createCustomer"
> version="1.0"><jbi:part><pns:createCustomer
> xmlns:pns="http://geneva.nova.com/custome
> r">
>      <pns:value>aaaa</pns:value>
>    </pns:createCustomer></jbi:part></jbi:message>
> ]
> 2009-11-09 11:19:28,187 DEBUG - CxfBcComponent                 - Received
> exchange: status: Active, role: provider
> 2009-11-09 11:19:28,187 DEBUG - CxfBcComponent                 - Retrieved
> correlation id: ID:10.80.12.85-124d6ebc094-4:10
> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
> interceptor org.apache.servicemix.cxfbc.interceptors.JbiOu
> tInterceptor@dd6a50 to phase pre-stream
> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
> interceptor org.apache.servicemix.cxfbc.interceptors.JbiOu
> tWsdl1Interceptor@6ed9d1 to phase marshal
> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
> interceptor org.apache.cxf.binding.soap.interceptor.SoapPr
> eProtocolOutInterceptor@19e4f8b to phase post-logical
> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
> interceptor org.apache.cxf.binding.soap.interceptor.SoapOu
> tInterceptor@782f81 to phase write
> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
> interceptor org.apache.cxf.binding.soap.interceptor.SoapAc
> tionOutInterceptor@76df38 to phase post-logical
> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
> interceptor org.apache.cxf.interceptor.StaxOutInterceptor@
> 38df00 to phase pre-stream
> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Chain
> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was crea
> ted. Current flow:
>  post-logical [SoapPreProtocolOutInterceptor, SoapActionOutInterceptor]
>  pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>  write [SoapOutInterceptor]
>  marshal [JbiOutWsdl1Interceptor]
>
> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Invoking
> handleMessage on interceptor org.apache.cxf.binding.soap
> .interceptor.SoapPreProtocolOutInterceptor@19e4f8b
> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Invoking
> handleMessage on interceptor org.apache.cxf.binding.soap
> .interceptor.SoapActionOutInterceptor@76df38
> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Invoking
> handleMessage on interceptor org.apache.servicemix.cxfbc
> .interceptors.JbiOutInterceptor@dd6a50
> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Invoking
> handleMessage on interceptor org.apache.cxf.interceptor.
> StaxOutInterceptor@38df00
> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Adding
> interceptor org.apache.cxf.interceptor.StaxOutInterceptor$
> StaxOutEndingInterceptor@1073a2e to phase pre-stream-ending
> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Chain
> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was modi
> fied. Current flow:
>  post-logical [SoapPreProtocolOutInterceptor, SoapActionOutInterceptor]
>  pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>  write [SoapOutInterceptor]
>  marshal [JbiOutWsdl1Interceptor]
>  pre-stream-ending [StaxOutEndingInterceptor]
>
> 2009-11-09 11:19:28,187 DEBUG - PhaseInterceptorChain          - Invoking
> handleMessage on interceptor org.apache.cxf.binding.soap
> .interceptor.SoapOutInterceptor@782f81
> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          - Adding
> interceptor org.apache.cxf.binding.soap.interceptor.SoapOu
> tInterceptor$SoapOutEndingInterceptor@17cb4ff to phase write-ending
> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          - Chain
> org.apache.cxf.phase.PhaseInterceptorChain@1b896dc was modi
> fied. Current flow:
>  post-logical [SoapPreProtocolOutInterceptor, SoapActionOutInterceptor]
>  pre-stream [JbiOutInterceptor, StaxOutInterceptor]
>  write [SoapOutInterceptor]
>  marshal [JbiOutWsdl1Interceptor]
>  write-ending [SoapOutEndingInterceptor]
>  pre-stream-ending [StaxOutEndingInterceptor]
>
> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          - Invoking
> handleMessage on interceptor org.apache.servicemix.cxfbc
> .interceptors.JbiOutWsdl1Interceptor@6ed9d1
> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          - Invoking
> handleMessage on interceptor org.apache.cxf.binding.soap
> .interceptor.SoapOutInterceptor$SoapOutEndingInterceptor@17cb4ff
> 2009-11-09 11:19:28,203 DEBUG - PhaseInterceptorChain          - Invoking
> handleMessage on interceptor org.apache.cxf.interceptor.
> StaxOutInterceptor$StaxOutEndingInterceptor@1073a2e
> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    - Sending
> POST Message with Headers to http://10.80.12.100:8080/Gen
> evaESB/services/CustomerAccount Conduit
> :{http://geneva.nova.com/customer}CustomerInGenevaPortTypePort.http-conduit
> Content-Type: text/xml; charset=UTF-8
>
> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    - SOAPAction:
> ""
> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    - Accept: *
> 2009-11-09 11:19:28,203 DEBUG - HTTPConduit                    - No Trust
> Decider for Conduit '{http://geneva.nova.com/customer}Cu
> stomerInGenevaPortTypePort.http-conduit'. An afirmative Trust Decision is
> assumed.
> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    - Response
> Code: 404 Conduit: {http://geneva.nova.com/customer}Cust
> omerInGenevaPortTypePort.http-conduit
> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    - Content
> length: 952
> 2009-11-09 11:19:28,234 DEBUG - HTTPConduit                    - Header
> fields:
>    null: [HTTP/1.1 404 Not Found]
>    Date: [Mon, 09 Nov 2009 03:19:04 GMT]
>    Content-Length: [952]
>    Content-Type: [text/html;charset=utf-8]
>    Server: [Apache-Coyote/1.1]
>
> 2009-11-09 11:19:28,265 ERROR - CxfBcComponent                 - Error
> processing exchange InOnly[
>  id: ID:10.80.12.85-124d6ebc094-4:10
>  status: Active
>  role: provider
>  service: {http://geneva.nova.com/customer}CustomerInImplService
>  endpoint: CustomerInGenevaPortTypePort
>  operation: {http://geneva.nova.com/customer}createCustomer
>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="htt
> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
> e="createCustomer" type="msg:createCustomer"
> version="1.0"><jbi:part><pns:createCustomer
> xmlns:pns="http://geneva.nova.com/custome
> r">
>      <pns:value>aaaa</pns:value>
>    </pns:createCustomer></jbi:part></jbi:message>
> ]
> javax.jbi.messaging.MessagingException: Fault not supported
>        at
> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java:366)
>        at
> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setFault(MessageExchangeImpl.java:290)
>        at
> org.apache.servicemix.cxfbc.CxfBcProvider.faultProcess(CxfBcProvider.java:277)
>        at
> org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:261)
>        at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>        at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
>        at
> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>        at
> org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
>        at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>        at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
>        at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
>        at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>        at java.lang.Thread.run(Thread.java:619)
> 2009-11-09 11:19:28,296 DEBUG - DeliveryChannelImpl            - Send
> ID:10.80.12.85-124d6ebc094-4:10 in DeliveryChannel{servicemi
> x-cxf-bc}
> 2009-11-09 11:19:28,296 DEBUG - SecuredBroker                  - send
> exchange with secure broker
> 2009-11-09 11:19:28,296 DEBUG - SedaFlow                       - Called Flow
> send
> 2009-11-09 11:19:28,296 DEBUG - SedaQueue                      -
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@247262 dequeu
> ed exchange: InOnly[
>  id: ID:10.80.12.85-124d6ebc094-4:10
>  status: Error
>  role: consumer
>  service: {http://geneva.nova.com/customer}CustomerInImplService
>  endpoint: CustomerInGenevaPortTypePort
>  operation: {http://geneva.nova.com/customer}createCustomer
>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="htt
> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
> e="createCustomer" type="msg:createCustomer"
> version="1.0"><jbi:part><pns:createCustomer
> xmlns:pns="http://geneva.nova.com/custome
> r">
>      <pns:value>aaaa</pns:value>
>    </pns:createCustomer></jbi:part></jbi:message>
>  error: javax.jbi.messaging.MessagingException: Fault not supported
> ]
> 2009-11-09 11:19:28,296 DEBUG - JmsComponent                   - Received
> exchange: status: Error, role: consumer
> 2009-11-09 11:19:28,296 DEBUG - JmsComponent                   - Retrieved
> correlation id: ID:10.80.12.85-124d6ebc094-4:10
> 2009-11-09 11:19:28,328 ERROR - JmsComponent                   - Error
> processing exchange InOnly[
>  id: ID:10.80.12.85-124d6ebc094-4:10
>  status: Error
>  role: consumer
>  service: {http://geneva.nova.com/customer}CustomerInImplService
>  endpoint: CustomerInGenevaPortTypePort
>  operation: {http://geneva.nova.com/customer}createCustomer
>  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg="htt
> p://www.hcsys.com/novaesb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nam
> e="createCustomer" type="msg:createCustomer"
> version="1.0"><jbi:part><pns:createCustomer
> xmlns:pns="http://geneva.nova.com/custome
> r">
>      <pns:value>aaaa</pns:value>
>    </pns:createCustomer></jbi:part></jbi:message>
>  error: javax.jbi.messaging.MessagingException: Fault not supported
> ]
> java.lang.UnsupportedOperationException: A destination must be specified.
>        at
> org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:195)
>        at
> org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:74)
>        at
> org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:59)
>        at
> org.apache.servicemix.jms.multiplexing.MultiplexingConsumerProcessor.process(MultiplexingConsumerProcessor.java:126)
>        at
> org.apache.servicemix.soap.SoapEndpoint.process(SoapEndpoint.java:368)
>        at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>        at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:598)
>        at
> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>        at
> org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
>        at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>        at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
>        at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
>        at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>        at java.lang.Thread.run(Thread.java:619)
>
>
> =======================log end==========================
> --
> View this message in context: http://old.nabble.com/When-external-service-is-shut-down%2C-message-don%27t-rollback-to-jms-queue.-tp26260776p26260776.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>