Message warehouse fields for MSIF message-transfer scenarios

When processing message-transfer scenarios, the MSIF transfer service records the information shown in Table 1 and Table 2. If the MSIF transfer service cannot determine the OU associated with a request, it records the information in the tables for DNFSYSOU (that is, views DNIV_MWH_DNFSYSOU and DNF_MWHEFM_DNFSYSOU).

Table 1. Fields of the view DNIV_MWH_ou that are set by the MSIF transfer service for message-transfer scenarios
Field name Data type Mandatory Description
MWH_OU_NAME CHAR(8) Yes The name of the OU on behalf of which the message is being processed:
  • For a SendMsg or MsgReceived request or notification, this is the name specified in the ComIbmDni.OU field of the message.
  • For a SendMsg or MsgReceived response, this is the name specified in the ComIbmDni.OU field of the corresponding request.
  • For a DeliveryAck notification, this is the name of the OU on behalf of which the session to the SnF queue that contained the DeliveryAck notification was acquired or opened. This name is specified in the ComIbmDni.OU field of the DeliveryAck notification that the MSIF transfer service passes to the sending application.
MWH_WMQI_MSG_ID CHAR(24) FOR BIT DATA Yes The MSIF reference, which uniquely identifies the message and serves as the primary key in the message warehouse. It is identical to the MQMD.MsgId of the corresponding IBM® MQ message.
GMT_TMSTMP TIME STAMP Yes Date and time, in Coordinated Universal Time (UTC), when the service requested that the message be stored in the message warehouse, or, if the message was updated, the date and time when the service last requested that it be updated.
MWH_MSG_STATUS VARCHAR (16) Yes The current transfer state of the scenario.
  • For a SendMsg response, this is the transfer state of the corresponding SendMsg scenario when the response was sent to the application.
  • For MsgReceived response, this is the transfer state of the corresponding MsgReceived scenario after the response was processed.
  • For a DeliveryAck notification, this is the transfer state of the corresponding SendMsg scenario when the notification was sent to the application.
Transfer states are described in States of an MSIF scenario.
MWH_MSG_GRP VARCHAR (50) No The message group ID, which is used to correlate messages that belong to the same scenario, such as a request and its corresponding response, or a DeliveryAck notification and its corresponding request. This enables you to search for messages that belong to the same unit of processing:
  • For a SendMsg request or response, this is the name specified in the ComIbmDni.MessageGroup field of the message, or, if no value was specified, the MQMD.MsgId of the message.
  • For a MsgReceived request, notification, or response, this is the MSIF reference of (that is, the MQMD.MsgId of the IBM MQ message that contains) the MsgReceived request or notification.
  • For a DeliveryAck notification, this is the message group ID of the corresponding SendMsg request.
MWH_BUSINESS_GRP VARCHAR (50) No The business group ID, which is provided by the requesting application and can be used to correlate scenarios that belong to the same business transaction:
  • For a SendMsg request or response, this is the name specified in the ComIbmDni.BusinessGroup field of the SendMsg request.
  • For a MsgReceived request, notification, or response, this is NULL.
  • For a DeliveryAck notification, this is the business group ID of the corresponding SendMsg request.
MWH_EXT_MSG_ID VARCHAR (50) No A message ID assigned by an external system:
  • For a SendMsg request or response, this is the name specified in the ComIbmDni.ExternalMessageID field of the message.
  • For a MsgReceived request, notification, or response, this is NULL.
  • For a DeliveryAck notification, this is null.
MWH_BODY_REP CHAR(3) No The format of the data in the message body. It is set to XML for:
  • A SendMsg request that contains a business message
  • A SendMsg response that contains a business message
  • A MsgReceived request or notification
  • A MsgReceived response that contains a business message

Otherwise, this is null.

MWH_XML_MSG CLOB (100M) N The message that was processed by the service. The content of this field depends on the value of the attribute DnfContentMwh of type DnfEfaOptionsMwh:
Index
The value is null.
IndexAndBody
This field contains the business message that comprised the body of the FTM SWIFT message, which it stores in the following structure:
<Msg>
 <BLOB>
   <BLOB>
      hex representation of message body
   </BLOB>
 </BLOB>
</Msg>
IndexAndMessage
This field contains the entire FTM SWIFT message (that is, its headers and body), which it stores in the following structure:
<Msg>
 <MQMD>
   fields of the MQMD as XML elements
 </MQMD>
 <MQRFH2>
   fields of the MQRFH2 as XML elements,
   and one or more NameValueData folder 
   in XML representation
 </MQRFH2>
 <BLOB>
  <BLOB> 
    hex representation of message body
  </BLOB>
 </BLOB>
</Msg>
This is the default.
In MWH_XML_MSG, the message body is represented as a hexadecimal string encoded using CCSID 1208 (code page UTF-8). To convert an XML message body to readable characters, convert it to binary data and parse it using an XML parser.

The MWH_XML_MSG field is empty until a message was received from an application or sent to the application. Consequently, the MWH_XML_MSG field is null until the corresponding request or notification was sent to the application.

MWH_GMT_TS TIME STAMP No Date and time, in Coordinated Universal Time (UTC), when the service requested that the message be stored in the message warehouse.
MWH_PRIORITY CHAR(1) No The request priority:
  • For a SendMsg request or a MsgReceived request or notification, this is determined by the value of the Priority send option of the SendMsg request:
    U
    Urgent
    N
    Normal
  • For a SendMsg or MsgReceived response, this is null.
  • For a DeliveryAck notification, this is null.
MWH_PD_INDICATOR CHAR(1) No Whether the message being transferred is a possible duplicate:
Y
The message is a possible duplicate.
N
The message is not a possible duplicate.
How this value is set depends on the type of message that is being processed:
  • For a SendMsg request, the MSIF transfer service sets this value to Y in the following situations:
    • The SendMsg request specifies a value for the PDIndication field.
    • The SendMsg request specifies a value for the AppHdr.Dup.Ref field.
    • The SendMsg request specifies the value true in the AppHdr.Hdr.AppHdr.PssblDplct field.
    • The SendMsg request is resent because it did not receive a SwInt:ExchangeResponse within the timeout period.
    Otherwise, the value is set to N.
  • For a SendMsg response, the MSIF transfer service sets this value to Y if the response specifies a value for the AppHdr.Dup.Ref field (corresponds to AppHdr.Dup.Ref in the SwInt:HandleResponse primitive) or if the response specifies a value "true" for the AppHdr.Hdr.AppHdr.PssblDplct field (corresponds to AppHdr.Hdr.AppHdr.PssblDplct field in the SwInt:HandleResponse primitive). Otherwise, the value is set to N.
  • For a MsgReceived request or notification, the MSIF transfer service sets this value to Y if any of the following fields are set:
    • ReceiveDetails.E2EMsgId (corresponds to Sw:RequestE2EControl.Sw:MsgId in the SwInt:HandleRequest primitive)
    • ReceiveDetails.AppHdr.Dup.Ref (corresponds to AppHdr.Dup.Ref in the SwInt:HandleRequest primitive)
    • ReceiveDetails.AppHdr.Hdr.AppHdr.PssblDplct (corresponds to AppHdr.Hdr.AppHdr.PssblDplct in the SwInt:HandleRequest primitive)
    • Sw:SnFOutputInfo.Sw:SnFPDMHistory in the SwInt:HandleRequest primitive
    Otherwise, the value is set to N.
  • For a MsgReceived response, the MSIF transfer service sets this value to Y if the response specifies a value for the AppHdr.Dup.Ref field or if the response specifies the value true for the AppHdr.Hdr.AppHdr.PssblDplct field. Otherwise, the value is set to N.
  • For a DeliveryAck notification, the value is null.
MWH_APPL_NAME VARCHAR (100) No The name of the application that originated the message:
  • For a SendMsg request, this is the value specified in the ApplicationInformation.Application field of the request.
  • For a SendMsg response, the value is set to SWIFTNETIA.
  • For a MsgReceived request, notification, or response, the value is set to SWIFTNETIA.
  • For a DeliveryAck notification, the value is set to SWIFTNETIA.
MWH_USER_ID VARCHAR (100) No The user ID of the application that originated the message:
  • For a SendMsg request, this is the value specified in the ApplicationInformation.User field of the request.
  • For a SendMsg response, the value is set to SWIFTNETIA.
  • For a MsgReceived request, notification, or response, the value is set to SWIFTNETIA.
  • For a DeliveryAck notification, the value is set to SWIFTNETIA.
MWH_USER_DEF1 VARCHAR (128) No Use these fields to satisfy your own processing requirements:
  • For a SendMsg request, this is the value specified in the UserDefined1, UserDefined2, and UserDefined3 fields of the ApplicationInformation folder of the request.
  • For a SendMsg response, the value is null.
  • For a MsgReceived request, notification, or response, the value is null.
  • For a DeliveryAck notification, the value is null.
MWH_USER_DEF2 VARCHAR (128) No
MWH_USER_DEF3 VARCHAR (128) No
MWH_TRAFFIC_TYPE CHAR(3) No The type of message traffic. Because the MSIF transfer service uses InterAct to transfer business messages, it is set to IA for message-transfer scenarios.
MWH_MSG_TYPE CHAR (30) No The MX message type:
  • For a SendMsg request, if the message is an MX message, the RequestType specified by the RequestType transfer option. Otherwise, the value is null.
  • For a SendMsg response, the value is null.
  • For a MsgReceived request or notification, if the message is an MX message, the value of the ReceiveDetails.RequestType field (corresponds to SwInt:RequestHeader.SwInt:RequestType in the SwInt:HandleRequest primitive). Otherwise, the value is null.
  • For a MsgReceived response, the value is null.
  • For a DeliveryAck notification, the value is null.
MWH_DIRECTION CHAR(1) No The direction of the message transfer from the point of view of the SIPN. It is only set for a primary record:
  • For a SendMsg request the value is set to I.
  • For a MsgReceived request or notification the value is set to O.
  • For a MsgReceived response, or a SendMsg response or a DeliveryAck notification, the value is null.
Possible values:
I
For a message passed to the SIPN (that is, a SWIFT input message)
O
For a message received from the SIPN (that is, a SWIFT output message)
MWH_RECORD_TYPE CHAR(1) No Indicates the type of record:
P
Primary record, that is, a record for a request or notification.
S
Secondary record, that is, a record for a response or DeliveryAck notification.
MWH_EXT_IDENTIFIER VARCHAR (16) No An identifier that indicates which service processed the message. For messages processed by the MSIF transfer service, this value is always set to ComIbmDnfEfa.
MWH_AUTH_STATUS CHAR(8) No The authentication and authorization status of a primary record, which indicates whether the corresponding InterAct request:
  • Passed or failed signature verification
  • Passed or failed authorization
Possible values:
  • For the primary record of a SendMsg or MsgReceived scenario, the possible values are:
    • OK
    • SG_FAIL
    • SG_INV
    • RM_TNFND
    • RM_TINV
    • RM_NFND
    • RM_INV
    These values are described in Figure 1.
  • For all secondary records (that is, records created for responses and DeliveryAck notifications), the value is null.
MWH_ROUT_DEST VARCHAR (30) No Contains the logical destination determined by routing.

The deprecated view DNI_MWH_ou provides the same information as DNIV_MWH_ou, except that it cannot display user IDs that are longer than 12 characters. The only difference between the two views is that, in DNI_MWH_ou, the data type of the MWH_USER_ID field is CHAR(12) instead of CHAR(100).

Figure 1. Possible MWH_AUTH_STATUS values for an MSIF message-transfer
(null)
The authentication and authorization checks were not performed.
OK
The authentication and authorization checks were successful, or the authentication checks were successful and the authorization checks were not performed for one of the following reasons:
  • The ASP specifies that the SWIFT service does not use RMA.
  • The ASP specifies that the SWIFT service uses RMA, but the RMA trial stage for the service has not yet begun.
SG_FAIL
The attempt to authenticate the request by verifying its signature failed.
SG_INV
The request could not be authenticated because the certificate for signature verification was revoked or expired.
RM_TNFND
RMA is in the trial stage for the SWIFT service, and at least one of the following conditions applies:
  • The RM data store does not contain an authorisation for the specified combination of own BIC, correspondent BIC, service, and direction.
  • The authorisation does not provide the necessary permissions.
  • The current date and time are not within the validity period of the authorisation.
RM_TINV
RMA is in the trial stage for the SWIFT service, and the RM authorisation for the specified combination of own BIC, correspondent BIC, service, and direction was revoked, deleted, or rejected.
RM_NFND
RMA is in the mandatory usage stage for the SWIFT service, and at least one of the following conditions applies:
  • The RM data store does not contain an authorisation for the specified combination of own BIC, correspondent BIC, service, and direction.
  • The authorisation does not provide the necessary permissions.
  • The current date and time are not within the validity period of the authorisation.
RM_INV
RMA is in the mandatory usage stage for the SWIFT service, and the RMA authorisation for the specified combination of own BIC, correspondent BIC, service, and direction was revoked, deleted, or rejected.

If more than one authentication and authorization status applies to a message, the status that is closest to the bottom of this list is the value that is recorded. For example, if both SG_FAIL and RM_NFND apply, RM_NFND is recorded.

Table 2. Fields of the view DNF_MWHEFM_ou that are set by the MSIF transfer service for message-transfer scenarios
Field name Data type Mandatory Description
MWH_WMQI_MSG_ID CHAR(24) FOR BIT DATA Yes The MSIF reference, which uniquely identifies the message and serves as the primary key in the message warehouse. It is identical to the MQMD.MsgId of the corresponding IBM MQ message.
MWH_IA_SCENARIO CHAR(7) No The type of scenario associated with this record:
  • For a SendMsg request or response, this is set to SND.
  • For a MsgReceived request, notification, or response, this is set to RCV.
  • For a DeliveryAck notification, this is set to SND.
MWH_ERROR CHAR(1) Yes Whether the scenario associated with this record is currently in a recoverable error condition (that is, whether the transfer condition of the scenario is inError):
  • For a SendMsg or MsgReceived request or notification:
    Y
    The corresponding scenario is in a recoverable error condition.
    N
    The corresponding scenario is not in a recoverable error condition.
  • For a SendMsg or MsgReceived response, this is null.
  • For a DeliveryAck notification, this is null.
For information about how to recover such scenarios, see recover.
MWH_MODE CHAR(3) No The delivery mode:
RT
Real-time
SNF
Store-and-forward
For a DeliveryAck notification, this is set to SNF.
MWH_SERVICE VARCHAR (30) No The name of the SIPN service:
  • For a SendMsg response, the value is the same as for the corresponding SendMsg request. It is the value specified by the Service transfer option.
  • For a MsgReceived response, the value is the same as for the corresponding MsgReceived request. It is the value of the ReceiveDetails.Service field of the MsgReceived request.
  • For a DeliveryAck notification, the value of the SwInt:RequestHeader.SwInt:Service field of the SwInt:HandleRequest primitive.
MWH_REQUEST_TYPE VARCHAR (30) No The SIPN request type:
  • For a SendMsg request, the value specified by the RequestType transfer option.
  • For a SendMsg response, the value is the same as for the corresponding SendMsg request.
  • For a MsgReceived request, the value of its ReceiveDetails.RequestType field, which is taken from the SwInt:RequestHeader.SwInt:RequestType field of the SwInt:HandleRequest primitive.
  • For a MsgReceived notification or response, the value is the same as for the corresponding MsgReceived request.
  • For a DeliveryAck notification, the value of the SwInt:RequestHeader.SwInt:RequestType field of the SwInt:HandleRequest primitive.
MWH_LOCAL_DN VARCHAR (100) No The DN that represents the local site:
  • For a SendMsg request, the value specified by the LocalDN transfer option.
  • For a SendMsg response, the value is the same as for the corresponding SendMsg request.
  • For a MsgReceived request, the value of its ReceiveDetails.LocalDN field.
  • For a MsgReceived notification or response, the value is the same as for the corresponding MsgReceived request.
  • For a DeliveryAck notification, the value of the SwInt:RequestHeader.SwInt:Responder field of the SwInt:HandleRequest primitive.
Whether the local DN is used as the requestor DN or responder DN depends on the scenario:
SendMsg
The local DN is used as the requestor DN.
MsgReceived
The local DN is used as the responder DN.
MWH_REMOTE_DN VARCHAR (100) No The DN that represents the remote site:
  • For a SendMsg request, the value specified by the RemoteDN transfer option.
  • For a SendMsg response, the value is the same as for the corresponding SendMsg request.
  • For a MsgReceived request, the value of its ReceiveDetails.RemoteDN field.
  • For a MsgReceived notification or response, the value is the same as for the corresponding MsgReceived request.
  • For a DeliveryAck notification, the value of the SwInt:RequestHeader.SwInt:Requestor field of the SwInt:HandleRequest primitive.
Whether the remote DN is used as the requestor DN or responder DN depends on the scenario:
SendMsg
The remote DN is used as the responder DN.
MsgReceived
The remote DN is used as the requestor DN.
MWH_REQ_REF VARCHAR (35) No A reference string that is used to associate a request with corresponding response or error messages:
  • For a SendMsg request, the value of the RequestRef field (or, if it is not specified, the value of the AppHdr.MsgRef or AppHdr.Hdr.AppHdr.BizMsgIdr field) of the request.
  • For a MsgReceived request or notification, the value of the RequestRef field of the message. This is taken from the SwInt:RequestHeader.SwInt:RequestRef field of the SwInt:HandleRequest primitive.
  • For a SendMsg or MsgReceived response, the value is null.
  • For a DeliveryAck notification, the value is null.
MWH_RSP_REF VARCHAR (35) No A reference string that is used to associate a response with its corresponding request or with error messages:
  • For a SendMsg request or a MsgReceived request or notification, the value is null.
  • For a SendMsg response, the value of the ResponseRef field of the response. This is taken from the SwInt:ResponseHeader.SwInt:ResponseRef field of the SwInt:ExchangeResponse primitive.
  • For a MsgReceived response, the value of the Response.ResponseRef field (or, if it is not specified, the value of the Response.AppHdr.MsgRef or Response.AppHdr.Hdr.AppHdr.BizMsgIdr field) of the MsgReceived response.
  • For a DeliveryAck notification, the value is null.
MWH_AH_MSGREF VARCHAR (35) No A reference string specified by a local application and used to uniquely identify the business message in a request:
  • For a SendMsg request, the value of the AppHdr.MsgRef or AppHdr.Hdr.AppHdr.BizMsgIdr field of the request.
  • For a MsgReceived request or notification, the value of the AppHdr.MsgRef or AppHdr.Hdr.AppHdr.BizMsgIdr field of the message.
  • For a SendMsg response, the value of the MsgRef or BizMsgIdr field in the application header of the business payload of the response primitive.
  • For a MsgReceived response, the value of the AppHdr.MsgRef or AppHdr.Hdr.AppHdr.BizMsgIdr field of the response.
  • For a DeliveryAck notification, the value is null.
MWH_SN_REFERENCE VARCHAR (50) No A unique ID assigned by the SIPN to a business message:
  • For a SendMsg request, the value is retrieved from the corresponding SwInt:ExchangeResponse.
  • For a SendMsg response or MsgReceived response, the value is null.
  • For a MsgReceived request or notification, the value of the SwInt:SwiftRef field of the SwInt:HandleRequest...SwInt:RequestDescriptor folder.
  • For a DeliveryAck notification that contains an authorisation notification, non-delivery warning, or delivery notification sent on behalf of the counterpart, the value of the Sw:SnFRef field of the corresponding system message.
  • For a DeliveryAck notification that contains a delivery notification sent on behalf of a third party, the value of the Sw:OrigSnFRef field of the corresponding system message.
MWH_SESSION VARCHAR (39) No This is the ID of the SnF session that was used to receive a message:
  • For a SendMsg request or response, the value is null.
  • For a MsgReceived notification for a message that was received in SnF delivery mode, this is the ID of the SnF session that was used to receive the message. This is taken from the Sw:SnFOutputInfo.Sw:SnFSessionId field of the corresponding SwInt:HandleRequest primitive.
  • For a MsgReceived notification for a message that was received in RT delivery mode, the value is null.
  • For a MsgReceived request, the value is null.
  • For a DeliveryAck notification, this is the ID of the SnF session that was used to receive the message. This is taken from the Sw:SnFOutputInfo.Sw:SnFSessionId field of the corresponding Sw:HandleSnFRequest primitive.
  • For a message that was received in RT delivery mode, this field is null.
MWH_NOTIF_STATE VARCHAR (20) No The notification state of a scenario:
  • For a SendMsg request or a MsgReceived request or notification, the current notification state of the corresponding scenario.
  • For a SendMsg or MsgReceived response, the value None.
  • For a DeliveryAck notification:
    Authorisation
    The transfer was authorized by a third party. The MSIF transfer service received an authorisation notification that contained a Y-Copy notification of authorisation (Y-Copy authorisation). This applies only to transfers that use SnF delivery mode and a Y-Copy service.
    Refusal
    The transfer was refused by a third party. The MSIF transfer service received an authorisation notification that contained a Y-Copy notification of refusal (Y-Copy refusal). This applies only to transfers that use SnF delivery mode and a Y-Copy service.
    NonDelivWarning
    The message was not delivered to the receiver within the time limit specified by the sender. The MSIF transfer service received an authorisation notification that contained a non-delivery warning. This applies only to transfers that use SnF delivery mode.
    SuccessDelivNotif
    The transfer was successful. The MSIF transfer service received a successful-delivery notification. This applies only to transfers that use SnF delivery mode.
    FailedDelivNotif
    The transfer was unsuccessful. The MSIF transfer service received a failed-delivery notification. This applies only to transfers that use SnF delivery mode.