[JBoss-user] [Messaging, JMS & JBossMQ] - QueueReceiver starved in receive()?
Just repeating a query I posted before on http://jboss.com/index.html?module=bb&op=viewtopic&t=54596 anonymous wrote : | I'm wondering if JBossMQ distributes the load evenly across multiple QueueReceivers or if it is just the first QueueReceiver to poll the master node (i.e. broker in ActiveMQ speak) that gets the message off the queue, hence leading to possible 'starvation'? | | From what I have observed empirically, on our system the QueueReceiver on the master node gets more messages than the 2nd node, while the 3rd node doesn't get many messages. | | Is this configurable? i.e. is there an attribute that can be set for some sort of round-robin delivery/receipt? | | Thanks for any help. | | Regards, | | Rohan | It seems to happen to us quite frequently that a JMS QueueReceiver running in a single thread in a JBoss instance (not the HA master node), receives a lot of messages initially but then eventually is blocked, waiting in the receive() method and never actually receives any messages from a queue, although other QueueReceivers in other JBoss instances (including one HA master and one non-master node) on other machines are happily receiving messages at the same time as this one is blocked. We have to restart JBoss to get it to start receiving messages again (although we could probably restart the service in question via JMX). Is there a reasonable explanation for no further messages being received by a particular QueueReceiver? Is there a way to fix this via some configuration option in a file somewhere or even programmatically? I haven't been able to find anything in the Wiki or forums. Thanks for any help. Regards, Rohan View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3897729#3897729 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3897729 --- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [Clustering/JBoss] - Re: Cluster & MDB's
"chrisdutz" wrote : Well I can't realy provide a solution, but I can confirm that this problem seems to still exist in JBoss 4.0.0. | | Is there a JBoss Enterprise-Edition for more than 2-Node clusters available? ;) | I am not using a MDBs but I am using multiple distributed QueueReceivers, 3 for one queue, distributed across different JBoss servers/nodes running JBoss 4.0.1sp1. I am seeing a similar problem. The Warnings from DefaultPartition within > 2 node cluster topic (http://www.jboss.com/index.html?module=bb&op=viewtopic&t=56835) mentions that the 'javax.naming.NameNotFoundException:ConnectionFactory not bound' seen in the logs is just a warning (and will eventually be changed into a debug). I do see this warning in our JBoss logs, and for a while (i.e. many hours) nothing is read off the queue from the 3rd node, even though it is being read on the 1st and 2nd node (i.e. master and one non-master). Eventually the 3rd node will read messages off the queue, but that might just be because the other 2 nodes are busy processing messages. I'm wondering if JBossMQ distributes the load evenly across multiple QueueReceivers or if it is just the first QueueReceiver to poll the master node (i.e. broker in ActiveMQ speak) that gets the message off the queue, hence leading to possible 'starvation'? >From what I have observed empirically, on our system the QueueReceiver on the >master node gets more messages than the 2nd node, while the 3rd node doesn't >get many messages. Is this configurable? i.e. is there an attribute that can be set for some sort of round-robin delivery/receipt? Thanks for any help. Regards, Rohan View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3888491#3888491 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3888491 --- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [Clustering/JBoss] - Re: XAConnectionFactory not bound error
"regvito" wrote : | [JBAS-1892] - hajndi-jms-ds.xml uses the wrong connection factory binding | Thanks for posting the follow up Reggie. For anyone else that is interested, the JBAS-1892 bug can be found here: http://jira.jboss.com/jira/browse/JBAS-1892?page=all The fix for the JBAS-1892 bug can be found here: http://anoncvs.forge.jboss.com/viewrep/JBoss/jbosscx/src/etc/example-config/hajndi-jms-ds.xml?r1=1.2&r2=1.3 I was wondering, what other side effects could result if this change is not made (or JBoss is not upgraded to JBoss 4.0.3 RC1 or higher) ?? Could the change fix this problem (if indeed it is a problem) : http://www.jboss.org/index.html?module=bb&op=viewtopic&t=54596 Could someone please explain why having the XAConnectionFactory FactoryRef in the global JNDI namespace (i.e. without the leading 'java:/') makes a difference, compared to it being in the local JVM (i.e. with the leading 'java:/')? Or at least point me to a URL? (I am not completely new to JBoss, but I still don't understand this) Thanks, Rohan View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3888482#3888482 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3888482 --- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [Messaging, JMS & JBossMQ] - Catching onException() for MDBs
Hi, This is just a follow up message. Since I received an email asking what I did about this, I thought it would be better to share it on the forum. anonymous wrote : If I had a handle to the Connection used by the Message Driven Bean I could call setExceptionListener() to reconnect when the HASingleton JMS server moves but because the connection is not exposed by the container (or probably more accurately by the EJB 2.0 specification) I don't think this is possible to do in the MDB code. | | I have looked at some of the JBoss 4.0.1sp1 code relating to JMS and Connections etc, but I can't see anything that indicates that a ping timeout exception will be caught and the Connection recreated. | ... | Is it at all possible to configure this via MDB deployment descriptors or in the standardjboss.xml or deploy/jms/hajndi-jms-ds.xml files? I was not able to work out how to do this for Message Driven Beans. I did look very briefly at ActiveMQ and was told on the ActiveMQ mailing list that ActiveMQ driven MDBs reconnect to the server after a JMS broker restart. However after discussions with our technical architect, we decided to keep it simple (for now) and stick with JBossMQ (rather than introducing yet another software package), although I changed the MDBs into slightly more complex JBoss services that had QueueReceivers that polled the JMS queues. This meant that I had more control over the connection and could call setExceptionListener() and handle the exceptions whenever the JMS broker moved to another JBoss instance (and so reconnect appropriately). One thing I found necessary to do before reconnecting, was to close() and stop() the old connection before getting a new connection, otherwise I continued to see 'ping timeout' being logged from the old connection. This now works very well for us. It is a pity I couldn't get it to work with MDBs as they are simpler to deal with. Again, if anyone knows how to do this with MDBs (and JBossMQ) with code and/or deployment descriptors, please let me know, although it is a little late as I have already changed my code as I mentioned above. Regards, Rohan View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3883066#3883066 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3883066 --- SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from IBM. Find simple to follow Roadmaps, straightforward articles, informative Webcasts and more! Get everything you need to get up to speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [Clustering/JBoss] - Re: Clustering Confusion
teknorat, you've probably solved your problem now ... "teknokrat" wrote : Yeah, I've been at looking at it. What I don't understand is where the MDBs come into it. Does it mean the MDBs reside on the same servers as the JMS queue/topic? Not necessarily. You can put the MDBs on same server as the JMS queue/topic, but you can also put them on other servers in the same cluster. My question is: how can you configure the MDBs to reconnect automatically when the JMS server fails over to another JBoss instance? See http://www.jboss.org:8080/index.html?module=bb&op=viewtopic&t=64439#3881573 "teknokrat" wrote : | If so, how is load balancing handled? | | There is an example onthe wiki on " Load-balanced, faul-tolerant MDBs in HAJMS" which I am reading now. Are there any other sources of information on this topic? I looked at that http://wiki.jboss.org/wiki/Wiki.jsp?page=LoadBalancedFaultTolerantMDBs but it doesn't seem to do too much other than specify the HA-JNDI port (i.e. port 1100 instead of the local JNDI port 1099), which is already done in jboss-4.0.1sp1/server/all/deploy/jms/hajndi-jms-ds.xml Or did I miss something? Rohan View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3881577#3881577 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3881577 --- SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from IBM. Find simple to follow Roadmaps, straightforward articles, informative Webcasts and more! Get everything you need to get up to speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [Messaging, JMS & JBossMQ] - Clustered Message Driven Beans
Hi, I managed to get a HASingleton (i.e. cluster-wide singleton) QueueReceiver to work (instead of an cluster-wide singleton MDB, which did not appear possible). I have another problem now: When the HASingleton JMS server fails over to another JBoss instance, is it possible to configure Message Driven Beans on multiple JBoss servers in the cluster to automatically reconnect their (Queue)Connection to the new JBoss instance? Right now I'm getting the infamous "ping timeout" exception every minute or so: java.io.IOException: ping timeout. | at org.jboss.mq.Connection$PingTask.run(Connection.java:1377) | at EDU.oswego.cs.dl.util.concurrent.ClockDaemon$RunLoop.run(ClockDaemon.java:364) | at java.lang.Thread.run(Thread.java:595) This is even with specifying the HA-JNDI port of 1100. Actually this is the default in jboss-4.0.1sp1/server/all/deploy/jms/hajndi-jms-ds.xml If I had a handle to the Connection used by the Message Driven Bean I could call setExceptionListener() to reconnect when the HASingleton JMS server moves but because the connection is not exposed by the container (or probably more accurately by the EJB 2.0 specification) I don't think this is possible to do in the MDB code. I have looked at some of the JBoss 4.0.1sp1 code relating to JMS and Connections etc, but I can't see anything that indicates that a ping timeout exception will be caught and the Connection recreated. Am I missing something? Is it at all possible to configure this via MDB deployment descriptors or in the standardjboss.xml or deploy/jms/hajndi-jms-ds.xml files? Any help appreciated. Thanks, Rohan View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3881573#3881573 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3881573 --- SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from IBM. Find simple to follow Roadmaps, straightforward articles, informative Webcasts and more! Get everything you need to get up to speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user
[JBoss-user] [Messaging, JMS & JBossMQ] - Clustered HASingleton MDB?
Hi, I have been looking at the documentation on the Wiki for Singleton Message Driven Beans (MDBs) and for HASingletons but I have not found anything showing how to combine the two, i.e. set up a clustered HASingleton MDB. I believe that this feature is available in EJB 3.0 ( http://www.jboss.org/products/ejb3) with the @Service and @Clustered annotations, however I am uncomfortable using EJB 3.0 for a production system until the specification has been standardised and until the JBoss implementation is a proper release that has been widely adopted, rather than a preview. So, if I don't use EJB 3.0 is there a way to do what I want? i.e. configure a singleton MDB across a whole cluster, rather than just a singleton across a JVM? For example, is there a way to configure Message Driven Beans so that they are only created for and connect to queues in the local JNDI tree rather than in the HA JNDI tree? Is there a way to make an MDB dependent on the (HA) JMS service so that it only starts up on the same (local) JVM? Or should I just try to configure a .sar service archive deployed into the deploy-hasingleton directory, configured with a QueueReceiver? (This is what I am going to try to do now) In which case, do I need to use an MBean configured with the HASingletonController? i.e. can I just drop a simple .sar service archive into the deploy-hasingleton directory and have it automagically be configured as a HASingleton? (These last questions may be better answered in the clustering forum.) Thanks for any help, Rohan View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3879170#3879170 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3879170 --- SF.Net email is sponsored by: GoToMeeting - the easiest way to collaborate online with coworkers and clients while avoiding the high cost of travel and communications. There is no equipment to buy and you can meet as often as you want. Try it free.http://ads.osdn.com/?ad_id=7402&alloc_id=16135&op=click ___ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user