users@glassfish.java.net

Re: EMBEDDED mode for JMS Service when using clusters

From: Trond Strømme <Trond.Stromme_at_Sun.COM>
Date: Fri, 08 Jan 2010 11:19:32 +0100

Hi Dies,
In embedded mode the lifecycle of a broker is controlled by the GF
server (as is local) This is not good from a broker service availability
standpoint.
The broker nodes are also unaware of each other, thus forgoing the
cluster effects of a broker cluster.

My recommendation is to set up a broker cluster (HA (for service and
message availability) or not (only service availability) ) and refer to
it as REMOTE. (The brokes referred to can be hosted on the same
server(s) or separate.)
Thus the broker lifecycle is separate from the glassfish instances. You
can also scale the brokers independent of the glassfish clusters.
With n glassfish nodes and broker EMBEDDED you will have n broker nodes,
unaware of each other, and effects such as JMS load balancing will not
be available.

Without broker clustering the clients (and gf servers) will have to
choose which servers to commit messages to, with broker clustering
you'll have to set up the JMS service to refer to the brokers using a
cluster URL:
*mq://app-a:7676/,mq://app-d:7676/,mq://app-b:7676/,mq://app-c:7676/ *
Clients (and gf servers) will get service failover through the round
robin algorithm for choosing a broker if a broker is unavailable. With a
HA cluster (using for example Oracle RAC or (i believe) MYSQL cluster)
the message availability is also guaranteed for clients.

MQ broker clusters are very easy to configure, please see the MQ
administration guide: http://docs.sun.com/app/docs/doc/820-6740?l=en

.trond

On 1/8/10 3:39 AM, Dies Koper wrote:
> Hi,
>
> I have a question about the use of mode "EMBEDDED" (as opposed to
> LOCAL/REMOTE) for JMS Service when using clusters in GF V2.1.
>
> The GFv2.1.1 Administration Guide says that EMBEDDED passes networking
> stack, which sounds faster.
>
> http://docs.sun.com/app/docs/doc/821-0183/6nl8l6k8a?a=view#indexterm-461
>
> But it also says "EMBEDDED mode is not a supported configuration for a
> cluster.".
> I tried changing the JMS Service of a cluster's instance to EMBEDDED and
> my application worked fine. Why is this configuration not supported?
>
> Thanks,
> Dies
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>
>


-- 
Trond Strømme
Application Platform Ambassador
Sun Microsystems Nordic, Professional Services
+47 975 09 388
http://blog.sun.com/tronds