Apama 10.15.1 | Release Notes | What's New In Apama 5.3 | Backwards incompatibility with persisted projects recovered to 5.3 from older versions
 
Backwards incompatibility with persisted projects recovered to 5.3 from older versions
To support the new Queries feature in Apama 5.3, some internal (non-public) event definitions have been changed in ScenarioService.mon. The change will have no effect on most applications as this API is not officially supported or documented. However it may affect customers using a persistent correlator to maintain application state across an upgrade from Apama 5.2 (or earlier) to 5.3 (or later), if they also make use of scenarios, DataViews or the MemoryStore plug-in.
This is because the EPL that is recovered from the persistent store after the upgrade will use the older (pre-5.3) event definitions and these are not compatible with post-5.3 Scenario Service clients and dashboards, or with the MemoryStore plugin. As a result users may see event parsing failures logged by the correlator, and/or Scenario Service clients and dashboards reporting errors such as ScenarioService cannot parse event due to mismatch between the EPL event definition and the ScenarioService client.
In most cases it should still be possible to recover from a pre-5.3 persistent store without losing application state, provided the following actions are taken immediately after starting the correlator post-upgrade:
*If using DataViews and the DataViewService_Impl_Dict.mon monitor, delete it using engine_delete com.apama.dataview.DataViewService_Impl_Dict
*If using MemoryStore and the MemoryStoreScenarioImpl.mon monitor, delete it using engine_delete com.apama.memorystore.MemoryStoreScenarioImpl
*Delete any application Scenario definitions, using engine_delete Scenario_SCENARIO_NAME
Note that Scenario instances are never persistent so the state of any running Scenario instances would not be preserved across a correlator restart anyway.
*Delete the Scenario Service EPL using engine_delete com.apama.Scenario
*Re-inject the latest version of the Scenario Service from APAMA_HOME/monitors/ScenarioService.mon
*If using MemoryStoreScenarioImpl (see above), reinject the latest version from APAMA_HOME/monitors/data_storage/MemoryStoreScenarioImpl.mon
*If using DataViewService_Impl_Dict (see above), reinject the latest version from APAMA_HOME/monitors/DataViewService_Impl_Dict.mon
*Re-inject any Scenario definitions that are part of your application
*Send any events that are required to reinstantiate Scenario instances