Skip to main content

SJSAS Messaging vs Glassfish Messaging differences

12 replies [Last post]
asherwin
Offline
Joined: 2008-04-15

I'm currently doing some developement using SJSAS 9.1_01 and 9.1_02 branded distributions, which ship with Sun Java System Message Queue 4.1.

I'm just noticing that supposedly the max Queue consumers is crippled to 2 using the default license/trial license. However, I've only observed a max 1 consumer on any one given queue to ever be instantiated...

So my question is, Glassfish ships with OpenMQ. Is OpenMQ the same as the Sun Java System Message Queue, except branding, it's open source and not crippled? I notice that messaging installed has the same folder names, binary utility names etc etc...

I've been having some trouble finding any definitive answers in regards to a comparison between the two

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
lindaschneider
Offline
Joined: 2006-10-06

The last line (about a trial license) is confusing ... the release ships with an unlimited license (see above the last line).

Actually, some of the cruft is caused because -version is no longer a supported option (because we ship only one non-crippled version in all releases OpenMQ, SJSMQ, glassfish)

The Readme should be updated to explicitly say OpenMQ (vs SJSMQ) for glassfish (its an artifact that we used to ship identical products for both versions)

ebratt
Offline
Joined: 2005-03-07

The MQ products are exactly identical when the releases are first issued. We use the same bits for both the community and commercial release. Supported customers have access to patch updates, in between the community refreshes.

roisinflannery
Offline
Joined: 2007-05-08

Hi Asherwin,

Have you ever considered purchasing a support contract with Sun? We have a number of different offerings and pricing schemes, to support every type of user.

With support, you receive access to fully tested and supported patches, containing fixes to recent bugs. You also will have the benefits of up to 24x7 support, meaning that you can get your questions answered all the time anytime. Please take a look at the following link for more details:
http://forums.java.net/jive/thread.jspa?messageID=276262&#276262
or else, please feel free to reply to this thread and I will provide more information.

Kind regards,
Roisin
Sustaining Engineering, GlassFish

asherwin
Offline
Joined: 2008-04-15

Thank you for clearing up the licensing/branding confusion, but...

As the output of some imq commands show, the maxNumActiveConsumers is indeed set to 10 on my Queues, and the active monitoring of the Queues shows that multiple messages queue up waiting to be processed (the pasted example showed a high of 7), but only 1 Active Consumer was ever used

asherwin
Offline
Joined: 2008-04-15

This is the output while monitoring metrics of the consumer statistics on the queue when I throw 200 messages at it

C:\Documents and Settings\alex>imqcmd metrics dst -m con -b localhost:6076 -t q -n jms_conduit_a_OutboundQueue -u admin
Password: OMITTED
Displaying destination metrics where:

-----------------------------------------------
Destination Name Destination Type
-----------------------------------------------
jms_conduit_a_OutboundQueue Queue

On the broker specified by:

-------------------------
Host Primary Port
-------------------------
localhost 6076

------------------------------------------------------------------
Active Consumers Backup Consumers Msg Count
Current Peak Avg Current Peak Avg Current Peak Avg
------------------------------------------------------------------
1 1 1 0 0 0 0 6 2
1 1 1 0 0 0 0 6 2
1 1 1 0 0 0 1 6 2
1 1 1 0 0 0 2 6 2
1 1 1 0 0 0 2 7 2
1 1 1 0 0 0 0 7 2
1 1 1 0 0 0 0 7 2
1 1 1 0 0 0 0 7 2

As you can see, there are times when there are more then 1 messages waiting to be consumed, but the active consumers never increases...

lindaschneider
Offline
Joined: 2006-10-06

There may be some confusion on what maxNumActiveConsumers does.

That property tells the broker to allow only *10* consumers to connect to the broker, however it does not control how many actual consumers glassfish tries to create. Its not a scaling parameter (more of a security parameter )

e.g. if you were writing a standalone application that created a single consumer, you could run 10 instances of that application at the same time and the 11th would get an exception when the consumer was created.

I'm assuming that you are using MDB's ? An MDB generally creates on one consumer (a special type of consumer called ConnectionConsumer) on a connection which retrieves messages (and those messages are then handed off to one or more MDBs). To get more consumers, you will need to use more of the pooled connections.

asherwin
Offline
Joined: 2008-04-15

That makes sense, but then how do you specify the number of MDB's to instantiate in Glassfish + OpenMQ?

The only list of activation spec properties for sun-web.xml that I've ever found are specific to the genericjmsra resource adapter, not the default jmsra resource adapter.

All other app servers I've used have some proprietary way of doing this:

- Websphere Application Server default messaging has a property just for this on its queues
- Websphere Application Server MQ JMS Provider uses listener ports, which have settings to configure this number
- Weblogic has as "max-beans-in-pool" XML element used in the weblogic web.xml

The ConnectionFactory's created have the default settings, which are "Initial/Minimum Pool Size: 1" and "Max Pool Size: 250"

And the JMS Resources that bind the Queue JNDI to a JMS Destination don't have any configurable properties via the admin console, unless there are some documented properties to add manually to accomplish this?

rampsarathy
Offline
Joined: 2005-11-23

Hi,
Have you tried these values in the sun-ejb-jar.xml, these control the number of MDBs that are created





10
2
30

60

-Ramesh

ebratt
Offline
Joined: 2005-03-07

Asherwin
All feature and use restrictions have been removed from the Message Queue side of the product. Older versions of App. Server and Message Queue did have some limitations, in some editions, but this was all removed when we put the product(s) into Open Source, and in the subsequent commercial releases. At this time, Open MQ and Java MQ have equivalent functionality. Java MQ is supported by update patches while all bug fixes to Open MQ are delivered in the latest development branch (v. 4.2).

It's plausible there's some other reason for the consumer limit. I'm not an App. Server expert so forgive me, if I ask a painfully obvious question: could you check maxNumActiveConsumers and make sure it's set appropriately? I presume you've reviewed the setup and config. documentation [i]Using JMS in Java System App. Server[/i] --
http://docs.sun.com/app/docs/doc/819-3672/beaob?a=view. If not a quick read there might offer some clues. Beyond that, I'd have to defer to App. Server experts for any further advice.

While there could be a bug, all the limitations are supposed to be removed.

-- Ed Bratt

asherwin
Offline
Joined: 2008-04-15

I created my jms destinations from asadmin (rather then with imqcmd) like so:

create-jmsdest --port 6048 -desttype queue --property maxNumActiveConsumers=10 jms_conduit_a_OutboundQueue

I can only assume that asadmin properly propagated the maxNumActiveConsumers property into the MQ config... Unfortunately, I don't see a way with asadmin or imqcmd to list the properties set on a jms destination. Similarly, the admin console does not have a properties page for jms destinations!

Scratch that, i missed "imqcmd query dst", which does show that information as:

-------------------------
Host Primary Port
-------------------------
localhost 6076

Destination Name jms_conduit_a_OutboundQueue
Destination Type Queue
Destination State RUNNING
Created Administratively true

Current Number of Messages
Actual 0
Held in Transaction 0
Current Message Bytes
Actual 0
Held in Transaction 0
Current Number of Producers 0
Current Number of Active Consumers 1
Current Number of Backup Consumers 0

Max Number of Messages unlimited (-1)
Max Total Message Bytes unlimited (-1)
Max Bytes per Message unlimited (-1)
Max Number of Producers 100
Max Number of Active Consumers 10
Max Number of Backup Consumers 0

Limit Behavior REJECT_NEWEST
Consumer Flow Limit 1000
Is Local Destination false
Local Delivery is Preferred false
Use Dead Message Queue true

Successfully queried the destination.

Message was edited by: asherwin

asherwin
Offline
Joined: 2008-04-15

Did I make a mistake in assuming Glassfish ships with OpenMQ?

I just re-did all my domain configurations, setup all my jms dests, jms resources, jdbc stuff.. redeployed my applications, and went to monitor the Queue consumer totals again only to see it stay at a max of 1.

So, I open up the README.txt found at glassfish\imq\README.txt to make sure this is OpenMQ, and the heading is:

Sun Java(tm) System Message Queue
README
---------------------------------
Last updated: 2 August 2007

Similarly , running "imqbrokerd -license" shows that it is using a trial license by default... making me think, this is again Sun Java System Message Queue 4.1 and not Open MQ.

Or am I mistaken, and this is really Open MQ branded as Sun Java System Message Queue in the docs that ships with Glassfish?

If this is Open MQ, why does running "imqbrokerd -license" show:
The following licenses are available:

Package - Description

unl - Sun Java(tm) System Message Queue 4.1 Enterprise Edition

To start the broker with a specific license,
use the parameter -license
, e.g.,

imqbrokerd -license unl
# This is the message displayed when a trial license is used

Shreedhar Ganapathy

Hi asherwin
Will get back to you with clarifications on this after I get in touch
with the right folks.
Thanks
Shreedhar

glassfish@javadesktop.org wrote:
> Did I make a mistake in assuming Glassfish ships with OpenMQ?
>
> I just re-did all my domain configurations, setup all my jms dests, jms resources, jdbc stuff.. redeployed my applications, and went to monitor the Queue consumer totals again only to see it stay at a max of 1.
>
> So, I open up the README.txt found at glassfish\imq\README.txt to make sure this is OpenMQ, and the heading is:
>
> Sun Java(tm) System Message Queue
> README
> ---------------------------------
> Last updated: 2 August 2007
>
> Similarly , running "imqbrokerd -license" shows that it is using a trial license by default... making me think, this is again Sun Java System Message Queue 4.1 and not Open MQ.
>
> Or am I mistaken, and this is really Open MQ that ships with Glassfish?
> [Message sent by forum member 'asherwin' (asherwin)]
>
> http://forums.java.net/jive/thread.jspa?messageID=273575
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@glassfish.dev.java.net
> For additional commands, e-mail: users-help@glassfish.dev.java.net
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@glassfish.dev.java.net
For additional commands, e-mail: users-help@glassfish.dev.java.net