Configuring exception queues for FIN messages

You can configure FTM SWIFT so that messages that are processed by the SIPN FIN and FMT FIN services and are associated with certain exceptional conditions, such as validation or authentication errors, are routed to special queues called exception queues. From these queues, the messages can be retrieved and repaired using special programs. In this way, you can centralize your exception handling, rather than requiring that each application is able to handle all possible error situations itself.

Exception queues are specified in one or more exception option sets. During configuration of a master LT, you can specify which exception option set the SIPN FIN and FMT FIN service is to use for that LT (see Configuring a master LT). When configuring the exception option sets that can be used by an OU, you configure one option set with the name DnfFinExceptionDefault; this is the option set that is used when no option set is specified for the LT to be used, or when the name of the LT to be used cannot be determined from the message.

If an error occurs during the processing of a message, or if the message itself indicates an error (as with a NAK), the message is put into the following queue:
  • If an exception option set is specified for the LT, that option set is used to determine the name and queue manager of the exception queue into which the message is to be put.
  • If no exception option set is specified for the LT, or if a service cannot determine the LT associated with a message, the default exception option set of the OU is used.
  • If a service cannot determine the LT or OU associated with a message, it uses the default exception option specified for DNFSYSOU.
  • If no default exception option set was configured for the OU, or if the exception is of a type for which no queue is specified in the exception option set that is to be used:
    • For a message to be sent, the message is routed to the reply-to queue specified in the message
    • For a message that was received, the message is routed to the target queue of the receiving application
  • If the message cannot be routed to any of these queues, for example because no option set with the specified name was configured, or the exception queue into which the message is to be put has not been defined, the message is put into the error queue instance.ou.DNF_ERROR or, if the OU cannot be determined, instance.DNFSYSOU.DNF_ERROR.
To create an exception option set, specify attributes for a CO of type DnfExceptionOptionSet, where the name of the CO determines the name of the option set. Each attribute is used to specify the name and queue manager of a different type of exception queue.
  • For each OU to which the SIPN FIN or FMT FIN service bundle was assigned, create one option set with the name DnfFinExceptionDefault. This specifies the exception queues that are to be used for an LT for which no option set is specified.
  • For DNFSYSOU, create one option set with the name DnfFinExceptionDefault. This specifies the exception queues that are to be used if the service cannot determine the LT or OU associated with a message.

If the LTs of a single OU are to use different exception queues, create additional option sets, and specify the name of a different option set in the ExceptionOptionSet attribute of the DnfLTApplicationSettings CO of each LT, as described in Configuring a master LT.

There is an exception queue for each of the exception types listed in Table 1. The Value column of Table 1 shows the values that appear in the MWH_EXCEPT_TYPE column of the message warehouse views with names of the form DNF_MWHFN_ou, which are described in Table 2.
Table 1. Exception types and their corresponding messages
Message Flow Exception Type Value Messages
FIN Send Message validation MsgVal Basic message checks:
  • DNFH3760E to DNFH3764E
Message validation:
  • DNFH3712E
  • DNFH3713E
  • DNIY5000E to DNIY5068E
  • DNIY6521E
Digest calculation checks:
  • DNFH3958E to DNFH3961E
  • DNFH3970E
Other checks:
  • DNFH3752E
  • DNFP9420E
ASP send error AspSnd
  • DNFH3713E
RM processing RMSnd
  • DNFL9430E
Send processing ProcessSnd All FIN Send errors that do not belong to another exception type, for example:
  • DNFH3715E
  • DNFH3716E
  • DNFH3717E
  • DNFH3750E
  • DNFH3753E
  • DNFH3754E
  • DNFH3755E
  • DNFH3756E
  • DNFH3758E
  • DNFH3790E
  • DNFH3792E
  • DNFH3799E
FIN Acknow- ledgement NAK send error NAKSnd Negative acknowledgment (NAK) messages
FIN Receive NAK receive error NAKRcv Checksum verification
  • DNFH3821E
Digest verification DigestVerify All errors that occur during digest verification, for example:
  • DNFH3758E
    Note: This message can be issued by the FIN Receive message flow only if the FinCopyConfigError attribute of the CO of type DnfFinParametersSnfil for the OU is set to deliver.
  • DNFH3860E
  • DNFH3865E
RM processing RMRcv
  • DNFL9430E
Signature verification Signature
  • DNFH3861E
  • DNFH3862E
Message validation for received messages MsgValRcv
  • DNFH3713E
To help you create exception option sets, FTM SWIFT generates, during customization, for each business OU, scripts with names of the form:
deployment_dir/instance/admin/ou_dnfcfcce.cli
deployment_dir/instance/admin/dnfcfces.cli
where:
deployment_dir
Directory specified in the CDP initialization file.
instance
Name of the instance.
ou
Name of the OU.
The scripts with names of the form ou_dnfcfcce.cli contain the following commands:
;add -ou DNIvOU -ct DnfExceptionOptionSet -co <exception_co> -attr MsgValExceptionQueue     
                                                             -val <msgValExcQueue>
;add -ou DNIvOU -ct DnfExceptionOptionSet -co <exception_co> -attr MsgValExceptionQMgr      
                                                             -val <msgValExcQM>
;add -ou DNIvOU -ct DnfExceptionOptionSet -co <exception_co> -attr AspSndExceptionQueue  
                                                             -val <aspSndExcQueue>
;add -ou DNIvOU -ct DnfExceptionOptionSet -co <exception_co> -attr AspSndExceptionQMgr   
                                                             -val <aspSndExcQM>
;add -ou DNIvOU -ct DnfExceptionOptionSet -co <exception_co> -attr MsgValRcvExceptionQueue  
                                                             -val <msgValRcvExcQueue>
;add -ou DNIvOU -ct DnfExceptionOptionSet -co <exception_co> -attr MsgValRcvExceptionQMgr   
                                                             -val <msgValRcvExcQM>

;add -ou DNIvOU -ct DnfExceptionOptionSet -co <exception_co> -attr NakSndExceptionQueue     
                                                             -val <nakSndExcQueue>
;add -ou DNIvOU -ct DnfExceptionOptionSet -co <exception_co> -attr NakSndExceptionQMgr      
                                                             -val <nakSndExcQM>
;add -ou DNIvOU -ct DnfExceptionOptionSet -co <exception_co> -attr NakRcvExceptionQueue     
                                                             -val <nakRcvExcQueue>
;add -ou DNIvOU -ct DnfExceptionOptionSet -co <exception_co> -attr NakRcvExceptionQMgr      
                                                             -val <nakRcvExcQM>
;add -ou DNIvOU -ct DnfExceptionOptionSet -co <exception_co> -attr RMSndExceptionQueue      
                                                             -val <rmaSndExcQueue>
;add -ou DNIvOU -ct DnfExceptionOptionSet -co <exception_co> -attr RMSndExceptionQMgr       
                                                             -val <rmaSndExcQM>
;add -ou DNIvOU -ct DnfExceptionOptionSet -co <exception_co> -attr RMRcvExceptionQueue      
                                                             -val <rmaRcvExcQueue>
;add -ou DNIvOU -ct DnfExceptionOptionSet -co <exception_co> -attr RMRcvExceptionQMgr       
                                                             -val <rmaRcvExcQM>
;add -ou DNIvOU -ct DnfExceptionOptionSet -co <exception_co> -attr SignatureExceptionQueue  
                                                             -val <sigExcQueue>
;add -ou DNIvOU -ct DnfExceptionOptionSet -co <exception_co> -attr SignatureExceptionQMgr   
                                                             -val <sigExcQM>
;add -ou DNIvOU -ct DnfExceptionOptionSet -co <exception_co> -attr DigestCreateExceptionQueue 
                                                             -val <digCrtExcQueue>
;add -ou DNIvOU -ct DnfExceptionOptionSet -co <exception_co> -attr DigestCreateExceptionQMgr  
                                                             -val <digCrtExcQM>
;add -ou DNIvOU -ct DnfExceptionOptionSet -co <exception_co> -attr DigestVerifyExceptionQueue 
                                                             -val <digVfyExcQueue>
;add -ou DNIvOU -ct DnfExceptionOptionSet -co <exception_co> -attr DigestVerifyExceptionQMgr  
                                                             -val <digVfyExcQM>
;add -ou DNIvOU -ct DnfExceptionOptionSet -co <exception_co> -attr ProcessSndExceptionQueue   
                                                             -val <prcSndExcQueue>
;add -ou DNIvOU -ct DnfExceptionOptionSet -co <exception_co> -attr ProcessSndExceptionQMgr    
-val <prcSndExcQM>
;com -ou DNIvOU
The script dnfcfces.cli contains the following commands:
;add -ou DNFSYSOU -ct DnfExceptionOptionSet -co DnfFinExceptionDefault -attr MsgValExceptionQueue       
                                                                       -val <msgValExcQueue>
;add -ou DNFSYSOU -ct DnfExceptionOptionSet -co DnfFinExceptionDefault -attr MsgValExceptionQMgr        
                                                                       -val <msgValExcQM>
;add -ou DNFSYSOU -ct DnfExceptionOptionSet -co DnfFinExceptionDefault -attr RMSndExceptionQueue        
                                                                       -val <rmaSndExcQueue>
;add -ou DNFSYSOU -ct DnfExceptionOptionSet -co DnfFinExceptionDefault -attr RMSndExceptionQMgr         
                                                                       -val <rmaSndExcQM>
;add -ou DNFSYSOU -ct DnfExceptionOptionSet -co DnfFinExceptionDefault -attr DigestCreateExceptionQueue 
                                                                       -val <digCrtExcQueue>
;add -ou DNFSYSOU -ct DnfExceptionOptionSet -co DnfFinExceptionDefault -attr DigestCreateExceptionQMgr  
                                                                       -val <digCrtExcQM>
;add -ou DNFSYSOU -ct DnfExceptionOptionSet -co DnfFinExceptionDefault -attr ProcessSndExceptionQueue   
                                                                       -val <prcSndExcQueue>
;add -ou DNFSYSOU -ct DnfExceptionOptionSet -co DnfFinExceptionDefault -attr ProcessSndExceptionQMgr    
                                                                       -val <prcSndExcQM>
;com -ou DNFSYSOU

The script dnfcfces.cli is used to set the default exception option set for DNFSYSOU. Use it to specify which queues are to be used if the LT or OU of a message cannot be determined. It contains only a subset of all exception queue attributes, because some types of exceptions are not applicable when the name of the OU cannot be determined.

For:
  • The scripts with names of the form ou_dnfcfcce.cli, the customization process substitutes the placeholder DNIvOU in the script with the name of a business OU
  • The script dnfcfces.cli, the customization process substitutes the placeholder DNIvOU in the script with the name DNFSYSOU, and sets the name of the CO to DnfFinExceptionDefault

To modify and run these scripts:

  1. Copy the scripts into your home directory.
  2. Ensure that all commands that are to be executed are activated, that is, that they are not preceded by a semicolon character (;).
  3. Replace the following items in the copies of the scripts as appropriate:
    Note: The statements for specifying a queue manager are optional. The default is the queue manager to which the application associated with the message is connected.
    <exception_co>
    The name of the exception option set. If the option set is to be the default option set for the OU (that is, the option set used for LTs that do not specify an option set explicitly as described in Configuring a master LT), replace this placeholder with DnfFinExceptionDefault.
    <msgValExcQueue> and <msgValExcQM>
    The name and queue manager of the queue into which messages with message validation errors are to be put.
    <aspSndExcQueue> and <aspSndExcQM>
    The name and queue manager of the queue into which messages for which there is no corresponding ASP entry are to be put.
    <msgValRcvExcQueue> and <msgValRcvExcQM>
    The name and queue manager of the queue into which received messages with message validation errors are to be put.
    <nakSndExcQueue> and <nakSndExcQM>
    The name and queue manager of the queue into which messages that resulted in a NAK from the SIPN are to be put.
    <nakRcvExcQueue> and <nakRcvExcQM>
    The name and queue manager of the queue into which messages that resulted in a NAK being sent to the SIPN are to be put.
    <rmaSndExcQueue> and <rmaSndExcQM>
    The name and queue manager of the queue into which messages that were to be sent but that failed relationship management authorization are to be put.
    <rmaRcvExcQueue> and <rmaRcvExcQM>
    The name and queue manager of the queue into which messages that were received and that failed RMA authorization are to be put.
    <sigExcQueue> and <sigExcQM>
    The name and queue manager of the queue into which messages that failed signature verification are to be put.
    <digCrtExcQueue> and <digCrtExcQM>
    The name and queue manager of the queue into which messages that failed digest creation are to be put.
    <digVfyExcQueue> and <digVfyExcQM>
    The name and queue manager of the queue into which messages that failed digest verification are to be put.
    <prcSndExcQueue> and <prcSndExcQM>
    The name and queue manager of the queue into which messages that encountered an exception that does not fall into any of the other exception categories are to be put.
  4. Run each script to create an exception option set. To do this, you must have the system configuration administrator (DniSA) role. Enter the following command:
    dnicli -i instance -ou SYSOU -s DNI_SYSADM -cft dnfcfcce.cli
  5. If needed, repeat steps 3 to 4 to create additional option sets.
  6. Approve and deploy the changes:
    dnicli -i instance -ou SYSOU -s DNI_SYSADM 
    app -ou ou
    dep -ou ou

    If dual authorization is enabled, another user with the appropriate access rights must approve the changes before they can be deployed. If dual authorization is disabled, you can skip approving the changes and immediately deploy them.