Slow performance when processing scheduled activities due to SchedulingHelper.listScheduled method (Doc ID 2128822.1)

Last updated on JUNE 06, 2016

Applies to:

Oracle Business Process Management Suite - Version 11.1.1.7.0 and later
Information in this document applies to any platform.

Symptoms

If many timer events expire at the same time the performance of the server slows down and CPU utilization can approach 100%. In the thread dumps you'll notice the following stack trace occurring across many threads:


 

"orabpel.engine.pool-11.thread-1" id=268 idx=0x118 tid=3436 prio=5 alive, blocked, native_blocked
  -- Blocked trying to get lock: weblogic/utils/classloaders/ChangeAwareClassLoader@0x00000001CAB7C6B8[unlocked]
  at jrockit/vm/Threads.waitForUnblockSignal()V(Native Method)
  at jrockit/vm/Locks.fatLockBlockOrSpin(Locks.java:1411)
  at jrockit/vm/Locks.lockFat(Locks.java:1512)
  at jrockit/vm/Locks.monitorEnterSecondStageHard(Locks.java:1054)
  at jrockit/vm/Locks.monitorEnterSecondStage(Locks.java:1005)
  at jrockit/vm/Locks.monitorEnter(Locks.java:2179)
  at java/lang/ClassLoader.loadClass(ClassLoader.java:291)
  at java/lang/ClassLoader.loadClass(ClassLoader.java:247)
  at weblogic/utils/classloaders/GenericClassLoader.loadClass(GenericClassLoader.java:179)
  at weblogic/utils/classloaders/ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:43)
  at org/springframework/scheduling/quartz/ResourceLoaderClassLoadHelper.loadClass(ResourceLoaderClassLoadHelper.java:75)
  at org/quartz/impl/jdbcjobstore/StdJDBCDelegate.selectJobDetail(StdJDBCDelegate.java:897)
  at org/quartz/impl/jdbcjobstore/JobStoreSupport.retrieveJob(JobStoreSupport.java:1380)
  at org/quartz/impl/jdbcjobstore/JobStoreSupport$7.execute(JobStoreSupport.java:1372)
  at oracle/integration/platform/blocks/scheduler/FabricJobStoreCMT.executeInLock(FabricJobStoreCMT.java:449)
  at org/quartz/impl/jdbcjobstore/JobStoreSupport.executeWithoutLock(JobStoreSupport.java:3665)
  at org/quartz/impl/jdbcjobstore/JobStoreSupport.retrieveJob(JobStoreSupport.java:1369)
  at org/quartz/core/QuartzScheduler.getJobDetail(QuartzScheduler.java:1318)
  at org/quartz/impl/StdScheduler.getJobDetail(StdScheduler.java:561)
  at sun/reflect/GeneratedMethodAccessor2734.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;(Unknown Source)
  at sun/reflect/DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  at java/lang/reflect/Method.invoke(Method.java:597)
  at org/springframework/aop/support/AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
  at org/springframework/aop/framework/ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
  at org/springframework/aop/framework/ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
  at org/springframework/transaction/interceptor/TransactionInterceptor.invoke(TransactionInterceptor.java:106)
  at org/springframework/aop/framework/ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
  at org/springframework/aop/framework/JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
  at com/sun/proxy/$Proxy380.getJobDetail(Ljava/lang/String;Ljava/lang/String;)Lorg/quartz/JobDetail;(Unknown Source)
  at oracle/integration/platform/blocks/scheduler/QrtzSchedulerServiceImpl.listScheduledJobs(QrtzSchedulerServiceImpl.java:104)
  at oracle/bpm/bpmn/engine/model/runtime/util/SchedulingHelper.listScheduled(SchedulingHelper.java:143)
  at oracle/bpm/bpmn/engine/model/runtime/util/SchedulingHelper.printScheduled(SchedulingHelper.java:158)
  at oracle/bpm/bpmn/engine/model/runtime/util/SchedulingHelper.unschedule(SchedulingHelper.java:120)
  at oracle/bpm/bpmn/engine/model/runtime/microinstructions/MITimerEventDefineExpirationDate.unschedule(MITimerEventDefineExpirationDate.java:89)
  at oracle/bpm/bpmn/engine/map/builder/visitors/impl/compilers/TimerEventExpireGenerator$DoUnschedule.doExecute(TimerEventExpireGenerator.java:121)
  at oracle/bpm/bpmn/engine/microkernel/MIBase.execute(MIBase.java:34)


You may also see other threads like this:

"orabpel.engine.pool-11.thread-17" RUNNABLE
java.util.Properties.loadConvert(Properties.java:533)
java.util.Properties.load0(Properties.java:390)
java.util.Properties.load(Properties.java:341)
org.quartz.impl.jdbcjobstore.StdJDBCDelegate.getMapFromProperties(StdJDBCDelegate.java:935)
org.quartz.impl.jdbcjobstore.StdJDBCDelegate.selectJobDetail(StdJDBCDelegate.java:905)
org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveJob(JobStoreSupport.java:1380)
org.quartz.impl.jdbcjobstore.JobStoreSupport$7.execute(JobStoreSupport.java:1372)
oracle.integration.platform.blocks.scheduler.FabricJobStoreCMT.executeInLock(FabricJobStoreCMT.java:449)
org.quartz.impl.jdbcjobstore.JobStoreSupport.executeWithoutLock(JobStoreSupport.java:3665

 

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms