Websphere MQ Everyplace

examples.mqbridge.rules
Class MQeUndeliveredMessageRule

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

public class MQeUndeliveredMessageRule
extends MQeRule

To be a model rules class. This is the basic class from which dictates what action a listener administered MQBridge object should do if the message is undelivered for a specific reason.

The class name will be placed in the configuration of the listener object.

The class will be loaded dynamically if the listener cannot deliver a message.

This rules class must decide which action to perform: Either to retry after a number of seconds of waiting, moving the message to the MQ dead letter queue, or stopping the listener altogether.

This model class has the some behaviour as an example: It will return a value of


Field Summary
static int STOP_LISTENER
          The value that can be returned which will cause the listener to stop.
static int USE_MQ_REPORT_OPTIONS
          The value that can be returned which will cause the listener to put the message onto the MQ dead letter queue, or discard it (depending on the report options set inside the MQ message).
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
MQeUndeliveredMessageRule()
           
 
Method Summary
 java.lang.Object permit(java.lang.Object failureCodesO, java.lang.Object targetNamesO, 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.
protected  java.lang.Integer permitUndeliveredMessage(int[] failureCodes, java.lang.String[] targetNames, MQeMsgObject failedMQeMessage)
          Exactly the same as the permit() method on this class, except the parameters are provided in strongly-typed form.
 
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

STOP_LISTENER

public static final int STOP_LISTENER
The value that can be returned which will cause the listener to stop.

See Also:
Constant Field Values

USE_MQ_REPORT_OPTIONS

public static final int USE_MQ_REPORT_OPTIONS
The value that can be returned which will cause the listener to put the message onto the MQ dead letter queue, or discard it (depending on the report options set inside the MQ message).

See Also:
Constant Field Values
Constructor Detail

MQeUndeliveredMessageRule

public MQeUndeliveredMessageRule()
Method Detail

permit

public java.lang.Object permit(java.lang.Object failureCodesO,
                               java.lang.Object targetNamesO,
                               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.

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

  • permitUndeliveredMessage

    protected java.lang.Integer permitUndeliveredMessage(int[] failureCodes,
                                                         java.lang.String[] targetNames,
                                                         MQeMsgObject failedMQeMessage)
                                                  throws java.lang.Exception
    Exactly the same as the permit() method on this class, except the parameters are provided in strongly-typed form.

    This model class has the some behavior as an example: It will return a value of

    • 5 seconds for the first minute
    • 10 seconds for the second minute
    • 60 seconds for the third to ninth minute inclusive
    • STOP_LISTENER after retries have failed for 10 minutes.

    java.lang.Exception

    Websphere MQ Everyplace