The SAS® OnDemand Decision Engine fails to start because the SAS® session times out


The amount of time that it takes for the SAS OnDemand Decision Engine to start initially or to redeploy rules depends on several factors, including the following: 

These items tend to grow over time, which might eventually prevent the SAS OnDemand Decision Engine from starting or redeploying. The issue is that the default time-out for starting the initial SAS session is 10 minutes. Once that time is exceeded, a FATAL error, similar to the one that is shown below, is written to the console.log (or ode.log) file:

2019-03-14T23:53:18,966 [main] FATAL OSE$Main
com.sas.finance.fraud.engine.sas.SharedMemoryBuffer$Timeout: 600 ms timeout waiting for a response from [key=5018]
        at
com.sas.finance.fraud.engine.sas.SharedMemoryBuffer.waitForResponse(SharedMemoryBuffer.java:168) ~[sas.finance.fraud.engine.jar:404101.3.0.20181205105600_f1rapt44]
        at
com.sas.finance.fraud.engine.sas.SharedMemorySAS$Primordial.waitForSAS(SharedMemorySAS.java:712)

Notes about this error message:

To resolve this issue, increase the time-out value in the ose.xml file. As highlighted in the following example, add the property config.StartSASTimeoutSeconds to the sharedMemorySAS bean. Increase the default value of 600 seconds to a value that enables the start-up to complete successfully.

<bean id="sharedMemorySAS" class="com.sas.finance.fraud.engine.sas.SharedMemorySAS">
   <property name="config.startCount" value="${SAS_PROCESS_COUNT}"/>
   <property name="config.StartSASTimeoutSeconds" value="600"/>
   . . .more code lines. . .