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);