Here is config:
<jms:connector name="jmsConnector" jndiInitialFactory="org.jnp.interfaces.NamingContextFactory"
jndiProviderUrl="jnp://127.0.0.1:1099"
connectionFactoryJndiName="java:wmq/myFC" jndiDestinations="true"
forceJndiDestinations="true" createMultipleTransactedReceivers="true"
numberOfConcurrentTransactedReceivers="10" disableTemporaryReplyToDestinations="true">
</jms:connector>
<xml-entity-decoder-transformer name="xmlDecoder" />
<mulexml:xslt-transformer name="xsltFedexRequest" xsl-file="xsl/fedexaddress.xslt" />
<mulexml:xslt-transformer name="xsltJavaAddressRequest" xsl-file="xsl/soap-address-jdbc-in.xslt" />
<jms:endpoint name="AgencyIn" queue="In" connector-ref="jmsConnector">
<jms:transaction action="NONE" />
</jms:endpoint>
<jms:endpoint name="AgencyOut" queue="out" connector-ref="jmsConnector">
<jms:transaction action="NONE" />
</jms:endpoint>
<flow name="GatewayFlow">
<inbound-endpoint
address="http://localhost:8888/GatewayService"
exchange-pattern="request-response"/>
<cxf:jaxws-service serviceClass="com.****.service.mule.address.AddressService" />
<component class ="com.***.service.mule.address.AddressService" />
<outbound-endpoint ref="AgencyIn"/>
</flow>
<flow name="AgencySOAP">
<inbound-endpoint ref="AgencyIn" transformer-refs="xsltFedexRequest xmlDecoder " />
<component class ="com.***.service.mule.address.FedexService"/>
<outbound-endpoint ref="AgencyOut" />
</flow>
<flow name="AddressMYSQL">
<inbound-endpoint ref="AgencyOut" transformer-refs="xsltJavaAddressRequest xmlDecoder"/>
<component class ="com.****.mule.address.AddressMySQLDAOService"/>
<jdbc:outbound-endpoint name="insertAddressMySQL"
queryKey="query0"
connector-ref="jdbcMySQLConnector"
exchange-pattern="one-way"/>
</flow>
Here is the stack trace:
org.mule.api.lifecycle.LifecycleException: Failed to start inbound endpoint "AgencyIn"
at org.mule.endpoint.DefaultInboundEndpoint.start(DefaultInboundEndpoint.java:116)
at org.mule.construct.AbstractFlowConstruct.startIfStartable(AbstractFlowConstruct.java:362)
at org.mule.construct.AbstractFlowConstruct$2.onTransition(AbstractFlowConstruct.java:144)
at org.mule.construct.AbstractFlowConstruct$2.onTransition(AbstractFlowConstruct.java:139)
at org.mule.lifecycle.AbstractLifecycleManager.invokePhase(AbstractLifecycleManager.java:141)
at org.mule.construct.FlowConstructLifecycleManager.fireStartPhase(FlowConstructLifecycleManager.java:95)
at org.mule.construct.AbstractFlowConstruct.start(AbstractFlowConstruct.java:138)
Caused by: org.mule.api.lifecycle.LifecycleException: MQJCA1018:Only one session per connection allowed. (javax.jms.JMSException)
at org.mule.transport.jms.MultiConsumerJmsMessageReceiver$SubReceiver.doConnect(MultiConsumerJmsMessageReceiver.java:182)
at org.mule.transport.jms.MultiConsumerJmsMessageReceiver.doConnect(MultiConsumerJmsMessageReceiver.java:131)
at org.mule.transport.AbstractTransportMessageHandler.connect(AbstractTransportMessageHandler.java:218)
at org.mule.transport.AbstractConnector.registerListener(AbstractConnector.java:1259)
at org.mule.endpoint.DefaultInboundEndpoint.start(DefaultInboundEndpoint.java:102)
... 102 more
Caused by: org.mule.transport.ConnectException: MQJCA1018:Only one session per connection allowed. (javax.jms.JMSException)
at org.mule.transport.jms.MultiConsumerJmsMessageReceiver$SubReceiver.createConsumer(MultiConsumerJmsMessageReceiver.java:314)
at org.mule.transport.jms.MultiConsumerJmsMessageReceiver$SubReceiver.doConnect(MultiConsumerJmsMessageReceiver.java:178)
... 106 more
Caused by: javax.jms.JMSException: MQJCA1018:Only one session per connection allowed.
at com.ibm.mq.connector.services.JCAExceptionBuilder.buildException(JCAExceptionBuilder.java:115)
at com.ibm.mq.connector.services.JCAExceptionBuilder.buildException(JCAExceptionBuilder.java:80)
at com.ibm.mq.connector.outbound.QueueConnectionWrapper.createQueueSession(QueueConnectionWrapper.java:76)
at org.mule.transport.jms.Jms102bSupport.createSession(Jms102bSupport.java:112)
at org.mule.transport.jms.JmsConnector.getSession(JmsConnector.java:563)
at org.mule.transport.jms.JmsConnector.getSession(JmsConnector.java:550)
at org.mule.transport.jms.MultiConsumerJmsMessageReceiver$SubReceiver.createConsumer(MultiConsumerJmsMessageReceiver.java:271)
... 107 more
Here is jboss ds.xml file for connection factory:
<connection-factories>
<tx-connection-factory>
<jndi-name>wmq/myFC</jndi-name>
<xa-transaction />
<rar-name>wmq.jmsra.rar</rar-name>
<connection-definition>javax.jms.QueueConnectionFactory</connection-definition>
<config-property name="channel" type="java.lang.String">MY.SVRCONN</config-property>
<config-property name="hostName" type="java.lang.String">host</config-property>
<config-property name="port" type="java.lang.String">1416</config-property>
<config-property name="queueManager" type="java.lang.String">HUBDEV</config-property>
<config-property name="transportType" type="java.lang.String">CLIENT</config-property>
<config-property name="username" type="java.lang.String"></config-property>
</tx-connection-factory>
<mbean code="org.jboss.resource.deployment.AdminObject" name="jca.wmq:name=gizmoIn">
<depends optional-attribute-name="RARName">jboss.jca:service=RARDeployment,name='wmq.jmsra.rar'</depends>
<attribute name="JNDIName">gizmoIn</attribute>
<attribute name="Type">javax.jms.Queue</attribute>
<attribute name="Properties">
baseQueueManagerName=HUBDEV
baseQueueName=UNIX.MY.RESPONSE.RECEIVE
</attribute>
</mbean>
<mbean code="org.jboss.resource.deployment.AdminObject" name="jca.wmq:name=gizmoOut">
<depends optional-attribute-name="RARName">jboss.jca:service=RARDeployment,name='wmq.jmsra.rar'</depends>
<attribute name="JNDIName">gizmoOut</attribute>
<attribute name="Type">javax.jms.Queue</attribute>
<attribute name="Properties">
baseQueueManagerName=HUBDEV
baseQueueName=UNIX.MY.REQUEST.SEND
</attribute>
</mbean>
</connection-factories>
I have tried to work this out for 6 hours. I will really appreciate some help.
Thanks,
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email
First time with JCA but based on what I read, you cannot have more than one session bound to one connection. Probably you can try defining two connections in Mule ESB with different names and then use one in each endpoint:
<jms:connector name="*readJmsConnector*" jndiInitialFactory="org.jnp.interfaces.NamingContextFactory"
jndiProviderUrl="jnp://127.0.0.1:1099"
connectionFactoryJndiName="java:wmq/myFC" jndiDestinations="true"
forceJndiDestinations="true" createMultipleTransactedReceivers="true"
numberOfConcurrentTransactedReceivers="10" disableTemporaryReplyToDestinations="true">
</jms:connector>
<jms:connector name="*writeJmsConnector*" jndiInitialFactory="org.jnp.interfaces.NamingContextFactory"
jndiProviderUrl="jnp://127.0.0.1:1099"
connectionFactoryJndiName="java:wmq/myFC" jndiDestinations="true"
forceJndiDestinations="true" createMultipleTransactedReceivers="true"
numberOfConcurrentTransactedReceivers="10" disableTemporaryReplyToDestinations="true">
</jms:connector>
And then use each connection in the connector-ref attribute of the endpoint.
<jms:endpoint name="AgencyOut" queue="out" connector-ref="*readJmsConnector*">
I believed I have tried that earlier and It had not worked. Anyway I just tried that again and it failed with same error:
<jms:connector name="jmsConnectorR" jndiInitialFactory="org.jnp.interfaces.NamingContextFactory" jndiProviderUrl="jnp://127.0.0.1:1099" connectionFactoryJndiName="java:wmq/myFC" jndiDestinations="true" forceJndiDestinations="true" createMultipleTransactedReceivers="true" numberOfConcurrentTransactedReceivers="10" disableTemporaryReplyToDestinations="true" />
<jms:connector name="jmsConnectorW" jndiInitialFactory="org.jnp.interfaces.NamingContextFactory" jndiProviderUrl="jnp://127.0.0.1:1099" connectionFactoryJndiName="java:wmq/myFC" jndiDestinations="true" forceJndiDestinations="true" createMultipleTransactedReceivers="true" numberOfConcurrentTransactedReceivers="10" disableTemporaryReplyToDestinations="true" />
<xml-entity-decoder-transformer name="xmlDecoder" />
<mulexml:xslt-transformer name="xsltFedexRequest" xsl-file="xsl/fedexaddress.xslt" />
<mulexml:xslt-transformer name="xsltJavaAddressRequest" xsl-file="xsl/soap-address-jdbc-in.xslt" />
<jms:endpoint name="AgencyIn" queue="gizmoIn" connector-ref="jmsConnectorR">
<jms:transaction action="NONE" />
</jms:endpoint>
<jms:endpoint name="AgencyOut" queue="gizmoOut" connector-ref="jmsConnectorW">
<jms:transaction action="NONE" />
</jms:endpoint>
<vm:connector name="inMemory" />
<flow name="GatewayFlow">
<vm:inbound-endpoint path="serviceCall" connector-ref="inMemory" transformer-refs="xsltFedexRequest xmlDecoder" />
<component class="com.****.service.mule.address.FedexService" />
<outbound-endpoint ref="AgencyIn" />
</flow>
<flow name="AddressMYSQL">
<inbound-endpoint ref="AgencyOut" transformer-refs="xsltJavaAddressRequest xmlDecoder" />
<component class="com.****.service.mule.address.AddressMySQLDAOService" />
<jdbc:outbound-endpoint name="insertAddressMySQL" queryKey="query0" connector-ref="jdbcMySQLConnector" exchange-pattern="one-way" />
</flow>
Same error (First endpoint is created successfully):
2011-06-09 11:50:44,362 INFO [STDOUT] (ResourceContainer.invoker.nonDaemon-1) 11:50:44,362 INFO [AbstractLifecycleManager] Initialising: 'null'. Object is: MultiConsumerJmsMessageReceiver
2011-06-09 11:50:44,676 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/GizmoSOAStackPOC]] (ResourceContainer.invoker.nonDaemon-1) Failed to start inbound endpoint "AgencyOut"
org.mule.api.lifecycle.LifecycleException: Failed to start inbound endpoint "AgencyOut"
at org.mule.endpoint.DefaultInboundEndpoint.start(DefaultInboundEndpoint.java:116)
at org.mule.construct.AbstractFlowConstruct.startIfStartable(AbstractFlowConstruct.java:362)
---------------------------------------------------------------------