SAS® OnDemand Decision Engine connectors do not resume when the Multi-Entity History database is available after an outage


After a Multi-Entity History (MEH) database outage, SAS OnDemand Decision Engine disables the connectors. When the MEH becomes available, the connectors are not recovered, and incoming transaction processing does not resume. You must restart SAS OnDemand Decision Engine to begin processing transactions.

A new property (config.closeSocketOnReconnectFailure) is available with SAS® Fraud Management 6.1_M0 Hot Fix 10.

If you add the property to the ose.xml file and set the property value to false, the input socket remains open after an MEH failure. In this scenario, you are not required to restart SAS OnDemand Decision Engine to resume transaction processing.

If you do not add the property to the ose.xml file or set the property value to true, the connectors are disabled when the MEH becomes unavailable. In this scenario, you are required to restart SAS OnDemand Decision Engine to resume transaction processing. This behavior is the current and default behavior.

Here is an example snippet of the ose.xml file with the property value set to true:

    <bean id="sqlMEH" class="com.sas.finance.fraud.engine.meh.sql.SQLMEH">
        <constructor-arg name="database" ref="#{mehDatabaseName}" />

        <!-- Modify beans selectStoredProcedureEnabled and updateStoredProcedureEnabled to set stored procedure usage  -->
        <property name="config.selectStoredProcedureEnabled" value="#{'postgresql'.equals(mehDatabaseName) ? false : selectStoredProcedureEnabled}" />
        <property name="config.updateStoredProcedureEnabled" value="#{'postgresql'.equals(mehDatabaseName) ? false : updateStoredProcedureEnabled}" />

        <property name="config.connectionURL" value="${MEH_JDBC_URL}" />
        <property name="config.sqlLockEnabled" value="${SQL_LOCK_ENABLED}" />
        <property name="config.closeSocketOnReconnectFailure" value="true" />

        <property name="config.connectionProperties">
            <props merge="true">
                <!-- DB2 exception full message text -->
                <prop key="retrieveMessagesFromServerOnGetMessage">true</prop>
            </props>
        </property>

    </bean>

Note: After making changes to ose.xml, you must restart SAS OnDemand Decision Engine for the changes to take effect.