<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4025242342944729846</id><updated>2011-07-28T21:07:00.719-07:00</updated><category term='recovery'/><category term='clustering'/><category term='redbook'/><category term='jca'/><category term='wmq'/><category term='scalability'/><category term='listener ports'/><category term='security'/><title type='text'>WebSphere and Messaging</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://webspheremessaging.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4025242342944729846/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://webspheremessaging.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Graham Wallis</name><uri>http://www.blogger.com/profile/03303725054553963437</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_kEsAteDlCCU/SNjClm4vv4I/AAAAAAAAAAU/ezjWXBoBNIQ/S220/gdw_for_web.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4025242342944729846.post-1548353350616569336</id><published>2010-05-07T03:37:00.000-07:00</published><updated>2010-05-19T02:15:53.514-07:00</updated><title type='text'>HA of an MQLink between SIBus and WMQ</title><content type='html'>Just answered a question from a colleague in Switzerland &amp; I thought that it would be worth posting the answer here for posterity.&lt;br /&gt;&lt;br /&gt;Suppose you have an SIBus with a Foreign Bus Connection or MQLink from a queue manager to the SIBus. And further suppose that you've created a Cluster Bus member that contains one messaging engine, which will host the SIBus end of the MQLink. The SIBus end of the MQLink knows the endpoint of the queue manager, and the queue manager end of the link knows the endpoint of the messaging engine, which will be configured in the CONNAME property of the WMQ sender channel.&lt;br /&gt;&lt;br /&gt;You can configure the messaging engine to be able to failover between the servers in the WAS cluster, for high availability. As the messaging engine moves (i.e. fails over) from one server to another, it will be listening on a different host/port.  This poses the question as to what you should configure for the host/port in the WMQ Sender channel's CONNAME.&lt;br /&gt;&lt;br /&gt;There are 3 solutions to this problem, depending on which version of WMQ you are using:&lt;br /&gt;&lt;br /&gt;1. If you are using WMQ prior to v7.0.1 then:&lt;br /&gt;&lt;br /&gt;a) you could use a shared disk style HA cluster to manage the ME and its endpoint (note: this is not a nice solution, I only mention it for completeness)&lt;br /&gt;&lt;br /&gt;b) you could install WMQ supportpac MR01 at the queue manager, which adds a channel exit to the Sender channel. You can then configure a list of the endpoints of the WAS servers and this is used to select an endpoint to use in the CONNAME when starting the channel. This has the advantage that the channel exit "remembers" the last known good endpoint, which minimises reconnect time.&lt;br /&gt;&lt;br /&gt;2. If you are using WMQ 7.0.1 then you can configure a comma-separated list of endpoints in the CONNAME of the Sender channel. A disadvantage of this is that when you start the sender channel it always searches from the beginning of the list, trying each endpoint in turn, so there can be a slight delay before a successful connection is made. This is not significant provided you don't disconnect an idle channel to eagerly - i.e. set the DISCINT (disconnect interval) to be relatively long.&lt;br /&gt;&lt;br /&gt;[19/05/2010 - added paragraph describing overall topology]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4025242342944729846-1548353350616569336?l=webspheremessaging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4025242342944729846/posts/default/1548353350616569336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4025242342944729846/posts/default/1548353350616569336'/><link rel='alternate' type='text/html' href='http://webspheremessaging.blogspot.com/2010/05/ha-of-mqlink-between-sibus-and-wmq.html' title='HA of an MQLink between SIBus and WMQ'/><author><name>Graham Wallis</name><uri>http://www.blogger.com/profile/03303725054553963437</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_kEsAteDlCCU/SNjClm4vv4I/AAAAAAAAAAU/ezjWXBoBNIQ/S220/gdw_for_web.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-4025242342944729846.post-7177641526629675263</id><published>2009-08-29T15:55:00.000-07:00</published><updated>2009-08-29T16:02:17.487-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='redbook'/><title type='text'>New WebSphere Messaging Redbook</title><content type='html'>On Monday this week I got a call from goods inwards at work to tell me I had a package for me from Poughkeepsie. This was a surprise, I wasn't expecting anything, and although I do know people who work in Poughkeepsie if they were going to send me something they would have mentioned it. So down I trotted to pick up my package, and as it turned out seven other packages for people I work with.&lt;br /&gt;&lt;br /&gt;The package contains a copy of the new &lt;a href="http://www.redbooks.ibm.com/Redbooks.nsf/RedbookAbstracts/sg247770.html?Open"&gt;WebSphere Application Server V7 Messaging Administration Guide&lt;/a&gt;. Well I say new, it was published in July, but I didn't realize. The book was reviewed by several people who work on developing WebSphere Messaging, hence me walking back with seven copies of the book.&lt;br /&gt;&lt;br /&gt;The best thing about the Redbook is that although you can purchase it, you can also download it for free as a &lt;a href="http://www.redbooks.ibm.com/redbooks/pdfs/sg247770.pdf"&gt;PDF&lt;/a&gt;, or view it &lt;a href="http://www.redbooks.ibm.com/redbooks/SG247770/wwhelp/wwhimpl/js/html/wwhelp.htm"&gt;online&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Another good resource for WebSphere Messaging users everywhere.&lt;br /&gt;Alasdair&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4025242342944729846-7177641526629675263?l=webspheremessaging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4025242342944729846/posts/default/7177641526629675263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4025242342944729846/posts/default/7177641526629675263'/><link rel='alternate' type='text/html' href='http://webspheremessaging.blogspot.com/2009/08/new-websphere-messaging-redbook.html' title='New WebSphere Messaging Redbook'/><author><name>Alasdair Nottingham</name><uri>http://www.blogger.com/profile/02129366130780396011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://photos1.blogger.com/blogger2/1010/983974143584832/320/alasdair.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-4025242342944729846.post-6227378914715014280</id><published>2009-06-02T10:32:00.000-07:00</published><updated>2009-06-02T10:39:38.530-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='listener ports'/><category scheme='http://www.blogger.com/atom/ns#' term='wmq'/><title type='text'>Listener Ports and EJB 3</title><content type='html'>About a year ago we released the EJB 3 Feature Pack for WebSphere Application Server v6.1. This introduced the EJB3 programming model for the first time, and many people rushed up and downloaded it for their application development. Some of the more eagle eyed people noticed a restriction. Message Driven Beans had to use activation specifications, no listener ports here. While this seems to be a simple restriction, when you realize that the only supported way of getting WebSphere MQ working with an MDB in v6.1 is with a listener port you realize the problem. The non-alignment of the release dates for the feature pack and the availability of activation specs in the Application Server led to an unforeseen gap. Oops you might say.&lt;br /&gt;&lt;br /&gt;Without going into all the gory details we have been busy working on a solution and until now we have been able to say very little about what has been going on behind the scenes. Now things are different though we have published &lt;a href="http://www-01.ibm.com/support/docview.wss?rs=180&amp;amp;uid=swg1PK86005"&gt;APAR PK86005 EJB 3.0 MESSAGE-DRIVEN BEANS CANNOT BE USED WITH LISTENER PORTS&lt;/a&gt;. This APAR is targeted for inclusion in 6.1.0.25 (and 7.0.0.5) at which point you can bind an EJB3 MDB against a listener port, just like you could an EJB 2.1, or 2.0 MDB.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;No code changes are needed to make this work, all you need to do is set the message listener bindings to name a listener port.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Alasdair&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4025242342944729846-6227378914715014280?l=webspheremessaging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4025242342944729846/posts/default/6227378914715014280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4025242342944729846/posts/default/6227378914715014280'/><link rel='alternate' type='text/html' href='http://webspheremessaging.blogspot.com/2009/06/message-listener-ports-and-ejb-3.html' title='Listener Ports and EJB 3'/><author><name>Alasdair Nottingham</name><uri>http://www.blogger.com/profile/02129366130780396011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://photos1.blogger.com/blogger2/1010/983974143584832/320/alasdair.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-4025242342944729846.post-398693362172927233</id><published>2009-05-27T14:54:00.000-07:00</published><updated>2009-05-27T15:03:31.130-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='listener ports'/><category scheme='http://www.blogger.com/atom/ns#' term='wmq'/><title type='text'>Listener Ports and WebSphere Application Server v7</title><content type='html'>When we released &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;WebSphere&lt;/span&gt; Application Server v7 one of the things people were most shocked about was the following statement in the list of deprecated features:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Support for configuring and using message-driven beans (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;MDBs&lt;/span&gt;) through &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;JMS&lt;/span&gt; listener ports is deprecated.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;I would like to attempt to put peoples minds at rest here by explaining the motivation behind the deprecation.&lt;br /&gt;&lt;br /&gt;When J2&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;EE&lt;/span&gt; 1.3 was released it added in message driven beans support, but without specifying how this should work. So we invented listener ports (WAS v5). Then J2&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;EE&lt;/span&gt; 1.4 came a long and told us how it should work. It introduced this new mechanism called "activation specifications" which are part of a resource adapter. So we went ahead and implemented activation specifications (WAS v6), but we still maintained listener ports as this was still how we integrated &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;WebSphere&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;MQ&lt;/span&gt; as a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;JMS&lt;/span&gt; provider into message driven beans.&lt;br /&gt;&lt;br /&gt;More recently we released a resource adapter for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;WebSphere&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;MQ&lt;/span&gt; and in WAS v7 we integrated this into WAS as the way to integrate &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;WebSphere&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;MQ&lt;/span&gt; with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;MDBs&lt;/span&gt;. As a result we now have two ways to do the exact same thing. Having two ways of doing things often causes confusion because people want to know which they should use. In general we want our answer to be to use activation specifications. There are lots of good things about activation specifications, like being able to define them once for a cluster, rather than once per cluster member, so in an effort to avoid confusion we deprecated listener ports.&lt;br /&gt;&lt;br /&gt;While this is good for new application developers, as they have a clear direction on which to use. It is not so good for existing users of listener ports who might worry that the rug is being  pulled out from under them. So for those people who are using listener ports, don't worry we have no plans to remove them from the product. They are there for the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_13"&gt;foreseeable&lt;/span&gt; future.&lt;br /&gt;&lt;br /&gt;For those who are happy to migrate we have endeavoured to make this as simple as possible, and applications do not need to be re-written to take advantage of activation specifications, they do not even need to be redeployed, a simple change to the message listener bindings followed by a restart of the application is all that is needed. We even have a nice &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;whizzy&lt;/span&gt; button to convert a listener port to an activation specification.&lt;br /&gt;&lt;br /&gt;So in summary, if you are writing new applications then we recommend that you use activation specifications, for existing applications then don't worry - listener ports are still there, and we won't be getting rid of them for some time to come. I wouldn't want anyone to worry that a crack team of IBM engineers will blast a hole in their data centres to surgically remove the listener ports from their product.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Alasdair&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4025242342944729846-398693362172927233?l=webspheremessaging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4025242342944729846/posts/default/398693362172927233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4025242342944729846/posts/default/398693362172927233'/><link rel='alternate' type='text/html' href='http://webspheremessaging.blogspot.com/2009/05/listener-ports-and-websphere.html' title='Listener Ports and WebSphere Application Server v7'/><author><name>Alasdair Nottingham</name><uri>http://www.blogger.com/profile/02129366130780396011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://photos1.blogger.com/blogger2/1010/983974143584832/320/alasdair.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-4025242342944729846.post-156180737801858060</id><published>2009-02-18T09:11:00.000-08:00</published><updated>2009-02-19T11:06:13.438-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jca'/><category scheme='http://www.blogger.com/atom/ns#' term='clustering'/><category scheme='http://www.blogger.com/atom/ns#' term='scalability'/><title type='text'>Updated: How MDBs work in a cluster</title><content type='html'>It has been a long time since I blogged, and then an email question dropped in my inbox, so I thought I would respond with a blog post. The question was:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   I have an application that uses &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;MDB's&lt;/span&gt;. I have set up 2 messaging engines in a cluster and both are running concurrently (active/active) on 2 different app servers within a WAS cluster. My application is deployed in the same WAS cluster as the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;SIBus&lt;/span&gt;. My activation specs reference the SI Bus. But I find that only &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;MDB's&lt;/span&gt; in 1 app server are active. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Is it possible to make use of both app servers so that &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;MDB's&lt;/span&gt; on both app servers can process messages from the queue? My understanding was that destination gets partitioned across the messaging engines. I am confused about why only one of the messaging engine is being used. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When you deploy an application containing a Message Driven Bean (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;MDB&lt;/span&gt;) to a cluster and it is hooked up to a bus, you need to be aware of how the bus topology affects delivery to the Message Driven Beans. If the cluster the application is deployed to is also a member of the bus then the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;MDB&lt;/span&gt; will only receive messages if the cluster server member also has a messaging engine running on it. This means that if you have a cluster of five servers, and only three messaging engines, only &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;MDBs&lt;/span&gt; on three of the servers will get driven.&lt;br /&gt;&lt;br /&gt;In some scenarios this is undesirable because you are not sharing the work out across all the application servers, reducing the scalability of message receipt. In v6.x the only solution to this problem is to have two distinct clusters. One for the messaging traffic, and one for the applications. This also gives the benefit that the messaging traffic cannot starve the application of resources, and vice &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;versa&lt;/span&gt;. The downside is that you need a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;TCP&lt;/span&gt;/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;IP&lt;/span&gt; connection to get messages, rather than using Java method calls.&lt;br /&gt;&lt;br /&gt;The good news is that in v7 we added a new option on an activation spec called &lt;span style="font-style: italic;"&gt;Always activate &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;MDBs&lt;/span&gt; in all servers&lt;/span&gt; which when specified will cause all &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;MDBs&lt;/span&gt; in the cluster to receive messages. The v7 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;infocenter&lt;/span&gt; has a really good article on how all this works, which is well worth reading, it is also relevant to the old v6.1 behaviour, just ignore the section showing cross connections. To save you searching just click &lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.pmc.nd.iseries.doc/concepts/cjn_mdb_endpt_overview.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Updated (Thursday 19th February 2009)&lt;/span&gt;: It has been pointed out that I have failed to mention one caution with the remote cluster solution. You need to carefully configure your activation specifications to ensure that all the MDB's do not connect to the same messaging engine in the remote cluster. If all the MDB's connect to a single engine then messages that have been sent to the partitions on the other messaging engines will be marooned and not received. An easy solution to this problem is to have a single messaging engine in the remote cluster which will give you H.A., but not scalability.&lt;br /&gt;&lt;br /&gt;Alasdair&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4025242342944729846-156180737801858060?l=webspheremessaging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4025242342944729846/posts/default/156180737801858060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4025242342944729846/posts/default/156180737801858060'/><link rel='alternate' type='text/html' href='http://webspheremessaging.blogspot.com/2009/02/how-mdbs-work-in-cluster.html' title='Updated: How MDBs work in a cluster'/><author><name>Alasdair Nottingham</name><uri>http://www.blogger.com/profile/02129366130780396011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://photos1.blogger.com/blogger2/1010/983974143584832/320/alasdair.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-4025242342944729846.post-6653302545422467880</id><published>2008-11-18T12:35:00.000-08:00</published><updated>2008-11-19T04:30:36.031-08:00</updated><title type='text'>A brief introduction to the service integration bus</title><content type='html'>When Graham started this blog in September there was a definite idea that we would be talking about what is new in v7. It was launched at the same time v7 shipped, so to deny a link would be ludicrous, but it has recently occurred to me that it might be useful just to cover some of the basics. I am basing this on a large number of conversations I have had over the last month or so where I have had to explain the basics to people who had not quite got one of the concepts. So here I go:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;What is a &lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.pmc.nd.doc/concepts/cjj0000_.html"&gt;bus&lt;/a&gt;?&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;A bus is a number of things, which makes coming up with a single definition hard, but when we talk about a bus we mean all of the following:&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;A name space for destinations&lt;/li&gt;&lt;li&gt;A cloud to which destinations are defined and client applications connect.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A set of interconnected application servers and/or clusters that co-operate to provide messaging function&lt;/li&gt;&lt;li&gt;A set of interconnected messaging engines that co-operate to provide messaging function&lt;/li&gt;&lt;/ol&gt;While some of these might seem similar they are in fact different and that difference should become clear later on (each statement is not quite equal).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;What is a &lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.pmc.nd.doc/concepts/cjo0001_.html"&gt;destination&lt;/a&gt;?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A destination is a point of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;addressibility&lt;/span&gt; within the bus. Messages are sent to and received from destinations. There are a number of different types of destination. These are:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;A queue. This provides point to point messaging capabilities. A message is delivered to exactly one connected client and the messages are broadly processed in a first in first out order (message priority can affect this order).&lt;/li&gt;&lt;li&gt;A topic space. This provides publish/subscribe messaging capabilities. A message is delivered to all matching connected clients.&lt;/li&gt;&lt;/ol&gt;There are other types of destinations, but they are less common, so I have skimmed over those.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;What is a &lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.pmc.nd.doc/concepts/cjk0001_.html"&gt;messaging engine&lt;/a&gt;?&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;A bus &lt;span style="font-size:100%;"&gt;is a logical entity and as such provides no value on its own. The "&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;runtime&lt;/span&gt;" of the bus is provided by a set of messaging engines which co-operate to provide&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;this &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;runtime&lt;/span&gt;. Messaging engines provide two important functions. The first is that clients connect to messaging engines, and the second is that messages are managed by the messaging engine.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;What is a &lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.pmc.nd.doc/concepts/cjj0020_.html"&gt;bus member&lt;/a&gt;?&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;While messaging engines provide the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;runtime&lt;/span&gt; they are not directly configurable (except for one key exception I will cover later). Instead servers and/or clusters are added to the bus. When a server or cluster is added to the bus it causes a single messaging engine to be created. A server bus member can host at most one messaging engine per bus, a cluster can have multiple, which is the only time you can create messaging engines.&lt;br /&gt;&lt;br /&gt;Destinations are then "assigned" to a bus member at which point the messaging engines running on those bus members get something called a message point which is where the messages are stored.&lt;br /&gt;&lt;br /&gt;Multiple servers and clusters can be added to a single bus. This is an important point. Some discussions I have had recently point to this being a point of confusion. Two different servers or clusters can be added to to the same bus. A bus can be as large as the cell in which it is defined. It can be larger than a single cluster.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;How does &lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.pmc.nd.doc/tasks/tjt9999_.html"&gt;High Availability&lt;/a&gt; work?&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;A certain level of availability is provided just by adding multiple application servers as a bus, a client can connect into any running messaging engines. The problem is that if messaging engine is not running the message points it is managing are not available. This does not provide an ideal HA story.&lt;br /&gt;&lt;br /&gt;If you want HA you just use a cluster as a bus member instead. When you add a cluster as a bus member you get one messaging engine which can run on any application server in that cluster. If the server in the cluster fails then the messaging engine will be started in another server in the cluster. This can be configured using a policy.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;How does &lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.pmc.nd.doc/tasks/tjt9999_.html"&gt;Scalability&lt;/a&gt; work?&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Scalability also utilizes application server clusters. By configuring multiple messaging engines in a cluster each messaging engine in the cluster will have a message point for destinations the cluster manages. We call this a partitioned destination. This is because each messaging engine only knows about a subset of the messages on the destination.&lt;br /&gt;&lt;br /&gt;The upshot of all this is that the work load is shared by multiple servers.&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;And finally&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So there we have it. The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;infocenter&lt;/span&gt; does cover a lot of this in more detail. I have linked the titles to the appropriate part of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;infocenter&lt;/span&gt; for learning about the topics.&lt;br /&gt;&lt;br /&gt;If you have any questions feel free to ask in the comments.&lt;br /&gt;Alasdair&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4025242342944729846-6653302545422467880?l=webspheremessaging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4025242342944729846/posts/default/6653302545422467880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4025242342944729846/posts/default/6653302545422467880'/><link rel='alternate' type='text/html' href='http://webspheremessaging.blogspot.com/2008/11/brief-introduction-to-service.html' title='A brief introduction to the service integration bus'/><author><name>Alasdair Nottingham</name><uri>http://www.blogger.com/profile/02129366130780396011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://photos1.blogger.com/blogger2/1010/983974143584832/320/alasdair.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-4025242342944729846.post-7891394550165759902</id><published>2008-10-17T13:12:00.000-07:00</published><updated>2008-10-17T13:49:32.555-07:00</updated><title type='text'>Setting provider endpoints</title><content type='html'>When a client running in an application server wishes to connect to the bus to do some messaging work it looks up a connection factory in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;JNDI&lt;/span&gt; and uses it to create a connection. In order to create a connection the connection factory queries the Work Load Manager (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;WLM&lt;/span&gt;) service to find out where a messaging engine is running and connects to it. Configuring the connection factory simply requires the bus name to be specified.&lt;br /&gt;&lt;br /&gt;When a client running remotely from the cell, for instance in the client container, or a thin client, connects it does something similar. It obtains a connection factory (usually via a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;JNDI&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;lookup&lt;/span&gt; to an application server) and creates a connection. In this situation though the connection factory has no &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;WLM&lt;/span&gt; service to use to locate a suitable messaging engine. In this situation the connection factory connects to an application server and that application server performs the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;WLM&lt;/span&gt; query. This application server is termed a bootstrap server.&lt;br /&gt;&lt;br /&gt;In v6.x a bootstrap server is designated simply by configuring the SIB service to be on, so all servers that are members of any bus are automatically bootstrap servers. Additionally in v7 you can also choose to designate servers as bootstrap member.&lt;br /&gt;&lt;br /&gt;The servers to connect to to run the query are configured in the connection factory using a property called the provider endpoints. Working out which servers and ports can be used to bootstrap can be a bit of a chore in v6.x. Several panels need to be navigated around to work out the host and ports that are available. In v7 we have introduced a new feature to make this much simpler. This is the bootstrap members collection.&lt;br /&gt;&lt;br /&gt;This collection can be found on the main bus panel and is titled "Bootstrap Members" (below the Bus Members link). Clicking on it shows the following collection:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_duA1bKb0lVw/SPj5_IqheQI/AAAAAAAAAAk/6jpNJ6YdOeA/s1600-h/Picture+3.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_duA1bKb0lVw/SPj5_IqheQI/AAAAAAAAAAk/6jpNJ6YdOeA/s400/Picture+3.png" alt="" id="BLOGGER_PHOTO_ID_5258227428007966978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This lists each server that can be used as a provider endpoint, including the ports that are available on that panel. There is one proviso though. It lists all the ports associated with messaging includes ones that may not be enabled. In the example shown above the ports 7278, 7279 and 7276 are shown, but the bus has been configured to allow only &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;SSL&lt;/span&gt; protected transports, so the unsecured ports will not be open.&lt;br /&gt;&lt;br /&gt;Alasdair&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4025242342944729846-7891394550165759902?l=webspheremessaging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4025242342944729846/posts/default/7891394550165759902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4025242342944729846/posts/default/7891394550165759902'/><link rel='alternate' type='text/html' href='http://webspheremessaging.blogspot.com/2008/10/setting-provider-endpoints.html' title='Setting provider endpoints'/><author><name>Alasdair Nottingham</name><uri>http://www.blogger.com/profile/02129366130780396011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://photos1.blogger.com/blogger2/1010/983974143584832/320/alasdair.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_duA1bKb0lVw/SPj5_IqheQI/AAAAAAAAAAk/6jpNJ6YdOeA/s72-c/Picture+3.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-4025242342944729846.post-1548956004637572404</id><published>2008-10-03T08:20:00.000-07:00</published><updated>2008-10-03T08:32:58.091-07:00</updated><title type='text'>Connecting Buses</title><content type='html'>Suppose you wanted to send a greetings card to someone living in a foreign country. You could address the envelope to "King Alfred, The Broadway, Winchester, England" and post it anywhere in the world. Suppose you did this in the US. The local postman only needs to see the country part of the address to get the envelope heading in the right direction. It'll be conveyed to an airport from where an aircraft conveys it across the Atlantic. On landing in England, it'd reach a sorting office and be routed within the English postal system. The English postie will know where Winchester is. Well, you'd hope so anyway. Each of the US and UK postal systems is its own domain, with knowledge of how to deliver mail to addresses in that domain, and how to route mail addressed to another domain.&lt;br /&gt;&lt;br /&gt;This is pretty much how WAS messaging works too. You can link SIBuses together so that messages can be routed from one bus to the other. Why would you want to do this? Why not just create one great big bus? Well, to a limited extent you could try and do this - but eventually you'd run up against one of a number of limits. An SIBus is defined within a cell and can't extend beyond the edge of the cell. There's a limit to how large you want to make your cell - in terms of numbers of nodes and servers and in terms of geographical span or organisational spread. So your bus will only reach as far as the cell that contains it and if you have an application in that cell that needs to send a message to a remote application - one that is in a different cell - then you're going to need to be able to reach outside of the local cell. &lt;br /&gt;&lt;br /&gt;You could use a client connection but you'd need to know how to route the client connection to an apropriate endpoint, or liaise with the other cell administrator to bridge the coregroups between the cells. But you'd need to do this for all applications that need to send such messages and it would be a lot of work, and fragile. It's much more natural to connect your application to the local bus and let the SIBus do the leg-work. Hence it's better to link the buses. &lt;br /&gt;&lt;br /&gt;You may have created multiple buses within the same cell, e.g. for traffic separation and then decide you need to link them together. That's done just the same way as for a pair of buses in different cells.&lt;br /&gt;&lt;br /&gt;So how do you do it? You define a foreign bus and you designate a pair of messaging engines, one in each bus, that will link to one another. The foreign bus is a lot like the US Postal System knowing that there is a country called England and knowing which airservice to route it to. The link is like the air service, and the messaging engines are like the airports used by the air service. When the link and the foreign bus are defined, an application can send a message addressed to a destination hosted in the foreign bus, and the messaging engines in each bus will take care of routing the message, via the link, to the other bus and ultimately to the destination within that bus.&lt;br /&gt;&lt;br /&gt;Since WAS v6.0 it's been possible to do this. You'd create a definition of a "foreign bus" and a "link" to the other bus. You could create a direct route to a neighbouring bus or an indirect route - meaning that you can reach another bus by routing through an intermediate bus. So you could construct a spanning tree of interconnected buses. The foreign bus support in WAS v6.0 allowed for the fact that the foreign bus could be either another SIBus or it could be a WMQ queue manager. In the latter case protocol conversion is needed at runtime, so you have to create an appropriate type of link - either a SIB-SIB link or a SIB-WMQ link. You could then create the foreign bus definition, including the name of the link. &lt;br /&gt;&lt;br /&gt;There were a few difficulties with the support in WAS v6. One difficulty was knowing what objects you needed to create; another was that the creation of these objects required separate wizards or console panels;  yet another was that you had to cretae the link before the foreign bus or there'd be strange fizzing noises and something in the distance would go bang. The separation of the objects was bad for usability. There was also a certain amount of finesse required to know that certain parameters should ideally match the values for certain other parameters. &lt;br /&gt;&lt;br /&gt;All in all it was a bit hard, which made it a great opportunity to impress your friends and the bad news is that WAS v7.0 has a simple wizard that makes the task a whole lot easier...even your manager might stand a chance of getting it right. The wizard provides a single start point in the console for creation of a foreign bus connection between SIB-SIB or SIB-WMQ. The wizard guides you through the process prompting for the minimum amount of information and creation all the necessary ojbects in a consistent manner.&lt;br /&gt;&lt;br /&gt;It's not a panacea - some of our more experienced users who got to grips with the early drivers found the wizard rather limiting, because it does hide a lot of the complexity. For them it hid too much; they're used to bashing all the configuration properties into one huge panel. Instead they now have to step through the wizard to create what is effectively a simple object and then go into the detail view of that object to set up some of the more advanced properties, such as SSL. I guess it shows that the mantra of "making simple things easy..." can backfire occasionally, or maybe that you "can't please all the people all the time"! &lt;br /&gt;&lt;br /&gt;There are of course wsadmin commands that'll let you do everything in a single action. But we're aware that the wizard is not to everyone's liking and will try and improve upon it next time around.&lt;br /&gt;&lt;br /&gt;Graham&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4025242342944729846-1548956004637572404?l=webspheremessaging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4025242342944729846/posts/default/1548956004637572404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4025242342944729846/posts/default/1548956004637572404'/><link rel='alternate' type='text/html' href='http://webspheremessaging.blogspot.com/2008/10/connecting-buses-suppose-you-wanted-to.html' title='Connecting Buses'/><author><name>Graham Wallis</name><uri>http://www.blogger.com/profile/03303725054553963437</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_kEsAteDlCCU/SNjClm4vv4I/AAAAAAAAAAU/ezjWXBoBNIQ/S220/gdw_for_web.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-4025242342944729846.post-344166968155698375</id><published>2008-09-26T07:32:00.000-07:00</published><updated>2008-09-29T10:04:19.428-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='recovery'/><category scheme='http://www.blogger.com/atom/ns#' term='jca'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Ensuring XA Recovery works with a secure bus</title><content type='html'>I have been responsible for security for the service integration bus for a number of years now and most of the problems I have dealt with over that time have come down to configuration problems. While helping the tenth person to hit a particular problem can be a little frustrating, at least I am not having to explain security flaws. Their are a number of very common problems, such as typing in the wrong &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;userid&lt;/span&gt; and password, to not understanding how foreign bus security works. One of the more worrying problems that occurs relates to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;XA&lt;/span&gt; Recovery.&lt;br /&gt;&lt;br /&gt;The problem here will be that during normal operation of the environment connections will be made, to a secure bus, authentication will occur and messages sent and received; all is good in the world. Then disaster strikes and for some reason the application server goes down leaving uncommitted work in the bus. The node agent restarts the application server which then connects to the bus and performs recovery. At least that is what should happen. In this case the connection fails with a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;JMS&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;SecurityException&lt;/span&gt;. The original connection was established, but recovery does not work.&lt;br /&gt;&lt;br /&gt;So what went wrong here? During normal operation when a connection is made to a transactional resource and a transaction is in effect the connection factory is written into something called the partner log. This contains details of how to connect to all the transactional partners that may be needed during recovery. In this case the connection factory does not contain any information on what security credentials should be used, so no credentials are used, causing this problem.&lt;br /&gt;&lt;br /&gt;So if you see this how do we get the transactions resolved? Their are two of options and the first one would be preferable:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Grant the special Everyone group access to the bus. Assuming dynamic configuration is enabled this will allow recovery to work quickly.&lt;/li&gt;  &lt;li&gt;Turn security off for the bus until recovery is complete. We generally advice restarting the whole bus, but a single application server may work on a temporary basis.&lt;/li&gt;&lt;/ol&gt;So now you have solved the temporary problem and your business is up and running with no &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;in-doubt&lt;/span&gt; work, how do you solve it more generally? Every &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;JMS&lt;/span&gt; connection factory can have an &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;XA&lt;/span&gt; Recovery Alias specified. This should be configured with a user that has bus connector authority (only bus connector authority is required). Once this has been configured save, &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;sync&lt;/span&gt; and restart and any new &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;JMS&lt;/span&gt; work with the bus will recover with no security problem. At least until the password expires.&lt;br /&gt;&lt;br /&gt;In fact the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;XA&lt;/span&gt; Recovery Alias is not &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;JMS&lt;/span&gt; specific it exists for all &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;JCA&lt;/span&gt; resources, so it can help when using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;WebSphere&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;MQ&lt;/span&gt; and DB2 too.&lt;br /&gt;&lt;br /&gt;Did I hear someone say "yuck"? You do not like this? Well to be honest neither did we. One of the themes of the WAS v7 release was to make it more usable (we use the term "consumable", but who'd want to eat WAS?) so we have tried to simplify here. In WAS v7 the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;XA&lt;/span&gt; recovery alias is no longer required; during recovery the application server will use the WAS server identity to perform recovery. Their are a few limitations. The first is that the special Server group needs to have bus connector authority, and the second is that the recovery server must be in the same cell as the bus. Other than that you are good to go. Oh and do not worry, if you already have an &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;XA&lt;/span&gt; recovery alias we will continue to use this unless a problem occurs.&lt;br /&gt;&lt;br /&gt;Alasdair&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4025242342944729846-344166968155698375?l=webspheremessaging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4025242342944729846/posts/default/344166968155698375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4025242342944729846/posts/default/344166968155698375'/><link rel='alternate' type='text/html' href='http://webspheremessaging.blogspot.com/2008/09/ensuring-xa-recovery-works-with-secure.html' title='Ensuring XA Recovery works with a secure bus'/><author><name>Alasdair Nottingham</name><uri>http://www.blogger.com/profile/02129366130780396011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://photos1.blogger.com/blogger2/1010/983974143584832/320/alasdair.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-4025242342944729846.post-2978154706587045142</id><published>2008-09-23T07:45:00.000-07:00</published><updated>2008-09-24T07:19:55.649-07:00</updated><title type='text'>WAS V7.0 Cluster Bus Member Wizard</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kEsAteDlCCU/SNpMgdcMyQI/AAAAAAAAABI/vsWWV5lQ8Ag/s1600-h/clusterwizard.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_kEsAteDlCCU/SNpMgdcMyQI/AAAAAAAAABI/vsWWV5lQ8Ag/s400/clusterwizard.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5249592436196165890" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;There's a really neat consumability improvement in WAS V7.0 in the shape of the new console wizard that guides you through configuration of a cluster bus member. The new wizard is invoked when you click "Add" to create the bus member for a cluster.&lt;br /&gt;&lt;br /&gt;If you've ever added an appserver cluster to a bus, then you'll probably agree that anything other than a simple "HA" setup was pretty hard to configure - if you wanted to create multiple messaging engines to operate in parallel within the cluster then it's likely that you needed to create your own core group policies, and configure their match criteria and properties. If you made a mistake along the way you  probably only found out later because the engine wasn't running on the server you expected, or wasn't failing back to a preferred server after recovery. The reason was often that the match criteria contained a typo and the engine was not bound to the policy you intended.&lt;br /&gt;&lt;br /&gt;The new cluster bus member wizard in V7.0 spares you from having to worry about any of that, by providing a pattern-based approach to creation of the cluster bus member. On launching the wizard, you can select one of a small number of patterns and the wizard then sets up the messaging engines and core group policies with settings that corresponding to the pattern. The patterns cover the popular uses; you can select "high availability" if you want a single engine that can failover, or you can select "scalability" if you want multiple engines. There's also a pattern that provides both of the above.&lt;br /&gt;&lt;br /&gt;The new console wizard makes life really easy by saving you from having to enter the core group policies by hand. It also provides feedback on your curent configuration and provides hints about how to improve it. For example it'll spot that you might have asked for a highly available bus member, but your whole cluster is running on one node. You can do that if you want, but the node is a single-point-of-failure and the wizard will detect it and politely suggest that might want to remove the SPOF.&lt;br /&gt;&lt;br /&gt;If your browser supports SVG you even get a visual representation of the cluster showing the nodes and servers and the messaging engines.&lt;br /&gt;&lt;br /&gt;The visual aspects  of the wizard and the amount of work it saves you make it a pretty useful addition to the console.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4025242342944729846-2978154706587045142?l=webspheremessaging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4025242342944729846/posts/default/2978154706587045142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4025242342944729846/posts/default/2978154706587045142'/><link rel='alternate' type='text/html' href='http://webspheremessaging.blogspot.com/2008/09/was-v70-cluster-bus-member-wizard.html' title='WAS V7.0 Cluster Bus Member Wizard'/><author><name>Graham Wallis</name><uri>http://www.blogger.com/profile/03303725054553963437</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_kEsAteDlCCU/SNjClm4vv4I/AAAAAAAAAAU/ezjWXBoBNIQ/S220/gdw_for_web.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kEsAteDlCCU/SNpMgdcMyQI/AAAAAAAAABI/vsWWV5lQ8Ag/s72-c/clusterwizard.bmp' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-4025242342944729846.post-4378184169881254329</id><published>2008-09-23T06:54:00.000-07:00</published><updated>2008-09-23T07:03:52.643-07:00</updated><title type='text'>Welcome!</title><content type='html'>This blog is for discussion WebSphere Application Server (WAS) and Messaging.&lt;br /&gt;&lt;br /&gt;In particular it will cover the service integration technology included in WAS, which is known as the "SIBus" or just "SIB". SIBus provides the default messaging provider for JMS applications in WAS. It also provides an asynchronous transport used by SCA and the WPS/WESB stack products.&lt;br /&gt;&lt;br /&gt;Instead of using the default messaging provider, you can configure JMS Resource for an alternative JMS provider, such as WebSphere MQ (WMQ). WAS V7.0 includes a JCA 1.5 Resource Adapter for WMQ and new panels for configuration of JMS resources.&lt;br /&gt;&lt;br /&gt;We hope you find this blog useful - the authors are all folks who work on or with WAS Messaging and have direct practical experience.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4025242342944729846-4378184169881254329?l=webspheremessaging.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4025242342944729846/posts/default/4378184169881254329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4025242342944729846/posts/default/4378184169881254329'/><link rel='alternate' type='text/html' href='http://webspheremessaging.blogspot.com/2008/09/welcome.html' title='Welcome!'/><author><name>Graham Wallis</name><uri>http://www.blogger.com/profile/03303725054553963437</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_kEsAteDlCCU/SNjClm4vv4I/AAAAAAAAAAU/ezjWXBoBNIQ/S220/gdw_for_web.jpg'/></author></entry></feed>
