Kafka Capture Point - Debugging
The ixn-java-aux.jar file provides the means to debug Kafka Capture Point without Interaction Server, thus providing a simple and rapid sanity check of the Kafka environment.
You can use the Java class com.genesyslab.eservices.interactionserver.capturepoints.CheckCPApp to run Kafka Capture Point as a console Java application in the same way it is done in Interaction Server. It can produce/consume messages to/from Kafka. The only command-line argument is the path to the application settings file. For example:
On Windows:
java -cp <path to IXN dir>/lib/ixn-java-aux.jar;<path to IXN dir>/groovy_event_logger/lib/KafkaEventLogger/kafka-clients-2.3.0.jar;<path to IXNdir>/groovy_event_logger/lib/KafkaEventLogger/slf4j-api-1.7.26.jar;<path to IXN dir>/transformation/groovy-all-2.4.15.jar; com.genesyslab.eservices.interactionserver.capturepoints.CheckCPApp <path to application settings>
On Linux:
java -cp <path to IXN dir>/lib/ixn-java-aux.jar:<path to IXN dir>/groovy_event_logger/lib/KafkaEventLogger/kafka-clients-2.3.0.jar:<path to IXNdir>/groovy_event_logger/lib/KafkaEventLogger/slf4j-api-1.7.26.jar:<path to IXN dir>/transformation/groovy-all-2.4.15.jar: com.genesyslab.eservices.interactionserver.capturepoints.CheckCPApp <path to application settings>
The application settings file must be in JSON format. It follows the generic Genesys format: sections are on the first level and options are on the second level. For example:
{ "check-cp-app": { "cp-type": "kafka", "cp-options-file": "<path to Kafka Capture Point settings file>", "received-messages-dir": "<path to a directory with inbound message files>", "commit-inbound": "true" "notifications-dir": "<path to a directory with notification files>", } }
The following options are available:
- cp-type - (Mandatory) Must have kafka as the value always.
- received-messages-dir - A path to a directory where all the messages read from the inbound topic are stored in. Each message is stored in a separate file with an ordered number as a name. The default value is an empty string, which means messages won't be stored.
- notifications-dir - A path to a directory where unsolicited notifications are read from the 'to be sent to the notification' topic. Each file is considered to have one notification. All the characters of a file name, up to the last period symbol, are used as a partition key. The default value is an empty string, which means unsolicited notifications won't be sent.
- commit-inbound - If the value is set to false, Capture Point will never commit an inbound message; instead, it will keep processing this message and continuously send out notifications, resulting in an infinite loop. The default value is true.
- cp-options-file - (Mandatory) A path to the Kafka Capture Point settings file. It follows the generic Genesys format: sections are on the first level and options are on the second level. For example:
{ "settings": { "inbound-topic-name": "inbound", "processed-topic-name": "processed", "error-topic-name": "error", "notification-topic-name": "notification", "copy-original-properties-in-reply": "false", "consumer-receive-timeout": "10000", "kafka-server": "10.10.19.160:9092,10.10.19.161:9092,10.10.19.162:9092", }, "consumer-options": { "max.poll.interval.ms": 1000, "max.poll.records": 20, "auto.offset.reset": "earliest", }, "producer-options": { "retries": 10, } }
This page was last edited on June 18, 2020, at 10:43.
Comments or questions about this documentation? Contact us for support!