Scheduled Column in KIC Message Connector Monitor


Issue


In the KIC Message Connector Monitor, what does the Scheduled column value represent, and is there any method for adjusting the value?

Solution

The time shown in the Scheduled column of the Inbound Status - Active view in the Kofax Import Connector Message Connector Monitor for received messages in storage is described with tool-tips such as next retry if current transfer times out, time of transfer, time of transfer failure, or transfer confirmation time, depending on the state of the message.


The next retry if current transfer times out description is appropriate for the typical time shown (about one hour ahead of current time).


When KIC encounters certain errors, it will attempt to re-try the processing of a message to see if the error condition has been resolved. For these errors, KIC will attempt ten (10) retries of the message. There is a set delay between each retry. The delay depends on the break code of the error.


The default delays are:

  • 0 minutes (no delay) for BreakCode='1'
  • 1 minute for BreakCode='2'
  • 4 minutes for BreakCode='3'
  • 9 minutes for BreakCode='4'
  • 1 hour for BreakCode='5'

As can be seen in the information above, for a break code 5, there is a 1 hour delay. This can lead to a 10 hour delay before the message is seen as an error.


An example of an error that can fall into the retry condition is:
Failed to retrieve message content from server.


This retry behavior can be changed in the Create_Config.xslt file under C:\Program Files (x86)\Kofax\KIC-ED\Message Connector\xcd.


Before editing this file, make a backup copy.


The delay for each break code is configured within the <xsl:choose> element:


<xsl:choose>
<xsl:when test="BreakCode='1'">
<xsl:value-of select="tsl:time()"/>
</xsl:when>
<xsl:when test="BreakCode='2'">
<xsl:value-of select="tsl:time(,60)"/>
</xsl:when>
<xsl:when test="BreakCode='3'">
<xsl:value-of select="tsl:time(,240)"/>
</xsl:when>
<xsl:when test="BreakCode='4'">
<xsl:value-of select="tsl:time(,900)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="tsl:time(,3600)"/>
</xsl:otherwise>
</xsl:choose>

The time values are in seconds. To change the delay for a specific break code, simply replace the tsl:time value with the desired number of seconds.


The total number of retries for all break codes can be configured in the following section of the Create_Config.xslt file:


<xsl:when test="substring($tries,10,1)!=''">
<!-- reached retry limit: neg. terminated -->
<State>400</State>
<xsl:copy-of select="$starttime"/>
<xs:if test="not(General/KeepFailedInbound='1')">
<Delete/>
</xs:if>
</xsl:when>

The number of retries is configured here: ($tries,10,...


This is the default, which results in 10 retries. To change it to a specific number, replace 10 with the number of retries desired. For example, to configure 5 retries, change to ($tries,5,...

Additional Information


1) When batches fail they retry 10 times. How do these batches factor into the batchsize? Are batches included in the batch size if they are inbetween retries?


>> The Retries of failure messages will not be included in the batch size.


However, they will be included only if the retry of message is successful.


If such an error occurs on KIC the message won't be assigned to a batch. So KIC will perform the retries and assign it to a batch once/if it's successfully handled.

Only the problematic messages will be retried and this message is not assigned to a batch. The successfully imported message (after retries) will not be assigned to its initial batch instead it will be assigned to the current batch. It will be included in the current batch till the batch size is reached or batch timeout is expired.

2) What types of errors are assigned to each of the break codes based on the KB article?:

Below is the code snippet found in KIC code base. It indicates break codes 2 and 4 are not used.


/// Break codes to be used for particular reasons


ForShutdown = 1, // If there are some messages just fetched but shutdown invoked => delay with breakcode=1


ForConfigError = 3, // Config error (wrong batch class name, out or scan licenses ...)


ForViewMessageException = 5 // For exception after tws.ViewMessage call

So error that are not caused by shutdown or configuration issues will always result in a Break Code 5.

KB Article


https://knowledge.kofax.com/Capture/New_Articles/Scheduled_Column_in_KIC_Message_Connector_Monitor