[jboss-user] [JBoss Messaging Users] - standalone consumer for clustered queue did not get all mess
arminhaaf
do-not-reply at jboss.com
Wed Dec 9 04:09:02 EST 2009
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#4269737
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4269737
More information about the jboss-user
mailing list