SYMPTOM
When attempting to start the Enterprise Manager Data Load service on Strategy Secure Enterprise 10.x, the following error may be seen:
Enterprise Manager Data Loader service terminated with service-specific error %%-1
CAUSEOne possible cause is that there was a problem retrieving the project list from the Metadata. This can cause issues on service startup when trying to recover from a previously failed migration, even if the Data Loader service had previously worked fine.
In order to determine if this is the case, open the MAEntMgr.xml log(<MSTR_HOME_PATH>/Enterprise Manager) and a callstack similar to the following should be logged after the failure:
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.AbstractStringBuilder.deleteCharAt(AbstractStringBuilder.java:797)
at java.lang.StringBuffer.deleteCharAt(StringBuffer.java:443)
at com.Strategy.maem.dataload.CatchUpCommand.getProjectList(Unknown Source)
at com.Strategy.maem.dispatcher.RecoveryManager.addCommand(Unknown Source)
at com.Strategy.maem.dispatcher.DispatcherPool.recoverCommand(Unknown Source)
at com.Strategy.maem.dispatcher.RecoveryManager.restoreQueues(Unknown Source)
at com.Strategy.maem.dispatcher.DispatcherPool.attemptRecovery(Unknown Source)
at com.Strategy.maem.dispatcher.ExecutionManager.checkForRecovery(Unknown Source)
at com.Strategy.maem.emservice.EMService.start(Unknown Source)
ACTIONThe issue has been resolved in Strategy versions 10.5 and newer. Also, this issue will be addressed in an upcoming Hotfix on Strategy Secure Enterprise 10.4 scheduled to be released in Q2 2017.
WORKAROUNDThe following steps can be taken to work around the issue:
1) Empty EM_RECOVERY table(eg. DELETE from EM_RECOVERY)
2) Verify only 1 entry of IS_STATUS=0 exists in EM_IS_LAST_UPDATE table. It should have an EM_LUID of 1. If there are any additional entries, IS_STATUS must be updated to 1.
The Strategy Internal Reference Number for the issue discussed in this technical note is DE54541.