Problem :
The issue what we were getting while Product sync. Whenever any product sync got failed due to any valid issue (product already exists, Product not found) the transaction is not getting closed. As a result even if after correcting, if we try to sync the same or other products all of them getting failed with the same error. We found one workaround that is after restarting SOA Manage Server & DB restart issue is not coming anymore. But again once there is any valid error while product sync, subsequent all request are getting failed.
Cause :
Trnsactions was not getting closed after Throw. As a result all the subsequent request are causing DB_Lock.
Solution :
Ideally timeout parameters should be set as below :
syncMaxWaitTime < BPEL EJB's transaction timeout < Global Transaction Timeout (JTA timeout) < DISTRIBUTED_LOCK_TIMEOUT
1. SyncMaxWaitTime already tune to 240sec.

2. EJB level timeout setting :
BPELActivityManagerBean (300sec)
BPELDeliveryBean (300sec)
BPELDispatcherBean (300sec)
BPELEngineBean (300sec)
BPELFinderBean (300sec)
BPELInstanceManagerBean (300sec)
BPELProcessManagerBean (300sec)
BPELSensorValuesBean (300sec)
BPELServerManagerBean (300sec)
3. JTA time out already set as 360sec also Abandon Timeout Seconds as 400sec.
4. We can increase this more than 360 (more than JTA timeout). We made it 405sec which is just more than Abandon Timeout.
The issue what we were getting while Product sync. Whenever any product sync got failed due to any valid issue (product already exists, Product not found) the transaction is not getting closed. As a result even if after correcting, if we try to sync the same or other products all of them getting failed with the same error. We found one workaround that is after restarting SOA Manage Server & DB restart issue is not coming anymore. But again once there is any valid error while product sync, subsequent all request are getting failed.
Cause :
Trnsactions was not getting closed after Throw. As a result all the subsequent request are causing DB_Lock.
Solution :
Ideally timeout parameters should be set as below :
syncMaxWaitTime < BPEL EJB's transaction timeout < Global Transaction Timeout (JTA timeout) < DISTRIBUTED_LOCK_TIMEOUT
1. SyncMaxWaitTime already tune to 240sec.

2. EJB level timeout setting :
BPELActivityManagerBean (300sec)
BPELDeliveryBean (300sec)
BPELDispatcherBean (300sec)
BPELEngineBean (300sec)
BPELFinderBean (300sec)
BPELInstanceManagerBean (300sec)
BPELProcessManagerBean (300sec)
BPELSensorValuesBean (300sec)
BPELServerManagerBean (300sec)
3. JTA time out already set as 360sec also Abandon Timeout Seconds as 400sec.
4. We can increase this more than 360 (more than JTA timeout). We made it 405sec which is just more than Abandon Timeout.