20080426 Saturday April 26, 2008

TechTalk Series

Ladies and Gentlemen,

Moving forward you would get to imbibe much with products, WMQ & WMB. A series of TechTalks are being regularly organized in respective areas; Wherein experts in areas would enlighten us with sweeping knowledge - a resultant of their unfathomable learning and extensive experience in areas.

We plan to publish the same material in this Blog. We are sure this series of posts would be of much use to our esteemed audience.

Keeping watching,
IBM-Messaging-Evangelists

( Apr 26 2008, 05:33:24 AM EDT ) Permalink Comments [0]

20080404 Friday April 04, 2008

WebSphere MQ v7.0 Open Beta announced.

If you are interested in a sneak preview of WebSphere MQ v7.0, here is your chance to get it. The WebSphere MQ v7.0 Open Beta program has been announced. To read more about WebSphere MQ v7.0 and participate in the Open Beta program, please visit this link

You can also download presentations, lab exercises and a draft RedBook at the above link.

There is also a WebSphere MQ V7.0 Open Beta Forum to ask questions, report bugs and just keep track on whats going on. Go ahead and enrol yourself - both to the Open Beta and Open Beta forum

( Apr 04 2008, 12:37:38 AM EDT ) Permalink Comments [1]

20080402 Wednesday April 02, 2008

IBM WebSphere MQ v7.0 announced

A new version of IBM WebSphere MQ has been announced. The obvious questions - what is new ? When will it be available ? Other questions that might need answering - what are my hardware and software requirements ?

Find answers to these and other questions here

Meanwhile, keep watching this space for more on WebSphere MQ v7.0

( Apr 02 2008, 10:10:24 PM EDT ) Permalink Comments [0]

20080324 Monday March 24, 2008

Micro broker bundles in Lotus Expeditor 6.1.2

In the Lotus Expeditor 6.1.2 release the micro broker bundles have been simplified. Now admin bundles are clearly separated out and the micro broker core bundle (com.ibm.micro) is not needed at all if you are doing remote administration.

Another significant change is the removal of the bridge specific bundles. The bundles com.ibm.micro.bridge.mq.jms and com.ibm.micro.bridge.jndi.jms are merged into the core bundle (com.ibm.micro)

Also getting started bundle which can bring up a broker is now available as an optional bundle. If you are installing a expeditor client you can find in the directory "desktop\updates\platform\"

Now the bundle com.ibm.micro will be lazy started. This webpage on life cycle explains more in these lines. If you are using the Lotus Expeditor client for desktop on windows you'll find config.ini file present in "C:\Documents and Settings\Administrator\Application Data\Lotus\XPD\.config". Just add this entry to "osgi.bundles" property:
../../rcp/eclipse/plugins/com.ibm.micro@start-level:start,
where start-level specifies the level at which the bundle will be started. All the bundles at the same start-level, will be installed and started if specified (:start at the end) simultaneously. If the start-level is not specified then it defaults to the value of osgi.bundles.defaultStartLevel.
The next time you start the expeditor client use -clean argument. For example: "C:\Program Files\IBM\Lotus\Expeditor rcp\rcplauncher.exe" -console -clean. You'll see the com.ibm.micro bundle in ACTIVE state.

From,
Neeraj Krishna, Vedika Joshi and Vijay ( Mar 24 2008, 11:46:46 PM EDT ) Permalink Comments [0]


20080314 Friday March 14, 2008

Lotus expeditor 6.1.2 introduces enhancements to micro broker

Lotus expeditor 6.1.2 is just released. A trial version of the toolkit can be downloaded from the developer works, click here

For features and benefits refer to the product website

It can be downloaded from the Lotus expeditor support site

The micro broker component has some significant enhancements:

  1. Buffered JMS clients - This allows micro broker JMS client applications to operate regardless of whether or not they are currently connected to a micro broker.
  2. Simplified bundle structure

Regards,
Neeraj Krishna and Vijay ( Mar 14 2008, 12:06:30 AM EDT ) Permalink Comments [0]


20080312 Wednesday March 12, 2008

WMQ v6.0.2.3 for iSeries is now available

Hi All,

WMQ v6.0.2.3 for iSeries is now available.

The Group PTFs have been updated and the download is available through Fix Central.

Please see the "Recommended Fixes for WebSphere MQ website -> http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006037#1 for more information.

( Mar 12 2008, 12:53:53 AM EDT ) Permalink Comments [0]

20080228 Thursday February 28, 2008

WMQ v5.3 FP14 is now available for iSeries

Hi All,

WMQ v5.3 FP14 is now available for iSeries.

The Group PTFs have been updated and all relevant webpages have been published. The download is available through Fix Central.

Please see the "Recommended Fixes for Websphere MQ website -> http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006037#2 for more information. This is the last planned Fix Pack for WMQ v5.3.

( Feb 28 2008, 11:23:48 PM EST ) Permalink Comments [0]

20080219 Tuesday February 19, 2008

MA0Y: IBM WebSphere MQ Bridge for HTTP - v1.1

HTTP interface for WebSphere MQ (WMQ) is a new feature that allows client applications to connect to a queue manager using the HTTP protocol. The first version of this support pac was released in June 2007.

We are now excited to announce the release of version 1.1 of WebSphere MQ Bridge for HTTP. Please visit http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg24016142&loc=en_US&cs=utf-8&lang=en for more information.

What is new in this release:

  • Support for setting/getting user properties on/from a WebSphere MQ message.
  • Support for POSTing/GETing/DELETEing messages of different types.
  • Support for additional HTTP 1.1 headers (Content-Location, Content-Range, Server)
  • Support for selecting messages based on Message ID
  • Mithun V Katti
    IBM India Software Labs

    ( Feb 19 2008, 03:32:12 AM EST ) Permalink Comments [0]

    20080129 Tuesday January 29, 2008

    Messaging Service Client for C/C++

    A new version of Message Service Client for C/C++ (XMS for C/C++) is released. Have a look at the announcement page here.

    I am always open to new technology and offerings. With windows 64 operating system making its presence in the desktop arena, there is scope for lot of opportunities. XMS being a worthy alternative to JMS in non-Java world, it is quite natural to expect XMS on windows 64. Yes, a new version of XMS for C/C++ (Message Service Client for C/C++) is now available.

    What's new in Version 1.2.7 ?

    # Support for windows 64 bit platform
    # Support for WebSphere Enterprise Service Bus v6.1 & WebSphere Process Server v6.1

    Keep pace with technology !!!
    Harsha
    Harsha[DOT]mp[AT]in[DOT]ibm[DOT]com

    ( Jan 29 2008, 10:30:00 AM EST ) Permalink Comments [0]

    20080128 Monday January 28, 2008

    Filtering out the messages in the micro broker bridge

    Message filtering is a pretty popular concept and when seen from a pervasive messaging perspective it can be to filter out all the unwanted messages entering the enterprise servers (like MQ). Message can is filtered based on lots of parameters. One may wish to filter the messages based on content or some property in the header, etc.

    Here's a small trick to achieve message filtering in micro broker bridge. Here we filter out messages based on the topic at which the message arrives. For example if there are messages arriving at the topic "in/unwantedtopic" let's filter that out and allow messages on other topics like "in/topic", etc to pass through.

    1. Create a micro broker and create a pipe to MQ
    Bridge bridge = broker.getBridge();
    MQJMSConnectionDefinition mqjmsconn = bridge.createMQJMSConnectionDefinition("MQConn");
    mqjmsconn.setPort(1414);
    mqjmsconn.setHost("MQHOSTNAME");

    2. Create a out bound flow with source in/#.
    FlowDefinition outFlow = bridge.createFlowDefinition("OutFlow");
    outFlow.setSources(new TopicDefinition[]{bridge.createTopicDefinition("in/#")});
    outFlow.setTarget(bridge.createTopicDefinition("out/topic"));

    3. Now let's filter out all the messages that are published under "in/unwantedTopic" and let others pass through. For this we need to create a transformation. Here's the example:
    public class MessageFilterFactory extends AbstractTransformationFactory{
    public Transformation getTransformation() {
    return new MessageFilter();
    }

    public String getName() {
    return MessageFilter.class.getName();
    }
    }

    class MessageFilter extends Transformation {
    public BridgeMessage doTransformation(BridgeMessage input) throws BridgeException {
    BridgeDestination sourceDest = input.getSource();
    String sourceTopicName = sourceDest.getName();
    if(sourceTopicName.equals("in/unwantedTopic")) {
    return null;
    }
    else {
    return input;
    }
    }

    public void initialise() throws BridgeException {
    //Do nothing
    }
    }

    4. Now set the transformation created above to the flow
    MessageFilterFactory mtf = new MessageFilterFactory();
    TransformationRegistry.INSTANCE.registerTransformationFactory(mtf);
    TransformationDefinition td = bridge.createTransformationDefinition("myTD");;
    td.setClassName("test.jndibridge.MessageFilter");
    TransformationDefinitionList tdl = bridge.createTransformationDefinitionList();
    tdl.addTransformation(td);
    outFlow.setTransformations(tdl);

    Connect the micro broker client and you'll see the messages getting filtered. Refer to the information center for a detailed description: http://publib.boulder.ibm.com/infocenter/ledoc/v6r11/topic/com.ibm.rcp.tools.doc.microbroker/ovr11660.html

    From: Neeraj Krishna & Vijay ( Jan 28 2008, 12:02:25 AM EST ) Permalink Comments [2]


    20080127 Sunday January 27, 2008

    Registering the transformations in micro broker bridge

    Transformations can be either be a part of the project that configures the bridge or in a different client services project. If written in a different project the transformation package has to be exported in the manifest file so that the micro broker bridge can access that. In any case transformation factory needs to be transformation registry. When the pipe starts and a transformation is set on any one of the flows or the pipe itself, it queries the transformation registry and checks if the transformation factory is registered. When the broker automatically starts often you will see the log message:
    2621=Pipe can not be started as it has not been initialized. Perhaps some required classes are not yet available.

    Here are small tricks to avoid it:
    When the broker factory service is registered, the transformation factory needs to be registered with the Transformation registry. This can't be done remotely using remote administration.

    Here is an example:
    HelloTransFact mtf = new HelloTransFact();
    TransformationRegistry.INSTANCE.registerTransformationFactory(mtf);

    Once this is the done the pipe will be able to connect to the remote end. Its works well when done soon after the broker factory service get registered.

    Here is pseudo code for broker start up: addingService(reference) {
    brokerFactoryService = (BrokerFactory)bundleContext.getService(reference);
    if (!brokerFactoryService.exists(brokerName)) {
    Create and start a new broker
    }
    else {
    Broker already exists
    HelloTransFact mtf = new HelloTransFact();
    TransformationRegistry.INSTANCE.registerTransformationFactory(mtf);
    }
    }

    In the above method you will observe that the broker will be waiting for the transformation to be available after printing 2621 log message. The pipe starts only when the transformation is registered. To avoid the log message, you can use setAutoStartEnabled(false) on the broker definition. This implies that only the broker factory service get registered and the broker will not start. Hence you can register the transformation and then manually start the broker.

    Here is the pseudo code for this:
    addingService(reference) {
    brokerFactoryService = (BrokerFactory)bundleContext.getService(reference);
    if (!brokerFactoryService.exists(brokerName)) {
    Create the broker definition
    brokerDef.setAutoStartEnabled(false);
    Register the transformation
    TransformationRegistry.INSTANCE.registerTransformationFactory(mtf);
    LocalBroker lb = brokerFactoryService.getByName(brokerName);
    Start the broker
    }
    else {
    Broker already exists
    HelloTransFact mtf = new HelloTransFact();
    TransformationRegistry.INSTANCE.registerTransformationFactory(mtf);
    LocalBroker lb = brokerFactoryService.getByName(brokerName);
    lb.start();
    }
    }

    More details on transformations is available in the updated information center page .

    From Neeraj Krishna and Vijay ( Jan 27 2008, 11:45:00 PM EST ) Permalink Comments [2]


    20080121 Monday January 21, 2008

    Micro broker Information center

    Here's the micro broker information center (documentation) . It has only micro broker information and excludes Lotus expeditor info. It gives you the javadoc for MQTT, micro broker administration and transformation. The complete Lotus Expeditor information center can be accessed over the web here.

    From: Neeraj Krishna & Vijay ( Jan 21 2008, 03:04:31 AM EST ) Permalink Comments [0]


    20080108 Tuesday January 08, 2008

    Links to developer works resources on IBM messaging products

    Here are the links for forums, community spaces and feature pages:

    For links to new releases, articles, and many interesting things in the IBM messaging space visit: Messaging community space

    WebSphere MQ

    WebSphere Message Broker

    Lotus Expeditor Micro broker

    WebSphere MQ everyplace

    ( Jan 08 2008, 12:26:05 AM EST ) Permalink Comments [0]

    Simplest micro broker JMS client

    If you want to quickly get started with writing a micro broker JMS client and connecting to a micro broker, here's how you do it.

    JmsFactoryFactory is your entry point into the JMS implementation classes. You need to add com.ibm.msg.client.jms and com.ibm.msg.client.mqtt as imports along with javax.jms in the manifest.

    Get started with creating a connection factory like this
    JmsFactoryFactory jmsFactory = JmsFactoryFactory .getInstance(MQTTConstants.PROVIDER_NAME);

    JMS 1.1 simplifies messaging with unified domains and hence you just need to create a connection factory and use it for both topics and queues

    ConnectionFactory connFactory = jmsFactory.createConnectionFactory();

    Now set the URI telling the factory how to connect to the server
    ((JmsConnectionFactory) connFactory).setStringProperty( MQTTConstants.MQTT_CONNECTION_URL, MQTTConstants.MQTT_TCP_SCHEMA + "127.0.0.1:1883");

    From here you can go ahead creating a connection (don't forget to set the clientID as this is unique for each client) and a session and the other JMS objects as required.... Full example is given in this article in listing 2.

    Regards,
    Neeraj Krishna & Vijay ( Jan 08 2008, 12:03:49 AM EST ) Permalink Comments [0]


    20080107 Monday January 07, 2008

    Micro broker logs

    If you are working on Lotus Expeditor, you would have probably figured out how to see INFO level logs for particular bundle. For micro broker also you can increase the logging levels the same way Here are 6 simple commands that can be used in the XPD console for you to see all the micro broker logs at INFO level.
    setlogrlev com.ibm.micro INFO
    setlogrlev com.ibm.micro.bridge.jndi.jms INFO
    setlogrlev com.ibm.micro.bridge.mq.jms INFO
    setlogrlev com.ibm.mqttclient INFO
    setlogrlev com.ibm.micro.utils INFO
    setlogrlev com.ibm.mqttclient.jms INFO
    There are other ways of setting the logging levels. Its documented here

    Regards,
    Neeraj Krishna and Vijay ( Jan 07 2008, 10:45:02 PM EST ) Permalink Comments [0]