SAS Real-Time Decision Manager enables you to include scoring models in your decision flow arbitration. In order to use this functionality, you must place the models in both the Design repository and the Engine repository in the SAS® Management Console. If SAS® Decision Services does not find the model, it writes an error similar to the following:
2012-09-13 04:17:07,379 WARN 111 com.sas.rtdm.implementation.Engine - Execution faulted:
Activity Node name: YB1BJVLZWJHDQAAG_1, Activity name: Scoring,
Activity Method name: b75cba9c-0a15-13c5-7a11-220256aea65e,
Input parameters: EMPL_STATUS = [Name:EMPL_STATUS, Type:STRING, isArray:false, Value:F, Initial Value:[]],
AGE = [Name:AGE, Type:FLOAT, isArray:false, Value:34.0, Initial Value:[]], HANDSET_TYPE = [Name:HANDSET_TYPE,
Type:STRING, isArray:false, Value:SMART, Initial Value:[]], SEGMENT = [Name:SEGMENT, Type:STRING,
isArray:false, Value:P, Initial Value:[]], Output parameters: PROPENSITY = [Name:PROPENSITY, Type:FLOAT,
isArray:false, Value:null, Initial Value:[]]
Node: YB1BJVLZWJHDQAAG_1, type=activity, activityName: Scoring, activityMethod: b75cba9c-0a15-13c5-7a11-220256aea65e
Node: YB1BJVLZWJHDQAAG_1, type=activity, activityName: Scoring, activityMethod: b75cba9c-0a15-13c5-7a11-220256aea65e
com.sas.analytics.ph.RTDMException: Error executing activity
at com.sas.rtdm.implementation.EventExecutor.execute(EventExecutor.java:210)
at com.sas.rtdm.implementation.engine.ActivityNode._execute(ActivityNode.java:51)
at com.sas.rtdm.implementation.engine.ActivityNode._execute(ActivityNode.java:17)
at com.sas.rtdm.implementation.engine.SchedulableNode$1.call(SchedulableNode.java:86)
at com.sas.rtdm.implementation.engine.SchedulableNode$1.call(SchedulableNode.java:81)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.NullPointerException
at org.apache.commons.dbcp.PoolingConnection.normalizeSQL(PoolingConnection.java:266)
at org.apache.commons.dbcp.PoolingConnection.createKey(PoolingConnection.java:258)
at org.apache.commons.dbcp.PoolingConnection.prepareCall(PoolingConnection.java:149)
at org.apache.commons.dbcp.DelegatingConnection.prepareCall(DelegatingConnection.java:308)
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.prepareCall(PoolingDataSource.java:303)
at com.sas.rtdm.implementation.activity.sasactivity.DS2Activity.execute(DS2Activity.java:109)
at com.sas.rtdm.implementation.EventExecutor.execute(EventExecutor.java:203)
... 9 more
It is possible to configure SAS Decision Services to publish the models to the same DataFlux® Federation Server dsn. However, even when the two servers share the same dsn, the models must still be in both the Design Server and Engine Server repositories in metadata.