dev@glassfish.java.net

Re: Glassfish and OpenMQ

From: Edward Bratt <ed.bratt_at_oracle.com>
Date: Thu, 10 Feb 2011 13:50:41 -0800

We don't believe this should be happening but perhaps you can give a bit
more detail about what commands you actually ran.
First, can you confirm that the destination is a Queue and not a Topic?
Topics could certainly behave this way, even if they are persistent.
If you have the logs from both the MQ broker and, from the GlassFish
servers, we'd like to review them. Preferably across the redeployment
operations.
If you can send us the complete list of commands you ran, to
deploy/undeploy/configure/reconfigure your instances and cluster, we
should be able to get a better answer for you.
If the log files are large, or you would prefer not sending them to the
full list, you can e-mail me directly (ed.bratt_at_oracle.com). I'll make
sure the right developer(s) get them for review.
Thanks,
-- Ed

On 2/9/2011 2:13 AM, marciogj_at_gmail.com wrote:
> Hi,
>
> I´m interested to understand how Glassfish and OpenMQ works together
> since we started to experience a odd situation:
> We have a persistent queue which receives quite a lot of messages per
> second.
> After a while we had 350.000 messages in the queue (Almost 60MB). At
> this point, we did a simple undeploy and deploy of our .ear application
> (without any source code change).
>
> The result of this operation was catastrophic: a Java heap space during
> deploy and worst of all - The queue was cleaned!
> This is our top requirement, never lose a single message. In this case
> we lost million application messages since each jms message contains a
> batch from our application.
>
> I cannot understand such situation since we use persistent messages.
> It's looks like Glassfish loads all message into a HashMap but I´m not
> sure (I´m guessing by java heap error)...
>
> The question is why Glassfish and Open MQ would touch data from a
> persistent queue during application load? And why delete all messages
> without any reasonable reason?
>
> Other details:
> Glassfish v2.1.1
> Queue FlowLimit = 1
>
> Regards