Key Set Processing is a capability of the DataSync Agent which can be enabled when replicating messages from a ServiceNow instance to a database. The Key Set capability optimizes throughput while further ensuring message ordering.

(info) NOTE: It's strongly recommended to enable this capability when replicating from a ServiceNow instance.

This is enabled on a task by task basis by adding the following configuration direction within the <task> definition.

<task>
	<enable_keyset_processing/>
	...
	...
</task>


The following directives can be added to the agent.xml when enabling the Key Set Processing

DirectiveDescriptionExample
<keyset_size>

Indicates the number of key set processor that will maintain the connection to the database.

(info) NOTE: Overriding the default key set size (8) may reduce overall throughput of message processing.


<keyset_size>4</keyset_size>
<queue_consumer_polling_interval>

Indicates the time interval the queue will be consumed. By default, the key set is scheduled to read from the queue every two seconds. 

<queue_consumer_polling_interval>nn</queue_consumer_polling_interval>

(info) NOTEThe value nn is in milliseconds.

<keyset_read_wait_time>

Indicates the time each key set processor will wait when reading from its queue. By default, the wait time is 200 milliseconds. 


<keyset_read_wait_time>nn</keyset_read_wait_time>

Example of the agent.xml 

<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<config>
    <agent>
        <share/>
        <subscribe>
			<task>
				<enable_keyset_processing/>
				<keyset_size>4</keyset_size>
				<queue_consumer_polling_interval>nn</queue_consumer_polling_interval>
				<keyset_read_wait_time>nn</keyset_read_wait_time>
				...
				...
			</task>
		</subscribe>
        <max_reads_per_connect>4000</max_reads_per_connect>
        <polling_interval>5</polling_interval>
        <skip_message_set_processing/>
    </agent>
</config>