In BRMS 6.4.6, System.setProperty("drools.timerJobFactory", "thread_safe_trackable") fails with IllegalArgumentException because THREAD_SAFE_TRACKABLE is not enlisted in resolveTimerJobFactoryType()
Caused by: java.lang.IllegalArgumentException: Illegal enum value 'thread_safe_trackable' for TimerJobFactoryType at org.drools.core.TimerJobFactoryType.resolveTimerJobFactoryType(TimerJobFactoryType.java:80) at org.drools.core.SessionConfigurationImpl.init(SessionConfigurationImpl.java:172) at org.drools.core.SessionConfigurationImpl.<init>(SessionConfigurationImpl.java:125) at org.drools.core.SessionConfiguration$DefaultSessionConfiguration.<clinit>(SessionConfiguration.java:49) ... 6 more
So, in order to use ThreadSafeTrackableTimeJobFactoryManager, we need to call SessionConfiguration.setTimerJobFactoryType().
KieSessionConfiguration kconf = KnowledgeBaseFactory.newKnowledgeSessionConfiguration(); ((org.drools.core.SessionConfiguration)kconf).setTimerJobFactoryType( TimerJobFactoryType.THREAD_SAFE_TRACKABLE ); KieSession ksession = kContainer.newKieSession("ksession-rules", kconf);