Wednesday, May 5, 2010

IBM EAS Relationship Resolution Tip - Eliminate Pipeline Transport Deadlocks

(This tip is based on a system running IBM EAS Relationship Resolution version 4.2 on a Windows server using SQL Server 2005 for the RDBMS.)

I usually set up EAS with the pipelines running as a Windows service, using database tables for the input and output transports. The one issue with this configuration, though, is that when a deadlock occurs on the input transport table, the pipeline service will stop. To eliminate the deadlocks, execute the following SQL command:

sp_indexoption '[input transport table]','DisAllowPageLocks',1

where [input transport table]is the SQL server table containing the input UMF.

Normally the pipeline services do page locking on the input transport table when they mark records for processing, and when they delete the records after processing. If two services are trying to lock the same set of pages, a deadlock situation may occur. This command forces the pipeline services to use row level locking, rather than page locking. Since no two pipelines will process the same rows, no deadlock occurs, and the pipeline services continue running.

No comments:

Post a Comment