Jump to: navigation, search

Kafka Capture Point

Options for the integrated Kafka Capture Point are configured in the following sections on the Options tab of the Kafka Capture Point application:

As the Java Kafka client used for communication with the Kafka cluster, the integrated Kafka Capture Point supports additional standard Apache Kafka configuration options, as discussed under:

consumer-options Section

In addition to the options that are defined in this section, the Integrated Kafka Capture Point supports native Apache Kafka consumer options. See Advanced Java Kafka Client Options and Security Configuration for more information.



     


auto.offset.reset

Default Value: earliest
Valid Values: latest, earliest, none
Changes Take Effect: Upon restart


Specifies what to do when there is no initial offset in Kafka or if the current offset does not exist any more on the server. The following values are supported: earliest: automatically reset the offset to the earliest offset latest: automatically reset the offset to the latest offset none: throw exception to the consumer if no previous offset is found for the consumer's group

max.poll.interval.ms

Default Value: 600000
Valid Values: Any integer greater than 1
Changes Take Effect: Upon restart


The maximum delay between invocations of poll(). This places an upper bound on the amount of time that the consumer can be idle before fetching more records. If poll() is not called before expiration of this timeout, then the consumer is considered failed and the group will rebalance in order to reassign the partitions to another member.

max.poll.records

Default Value: 20
Valid Values: Any integer greater than 1
Changes Take Effect: Upon restart


The maximum number of records returned in a single call to poll().



custom-options-provider Section



     


class-name

Default Value:
Valid Values: Any string
Changes Take Effect: Upon restart


Specifies the full Java class name of the custom Kafka Options Provider. Object of this class will be created by Kafka Capture Point on start if this option is not empty.



default-values Section

     


InteractionSubtype

Default Value: InboundNew
Valid Values: any of the subtypes defined
Changes Take Effect: Upon restart


Specifies the interaction subtype.

InteractionType

Default Value: Inbound
Valid Values: any of the types defined
Changes Take Effect: Upon restart


Specifies the interaction type.

MediaType

Default Value: workitem
Valid Values: any of the media types defined
Changes Take Effect: Upon restart


Specifies the interaction media type.



inbound-transformer-parameters Section

     


AllowAnyAttributes

Default Value: false
Valid Values: true, false
Changes Take Effect: Upon restart


Specifies whether the provided iWD inbound transformation script should copy any unknown message attributes along with all of the known message attributes into the transformed inbound message. If set to true, all attributes from the inbound iWD message are copied into transformed message. If set false, only known attributes are copied and all of the other attributes are ignored. The list of known attributes is defined in the inbound iWD transformation script and can be customized.

CancelQueues

Default Value: iWD_Canceled
Valid Values: List of queue names separated by comma
Changes Take Effect: Upon restart


Specifies list of queue names designated for interaction cancellation. This parameter is used by iWD specific transformation to transform request CancelTask by providing queue name to [update] request.

CaseSensitiveActions

Default Value: false
Valid Values: false, true
Changes Take Effect: Upon restart


If set to false, the transformation script ignores the letter case of action names.

CaseSensitiveAttributes

Default Value: false
Valid Values: false, true
Changes Take Effect: Upon restart


If set to false, the transformation script ignores letter case of known attribute names (including Ext and Data section names).

CompleteQueues

Default Value: iWD_Completed
Valid Values: List of queue names separated by comma
Changes Take Effect: Upon restart


Specifies list of queue names designated for interaction completion. This parameter is used by iWD specific transformation to transform request CompleteTask by providing queue name to [update] request.

ExtendedAttributes

Default Value:
Valid Values: List of attribute names separated by comma
Changes Take Effect: Upon restart


Specifies list of attribute names that are expected under [Ext] tag in CreateTask request. This parameter is used by iWD specific transformation.

RestartQueues

Default Value: iWD_New
Valid Values: List of queue names separated by comma
Changes Take Effect: Upon restart


Specifies list of queue names designated for interaction restart. This parameter is used by iWD specific transformation to transform request RestartTask by providing queue name to [update] request.

SchemaDocumentPath

Default Value: ./iwd_scripts/iwd_messages.xsd
Valid Values: Path to xsd document
Changes Take Effect: Upon restart


If configured, this option specifies the file name that contains xml schema document that the inbound transformation script should use for validation.



notification-filtering Section

     


disable-unsolicited-notifications

Default Value: false
Valid Values: true, false, yes, no
Changes Take Effect: Upon restart


If set to true or yes, the capture point will not store any unsolicited notifications about the interactions that are submitted by this capture point.

notify-assigned

Default Value: true
Valid Values: true, false
Changes Take Effect: Upon restart


If set to false or no, the capture point will not store notifications about an agent being added as a party on an interaction.

notify-changed

Default Value: true
Valid Values: true, false
Changes Take Effect: Upon restart


If set to false or no, the capture point will not store notifications about interaction property changes.

notify-created

Default Value: true
Valid Values: true, false, yes, no
Changes Take Effect: Upon restart


If set to false or no, the capture point will not store notifications about newly submitted interactions.

notify-error

Default Value: true
Valid Values: true, false, yes, no
Changes Take Effect: Upon restart


If set to false or no, the capture point will not store notifications about capture point requests resulting in errors.

notify-held

Default Value: true
Valid Values: true, false
Changes Take Effect: Upon restart


If set to false or no, the capture point will not store notifications about interactions being put on hold.

notify-moved

Default Value: true
Valid Values: true, false
Changes Take Effect: Upon restart


If set to false or no, the capture point will not store notifications about interactions being placed in a queue or workbin.

notify-resumed

Default Value: true
Valid Values: true, false
Changes Take Effect: Upon restart


If set to false or no, the capture point will not store notifications about interactions being resumed.

notify-route-requested

Default Value: true
Valid Values: true, false, yes, no
Changes Take Effect: Upon restart


If set to false or no, the capture point will not store notifications about a strategy being added as a party on an interaction.

notify-stopped

Default Value: true
Valid Values: true, false
Changes Take Effect: Upon restart


If set to false or no, the capture point will not store notifications about interactions being stopped (terminated).



outbound-transformer-parameters Section

     


CancelQueues

Default Value: iWD_Canceled
Valid Values: List of queue names separated by comma
Changes Take Effect: Upon restart


Specifies list of queue names designated for interaction cancellation. This parameter is used by iWD specific transformation to transform [moved] notification to [TaskCancelled] notification.

CompleteQueues

Default Value: iWD_Completed
Valid Values: List of queue names separated by comma
Changes Take Effect: Upon restart


Specifies list of queue names designated for interaction completion. This parameter is used by iWD specific transformation to transform [moved] notification to [TaskCompleted] notification.

ErrorHeldQueues

Default Value: iWD_ErrorHeld
Valid Values: An empty string, or any valid queue name
Changes Take Effect: Upon restart


(iWD specific) Specifies a comma-separated list of queue names for interactions that are held because of a configuration error (such as incomplete rules).

ExtendedAttributes

Default Value:
Valid Values: List of attribute names separated by comma
Changes Take Effect: Upon restart


Specifies list of attribute names that are expected under [Ext] tag in [TaskCreated] notification. This parameter is used by iWD specific transformation.

RejectQueues

Default Value: iWD_Rejected
Valid Values: An empty string, or any valid queue name
Changes Take Effect: Upon restart


(iWD specific) Specifies a comma-separated list of queue names for rejected interactions.

RestartQueues

Default Value: iWD_New
Valid Values: List of queue names separated by comma
Changes Take Effect: Upon restart


Specifies list of queue names designated for interaction restart. This parameter is used by iWD specific transformation to transform [moved] notification to [TaskRestarted] notification.



producer-options Section

In addition to the options that are defined in this section, the Integrated Kafka Capture Point supports native Apache Kafka producer options. See Advanced Java Kafka Client Options and Security Configuration for more information.


     


retries

Default Value: 10
Valid Values: Any integer from zero to 2147483647
Changes Take Effect: Upon restart


Setting a value greater than zero will cause the client to resend any record whose send fails with a potentially transient error.



settings Section

     


after-rollback-delay

Default Value: 30
Valid Values: Any integer from 1-300
Changes Take Effect: Upon restart


Specifies the timeout (in seconds) to wait before attempting to process inbound messages after previous rollback. This option controls how long Interaction Server waits before retrying message processing after recoverable error.

capture-point-type

Default Value: kafka
Valid Values: jms, file, db, webservice, kafka
Changes Take Effect: Upon restart


Specifies the Capture Point type. The following types are supported: jms - JMS Capture Point file -File Capture Point db - DB Capture Point webservice - Web Service Capture Point kafka - Kafka Capture Point The value must be set to kafka so the Capture Point is configured to work via Apache Kafka.

consumer-group

Default Value: InteractionServer
Valid Values: Valid String
Changes Take Effect: Upon restart


A unique string that identifies the consumer group this Capture Point assigned to. The consumer groups functionality is used for balancing partitions among receiving threads and keeping track of the processed messages. For the correct work this option should be set once and never changed.

consumer-receive-timeout

Default Value: 1000
Valid Values: Any integer from 200-5000
Changes Take Effect: Upon restart


Specifies the timeout (in milliseconds) on the message consumer blocking receive method.

copy-original-headers-in-reply

Default Value: false
Valid Values: true, false
Changes Take Effect: Upon restart


When this option is set to true, all Kafka message headers of the request will be copied to the Kafka message headers of the reply. When the value is false, the replies to requests have only the message ID and correlation ID headers (if present).

correlation-id-header-key

Default Value: CorrelationID
Valid Values: Any string
Changes Take Effect: Upon restart


Specifies the key on which the correlation ID is read from the message header.

error-topic-name

Default Value:
Valid Values: Valid Kafka topic name
Changes Take Effect: Upon restart


Specifies the error topic for the capture point.

inbound-topic-name

Default Value: [required]
Valid Values: Valid Kafka topic name
Changes Take Effect: Upon restart


Specifies the inbound topic for the capture point.

include-ids-in-duplicate-error

Default Value: false
Valid Values: true, false
Changes Take Effect: Upon restart


If set to true, the duplicate id error includes interaction id and external id, if available.

kafka-server

Default Value: [required]
Valid Values: Non-null string with comma separated pairs of host:port.
Changes Take Effect: Upon restart


A list of host:port pairs to use for establishing the initial connection to the Kafka cluster. Value of this option is passed to underlying Java Kafka client in "bootstrap.servers" option as is.

notification-topic-name

Default Value:
Valid Values: Valid Kafka topic name
Changes Take Effect: Upon restart


Specifies the topic for notification messages for the capture point.

number-outbound-threads

Default Value: 4
Valid Values: Any integer from 1-20
Changes Take Effect: Upon restart


Specifies the number of threads Interaction Server allocates to transform and send unsolicited notification messages.

number-receiving-sessions

Default Value: 4
Valid Values: Any integer from 1-20
Changes Take Effect: Upon restart


Specifies the number of receiving sessions consuming from the inbound Kafka topic.

output-queue-size

Default Value: 5000
Valid Values: Any integer from 1000-20000
Changes Take Effect: Upon restart


Specifies the maximum number of unsolicited notification messages a capture point can buffer.

processed-topic-name

Default Value:
Valid Values: Valid Kafka topic name
Changes Take Effect: Upon restart


Specifies the topic for processed messages for the capture point.

reconnect-timeout

Default Value: 10
Valid Values: Any integer from 3 to 30
Changes Take Effect: Upon restart


Specifies the time interval (in seconds) between the reconnect attempts in case a connection with the corresponding Kafka cluster is broken.

rollback-on-transformation-fail

Default Value: false
Valid Values: true, false
Changes Take Effect: Upon restart


Specifies how Interaction Server should behave when inbound message transformation fails. If the option is set to true, Interaction Server rolls back the transaction and attempts processing later.

xsl-inbound-transform-path

Default Value: ./iwd_scripts/iWD2IxnServerTransformer.groovy
Valid Values: The transformation script file name that is relative to the working directory
Changes Take Effect: Upon restart


Specifies the location of the inbound transformation script.

xsl-outbound-transform-path

Default Value: ./iwd_scripts/IxnServer2iWDTransformer.groovy
Valid Values: The transformation script file name that is relative to the working directory
Changes Take Effect: Upon restart


Specifies the location of the outbound transformation script.



Advanced Java Kafka Client Options

You can customize the majority of the Java Kafka client options in the following Capture Point configuration sections:

  • consumer-options - Options specified in this section are passed to the Java Kafka consumers as is. Consumers are used to read inbound messages from the Kafka cluster. The full list of Apache Kafka consumer options is on the official page.
  • producer-options - Options specified in this section are passed to the Java Kafka producers as is. Producers are used to send outbound messages to the Kafka cluster. The full list of Apache Kafka producer options is on the official page.
Important
The following options in the consumer-options and producer-options sections cannot be overridden. Interaction Server ignores any values that you configure for these options.
  • bootstrap.servers (settings\kafka-server) - The value of kafka-server under the settings section is passed to boostrap.servers, as Interaction Server uses the same broker for producer and consumer.
  • group.id - The value of consumer-group under the settings section is passed to group.id, and its value is set to InteractionServer by default.
  • enable.auto.commit - The value of this option is hardcoded to false, as Interaction Server guarantees “at least once” delivery.

Security Configuration

The Java Kafka client library provides secured communications. Refer to the official Kafka documentation for more information. Necessary options mentioned in the Kafka documentation can be set in the consumer-options and producer-options sections.

Kafka protected options

You can hide the values of the following sensitive Kafka client options by putting them into the password option in the following sections:

Original Section Original Option Protected Section Protected Option
consumer-options ssl.keystore.password consumer-options:ssl.keystore.password password
consumer-options ssl.truststore.password consumer-options:ssl.truststore.password password
consumer-options sasl.jaas.config consumer-options:sasl.jaas.config password
producer-options ssl.keystore.password consumer-options:ssl.keystore.password password
producer-options ssl.truststore.password producer-options:ssl.truststore.password password
producer-options sasl.jaas.config producer-options:sasl.jaas.config password

Kafka Capture Point with SASL_PLAINTEXT security module configuration

In the Kafka Capture Point application options,

  • Under the consumer-options section, add the following options:
    • sasl.mechanism = PLAIN
    • security.protocol = SASL_PLAINTEXT
    • sasl.jaas.config = org.apache.kafka.common.security.plain.PlainLoginModule required username="your_username" password="your_password";
  • Under the producer-options section, add the following options:
    • sasl.mechanism = PLAIN
    • security.protocol = SASL_PLAINTEXT
    • sasl.jaas.config = org.apache.kafka.common.security.plain.PlainLoginModule required username="your_username" password="your_password";

To secure the secret values, create the following configuration with the Kafka protected options:

  1. Create a new section, consumer-options:sasl.jaas.config. You can do the same for producer-options as well. Note: Add this section instead of adding sasl.jaas.config in consumer-options and producer-options.
  2. Within the new section, create a new option, password.
  3. Insert the whole JAAS configuration as the value for password (that is, the value mentioned in sasl.jaas.config in the producer-options or consumer-options section). Genesys Administrator Extension (GAX) will automatically mask the password value.
    The resulting configuration looks like the following:
    • [consumer-options:sasl.jaas.config]
      • password= org.apache.kafka.common.security.plain.PlainLoginModule required username="your_username" password="your_password";
    • [producer-options:sasl.jaas.config]
      • password= org.apache.kafka.common.security.plain.PlainLoginModule required username="your_username" password="your_password";
Important
With the security protocol SASL_PLAINTEXT, SSL encryption is not enabled.

Kafka Capture Point with SASL_SSL security module configuration

In the Kafka Capture Point application options,

  • Under the consumer-options and producer-options sections, add the following options:
    • sasl.mechanism = PLAIN
    • security.protocol = SASL_SSL
    • sasl.jaas.config = org.apache.kafka.common.security.plain.PlainLoginModule required username="your_username" password="your_password";
    • ssl.enabled.protocols=TLSv1.2,TLSv1.1,TLSv1
    • ssl.keystore.location=loation_of_Key\client.keystore.jks
    • ssl.keystore.type=JKS
    • ssl.truststore.location=location_of_Cert\client.truststore.jks
    • ssl.truststore.type=JKS
    • ssl.keystore.password=The store password for the key store file
    • ssl.truststore.password=The store password for the trust store file
  • To secure the secret values, create the following configuration with the Kafka protected options:
  1. Create a new section, consumer-options:sasl.jaas.config. You can do the same for producer-options as well. Note: Add this section instead of adding sasl.jaas.config in consumer-options and producer-options.
  2. Within the new section, create a new option, password.
  3. Insert the whole JAAS configuration as the value for password (that is, the value mentioned in sasl.jaas.config in the producer-options or consumer-options section). Genesys Administrator Extension (GAX) will automatically mask the password value.
    The resulting configuration looks like the following:
    • [consumer-options:sasl.jaas.config]
      • password= org.apache.kafka.common.security.plain.PlainLoginModule required username="your_username" password="your_password";
    • [producer-options:sasl.jaas.config]
      • password= org.apache.kafka.common.security.plain.PlainLoginModule required username="your_username" password="your_password";

Similarly, you can mask the password values under the options ssl.keystore.password and ssl.truststore.password by creating separate sections described in the following configuration:

  • [consumer-options:ssl.keystore.password]
    • password= The store password for the key store file
  • [consumer-options:ssl.truststore.password]
    • password= The password for the trust store file
  • [producer-options:ssl.keystore.password]
    • password= The store password for the key store file
  • [producer-options:ssl.truststore.password]
    • password= The password for the trust store file
Important
With the security protocol SASL_SSL, SSL encryption is enabled.
This page was last edited on April 18, 2023, at 18:46.
Comments or questions about this documentation? Contact us for support!