we are currently migrating from JBoss AS 4.2.2 with MQ to a clustered JBoss AS 5.1 with
messaging
We have some standalone JMS consumers to connect external systems.
The problem is that a standalone JMS consumer connects to only one node and so gets the
messages from this node only.
The queue is Clustered:
<mbean code="org.jboss.jms.server.destination.QueueService"
| name="jboss.messaging.destination:service=Queue,name=TestClusteredQueue"
| xmbean-dd="xmdesc/Queue-xmbean.xml">
| <depends>jboss.messaging:service=PostOffice</depends>
| <depends
optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
| <attribute name="Clustered">true</attribute>
| </mbean>
|
A sample external consumer
| public static void main(String[] args) throws Exception {
| System.setProperty("java.naming.factory.initial",
"org.jnp.interfaces.NamingContextFactory");
| System.setProperty("java.naming.factory.url.pkgs",
"org.jboss.naming");
| System.setProperty("java.naming.provider.url",
"node1:1100,node2:1100");
|
|
| final InitialContext tInitialContext = new InitialContext();
| final ConnectionFactory tConnFactory = (ConnectionFactory)
tInitialContext.lookup("ClusteredConnectionFactory");
| final Queue tLisaToMfcQueue = (Queue)
tInitialContext.lookup("/queue/TestClusteredQueue");
|
| javax.jms.Connection jmsConnection = tConnFactory.createConnection();
|
| Session tSession = jmsConnection.createSession(false,
Session.CLIENT_ACKNOWLEDGE);
|
| System.out.println("from browser");
| Enumeration tMessages =
tSession.createBrowser(tLisaToMfcQueue).getEnumeration();
| while (tMessages.hasMoreElements()) {
| Message tMessage = (Message) tMessages.nextElement();
| System.out.println(tMessage);
| }
|
| System.out.println("from consumer");
|
| final MessageConsumer tConsumer = tSession.createConsumer(tLisaToMfcQueue);
|
| tConsumer.setMessageListener(new MessageListener() {
| public void onMessage(final Message pMessage) {
| System.out.println(pMessage);
| try {
| pMessage.acknowledge();
| } catch (JMSException e) {
| e.printStackTrace();
| }
| }
| });
|
| jmsConnection.setExceptionListener(new ExceptionListener() {
|
| public void onException(final JMSException e) {
| System.out.println("got exception");
| }
| });
|
| jmsConnection.start();
|
| }
|
So how can i get a standalone consumer getting all messages from the queue
View the original post :
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4269737#...
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&a...