Whenever possible, UpicReplay replays the communication exactly as it was during recording:
A UPIC thread that replays the relevant UPIC conversation of the UPIC client is generated for each UPIC PTERM/LTERM for which a trace record is found in the UPIC ReplayFile.
This UPIC thread runs in a loop that sends all the input messages to the UTM service in the same way as during recording, i.e. with the same data content and control flow. The procedure is similar for the retrieval of output messages from the UTM application. In this case, the content of the output messages is not checked.
Problems on replay
In the following cases, discrepancies occur between the recording and its reproduction on replay:
Incomplete recording
A UPIC conversation (i.e. a UTM service) was started before recording via BCAM trace was activated.
A corresponding message is output and all input messages from this started conversation for this client are discarded.
The UPIC client then searches the recording for the start of a new conversation for this UPIC client:
If a new conversation is found in the records recorded for this PTERM/LTERM then this client first waits in accordance with the recorded timestamps and then starts the load simulation from this point.
If no new conversation is found then this UPIC replay thread is terminated without communication with the UTM application.
Truncated service
During replay, a UTM service is terminated (normally or abnormally) after fewer communication steps than in the recording of the UTM application. This can occur:
if the application program is not able to process the recorded input data correctly because, for example, the input message contains time specifications which are rejected by the program as "late". The UTM service is therefore terminated prematurely.
if an impermissible UTM transfer admission is used during replay, e.g. missing UTM administration authorization.
In this case, a corresponding message is output and the UPIC Replay thread rejects further messages until it finds a new start of conversation for this client in the recording. The UPIC thread then continues at this start of conversation following a corresponding pause time or it terminates if no further conversation is found for this UPIC client.
Conversation too long
On replay, a UTM service has more communication steps than during recording.
The UPIC thread terminates this service abnormally by disconnecting the connection due to unrecorded input data. It also generates a specific warning.
The start of the next conversation for this client is then searched for in the recording. The UPIC thread then continues at this start of conversation following a corresponding pause time or it terminates if no further conversation is found for this UPIC client.
Incomplete input message
An input message could not be fully recorded due to the trace record length restriction, despite an effort to compress it during recording.
The record is rejected with a warning and the start of the next conversation for this client is searched for in the recording.
The UPIC thread then continues at this start of conversation following a corresponding pause time or it terminates if no further conversation is found for this UPIC client.
Other errors
Another, unexpected return code, not covered by the cases listed above, is reported at the UPIC program interface.
This situation can occur, for example, if the UTM application is either inaccessible or rejects the establishment of a connection.
In such cases, the UPIC thread outputs an error message.
The relevant UPIC thread is terminated without searching for new conversations for this client in the recording. All other UPIC conversations that are not directly affected by this problem continue to run unchanged.