JCAFlow stopped working after updating to 3.1 snapshot
------------------------------------------------------

                 Key: SM-778
                 URL: https://issues.apache.org/activemq/browse/SM-778
             Project: ServiceMix
          Issue Type: Bug
          Components: servicemix-core
    Affects Versions: 3.1
            Reporter: William Blackburn
         Attachments: entire-run.log, just-the-msg.log

After successfully using JCA flow in the 3.0.x builds, I am testing using the 
latest 3.1 snapshot. It seems that something has changed regarding JCA flow. I 
introduce my messages using JMSInUsingJCABinding with a destination service set 
to another servicemix 'pojo' component. With the log set to debug, I can see my 
binding component receiving the message and sending it to the other component, 
but the other component never receives the message. There is quite a bit of 
logging in this destination component, but as you can see from the snippet 
below, everything stops after the call to JCAFlow:send

Full log with amq in debug attached

Log Snippet:

pool-1-thread-4 2006-12-14 12:02:59,733 DEBUG [JmsInBinding:onMessage] 
Received: ActiveMQTextMessage {commandId = 6, responseRequired = true, 
messageId = ID:fastgt.local-50100-1166126505325-3:33:1:1:1, originalDestination 
= null, originalTransactionId = null, producerId = 
ID:fastgt.local-50100-1166126505325-3:33:1:1, destination = 
topic://com.clairmail.node.message.in, transactionId = null, expiration = 0, 
timestamp = 1166126579696, arrival = 0, correlationId = null, replyTo = null, 
persistent = true, type = null, priority = 4, groupID = null, groupSequence = 
0, targetConsumerId = null, compressed = false, userID = null, content = [EMAIL 
PROTECTED], marshalledProperties = null, dataStructure = null, 
redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, 
readOnlyBody = true, droppable = false, text = null}
pool-1-thread-4 2006-12-14 12:02:59,752 DEBUG 
[DeliveryChannelImpl:createExchangeFactory] default destination serviceName for 
jmsRequestInBinding = {http://mobile.clairmail.com}request-processor
pool-1-thread-4 2006-12-14 12:02:59,775 DEBUG [DeliveryChannelImpl:send] Send 
ID:fastgt.local-50105-1166126512467-3:0 in DeliveryChannel{jmsRequestInBinding}
pool-1-thread-4 2006-12-14 12:02:59,871 DEBUG [DeliveryChannelImpl:doSend] 
Sent: InOnly[
  id: ID:fastgt.local-50105-1166126512467-3:0
  status: Active
  role: consumer
  service: {http://mobile.clairmail.com}request-processor
  in: <?xml version="1.0" encoding="UTF-8"?>
<cm:in-message version="1.0" xmlns:cm="http://mobile.clairmail.com"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://mobile.clairmail.com cmInMessage.xsd"><content 
deleted for brevity></cm:in-message>
]
pool-1-thread-4 2006-12-14 12:02:59,903 INFO  
[MessageExchangeAuditor:exchangeSent] Exchange sent to 
{http://mobile.clairmail.com}request-processor has status Active
pool-1-thread-4 2006-12-14 12:02:59,907 DEBUG [DefaultBroker:resolveAddress] 
Routing exchange InOnly[
  id: ID:fastgt.local-50105-1166126512467-3:0
  status: Active
  role: provider
  service: {http://mobile.clairmail.com}request-processor
  endpoint: requestProcessor
  in: <?xml version="1.0" encoding="UTF-8"?>
<cm:in-message version="1.0" xmlns:cm="http://mobile.clairmail.com"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://mobile.clairmail.com cmInMessage.xsd"><content 
deleted for brevity></cm:in-message>
] to: 
ServiceEndpoint[service={http://mobile.clairmail.com}request-processor,endpoint=requestProcessor]
pool-1-thread-4 2006-12-14 12:02:59,910 DEBUG [JCAFlow:send] Called Flow send


My container and flows are declared as:

        <sm:container id="jbi" name="${smix.container.name}" rootDir="#rootDir" 
useMBeanServer="true"
            createMBeanServer="false" createJmxConnector="false" 
installationDirPath="#installDir"
            deploymentDirPath="#deployDir" autoEnlistInTransaction="true" 
persistent="true"
            monitorInstallationDirectory="true" 
transactionManager="#transactionManager" depends-on="broker">
            <sm:flows>
                <!-- <sm:jmsFlow jmsURL="${smix.amq.broker.uri}"/> -->
                <sm:jcaFlow connectionManager="#connectionManager" 
jmsURL="${smix.amq.broker.uri}"/>
            </sm:flows>

The binding component looks like:

       <sm:activationSpec componentName="jmsRequestInBinding" 
service="cm:jms-request-in-binding"
                       destinationService="cm:request-processor">
            <sm:component>
                <bean 
class="org.apache.servicemix.components.jms.JmsInUsingJCABinding">
                    <property name="jcaContainer" ref="jencks"/>
                    <property name="activationSpec">
                        <bean 
class="org.apache.activemq.ra.ActiveMQActivationSpec">
                            <!-- The variable (receiver.in.topic) is replaced 
at runtime using the
                                 PropertyPlaceholderConfigurer defined in this 
config file  -->
                            <property name="destination" 
value="${smix.request.in.topic}"/>
                            <property name="destinationType" 
value="javax.jms.Topic"/>
                        </bean>
                    </property>
                </bean>
            </sm:component>
        </sm:activationSpec>

My Jencks config looks like:

        <!-- Transaction manager -->
        <jencks:transactionManager id="transactionManager" 
transactionLogDir="#dataDir" defaultTransactionTimeoutSeconds="600" />

        <!-- Work manager -->
        <jencks:workManager id="workManager" threadPoolSize="200" 
transactionManager="#transactionManager" />

        <!-- Bootstrap context for JCA -->
        <jencks:bootstrapContext id="bootstrapContext" 
workManager="#workManager" transactionManager="#transactionManager" />

        <!-- Connection manager for JCA -->
        <jencks:connectionTracker id="connectionTracker" 
geronimoTransactionManager="#transactionManager" />

        <jencks:poolingSupport id="poolingSupport" />

        <jencks:connectionManager id="connectionManager" 
containerManagedSecurity="false" transaction="xa"
                transactionManager="#transactionManager" 
poolingSupport="#poolingSupport" connectionTracker="#connectionTracker" />

    <bean id="jencks" class="org.jencks.JCAContainer" singleton="true">
        <property name="bootstrapContext" ref="bootstrapContext"/>

        <!-- the JCA Resource Adapter -->
        <property name="resourceAdapter">
            <bean id="activeMQResourceAdapter"
                class="org.apache.activemq.ra.ActiveMQResourceAdapter"
                singleton="true">
                <property name="serverUrl"
                    value="${smix.amq.broker.uri}" />
            </bean>
        </property>
    </bean>


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to