Websphere MQ Everyplace

com.ibm.mqe.adapters
Class MQeUdpipBasicAdapter

java.lang.Object
  |
  +--com.ibm.mqe.adapters.MQeCommunicationsAdapter
        |
        +--com.ibm.mqe.adapters.MQeUdpipBasicAdapter
All Implemented Interfaces:
MQeExceptionCodes

public class MQeUdpipBasicAdapter
extends MQeCommunicationsAdapter
implements MQeExceptionCodes

The MQeUdpipBasicAdapter provides the ability to send MQe data across the network using the UDP protocol. UDP is a connectionless protocol so in order to provide the ability to ensure a message has arrived the adapter uses acknowledgements, timeouts and retries. The following information should be read in conjunction with the information for the MQeCommunicationsAdapter to correctly set the configurable values in order to obtain optimum performance from the adapter.

The terms initiator and responder are used within the documentation. The term initiator is used to denote the adapter resonsible for initiating the communications conversation. The term responder it used to denote the adapter responsible for reading the request from the initiator and returning the response to that request.

The UDP protocol does not allow for the reading of data from a socket in a stream, instead it is necessary to create a packet of a given size. The MQeUdpipBasicAdapter takes the value of com.ibm.mqe.adapters.MQeCommunicationsAdapter.packetSize in order to create these packets. The initiator passes the packet size it will be using to the responder which will then use this packet size, the size is passed across the network as a short and therefore has a maximum value of 65535

The MQeUdpipBasicAdapter passes the number of retries across the network and in order to use the minimum number of bytes a byte is used. This limits the number of retries to 255 for this adapter as we assume no sign.

The value used for com.ibm.mqe.adapters.MQeCommunicationsAdapter.timeout should reflect the time it takes a packet to flow across the network from initiator to responder, in other words if a + b is equal to the time for the total round trip we assume that a = b. The user should set the timeout value to a. The timeout is passed across the network as an integer and therefore has a maximum value of 4294967295 as we assume no sign.

The value used for com.ibm.mqe.adapters.MQeCommunicationsAdapter.groupSize is used in order to group the packets that make up the payload to be sent across the network before an acknowledgement is expected. For instance if the group size is set to the default of 5, 5 packets will be sent by the initiator before it waits for a response from the responder. The group size is passed across the network as a short and therefore has a maximum of 255

The value used for com.ibm.mqe.adapters.MQeCommunicationsAdapter.variance is used as a constant in conjunction with the timeout value. The variance value may be used to provide a value that reflects possible variant behaviour in the network. This value is held internally as an integer which gives a maximum value of 4294967295

The following information shows how the above values are used within the MQeUdpipBasicAdapter.
Time for responder to wait for next data packet = timeout + variance

Time for responder to wait for next data packet after an acknowledgement = (timeout + variance) x 2

Time for initiator to wait for acknowldgement = (timeout + variance) x (groupSize + 1)

Time for initiator to wait for acknowledgement after request for an acknowledgement = (timeout + variance) x 2


Field Summary
 
Fields inherited from class com.ibm.mqe.adapters.MQeCommunicationsAdapter
COMMS_ADAPTER_ADDRESS, COMMS_ADAPTER_CLASS, COMMS_ADAPTER_GROUP_SIZE, COMMS_ADAPTER_HTTP_VERSION, COMMS_ADAPTER_LISTEN, COMMS_ADAPTER_NONBLOCKING_TIMEOUT, COMMS_ADAPTER_NOPERSIST, COMMS_ADAPTER_PERSIST, COMMS_ADAPTER_PKTSIZE, COMMS_ADAPTER_PORT, COMMS_ADAPTER_RETRIES, COMMS_ADAPTER_SERVLET, COMMS_ADAPTER_TIMEOUT, COMMS_ADAPTER_VARIANCE, listeningAdapter, persistentAdapter, responderAdapter
 
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
MQeUdpipBasicAdapter()
           
 
Methods inherited from class com.ibm.mqe.adapters.MQeCommunicationsAdapter
activate, close, createNewAdapter, isStopDemanded, isStopRequested, open, read, temporaryClose, waitForContact, writeData, writeResponse
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MQeUdpipBasicAdapter

public MQeUdpipBasicAdapter()

Websphere MQ Everyplace