IBM Support

PK88205: SUPPORT OF SWIFT MQSA INTERFACE

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as new function.

Error description

  • Customer has a MERVA environment with WBI/FN to connect to the
    SWIFT network.
    Now, they are migrating to a different solution, which on a
    phase of the project means connecting the MERVA system to the
    SWIFTAlliance Access via WebSphere MQ, and then from there, the
    messages will be sent to SWIFT. This SAA is on a service
    provider site. This will mean stop using the WBI/FN product on
    the customer's site.
    On this stage of the project, customer doesn't want to change
    the application code, so we'll have to change the MERVA
    customisation and routing to send/receive the messages via MQI
    attachement. Also, we intend to change as little as we can to
    serve this purpose.
    Our main doubts/questions/problems are with the ACK/NACK's
    received from SWIFT.
    Now, the messages sent to SWIFT, stay on a MERVA queue, waiting
    for the ACK to be received and then correlated with it. This
    correlation is done via the MERVA Bridge, which will disappear.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All users of MERVA-MQI Attachment            *
    *                 demanding a direct connection to MQSA,       *
    *                 the WebSphere MQ interface for               *
    *                 SWIFTAlliance Access (SAA).                  *
    ****************************************************************
    * PROBLEM DESCRIPTION: Currently, the customers must use       *
    *                      either internally-developed or third    *
    *                      party software to enable the message    *
    *                      exchange between MERVA and              *
    *                      SWIFTAlliance Access. This is expensive *
    *                      and unnecessarily complicated.          *
    ****************************************************************
    * RECOMMENDATION: The direct connection between MERVA-MQI      *
    *                 Attachment and MQSA helps to reduce cost of  *
    *                 purchasing and maintaining software and      *
    *                 simplifies the message exchange with         *
    *                 SWIFTAlliance Access.                        *
    ****************************************************************
    The following text describes how to set up MERVA with
    MERVA-MQI Attachment to exchange messages with MQSA.
    
    Response modes and response messages
    ------------------------------------
    
    When receiving messages, MERVA-MQI Attachment can now work in
    one of the following response modes:
    o  Intermediate response mode
    o  Final response mode
    
    Messages received in intermediate response mode can put the
    corresponding sent messages either in intermediate or final
    processing state after correlation. Messages received in final
    response mode always put the corresponding sent messages in
    final processing state after correlation.
    The response mode is specified in a DSLKPROC receive process:
    o  RSPMODE=I specifies intermediate response mode.
    o  RSPMODE=F specifies final response mode. This is the default.
    
    Setting intermediate response mode is required for all messages
    received from MQSA.
    
    When sending WebSphere MQ request messages, MERVA-MQI Attachment
    can now request one or both of the following reports from the
    receiving application:
    o  PAN (Positive Action Notification)
    o  NAN (Negative Action Notification)
    
    A PAN or NAN report is requested in a DSLKPROC send process:
    o  PAN=YES requests a PAN report. PAN=NO is the default.
    o  NAN=YES requests a NAN report. NAN=NO is the default.
    
    A PAN or NAN report received from MQSA is an intermediate
    response message. It contains the UUMID (User Unique Message
    Identifier) of the related request message. The UUMID uniquely
    identifies the message in SWIFTAlliance Access. It has a length
    of 45 characters. The PAN or NAN report from MQSA is correlated
    with the corresponding sent request message and puts the
    correlated message in intermediate processing state.
    The correlated message in intermediate processing state contains
    intermediate response message with a length of 45 characters in
    the MSGACK field.
    
    A transmission notification, delivery notification, information
    notification, or history notification received from MQSA is a
    final response message. The notification from MQSA is correlated
    with the message in intermediate processing state and puts the
    correlated message in final processing state. The correlated
    message in final processing state contains the final response
    message with a maximum length of 255 characters in the MSGACK
    field.
    
    An MQSA intermediate response message is optional. If not
    requested, an MQSA final response message immediately puts the
    request message in final processing state after correlation.
    
    Restriction
    -----------
    
    Received SWIFT output messages containing the MQSA generated
    S: block are not supported. The S: block contains specific
    SWIFTAlliance Access information.
    
    Changes in DSLKPROC
    -------------------
    
    Define one send process and one or two receive processes.
    
    Send process S1.
    Sends WebSphere MQ request messages to MQSA. Request messages
    are SWIFT input messages. It contains these parameters:
     ACKWQ=<Ack wait queue> Generates a request message
     PAN=YES                Requests PAN report from MQSA (optional)
     NAN=YES                Requests NAN report from MQSA (optional)
     REPLYTQ=<Reply-to queue> Contains PAN and NAN reports from
                              MQSA. Always required due to ACKWQ.
     PASCMID=YES            Defines report option for PAN and NAN
    
    Receive process R1. Mandatory.
    Receives WebSphere MQ datagrams from MQSA. Datagrams are SWIFT
    output messages or MQSA notifications (final response messages).
    It contains these mandatory parameters:
     MQIRCVQ=<Receive queue> Contains datagrams
     PASCMID=NO              For correlation of MQSA notifications
     RSPMODE=I               Intermediate response mode
     EXIT=8137               1, Puts MQSA notification, dummy
                                DWS765I, or dummy DWS766I to MSGACK
                             2, Puts dummy MAC trailer to message if
                                message is to be authenticated
    
    Receive process R2. Optional.
    Receives WebSphere MQ reply messages from MQSA. Reply messages
    are MQSA PAN or NAN reports (intermediate response messages).
    It contains these mandatory parameters:
     MQIRCVQ=<Reply-to queue> Contains reply messages
     PASCMID=YES              For correlation. Must be same as in
                              send process S1
     RSPMODE=I                Intermediate response mode
     EXIT=8137                Puts MQSA PAN or NAN report to MSGACK
    
    Changes in MERVA routing
    ------------------------
    
    TOF field DSLKSTAT contains the processing state in the length
    of 5 characters. A correlated WebSphere MQ request message is in
    intermediate processing state if DSLKSTAT contains the literal
    'ACKI '. It is in final processing state if DSLKSTAT contains
    the literal 'ACK  '. The sample routing table DSLKQRT can be
    extended to handle these processing states. Routing of received
    SWIFT output messages (WebSphere MQ datagrams) for which
    DSLKSTAT contains the literal 'RCVD ' is not affected and
    should work as before.
    
    Intermediate processing state
    -----------------------------
    Label ACKICORR in DSLKQRT:
    This label is reached if DSLKSTAT which is represented as STATUS
    in DSLKQRT contains the literal 'ACKI '. The code shows all
    possible routing conditions which can occur if you have
    specified both PAN=YES and NAN=YES in the DSLKPROC send process.
    You can decide which of these conditions you want to code in
    your routing table. For example, it is possible to route each
    message with 'ACKI ' in DSLKSTAT without testing any condition
    to the acknowledgment wait queue to wait for the final response.
    If you have used the defaults PAN=NO and NAN=NO, the
    intermediate processing state is not set and DSLKSTAT does not
    contain 'ACKI '. Then you do not need to code any routing
    conditions.
    
    ACKICORR DSLROUTE TYPE=DEFINE,                             *  1
                   FIELD=(ACKWQ,DSLKMAWQ,,,,,VFIRST)
             DSLROUTE TYPE=DEFINE,                             *  2
                   FIELD=(RESULT,MSGACK,,,,,VFIRST),LENGTH=5
             DSLROUTE TYPE=TEST,                               *  3
                   COND=(RESULT,'PAN  ',EQ),TRUE=PAN
             DSLROUTE TYPE=TEST,                               *  4
                   COND=(RESULT,'65537',EQ),TRUE=NAN
             DSLROUTE TYPE=TEST,                               *  5
                   COND=(RESULT,'65538',EQ),TRUE=NAN
             DSLROUTE TYPE=TEST,                               *  6
                   COND=(RESULT,'65539',EQ),TRUE=NAN
             DSLROUTE TYPE=TEST,                               *  7
                   COND=(RESULT,'65540',EQ),TRUE=NAN
    NAN      DSLROUTE TYPE=SET,TARGET='DSLMRERR'                  8
    PAN      DSLROUTE TYPE=SET,TARGET=ACKWQ,GOTO=END              9
    
    Notes:
    ------
     1  Field ACKWQ is defined. It contains the name of the
    acknowledgement wait queue from TOF field DSLKMAWQ. The name of
    the acknowledgment wait queue is specified in parameter ACKWQ
    for a DSLKPROC send process.
    
     2  Field RESULT is defined. It has a length of 5 characters. It
    contains the first 5 characters from TOF field MSGACK.
    
     3  If field RESULT contains 'PAN  ', the PAN report indicated a
    positive action notification. Processing continues at the PAN
    label.
    
     4  If field RESULT contains the feedback code '65537', the NAN
    report indicated that the message failed validation. The message
    has been stored in SWIFTAlliance Access. Processing continues at
    the NAN label.
    
     5  If field RESULT contains the feedback code '65538', the NAN
    report indicated that the routing failed. The message has been
    stored in SWIFTAlliance Access but not routed/moved. Processing
    continues at the NAN label.
    
     6  If field RESULT contains the feedback code '65539', the NAN
    report indicated that the message could not be added into
    SWIFTAlliance Access. The message has not been stored in
    SWIFTAlliance Access and is put in the DEAD-LETTER-QUEUE.
    Processing continues at the NAN label.
    
     7  If field RESULT contains the feedback code '65540', the NAN
    report indicated that the message could not be converted to
    SWIFTAlliance Access format and therefore put in the
    DEAD-LETTER-QUEUE. Processing continues at the NAN label.
    
     8  The message correlated with a NAN report is routed to error
    queue DSLMRERR. Processing continues with the next statement.
    Therefore the correlated message is also routed to the
    acknowledgment wait queue (see 9 ).
    
     9  The message correlated with a PAN or NAN report is routed to
    the acknowledgment wait queue. Processing stops at the END
    label.
    
    Final processing state
    ----------------------
    Label ACKCORR in DSLKQRT:
    This label is reached if DSLKSTAT which is represented as STATUS
    in DSLKQRT contains the literal 'ACK  '. The code shows all
    possible routing conditions. You can decide which of these
    conditions you want to code in your routing table. For example,
    it is possible to route each message for which the notification
    indicates a normal processing result to a normal queue, and the
    other messages to an error queue. This requires just to code the
    conditions to determine a normal processing result. In the
    example below, each of the first four conditions, if met,
    indicates a normal processing result.
    
    ACKCORR DSLROUTE TYPE=DEFINE,                             *   1
                  FIELD=(RESPONSE,MSGACK,,,,,VFIRST),LENGTH=6
            DSLROUTE TYPE=TEST,                               *   2
                  COND=(RESPONSE,'{1:F21',EQ),TRUE=TARGETQ
            DSLROUTE TYPE=TEST,                               *   3
                  COND=(RESPONSE,'{1:A21',EQ),TRUE=TARGETQ
            DSLROUTE TYPE=TEST,                               *   4
                  COND=(RESPONSE,'{1:F01',EQ),TRUE=TARGETQ
            DSLROUTE TYPE=TEST,                               *   5
                  COND=(RESPONSE,'{1:A01',EQ),TRUE=TARGETQ
            DSLROUTE TYPE=TEST,                               *   6
                  COND=(RESPONSE,'{1:INF',EQ),TRUE=ERRORQ
            DSLROUTE TYPE=TEST,                               *   7
                  COND=(RESPONSE,'{1:HIS',EQ),TRUE=ERRORQ
            DSLROUTE TYPE=TEST,                               *   8
                  COND=(RESPONSE,'NAN  ',EQ,SHORT),TRUE=ERRORQ
            DSLROUTE TYPE=TEST,                               *   9
                  COND=(RESPONSE,'NOFBK',EQ,SHORT),TRUE=ERRORQ
            DSLROUTE TYPE=TEST,                               *  10
                  COND=(RESPONSE,'65546',EQ,SHORT),TRUE=ERRORQ
            DSLROUTE TYPE=TEST,                               *  11
                  COND=(RESPONSE,'65547',EQ,SHORT),TRUE=ERRORQ
            DSLROUTE TYPE=TEST,                               *  12
                  COND=(RESPONSE,'65548',EQ,SHORT),TRUE=ERRORQ
            DSLROUTE TYPE=TEST,                               *  13
                  COND=(RESPONSE,'65549',EQ,SHORT),TRUE=ERRORQ
    ERRORQ  DSLROUTE TYPE=SET,TARGET='DSLMRERR',GOTO=END         14
    TARGETQ DSLROUTE TYPE=SET,TARGET='DSLMRRQ1',GOTO=END         15
    
    Notes:
    ------
      1  Field RESPONSE is defined. It has a length of 6 characters.
    It contains the first 6 characters from TOF field MSGACK.
    
      2  If field RESPONSE contains '{1:F21', the transmission
    notification contained a FIN ACK or NAK. Processing continues at
    the TARGETQ label.
    
      3  If field RESPONSE contains '{1:A21', the transmission
    notification contained a GPA ACK or NAK. Processing continues at
    the TARGETQ label.
    
      4  If field RESPONSE contains '{1:F01', the delivery
    notification indicated successful delivery (MT 011). Processing
    continues at the TARGETQ label.
    
      5  If field RESPONSE contains '{1:A01', the delivery
    notification indicated successful delivery (MT 011). Processing
    continues at the TARGETQ label.
    
      6  If field RESPONSE contains '{1:INF', the information
    notification showed details about a routing or processing
    result. This is considered an error message. Processing
    continues at the ERRORQ label.
    
      7  If field RESPONSE contains '{1:HIS', the history
    notification contained a list of information notifications. This
    is considered a list of error messages. Processing continues at
    the ERRORQ label.
    
      8  If field RESPONSE contains the 5 characters 'NAN  ', the
    delivery notification indicated a non-delivery warning (MT 010).
    Processing continues at the ERRORQ label.
    
      9  If field RESPONSE contains the 5 characters 'NOFBK', either
    the transmission notification or the delivery notification
    indicated that no status is available. Processing continues at
    the ERRORQ label.
    
     10  If field RESPONSE contains the 5-digit feedback code
    '65546', the transmission notification indicated that
    SWIFTAlliance Access is still waiting for the SWIFT ACK.
    Processing continues at the ERRORQ label. In addition, the
    message can also be routed to the acknowledgment wait queue
    in case the SWIFT ACK arrives later.
    
     11  If field RESPONSE contains the 5-digit feedback code
    '65547', the transmission notification indicated that the
    message timed-out. Processing continues at the ERRORQ label.
    
     12  If field RESPONSE contains the 5-digit feedback code
    '65548', the transmission notification indicated that the
    message was rejected. Processing continues at the ERRORQ label.
    
     13  If field RESPONSE contains the 5-digit feedback code
    '65549', either the transmission notification or the delivery
    notification indicated that the message was aborted (for
    delivery notification: MT 019). Processing continues at the
    ERRORQ label.
    
     14  The message correlated with a notification which indicates
    a processing error is routed to error queue DSLMRERR. Processing
    stops at the END label.
    
     15  The message correlated with a notification which indicates
    normal processing is routed to queue DSLMRRQ1. Processing stops
    at the END label.
    

Problem conclusion

Temporary fix

  • Fix is available.
    

Comments

  • Fix is send to customer for test.
    

APAR Information

  • APAR number

    PK88205

  • Reported component name

    MERVA ESA 4.1.0

  • Reported component ID

    5648B2900

  • Reported release

    410

  • Status

    CLOSED UR1

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2009-06-08

  • Closed date

    2009-07-14

  • Last modified date

    2009-09-03

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    UK48268 PK95367

Modules/Macros

  • DSLKEXIC DSLKPL   DSLKPRC  DSLKPRCB DSLKPRCP
    DSLKPROC DSLKQR   DSLKQRHD DSLKQRRH DSLKQ136 DSLKQ137 DSLKSUBR
    DSLKSUBS DSLYIKBR DSLYIKBS DSLYIKQR
    

Publications Referenced
SH12637715    

Fix information

  • Fixed component name

    MERVA ESA 4.1.0

  • Fixed component ID

    5648B2900

Applicable component levels

  • R410 PSY UK48268

       UP09/07/15 P F907

Fix is available

  • Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SS7LGL","label":"MERVA"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"410","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"410","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
03 September 2009