Products | Versions |
---|---|
TIBCO Administrator | - |
Not Applicable | - |
Resolution:
Description:
============
Lock errors are received when running multiple instances of Appmanage -deploy to carry out parallel deployments.
Environment:
===========
TIBCO Software(s): Administrator 5.7
Symptoms:
========
The following errors can be found in the relevant logs.
ApplicationManagement.log
"... com.tibco.pof.entity.EntityLockedException: User XXXX failed to lock object with name YYYY. Object was locked by XXXX
at com.tibco.pof.entitystore.AbstractEntityStore.acquireLock(AbstractEntityStore.java:826)
at com.tibco.pof.entitystore.AbstractEntityTransaction.maybeLockEntityInternal(AbstractEntityTransaction.java:107)..."
Administrator.log
"... java.sql.SQLException: ORA-00001: unique constraint (ADXXX.ADENTITYLOCK_PK) violated"
Cause:
=====
This is a race condition problem where one instance of Appmanage owns the lock on the Application Folder.
Deployment scenario example:
Appmanage instance 1 is deploying APP_FOLDER_A/test1
Appmanage instance 2 is deploying APP_FOLDER_A/test2
Appmanage instance 3 is deploying APP_FOLDER_A/test3
Note that the same errors may not have been experienced in earlier versions of Administrator due to less secure checks being available.
Resolution:
==========
Running multiple instances of "Appmanage -deploy" is not recommended. Instead, use batch deployment.
There are currently two options available:
1). Use "Appmanage -BatchDeploy"
This is the recommended approach because the applications will be deployed in serial and as such no locking error will occur. The main benefit of using -BatchDeploy is that the initialization phase of all applications is done at the same time instead one at a time.
2). Deploy each application in individual folders. This will ensure that the threads are not competing for the same object.
References:
==========
TIBCO Runtime Agent™ Scripting Deployment User’s Guide->Chapter 3 Using AppManage in Batch Mode