Configuring item level duplicate detection

Configure Duplicate Detect to perform item level duplicate detection. As part of this process, configure the Gateway to remove outgoing return items from the inbound namespace. The scenario is an inbound ICL was received from bank A. On receipt of the file, perform duplicate checking on those inbound items (using a Transaction Server configuration). One or more of the items from the incoming ICL is returned to bank A. When the item is returned, remove the item from the incoming namespace so if bank A sends the item back, it is not flagged as a duplicate item the second time it is received.

The Gateway uses the duplicate detection API to send data to the Duplicate Detect engine. Copy the izhapi.jar file from the Duplicate Detect installation location into a folder on the Gateway Server and add the izhapi.jar file to the classpath.

All input to the Duplicate Detect engine is done with WebSphere® MQ messages. The following parameters are used to configure the WebSphere MQ parameters necessary to deliver the message to the Duplicate Detect engine and to receive a reply.

Table 1. WebSphere MQ Parameters for Duplicate Detect
Keyword Values/Examples Default Value Description
enableDupRemovalOutgoingReturnItems true, false false Enables the Gateway to send the outgoing return items to the Duplicate Detect engine. The Duplicate Detect engine removes the items from the incoming namespace database.
duplicateDetectUserClass com.ibm.icpcs.gatewayserver.samples.dup.SampleDupDetect none Fully qualified Java™ class name of the user exit for modifying data before it is sent to Duplicate Detect. Allows the user to add, delete, or modify fields sent to Duplicate Detect. For more information, see Duplicate Detect User Exit.
dupWaitTime 0 - 3600000 30000 The number of milliseconds to wait for a response from the Duplicate Detect engine. If this time is exceeded, the message is still left on the queue for the Duplicate Detect engine but Gateway processing continues.
dupInNamespace DUP_PAYMENT none The name of the Namespace defined in the Duplicate Detect server for incoming payments.
dupUseJNDI true, false false Controls the use of JNDI lookup. If set to true, JNDI lookup is used to get a ConnectionFactory object and a Queue object. If set to false, straight WebSphere MQ (JMS) calls are used to get a connection. If using JNDI, the dupJndi properties must be set. If not using JNDI, the dupJms properties must be set.
dupJndiURL iiop://servername:12345 iiop://localhost:59814 The URL for the JNDI provider.
dupJndiInitialContext com.sun.jndi.cosnaming.CNCtxFactory com.ibm.websphere.naming.WsnInitialContextFactory The name of the initial context factory to be used to create the initial context used for JNDI lookups. Refer to the documentation for the associated JNDI provider.
dupJndiConnectionFactory jms/izhjmscf None The name of the ConnectionFactory object created in the JNDI name space.
dupJndiInSendQueue jms/izhinboundq None The name of the queue object created in the JNDI name space to receive messages intended for the Duplicate Detect engine.
dupJndiInReplyQueue jms/izhreplyq None The name of the queue object created in the JNDI name space to receive reply messages from the Duplicate Detect engine to the Gateway.
dupJmsQmgrName FTM.QMANAGER None The name of the WebSphere MQ queue manager
dupJmsUserId Userid None The user ID used to access the WebSphere MQ queue manager and queue. The user ID is only required if the definition of queue requires a user ID and password to access it.
dupJmsPassword Password None The password used to access the WebSphere MQ queue manager and queue. The password is only required if the definition of queue requires a user ID and password to access it.
dupJmsInSendQueue FXH.DUPLICATEDETECT.INPUT.QUEUE None The name of the WebSphere MQ queue where the Duplicate Detect messages are sent.
dupJmsInReplyQueue FXH.GATEWAY.DUPLICATEDETECT.REPLY.QUEUE None The name of the WebSphere MQ queue where reply messages from the Duplicate Detect engine are received.
dupJmsKeyStore c:/keys/mqkey.jks None The fully qualified name of the file containing the key store.
dupJmsKeyStorePassword password None The password used to access the key store.
dupJmsTrustStore c:/keys/mqkey.jks None The fully qualified name of the file containing the trust store.

Configuring the client channel definition table (CCDT) file to connect to IBM MQ

All application pods connect to IBM® MQ by using a JSON formatted CCDT file that is called mq-ccdt.json. This JSON file contains the following parameters.
  • The channel name.
  • Client-connection-related parameters such as the host name, port number, and the queueManager name.
  • Transmission security parameters such as the cipherSpecification.
This JSON file cannot be edited, but you can use a configmap to configure values for all these parameters except the channel name.

Add your values for IBM MQ to the ftm-mq-<ftm-instance>-ccdt-config configmap in Red Hat® OpenShift®. The FTM operator uses the contents of this configmap to update the mq-ccdt.json file.