Question / Problem:
When attempting to publish a Batch Class with a Kofax Analytics for Capture (KAFC) workflow agent included, then an error is received and the Batch Class is not published successfully and an error is returned, as follows:
Validating batch integrity...
Checking for errors...
Can't send publish data to Analytics.
0 warnings; 1 error
Publishing aborted: BatchClass
There were 0/1 successfully published batch classes.
Troubleshooting the Test Connections from the KAFC Workflow Agent and Listener are successful and the Insight Dashboard View is accessible. Similarly, Kofax Capture ERR Log is not shown with any related errors but, the KAFC Listener Logs are shown with a related error.
How can this issue be resolved to allow the Batch Class to publish successfully?
Answer / Solution:
The issue encountered during the Batch Class publishing can be due to the configured IIS DefaultAppPool Identity.
An example of the error in the Listener Log is below:
2017-11-14T13:19:09.0180907-05:00, Can't send publish data to Analytics: System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: Can`t open connection to database. Login failed for user 'DOMAIN\IIS_USER'. (Fault Detail is equal to An ExceptionDetail, likely created by IncludeExceptionDetailInFaults=true, whose value is:
AltoSoft.Insight.DBCore.AltoSoftDBException: Can`t open connection to database. Login failed for user 'DOMAIN\IIS_USER'. ----> System.Data.SqlClient.SqlException: Login failed for user 'DOMAIN\IIS_USER.
at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling)
at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
At least one case using two KAFC Listeners and a Load Balancer had a specific Application Pool Identity for the DefaultAppPool. Once that Identity was updated to match the explicit Domain User and an IIS Reset was completed, then the error was no longer received during Batch Class publishing.
Steps to Resolve:
- Access the Application Pools for each of the KAFC Listeners such as with INETMGR
- Right-Click on the KAFC Listener and select: Set Application Pool Defaults...
- Scroll To & Expand: Process Model
- Set the 'Identity' to the Domain/User or 'Network Service' & click OK to save changes
- Complete an IISRESET on each of the affected Listeners