Saturday, May 9, 2009

Tools for connecting to IBM WAS Service Integration Bus

For the past year me and my colleagues at CROZ were doing a lot of work that included using service integration bus (SIB) and WAS 6.1 as JMS provider. Very often we needed to look are there any messages in queue or send test message. Two basic tools that does the job comes with WAS distribution:
  • WAS admin console

  • Universal test client (UTC)
Admin console can be used for looking queue (and topic) status at runtime. You can use UTC for sending and posting message using JMS API. However admin console is very cumbersome to use because you need to make 10 clicks to see message content and UTC is okay only for basic scenario.

So what other tools you can use to connect to SIB? Preferably stand alone one.

There are actually 3 nice tools from IBM and few from open source community that are very handy. From IBM you have:
  1. Service Integration Bus Explorer
  2. Service Integration Bus Performance
  3. IBM Client Application Tool for JMS


There are also very nice open source tools that can be connected to WAS SIB. I will mention :
  1. Hermes JMS
  2. Apache JMeter

Service Integration Bus Explorer

SIB explorer Tool that we used the most was SIB Explorer. It is stand alone tool from IBM alphaWorks. Installation is simple and described here. Trickier part is downloading SWT libraries. I have in my swt dir (version number may vary)
  • org.eclipse.swt.win32.win32.x86_3.3.2.v3347a.jar
  • org.eclipse.swt_3.3.2.v3347.jar
  • swt-gdip-win32-3347.dll
  • swt-win32-3347.dll
The reason this tool is very handy is that everything is there and you don't need to click too much. If you like to see what messages are in what queue you just open queue points and there you have all queues with their current depth. However for putting new messages in queue it is not so great because you can't add any message property (for instance targetService for SOAP/JMS).

Service Integration Bus Performance

If you need to get some SIB performance related data this tool can be very useful. You can use it to monitor thread pools, queues, topic spaces, communication and data store in near real time (with refresh every 2s). We didn't use it much as we have ITCAM but data it provides can be used for performance tuning. Also you can detect some anomalies like messages with inadequate reliability level.

IBM Client Application Tool for JMS

If you need to experiment a lot with putting messages in queue than you should probably use this tool. It also come from IBM alphaWorks but it doesn't require SWT libraries. However this tool connects to WAS JNDI so you need to have JMS JNDI resources defined. Dan Zrobok has wrote how to connect to the WAS from this tool. Once you connect you can send and receive message (tabs Message Producer and PtoP Message Consumer). Very nice feature is registering new Message Listener. Window pops up for every new message that is deliverd to destination that listener listens to.

Hermes JMS

One more tool you can use for exploring SIB destinations and posting is Hermes JMS. It can be quite handy if you have (or wanna have) messages stored in files and use them for testing. Also you can save messages to file from destinations for later use. Unfortunately Hermes JMS doesn't come with SIB adapter (only with WebSphere MQ one) so you must set it up on your own. It isn't trivial but you can start with downloading "IBM Client for JMS on J2SE with IBM WebSphere Application Server" and installing it. There are also some resources on the web available describing the whole procedure.

Apache JMeter

Another tool that can be very useful is Apache JMeter. With JMeter you can send and receive P2P messages using JMS Point-to-Point sampler. Publish-Subscribe functionality is also available. I was using JMeter for performance testing and also for functional testing. It is really great because you can set up JMS test case and test your messaging infrastructure with it. To set it up connect to the WAS SIB, you will also need IBM Client for JMS on J2SE with IBM WebSphere Application Server. If you need instructions on any of these tools please reply and maybe I'll blog about it.

15 comments:

  1. Good Information. We just acquired WESB and I was wondering if Hermes JMS can connect on the SIBUS.

    Thanks.

    ReplyDelete
  2. Thanks for great writeup. We are trying to use the JMeter to drop a message on a JMS Queue hosted by SIBUS on WebSphere Application Server 6.1. Please can you give us some steps about what jars to copy and what steps to follow in JMeter. We really appreciate if you can give us some steps to follow.
    We are getting all kinds fo ClassNotFound and IllegalStateExceptions every step of the way.
    If you can send them to skmami@yahoo.com I really appreciate it as well.

    ReplyDelete
  3. Hi skmami! Thanks for interest. I will post an update with description how to connect JMeter to WAS in day or two. Basically you need libs from Sib client. You would also need night build of JMeter (last time I have looked). Then you just set up Point-2-Point connection with inital context factory:
    com.ibm.websphere.naming.WsnInitialContextFactory.
    In JNDI properties add: java.naming.provider.url=iiop://localhost:2812
    and
    com.ibm.CORBA.ORBInit=com.ibm.ws.sib.client.ORB.
    The last property is probably the trick that should make your connection to work. As I said I will blog about it and there should be some screenshots of the steps. Good luck!

    ReplyDelete
  4. Hi mrsetar, I would really interested in a detailed description of how to use JMeter for WAS SIB. If you can send it to maffy.quino@gmail.com I really appreciate it.
    Thank you very much, also for the writeup.

    ReplyDelete
  5. Hi,
    really interesting. my objective is to use JMeter to send JMS message to connect to my SCA module and test the monitoring of my application with a big amount of data.

    this article is interesting, but if we can have a bit more information

    thanks by advance

    ReplyDelete
  6. Really helpful.
    We have almost 75 queues in our system and to clean them up is such a headache. SIB-Explorer tip is really good, its simple to configure and use

    Thanks,
    Bhupendra

    ReplyDelete
  7. Very clear presentation about SIB tools ! Thanks. It appears IBM has withdrawn the tools "SIB Explorer" and "IBM Client Application Tool for JMS"......We dont find the executables / documentation at the IBM developerworks site. Any suggestions about a robust tool for moving messages between JMS destinations ? Please advise

    ReplyDelete
  8. Thanks for your comment. Yes it appears so. I can't find SIB Explorer also. But it must be there somewhere. Maybe they are moved and Google didn't pick'em up till now :) Regarding JMS Client. It should be available at http://goo.gl/VCzBI. If you are on WAS 8 look at WAS infocenter: http://goo.gl/yrNSG. I don't know about robust tooling. Maybe you would be best with some custom app. Try Hermes, maybe it would work for you. Cheers!

    ReplyDelete
  9. http://www-01.ibm.com/support/docview.wss?uid=swg24021439

    ReplyDelete
  10. Can you post how to enable tracing in jmeter for the IBM J2SE client? I know the strings to use and added them in the system.properties but not trace files generated. Trying to sort out a connection problem to WAS 7 SIBus.
    Many thanks.

    ReplyDelete
  11. Try to add them to jmeter.properties in jmeter's bin directory. More info here: http://jmeter.apache.org/usermanual/get-started.html#logging

    ReplyDelete
  12. Gsus it was hard to find SIBExplorer but I finally found it. It seems that they moved it from Alphaworks to Developerworks: https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=fe21f954-66dd-40c2-bfc4-45eb0b7d51eb

    There's yet another IBM tool for handling SIB queues called Destination Handler. It's available in WAS downloads http://www-01.ibm.com/support/docview.wss?uid=swg24021439 It has pretty awkward GUI but it's i.a. capable of moving messages from queue to another something what you can't do with SIBExplorer.

    Cheers,

    Pekka

    ReplyDelete
  13. Thank You Pekka for your response! In WAS 8 there is also SIB explorer tool inside WAS admin console.

    ReplyDelete
  14. Hello
    What in case I am getting following error
    Response message: java.lang.IllegalStateException: QueueConnectionFactory expected, but got com.ibm.ws.sib.api.jms.impl.JmsConnectionFactoryImpl

    ReplyDelete
  15. Hi
    Can someone help me with configuring Heremes JMS with WAS SIB. Please provide me some links where I can find this procedure

    ReplyDelete