[JBoss-user] [Messaging, JMS & JBossMQ] - QueueReceiver starved in receive()?

2005-09-28 Thread Rohan Talip
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

2005-08-04 Thread Rohan Talip
"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

2005-08-04 Thread Rohan Talip
"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

2005-06-29 Thread Rohan Talip
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

2005-06-15 Thread Rohan Talip
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

2005-06-15 Thread Rohan Talip
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?

2005-05-26 Thread Rohan Talip
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