Does that mean smx 4.0 has a bug and fixed in 4.2.? 
I will give it a  try with smx 4.2. 

Freeman Fang wrote:
> 
> Hi,
> 
> Could you use the latest apache smx 4.2 snapshot (4.2 will be released  
> soon)?
> 
> Or use the FUSE ESB 4.2[1]
> 
> [1]http://repo.open.iona.com/maven2/org/apache/servicemix/apache-servicemix/4.2.0-fuse-01-00/
> 
> Freeman
> On 2010-4-13, at 上午10:10, gnanda wrote:
> 
>>
>>
>> Hi,
>>
>> Thank you for your quick response.
>>
>> As per your suggestion  I added below lines to my jms consumer  
>> xbean.xml
>> file and I am getting an exception now.  Here is my xbean.xml file
>>
>> <beans xmlns:jms="http://servicemix.apache.org/jms/1.0";
>>      xmlns:test="http://test"; xmlns:amq="http://activemq.org/config/1.0 
>> "
>>      xmlns="http://www.springframework.org/schema/beans";
>> xmlns:xsi="http://http://www.w3.org/2001/XMLSchema-instance";
>>
>>      xsi:schemaLocation="http://servicemix.apache.org/jms/1.0
>> http://servicemix.apache.org/schema/servicemix-jms-3.2.3.xsd
>>       http://activemq.org/config/1.0
>> http://activemq.apache.org/schema/core/activemq-core-4.1.1.xsd
>>       http://www.springframework.org/schema/beans
>> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd";>
>>
>>
>>
>>      <jms:consumer service="test:MyConsumerService" endpoint="jms"
>>            targetService="test:MyBeanConsumerService"
>> targetEndpoint="beanendpoint"
>>            destinationName="spq2"  
>> connectionFactory="#connectionFactory"
>>            concurrentConsumers="4" cacheLevel="3"  
>> marshaler="#marshaler"
>>            transacted="jms" />
>>
>>      <!--
>>            END SNIPPET: consumer <jms:endpoint
>> service="test:MyConsumerService"
>>            endpoint="jms+soap"
>> targetInterfaceName="test:MyConsumerInterface"
>>            role="consumer" destinationStyle="queue"
>>            jmsProviderDestinationName="queue/A/Soap" soap="true"
>>            defaultMep="http://www.w3.org/2004/08/wsdl/in-out";
>>            connectionFactory="#connectionFactory" />
>>      -->
>>      <bean id="connectionFactory"
>> class="org.apache.activemq.ActiveMQConnectionFactory">
>>            <property name="brokerURL" value="tcp://localhost:61616" />
>>            <!--
>>                  not working <property name="redeliveryPolicy"
>> ref="redeliveryPolicy"
>>                  />
>>            -->
>>      </bean>
>>      <bean id="redeliveryPolicy"
>> class="org.apache.activemq.RedeliveryPolicy">
>>            <property name="maximumRedeliveries" value="8" />
>>      </bean>
>>
>> <bean id="marshaler"
>>
>> class="org.apache.servicemix.jms.endpoints.DefaultConsumerMarshaler">
>>            <property name="mep"
>> value="http://www.w3.org/2004/08/wsdl/in-out
>> " />
>>            <property name="rollbackOnError" value="true" />
>>      </bean>
>>
>>
>>
>> </beans>
>>
>>
>> Exception below:
>> Do I need to start a transaction explicitly somewhere? If yes, how  
>> would I
>> start a transaction?
>>
>> 2010-04-12 21:58:49,342| 21:58:49,342 | WARN  | tenerContainer-7 |
>> DefaultMessageListenerContainer  | AbstractMessageListenerContainer   
>> 646 |
>> 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.java:518)
>>                at
>> org 
>> .springframework 
>> .jms 
>> .listener 
>> .AbstractMessageListenerContainer 
>> .invokeListener(AbstractMessageListenerContainer.java:479)
>>                at
>> org 
>> .springframework 
>> .jms 
>> .listener 
>> .AbstractMessageListenerContainer 
>> .doExecuteListener(AbstractMessageListenerContainer.java:451)
>>                at
>> org 
>> .springframework 
>> .jms 
>> .listener 
>> .AbstractPollingMessageListenerContainer 
>> .doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323)
>>                at
>> org 
>> .springframework 
>> .jms 
>> .listener 
>> .AbstractPollingMessageListenerContainer 
>> .receiveAndExecute(AbstractPollingMessageListenerContainer.java:241)
>>                at
>> org.springframework.jms.listener.DefaultMessageListenerContainer 
>> $ 
>> AsyncMessageListenerInvoker 
>> .invokeListener(DefaultMessageListenerContainer.java:982)
>>                at
>> org.springframework.jms.listener.DefaultMessageListenerContainer 
>> $ 
>> AsyncMessageListenerInvoker 
>> .executeOngoingLoop(DefaultMessageListenerContainer.java:974)
>>                at
>> org.springframework.jms.listener.DefaultMessageListenerContainer 
>> $ 
>> AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java: 
>> 876)
>>                at java.lang.Thread.run(Thread.java:619)
>> Caused by: java.lang.Exception: ERROR:Fault occurred<?xml  
>> version="1.0"
>> encoding="UTF-8"?><soapenv:Envelope
>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/ 
>> envelope/"><soapenv:Body><soapenv:Fault
>> xmlns:axis2ns31="http://schemas.xmlsoap.org/soap/ 
>> envelope/"><faultcode>axis2ns31:Client</faultcode><faultstring>The
>> endpoint reference (EPR) for the Operation not found is
>> http://localhost/axis2/services/EchoService and the WSA Action =
>> null</faultstring><detail/></soapenv:Fault></soapenv:Body></ 
>> soapenv:Envelope>
>>                at
>> org.simpleBeanconsumer.MyBean.onMessageExchange(MyBean.java:147)
>>                at
>> org 
>> .apache 
>> .servicemix.bean.BeanEndpoint.onProviderExchange(BeanEndpoint.java: 
>> 230)
>>                at
>> org.apache.servicemix.bean.BeanEndpoint.process(BeanEndpoint.java:217)
>>                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.processExchangeInTx(AsyncBaseLifeCycle.java:478)
>>                at
>> org.apache.servicemix.common.AsyncBaseLifeCycle 
>> $2.run(AsyncBaseLifeCycle.java:347)
>>                at
>> java.util.concurrent.ThreadPoolExecutor 
>> $Worker.runTask(ThreadPoolExecutor.java:886)
>>                at
>> java.util.concurrent.ThreadPoolExecutor 
>> $Worker.run(ThreadPoolExecutor.java:908)
>>                ... 1 more
>> 2010-04-12 21:58:49,342| 21:58:49,342 | ERROR | //127.0.0.1:4933 |  
>> Service
>> | ivemq.broker.TransportConnection  290 | Async error occurred:
>> javax.jms.JMSException: Transaction
>> 'TX:ID:LPF004689-4862-1271123912874-0:65:3' has not been started.
>> javax.jms.JMSException: Transaction
>> 'TX:ID:LPF004689-4862-1271123912874-0:65:3' has not been started.
>>                at
>> org 
>> .apache 
>> .activemq 
>> .broker.TransactionBroker.getTransaction(TransactionBroker.java:270)
>>                at
>> org 
>> .apache 
>> .activemq 
>> .broker.TransactionBroker.acknowledge(TransactionBroker.java:190)
>>                at
>> org 
>> .apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:74)
>>                at
>> org 
>> .apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:74)
>>                at
>> org 
>> .apache 
>> .activemq 
>> .broker.MutableBrokerFilter.acknowledge(MutableBrokerFilter.java:85)
>>                at
>> org 
>> .apache 
>> .activemq 
>> .broker 
>> .TransportConnection.processMessageAck(TransportConnection.java:456)
>>                at
>> org.apache.activemq.command.MessageAck.visit(MessageAck.java:205)
>>                at
>> org 
>> .apache 
>> .activemq 
>> .broker.TransportConnection.service(TransportConnection.java:305)
>>                at
>> org.apache.activemq.broker.TransportConnection 
>> $1.onCommand(TransportConnection.java:179)
>>                at
>> org 
>> .apache 
>> .activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
>>                at
>> org 
>> .apache 
>> .activemq 
>> .transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java: 
>> 143)
>>                at
>> org 
>> .apache 
>> .activemq 
>> .transport.InactivityMonitor.onCommand(InactivityMonitor.java:206)
>>                at
>> org 
>> .apache 
>> .activemq.transport.TransportSupport.doConsume(TransportSupport.java: 
>> 84)
>>                at
>> org 
>> .apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java: 
>> 203)
>>                at
>> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java: 
>> 185)
>>                at java.lang.Thread.run(Thread.java:619)
>>
>> Thanks & Regards
>> Gita
>>
>>
>>
>>
>>
>>
>> Freeman Fang wrote:
>>>
>>> Hi,
>>>
>>> You can simply add
>>>                     marshaler="#marshaler"
>>>                       transacted="jms"
>>> attribute for your jms consumer to enable transaction.
>>> here the marshaler is,
>>>    <bean id="marshaler"
>>> class="org.apache.servicemix.jms.endpoints.DefaultConsumerMarshaler">
>>>        <property name="mep" value="http://www.w3.org/2004/08/wsdl/in-out
>>> " />
>>>        <property name="rollbackOnError" value="true"/>
>>>     </bean>
>>>  notice you must set <property name="rollbackOnError" value="true"/>
>>>
>>> then when a Error message back to your jms consumer, the jms comsumer
>>> will do rollback.
>>>
>>>
>>> Freeman
>>>
>>>
>>> On 2010-4-10, at 下午12:26, gnanda wrote:
>>>
>>>>
>>>> Hi,
>>>> I am a newbie in servicemix.
>>>> I am using servicemix 4 (apache-servicemix-4.0.0) . I have created a
>>>> service
>>>> assembly with 3 SUs. The flow is as below
>>>> JMS consumer ->servicemix Bean class-> http provider (accessing
>>>> external
>>>> webservice).  I like to understand how would I impose transactional
>>>> capability the the above message flow
>>>>
>>>> For example: if I receive any error (or fault) while calling the
>>>> external
>>>> service from http provider component then I should be able to
>>>> rollback  or
>>>> commit the message to the queue based one the error code.
>>>>
>>>> Any insight will be very helpful. Thank you in advance.
>>>>
>>>>
>>>> Here is my xbean definition of jms consumer
>>>>
>>>> <jms:consumer service="test:MyConsumerService" endpoint="jms"
>>>>            targetService="test:MyBeanConsumerService"
>>>> targetEndpoint="beanendpoint"
>>>>            destinationName="spq2" connectionFactory="#connectionFactory"
>>>>            concurrentConsumers="4" cacheLevel="3" />
>>>>
>>>>    <bean id="connectionFactory"
>>>> class="org.apache.activemq.ActiveMQConnectionFactory">
>>>>            <property name="brokerURL" value="tcp://localhost:61616" />
>>>>            <!--
>>>>                    not working <property name="redeliveryPolicy"
>>>> ref="redeliveryPolicy"
>>>>                    />
>>>>            -->
>>>>    </bean>
>>>>    <bean id="redeliveryPolicy"
>>>> class="org.apache.activemq.RedeliveryPolicy">
>>>>            <property name="maximumRedeliveries" value="8" />
>>>>    </bean>
>>>> Here is my xbean definition of the bean class
>>>> <bean:endpoint service="test:MyBeanConsumerService"
>>>> endpoint="beanendpoint"
>>>> bean="#myBean"/>
>>>>
>>>> <bean id="myBean" class="org.simpleBeanconsumer.MyBean"/>
>>>>
>>>> </beans>
>>>>
>>>> Here is my xbean definition of the http provider
>>>>
>>>> <http:endpoint service="test:TemperatureConverterService1"
>>>>                endpoint="TemperatureConverterServiceSoap12Binding"
>>>>                role="provider"
>>>>
>>>> locationURI="http://localhost/axis2/services/TemperatureConverterService
>>>> "
>>>>
>>>>                defaultMep="http://www.w3.org/2004/08/wsdl/in-out";
>>>>                />
>>>> <!--
>>>> wsdlResource="http://localhost/axis2/services/TemperatureConverterService?wsdl
>>>> "
>>>> -->
>>>> </beans>
>>>> -- 
>>>> View this message in context:
>>>> http://old.nabble.com/SMX4-handling-transaction-tp28199896p28199896.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/SMX4-handling-transaction-tp28199896p28219212.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/SMX4-handling-transaction-tp28199896p28229194.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to