A bit more information. Looks like the issue is with having a lot jobs that execute quickly, which results in a lot of inserts and deletes, which then results in a lot of updates to the indexes. Having removed all the indexes in the jbpm_job table has greatly reduced blocking issues, but not eliminated them. Is there anyway to configure jbpm not to delete jobs, but just mark them as complete? I would rather have a cleanup script to remove completed jobs on a cycle and reduce index locking frequency.