same problem here since 4.0.5.GA.
We have configured
because we need a singleton MDB.
What is the right way to solve such issues?
There is no property 'maxPoolSize' in the class JmsActivationSpec in 4.0.5.GA and not either in 4.0.4.GA, where the MDB is working well. So, something has changed, but what?
Just a thought, does "maxSession" work?
For the JMS/JCA adapter, maxSession controls the number of JMS ServerSessions allocated to a provider in handling messages. This is different than the MDB instance pool used to handle the actual messages.
ok, maxSession works fine.
dlq goes to dLQJNDIName and
dlqMaxTimesRedelivered goes to dLQMaxResent
Thanks a lot
I still don't understand where MaxPoolSize goes in 4.0.5?
as weston said maxSession != maxPoolSize.
So How can I make my MDB singleton?
I used to do it as:
I mis spoke (my bad). In this case they will be the same being that the maxSession controls the inbound thread allowance. My apologies, I did not read the initial thread closely enough.
I think there should be MaxPoolSize rather than a maxSession property.
When I set my MDB to have a maxSession of 1 (to get a singleton), and send multiple messages to the Queue, indeed only one MDB is actually being processed (as confirmed in my logs). However, when I go to the JMX-console and click on the queue to which my MDB is listening, I can see that the property InProcessMessageCount has a value of 2. This would suggest at least 2 MDB's are attempting to process messages rather than a singleton. Why is this? Could this be a bug?
What im trying to do is wipe out all messages from the Queue including the one's that are in process. I am able to do this by getting access to the MBean for messages that are "waiting" in the queue and invoking the "removeAllMessages" method. However, I am unable to delete the messages that are "in process", except the one that is actively running.