SUPPORT / SAMPLES & SAS NOTES
 

Support

Problem Note 57298: Background session IDs are lost when you execute campaigns or when you leave SAS® Customer Intelligence Studio sessions open

DetailsHotfixAboutRate It

Under some circumstances, background session IDs might become lost. This might happen when you execute campaign groups either via SAS® Marketing Automation Launcher (sasmalauncher) or when you click Execute Now in SAS Customer Intelligence Studio. This problem might also happen when you leave SAS Customer Intelligence Studio sessions open for a long amount of time with no interaction.

When this problem occurs, the following message appears in the SASCustIntlCore6.x log:

2015-11-06 13:55:56,534 DEBUG [CITaskCleanup-7] [] [] m.security.ejb.PerUserSessionSIDProvider - Decrementing counter on PerUserSessionSID: b75836b40a5f4341:56b91ce5:150dc98a03a:40f4 2015-11-06 13:55:56,534 DEBUG [CITaskCleanup-7] [] [] analytics.crm.security.ejb.MASessionCache - Decremented session counter for session ID: b75836b40a5f4341:56b91ce5:150dc98a03a:40f4 - 1 -> 0 2015-11-06 13:56:00,190 INFO [CIAsyncExec-366] [b75836b40a5f4341:56b91ce5:150dc98a03a:40f4] [B51314] analytics.crm.security.ejb.MASessionCache - Releasing session for user user-ID, loginId=user-ID, authDomain=DefaultAuth 2015-11-06 13:56:00,191 DEBUG [CIAsyncExec-366] [b75836b40a5f4341:56b91ce5:150dc98a03a:40f4] [user-ID] com.sas.analytics.crm.ma.ejb.MAConfigBean - Releasing all Flows associated with session b75836b40a5f4341:56b91ce5:150dc98a03a:40f4

In addition, the following error appears later in the SASCustIntelCore6.x log:

2015-11-06 13:59:08,745 ERROR [CIAsyncExec-363] [b75836b40a5f4341:56b91ce5:150dc98a03a:61b] [user-ID] .analytics.crm.cm.ejb.OptimizationHelper - Exception occurred in createOptimizationInputData() - errorMsg="session, id=b75836b40a5f4341:56b91ce5:150dc98a03a:40f4" com.sas.analytics.crm.error.client.UserException: session, id=b75836b40a5f4341:56b91ce5:150dc98a03a:40f4 at com.sas.analytics.crm.security.ejb.MASessionCache.getSession(MASessionCache.java:551) at com.sas.analytics.crm.security.ejb.MASessionHelper.getMASession(MASessionHelper.java:46) at com.sas.analytics.crm.custdata.datapattern.TaskDPVarProvider.<init>(TaskDPVarProvider.java:34) at com.sas.analytics.crm.custdata.datapattern.MAQuery.setExecutionContext(MAQuery.java:1408)

You might also see this error in the SASCustIntelCore6.x log:

2016-06-21 18:10:06,287 ERROR [CIAsyncExec-5] [fedd76ed91ab3600:2d45821c:155739d3742:38fe] [user-ID] lytics.crm.cm.ejb.CampaignGroupProxyImpl - Encountered client exception:The requested object no longer exists.

There is no solid rule with regard to when the error occurs because the background execution thread is used for all campaigns, campaign groups, and SAS Marketing Automation metadata generation. The error is completely related to timing.

As a workaround for this problem, you need to enable the following Java argument:

-Dsas.ci.ma.sharedsid.disable

When this argument is enabled, Java keeps the background session ID active.

To enable the Java argument in Microsoft Windows operating environments (where servers are started as Windows services):

  1. Navigate to the SAS-configuration-directory\Lev1\Web\WebAppServer\SASServer6_1\conf directory and open the wrapper.conf file.
  2. Add the new argument to the wrapper.conf file, as shown below:
    wrapper.java.additional.XX=-Dsas.ci.ma.sharedsid.disable

    In this argument, XX represents the next number in the sequence that already exists in the file. For the new argument, modify XX to be the next number in that sequence.

To enable the argument in Linux or other UNIX operating environments:

  1. Navigate to the directory that contains the setenv.sh file. This file is typically located in the SAS-configuration-directory/Lev1/Web/WebAppServer/SASServer6_1/bin directory.
  2. Add the highlighted argument to the setenv.sh file, as shown below:
    JVM_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8003,server=y,suspend=n -Xmx4096m -Xss256k -Xms1024m -XX:PermSize=768m -XX:MaxPermSize=1280m -d64 -XX:NewRatio=8 -XX:+UseConcMarkSweepGC -XX:+UseTLAB -XX:+DisableExplicitGC -XX:+CMSIncrementalMode -XX:+CMSClassUnloadingEnabled -XX:+UseCompressedOops -XX:ReservedCodeCacheSize=96m -Djava.awt.headless=true -Dcom.sas.services.logging.disableRemoteLogging=true -Dcom.sas.log.config.ignoreContextClassLoader=true -Dsas.svcs.http.max.connections=512 -Dsas.ci.ma.sharedsid.disable=true”

    Note: This SAS Note previously advised that you use the Java argument -Dsas.ci.debug.perUserSession.forceUseSourceSession. Because of performance issues with this Java argument, SAS Technical Support now advises that you use the argument that is highlighted above instead.

  3. After you add the argument, restart the SASServer6_1 web application server so that the setting can take effect.

Click the Hot Fix tab in this note to access the hot fix for this issue.

Note: After you apply the hot fix, the Java argument that you add in the workaround is no longer needed and should be disabled.



Operating System and Release Information

Product FamilyProductSystemProduct ReleaseSAS Release
ReportedFixed*ReportedFixed*
SAS SystemSAS Customer Intelligence Core Mid-TierMicrosoft® Windows® for x646.36.59.4 TS1M3
64-bit Enabled AIX6.36.59.4 TS1M3
64-bit Enabled Solaris6.36.59.4 TS1M3
HP-UX IPF6.36.59.4 TS1M3
Linux for x646.36.59.4 TS1M3
Solaris for x646.36.59.4 TS1M3
* For software releases that are not yet generally available, the Fixed Release is the software release in which the problem is planned to be fixed.