The service replay debugging feature allows you to replay actual service events that occurred in your service instance when your application ran in Symphony. You use service replay debugging when you want to debug without making changes to your application.
In the Symphony environment, the SIM starts a service instance and drives all of the service events that occur. The service replay debugging feature can capture those service events in a file, along with the original data that was passed to the service at each stage. The service replay debugging feature allows you to run your service from this file, no longer requiring a SIM to drive the service actions. Service replay debugging can drive the service instance in complete isolation, independent of Symphony or Symphony DE.
With service replay debugging, you can run your service binary directly from a command line, debugger, or integrated development environment (IDE) and step through the service code to find any errors in your service logic or in the service environment.
The service replay debugging feature makes it easy to debug a number of different scenarios:
Without service replay debugging enabled, the session manager and service instance manager logs indicate that a process exited while creating the service. You do not know why.
To debug, you use live service debugging (debugging while the service is running), and you modify the onCreateService code to:
This file contains the data required to replay actual service events that occurred on your service instance when your application ran in Symphony.
Environment scripts are used to simulate a service environment when you replay your service. When you run the environment script, the script sets the environment variables that were used when your service ran through Symphony.
Symphony adds a single reserved environment variable in the environment script called SOAM_SERVICE_EVENT_REPLAY_LOG, which specifies the SERL file that can be used to run your service. When the SOAM_SERVICE_EVENT_REPLAY_LOG variable is defined by the environment script, your service is driven by the service events logged in the SERL file that this variable references. If you do not run the environment script, this environment variable is not defined, and your service is driven by the service instance manager.
Service replay debugging is enabled by setting the debugSetting attribute in the Service section of the application profile.
For each method, the service events that are captured are listed below:
You configure service replay debugging for an error-handling event by setting the customizedDebugAction attribute for the event.
The environment under which the service replays is captured in the environment scripts. Depending on the command-line arguments used when running the script, the environment is different.