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:
- the number and complexity of scoring models
- the number and size of rules
- the number and size of look up lists
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:
- You might see a similar FATAL message in the log at other times, for a variety of reasons. The information and resolution that is presented in this SAS KB article apply only when the error occurs during the initial start-up or during redeployment of the SAS OnDemand Decision Engine.
- The error message incorrectly reports the time-out unit as milliseconds (ms) instead of seconds (s) in SAS Fraud Management 4.4M1 and 6.1M0. The unit is correct in the log message in release 6.1M0, Hot Fix 1.
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. . .