[esb-issues] [JBoss JIRA] Commented: (JBESB-1460) jms-jca-provider doesn't read from queues on different node
Kevin Conner (JIRA)
jira-events at lists.jboss.org
Wed Jan 23 04:41:21 EST 2008
[ http://jira.jboss.com/jira/browse/JBESB-1460?page=comments#action_12396304 ]
Kevin Conner commented on JBESB-1460:
-------------------------------------
Hiya Martin.
Leave it with this one for now, at least until we decide how we are going to approach the issue. I'll open new issues if necessary.
> jms-jca-provider doesn't read from queues on different node
> -----------------------------------------------------------
>
> Key: JBESB-1460
> URL: http://jira.jboss.com/jira/browse/JBESB-1460
> Project: JBoss ESB
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: Rosetta, Adapters
> Affects Versions: 4.2.1
> Environment: 2x RHEL5, SOA-P 4.2.0 beta 1, Oracle 10g
> Reporter: Martin Vecera
> Assigned To: Kevin Conner
> Priority: Blocker
> Fix For: 4.2.1 CP1
>
>
> While I was trying ESB load balancing and failover I found out the following issue...
> Scenario:
> 1. Two nodes (hostnames: jawa02, jawa04), sharing the same DB, different ServerPeerIDs but no JMS clustering.
> 2. I generated a message backlog on jawa02 queue/A (10,000 messages).
> 3. See my simple service configuration:
> <providers>
> <jms-jca-provider name="JBossMessaging" connection-factory="XAConnectionFactory"
> jndi-URL="jnp://jawa02:1099" jndi-context-factory="org.jnp.interfaces.NamingContextFactory"
> jndi-pkg-prefix="org.jboss.naming:org.jnp.interfaces" transacted="false">
> <jms-bus busid="quickstartGwChannel">
> <jms-message-filter dest-type="QUEUE" dest-name="queue/A" />
> </jms-bus>
> </jms-jca-provider>
> <jms-jca-provider name="JBossMessaging" connection-factory="XAConnectionFactory"
> jndi-URL="jnp://jawa04:1099" jndi-context-factory="org.jnp.interfaces.NamingContextFactory"
> jndi-pkg-prefix="org.jboss.naming:org.jnp.interfaces" transacted="false">
> <jms-bus busid="quickstartEsbChannel">
> <jms-message-filter dest-type="QUEUE" dest-name="queue/C" />
> </jms-bus>
> </jms-jca-provider>
> </providers>
> <services>
> <service category="FirstServiceESB" name="SimpleListener" description="Hello World">
> <listeners>
> <jms-listener name="ESB-Gateway" busidref="quickstartGwChannel" maxThreads="4" is-gateway="true" />
> <jms-listener name="helloWorld" busidref="quickstartEsbChannel" maxThreads="4" />
> </listeners>
> <actions mep="OneWay">
> <action name="notificationAction" class="org.jboss.soa.esb.actions.Notifier">
> <property name="okMethod" value="notifyOK" />
> <property name="notification-details">
> <NotificationList type="OK">
> <target class="NotifyConsole" />
> </NotificationList>
> </property>
> </action>
> </actions>
> </service>
> </services>
> 4. I deployed the described service to jawa04 and expected it to start processing the messages from jawa02 queue/A but this didn't happen.
> 5. When I changed the GW provider from jms-jca-provider to jms-provider:
> <jms-provider name="JBossMessaging" connection-factory="XAConnectionFactory"
> jndi-URL="jnp://jawa02:1099" jndi-context-factory="org.jnp.interfaces.NamingContextFactory"
> jndi-pkg-prefix="org.jboss.naming:org.jnp.interfaces">
> It worked as expected.
> Unfortunatelly jms-provider doesn't use ServiceInvoker and thus no load balancing/failover is possible.
> This makes the ESB failover impossible using JMS.
> Solution:
> 1) make jms-jca-provider read the messages from different nodes in the way jms-provider does it.
> or 2) make jms-provider use ServiceInvoker
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the esb-issues
mailing list