com.ibm.workflow.upes
Class MQHandler

java.lang.Object
  |
  +--com.ibm.workflow.upes.MQHandler

public class MQHandler
extends java.lang.Object

The MQHandler encapsulates the MQSeries API to what is needed by the WFMessageAdapter. For performance reasons it keeps the handle of opened queues and queue managers.


Field Summary
private  com.ibm.mq.MQQueueManager _localQueueManager
          The handle of the local queue manager
private  java.util.Hashtable _queues4Get
          List of queue handles the WFMessageAdapter get messages from
private  java.util.Hashtable _queues4Put
          List of queue handles the WFMessageAdapter put messages to
 
Constructor Summary
MQHandler(java.lang.String queueManagerName)
          Opens a new queue manager object and keeps its handle.
 
Method Summary
 boolean commit()
          Commit the transaction
 com.ibm.mq.MQMessage getMessage(java.lang.String queueManagerName, java.lang.String queueName)
          Get a message from an input queue.
 com.ibm.mq.MQMessage getMessageNoWait(java.lang.String queueManagerName, java.lang.String queueName)
          Get a message from an input queue.
 com.ibm.mq.MQQueue getQueue4Get(java.lang.String queueManagerName, java.lang.String queueName)
          Get a queue handle for a MQSeries GET operation
 com.ibm.mq.MQQueue getQueue4Put(java.lang.String queueManagerName, java.lang.String queueName)
          Get a queue handle for a MQSeries PUT operation
 boolean putMessage(com.ibm.mq.MQMessage message2Put, java.lang.String queueManagerName, java.lang.String queueName)
          Put a message into an output queue.
 boolean rollback()
          Rollback the transaction
 java.lang.String transformMessage(com.ibm.mq.MQMessage mq)
          Transforms the payload of a MQSeries message into a JAVA string.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

_localQueueManager

private com.ibm.mq.MQQueueManager _localQueueManager
The handle of the local queue manager

_queues4Put

private java.util.Hashtable _queues4Put
List of queue handles the WFMessageAdapter put messages to

_queues4Get

private java.util.Hashtable _queues4Get
List of queue handles the WFMessageAdapter get messages from
Constructor Detail

MQHandler

public MQHandler(java.lang.String queueManagerName)
          throws com.ibm.mq.MQException
Opens a new queue manager object and keeps its handle. Note: The handle is kept for performance reasons
Parameters:
queueManagerName - The name of the local queue manager
Throws:
com.ibm.mq.MQException -  
Method Detail

transformMessage

public java.lang.String transformMessage(com.ibm.mq.MQMessage mq)
                                  throws java.io.IOException
Transforms the payload of a MQSeries message into a JAVA string. Note that MQSeries Workflow messages are encoded in UTF-8 while a JAVA string is encoded in UNICODE
Parameters:
mq - The MQSeries message
Returns:
The transformed payload of the message.
Throws:
java.io.IOException -  

getMessage

public com.ibm.mq.MQMessage getMessage(java.lang.String queueManagerName,
                                       java.lang.String queueName)
                                throws com.ibm.mq.MQException
Get a message from an input queue. Wait unlimited until a message arrives. Input queue and queue manager handles are cached
Parameters:
queueManagerName - The input queue manager name
queueName - The input queue name
Returns:
MQMessage
Throws:
com.ibm.mq.MQException -  

getMessageNoWait

public com.ibm.mq.MQMessage getMessageNoWait(java.lang.String queueManagerName,
                                             java.lang.String queueName)
                                      throws com.ibm.mq.MQException
Get a message from an input queue. Don't wait if there is no message. Input queue and queue manager handles are cached
Parameters:
queueManagerName - The input queue manager name
queueName - The input queue name
Returns:
MQMessage
Throws:
com.ibm.mq.MQException -  

putMessage

public boolean putMessage(com.ibm.mq.MQMessage message2Put,
                          java.lang.String queueManagerName,
                          java.lang.String queueName)
                   throws com.ibm.mq.MQException
Put a message into an output queue. Output queue and queue manager handles are cached
Parameters:
message2Put - The MQSeries message to put
queueManagerName - The output/target queue manager name
queueName - The output/target queue name
Returns:
true
Throws:
com.ibm.mq.MQException -  

getQueue4Get

public com.ibm.mq.MQQueue getQueue4Get(java.lang.String queueManagerName,
                                       java.lang.String queueName)
                                throws com.ibm.mq.MQException
Get a queue handle for a MQSeries GET operation
Parameters:
queueManagerName -  
queueName -  
Returns:
A MQ queue handle
Throws:
com.ibm.mq.MQException -  

getQueue4Put

public com.ibm.mq.MQQueue getQueue4Put(java.lang.String queueManagerName,
                                       java.lang.String queueName)
                                throws com.ibm.mq.MQException
Get a queue handle for a MQSeries PUT operation
Parameters:
queueManagerName -  
queueName -  
Returns:
A MQ queue handle
Throws:
com.ibm.mq.MQException -  

commit

public boolean commit()
               throws com.ibm.mq.MQException
Commit the transaction
Returns:
true if operation was successful
Throws:
com.ibm.mq.MQException -  

rollback

public boolean rollback()
                 throws com.ibm.mq.MQException
Rollback the transaction
Returns:
true if operation was successful
Throws:
com.ibm.mq.MQException -