A fix is available
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
| 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