BSCM - Optimistic Transaction Lock error appearing in client when BSCM job is run

  • 7008293
  • 05-Apr-2011
  • 26-Jun-2012

Environment

Novell Operations Center Business Service Manager 4.7

Situation

An error as follows is seen in the formula trace file:
2011-03-22 23:34:11,842 WARN Server.BSCM - An unexpected exception occurred while generating views for "test_groups=All+Tests/alarms=Alarms/root=Organizations".  The error was: com.mosol.configstore.ConfigException: Optimistic transaction lock for object #7178 failed, type = com.mosol.configstore.impl.jdo.EntryImpl
com.mosol.configstore.ConfigException: Optimistic transaction lock for object #7178 failed, type = com.mosol.configstore.impl.jdo.EntryImpl
    at com.mosol.configstore.impl.jdo.AbstractConfigImpl$ConfigTransactionImpl.commitImpl(AbstractConfigImpl.java:807)
    at com.mosol.configstore.impl.base.BaseConfigImpl$BaseConfigTransaction.commit(BaseConfigImpl.java:412)
    at com.mosol.configstore.impl.wrap.ConfigImpl$ConfigTransactionImpl.commitImpl(ConfigImpl.java:1155)
    at com.mosol.configstore.impl.base.BaseConfigImpl$BaseConfigTransaction.commit(BaseConfigImpl.java:412)
    at com.mosol.Formula.ViewBuilder.server.action.Context.commitTransaction(Context.java:385)
    at com.mosol.Formula.ViewBuilder.server.action.Context.flushTransaction(Context.java:374)
    at com.mosol.Formula.ViewBuilder.server.Builder.fireActions(Builder.java:894)
    at com.mosol.Formula.ViewBuilder.server.Builder.processTargetMatchers(Builder.java:787)
    at com.mosol.Formula.ViewBuilder.server.Builder.buildWalk(Builder.java:643)
    at com.mosol.Formula.ViewBuilder.server.Builder.buildWalk(Builder.java:660)
    at com.mosol.Formula.ViewBuilder.server.Builder.buildWalk(Builder.java:660)
    at com.mosol.Formula.ViewBuilder.server.Builder.buildWalk(Builder.java:660)
    at com.mosol.Formula.ViewBuilder.server.Builder.buildWalk(Builder.java:660)
    at com.mosol.Formula.ViewBuilder.server.Builder.buildToSource(Builder.java:571)
    at com.mosol.Formula.ViewBuilder.server.Builder.buildImpl(Builder.java:407)
    at com.mosol.Formula.ViewBuilder.server.Builder.build(Builder.java:198)
    at com.mosol.Formula.Server.commands.ViewBuilder.doBuild(ViewBuilder.java:623)
    at com.mosol.Formula.Server.commands.ViewBuilder$Executor.execute(ViewBuilder.java:286)
    at org.quartz.core.JobRunShell.run(Unknown Source)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(Unknown Source)
Caused by: javax.jdo.JDOUserException: Optimistic transaction lock for object #7178 failed, type = com.mosol.configstore.impl.jdo.EntryImpl
    at com.objectdb.Logger.onError(Logger.java:675)
    at com.objectdb.jdo.TransactionImpl.commit(TransactionImpl.java:108)
    at com.mosol.configstore.impl.jdo.AbstractConfigImpl$ConfigTransactionImpl.commitImpl(AbstractConfigImpl.java:796)

Resolution

Unfortunately the optimistic lock is a known problem when something is running at the same time as a BSCM job.  The workaround is to make sure BSCM jobs that
interfere with each other are scheduled so they never run at the same time.
You can check by looking at the formula trace for entries like this:
- A scheduled BSCM job will show this:
2011-02-11 04:59:59,995 INFO Server.BSCM - Building views (scheduled invocation) for: org=TEST/root=Organizations (scheduled invocation)
2011-02-11 05:31:01,664 INFO Server.BSCM - Build complete for element org=TEST/root=Organizations; build took 1861.669 seconds

- A User performed BSCM job will show this:
2011-01-27 19:50:06,851 INFO Server.BSCM - User tbuild1 has invoked view generation for: org=TEST/root=Generational+Models/root=Services
2011-01-27 19:50:07,010 INFO Server.BSCM - Building views (manual invocation) for: org=TEST/root=Generational+Models/root=Services (manual invocation)
2011-01-27 19:51:47,596 INFO Server.BSCM - Build complete for element org=TEST/root=Generational+Models/root=Services; build took 100.586 seconds