Performing a redeploy or reloading a list in SAS Fraud Management SAS OnDemand Decision Engine might fail due to the unavailability of shared memory keys.
As a result, error messages similar to the following occur in the SAS OnDemand Decision Engine log file.
com.sas.finance.fraud.engine.client.ConfigurationException: Could not find unused shared memory key: 5028-5036
A production SAS OnDemand Decision Engine host can contain more than one SAS OnDemand Decision Engine if you implement the horizontal clustering of SAS OnDemand Decision Engine. In addition, you can install and run several SAS Fraud Management environments or SAS OnDemand Decision Engines on a single, non-production environment.
As a result, there is a chance that a shared memory key of one SAS OnDemand Decision Engine (or a value closer to it) is used as the SAS_SHM_KEY for the other SAS OnDemand Decision Engines in the same SAS OnDemand Decision Engine host.
The allocation of keys during an SAS Fraud Management SAS OnDemand Decision Engine redeploy or reloading of a list is sequential.
After several redeploys or reloads of list, there might be a time when the shared memory key that one SAS OnDemand Decision Engine needs is already being used by another SAS OnDemand Decision Engine. As a result, SAS OnDemand Decision Engine fails to redeploy or reload the list.
Note: This issue occurs in the SAS® Fraud Management 4.3, SAS® Fraud Management 5, SAS® Fraud Management 6.1, and SAS® Fraud Management 6.2 releases.
To circumvent the failure to redeploy SAS OnDemand Decision Engine or reload a list, submit the following command to shut down any redeploy or reload of lists:
./ose.sh stop kill clean start
Note that shutting down SAS OnDemand Decision Engine will impact the availability of the overall system, so stopping and starting SAS OnDemand Decision Engine will not always be the convenient approach.
Therefore, it is advisable to renumber or update the SAS_SHM_KEY property in ose.properties for SAS OnDemand Decision Engine in the same host and stop and start SAS OnDemand Decision Engine.
Here is an example:
In this scenario, there are 32 SAS OnDemand Decision Engine SAS processes. The SAS OnDemand Decision Engine redeploy or reload of a list completes every 30 minutes. As a result, (32 * 2 * 24) = 1536 keys would be consumed in a day. (That is, 276,480 keys in six months.)
Set SAS_SHM_KEY = 1005018 for SAS OnDemand Decision Engine1.
Set SAS_SHM_KEY = 1305018 for SAS OnDemand Decision Engine2.
Set SAS_SHM_KEY = 1605018 for SAS OnDemand Decision Engine3.
Set SAS_SHM_KEY = 1905018 for SAS OnDemand Decision Engine4.
Set SAS_SHM_KEY = 2205018 for SAS OnDemand Decision Engine5.
Set SAS_SHM_KEY = 2505018 for SAS OnDemand Decision Engine6.
Set SAS_SHM_KEY = 2805018 for SAS OnDemand Decision Engine7.
Set SAS_SHM_KEY = 3105018 for SAS OnDemand Decision Engine8.
In most of the SAS Fraud Management installations, SAS OnDemand Decision Engine restarts at least once every six months for maintenance.
Therefore, with a separation of 300,000 in the SAS OnDemand Decision Engine SAS_SHM_KEY keys, the SAS OnDemand Decision Engine keys will not collide for more than six months if the following conditions are met: