Uploaded image for project: 'ServiceMix'
  1. ServiceMix
  2. SM-778

JCAFlow stopped working after updating to 3.1 snapshot

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 3.1
    • 3.1
    • servicemix-core
    • None

    Description

      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 = org.apache.activemq.util.ByteSequence@d75863, 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>

      Attachments

        1. ASF.LICENSE.NOT.GRANTED--entire-run.log
          318 kB
          William Blackburn
        2. ASF.LICENSE.NOT.GRANTED--just-the-msg.log
          19 kB
          William Blackburn

        Activity

          People

            gnodet Guillaume Nodet
            wblackburn William Blackburn
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: