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!
