cancel
Showing results for 
Search instead for 
Did you mean: 

Triggering BPM start gives lock error

russell_turner5
Explorer
0 Kudos

Hi experts,

We have a CE BPM process that works fine in our DEV system but errors in our TEST system We've tried undeloying/reimporting but still no good. It does have a normal start trigger and an immediate event within the process.We ae using CE 7.3 SP05 and get the following error:

run(): exception occurred
[EXCEPTION]
com.sap.engine.interfaces.webservices.runtime.RuntimeProcessException: Technical difficulties were experienced during process execution.
at com.sap.glx.adapter.app.ucon.UnifiedConnectivityAdapter.invokeProvisionedMethod(UnifiedConnectivityAdapter.java:1030)
at com.sap.glx.adapter.app.ucon.wsprov.GalaxyImplementationContainer.invokeMethod(GalaxyImplementationContainer.java:111)
at com.sap.engine.services.webservices.espbase.server.runtime.RuntimeProcessingEnvironment.process0(RuntimeProcessingEnvironment.java:730)
at com.sap.engine.services.webservices.espbase.server.runtime.OneWayProcessor.run(OneWayProcessor.java:68)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:185)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:302)
Caused by: com.sap.glx.core.kernel.api.TransitionRollbackException: Exception during prepare, rolling back
at com.sap.glx.core.kernel.mmtx.AbstractTransactionBase.rollback(AbstractTransactionBase.java:847)
at com.sap.glx.core.kernel.mmtx.AbstractTransaction.do_prepare(AbstractTransaction.java:202)
at com.sap.glx.core.kernel.mmtx.AbstractTransaction.commit(AbstractTransaction.java:81)
at com.sap.glx.adapter.app.ucon.UnifiedConnectivityAdapter.invokeProvisionedMethod(UnifiedConnectivityAdapter.java:1000)
... 7 more
Caused by: com.sap.glx.core.kernel.api.TransitionLockingException: Unable to certify lock GalaxyCowLock$LockImpl@53ce1334[state=0x1c/11100, owner=com.sap.glx.core.kernel.mmtx.PrimaryTransaction@400e5237[startTime=1387205989764, persistent=true, internal=false, interactive=true, commited=false, completed=false, closed=false, ended=false, endtime=0]] in ticket com.sap.glx.core.kernel.mmtx.PrimaryTransaction@400e5237[startTime=1387205989764, persistent=true, internal=false, interactive=true, commited=false, completed=false, closed=false, ended=false, endtime=0] for image Image:Request{ff553190-6405-11e3-aabd-00000087105e}xxxxxxxxxxxx(removed my ref) [matched, refCount=0][S].
at com.sap.glx.core.dock.storage.impl.StorageManagerImpl.prepare(StorageManagerImpl.java:362)
at com.sap.glx.core.kernel.mmtx.PrimaryTransaction.inPrepare(PrimaryTransaction.java:205)
at com.sap.glx.core.kernel.mmtx.AbstractTransaction.do_prepare(AbstractTransaction.java:200)
... 9 more


I've seen other similar posts but they were all 7.2 related. Please can anyone help?


Cheers,

Russ.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Russ,

I've seen weird locking issues but usually found un-deploying, rebuilding a newer version (just make a small pointless change to the BPM in NWDS to trigger a new activity) and then re-deploying usually fixes it.

If this doesn't help, is it worth checking the logs in NWA to see if there are any database issues with the system you are deploying to?

Cheers,

Gareth.

Answers (3)

Answers (3)

Former Member
0 Kudos

Hey,

Im having the same error, it is caused by a automatic task that was executed before the first human task in process. I make a workaround solution for this and now it works fine.

When i get the taksInstanceId i try to claim and release the task, if the code thows any exeption I keep trying. When it execute ok I do the rest of code.

The WORKAROUND is this.

private URI getTriggerTaskInstanceId(URI processInstanceId) throws InterruptedException {

  TaskInstanceManager taskInstanceManager = BPMFactory.getTaskInstanceManager();

  HashSet<Status> statuses = new HashSet<Status>();

  statuses.add(Status.READY);

  Set<TaskAbstract> myTasks = taskInstanceManager.getMyTaskAbstractsByParent(processInstanceId, statuses);

  if (myTasks.isEmpty()) {

  return null;

  } else {

  TaskAbstract task = myTasks.iterator().next();

  try{

  taskInstanceManager.claim(task.getId());

  taskInstanceManager.release(task.getId());

  return task.getId();

  }catch(Throwable t){

  SimpleLogger.traceThrowable(Severity.ERROR, LOCATION, "getTriggerTaskInstanceId", t.getMessage(), t);

  return null;

  }

  }

  }

former_member191643
Active Contributor
0 Kudos

Try checking the Java locks in the server's NWA for this service. If any present, release all locks.

russell_turner5
Explorer
0 Kudos

Thanks for replying

I have tried this but it made no difference. There are no instances of the process currently running.

former_member191643
Active Contributor
0 Kudos

Check the connectivity logs in NWA-->SOA

junwu
Active Contributor
0 Kudos

which step you got error?

russell_turner5
Explorer
0 Kudos

Thanks for replying.

This is triggering the start of the BPM both from Single-service admin and my calling application.

junwu
Active Contributor
0 Kudos

did it work before?

what change you have done?

if not big deal, just redo it.