Websphere MQ Everyplace

examples.mqbridge.rules
Class UndeliveredMQMessageToDLQRule

java.lang.Object
  |
  +--com.ibm.mqe.MQe
        |
        +--com.ibm.mqe.MQeRule
              |
              +--examples.mqbridge.rules.UndeliveredMQMessageToDLQRule
All Implemented Interfaces:
MQeExceptionCodes

public class UndeliveredMQMessageToDLQRule
extends MQeRule

This is an example rules class which dictates what action an MQ XmitQ Listener should take if a message is undelivered. In this situation, the permit() method will be loaded and queried dynamically. This example class either returns any undelivered message to the MQ series Dead Letter Queue or (if the message has MQRO_DISCARD set) discards it.


Field Summary
static short[] version
           
 
Fields inherited from class com.ibm.mqe.MQe
Admin_Queue_Name, Admin_Reply_Queue_Name, copyright, DeadLetter_Queue_Name, Event_Activate, Event_Attribute, Event_Authenticate, Event_Close, Event_Logoff, Event_Logon, Event_MiniCert_Validate, Event_Queue, Event_QueueManager, Event_UserBase, JMS_Version, MQ_Headers, MQe_Log_Audit_Failure, MQe_Log_Audit_Success, MQe_Log_Error, MQe_Log_Information, MQe_Log_Success, MQe_Log_Warning, Msg_BackoutCount, Msg_CorrelID, Msg_ExpireTime, Msg_LockID, Msg_MsgID, Msg_OriginQMgr, Msg_Priority, Msg_ReplyToQ, Msg_ReplyToQMgr, Msg_Resend, Msg_Style, Msg_Style_Datagram, Msg_Style_Reply, Msg_Style_Request, Msg_Time, Msg_WrapMsg, sccsid, System_Default_Queue_Name
 
Fields inherited from interface com.ibm.mqe.MQeExceptionCodes
Except_Active, Except_AdapterException, Except_AdapterMissingRemoteAddress, Except_Admin_ActionNotSupported, Except_Admin_InvalidField, Except_Admin_NotAdminMsg, Except_AdminAction, Except_Authenticate, Except_BadRequest, Except_BridgeListener, Except_Chnl_Attributes, Except_Chnl_ID, Except_Chnl_Limit, Except_Chnl_Overrun, Except_Closed, Except_Con_AdapterRequired, Except_Con_AliasAlreadyExists, Except_Con_AlreadyExists, Except_Con_InvalidName, Except_Connect_Failure, Except_ConnectonType, Except_Cryptor, Except_Data, Except_Duplicate, Except_JmxProperties, Except_Listener, Except_MessageStore, Except_MiniCertReg_ActivateFailed, Except_MiniCertReg_BadPIN, Except_MiniCertReg_NotOpen, Except_NotActive, Except_NotAllowed, Except_NotFound, Except_NotSupported, Except_PrivateReg_ActivateFailed, Except_PrivateReg_BadPIN, Except_PrivateReg_NotOpen, Except_PublicReg_ActivateFailed, Except_PublicReg_InvalidAddress, Except_PublicReg_InvalidRequest, Except_Q_Full, Except_Q_InvalidName, Except_Q_InvalidPriority, Except_Q_MsgTooLarge, Except_Q_NoMatchingMsg, Except_Q_TargetRegistryRequired, Except_QMgr_Activated, Except_QMgr_AlreadyExists, Except_QMgr_InvalidQMgrName, Except_QMgr_InvalidQName, Except_QMgr_NotActive, Except_QMgr_NotBridgeEnabled, Except_QMgr_NotConfigured, Except_QMgr_QDoesNotExist, Except_QMgr_QExists, Except_QMgr_QNotEmpty, Except_QMgr_RegistryDataVersion, Except_QMgr_UnknownQMgr, Except_QMgr_WrongQType, Except_Reg_AddFailed, Except_Reg_AlreadyExists, Except_Reg_AlreadyOpen, Except_Reg_CRTKeyDecFailed, Except_Reg_CRTKeySignFailed, Except_Reg_DeleteFailed, Except_Reg_DeleteRegistryFailed, Except_Reg_DoesNotExist, Except_Reg_InvalidSession, Except_Reg_ListFailed, Except_Reg_NotDefined, Except_Reg_NotSecure, Except_Reg_NullName, Except_Reg_OpenFailed, Except_Reg_ReadFailed, Except_Reg_RenameFailed, Except_Reg_ResetPINFailed, Except_Reg_SearchFailed, Except_Reg_UpdateFailed, Except_RemoteException, Except_Rule, Except_S_BadIntegrity, Except_S_BadSubject, Except_S_CertificateExpired, Except_S_Cipher, Except_S_InvalidAttribute, Except_S_InvalidSignature, Except_S_MiniCertNotAvailable, Except_S_MissingSection, Except_S_NoPresetKeyAvailable, Except_S_RegistryNotAvailable, Except_Stopped, Except_Syntax, Except_TimeOut, Except_Transporter, Except_TriggerTransmission, Except_Trnsport_QMgr, Except_Trnsport_Request, Except_Type, Except_UdpipAdapterStateException, Except_UdpipAdapterTimeOut, Except_UdpipAdapterUnableToConfirmSuccess, Except_UnCoded, Except_Uncontactable_DontTransmit
 
Constructor Summary
UndeliveredMQMessageToDLQRule()
           
 
Method Summary
 java.lang.Object permit(java.lang.Object failureCodesO, java.lang.Object targetNames, java.lang.Object failedMQeMessageO)
          To find out what behaviour should occur in the listener when a message cannot be delivered, but may benefit from a retry at a later date.
 
Methods inherited from class com.ibm.mqe.MQeRule
activate, close, newRule
 
Methods inherited from class com.ibm.mqe.MQe
abbreviate, alias, asciiToByte, byteToAscii, byteToHex, byteToHex, byteToInt, byteToLong, byteToShort, byteToUnicode, fileSeparator, getEventLogHandler, hexToAscii, hexToByte, intToByte, isCLDC, loadClass, loadObject, log, setEventLogHandler, setLoader, sliceByteArray, type, unicodeToByte, uniqueValue
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

version

public static short[] version
Constructor Detail

UndeliveredMQMessageToDLQRule

public UndeliveredMQMessageToDLQRule()
Method Detail

permit

public java.lang.Object permit(java.lang.Object failureCodesO,
                               java.lang.Object targetNames,
                               java.lang.Object failedMQeMessageO)
                        throws java.lang.Exception
To find out what behaviour should occur in the listener when a message cannot be delivered, but may benefit from a retry at a later date.

The listener has a number of conditions under which a message cannot be delivered to the MQe network.

Whenever an MQ Message cannot be put to MQe a rule class like this can decide on which course of action to take.

Parameters:
targetNames - String[] with the following two elements:
  • targetNames[0] = The name of the MQe QMgr that rejected the put.
  • targetNames[1] = The name of the MQe queue that rejected the put.
Returns:
The required behaviour. An Integer. The behaviour the listener should exibit following the undelivered message condition can be specified by returning a different value from this rule class as follows:
  • MQeUndeliveredMessageRule.STOP_LISTENER

    The listener should stop as a result of this message being undeliverable.

  • MQeUndeliveredMessageRule.USE_MQ_REPORT_OPTIONS

    The message should either be discarded or moved to the MQ dead letter queue, depending on the value of the original 'report' field of the original MQ Message.

  • >0

    The number of seconds which the listener should wait before retrying the MQ-to-MQe transfer operation.

    If a value not in the list above is specified, or if the rule throws an exception, then the listener will assume the STOP_LISTENER result was returned.

    Throws:
    Fails - if the rule has some problem with it's logic. This will have the same result as returning the STOP_LISTENER value in terms of how the listener will react.
    java.lang.Exception

  • Websphere MQ Everyplace