Stepping lets you advance the state of the Event Stream Processor when the system is paused.
You can advance a stream by a single step or multiple steps. To produce substantial changes, a stream may require multiple steps, so users may allow the system to run an entire transaction or run until the streams are quiesced. Users may also choose to run the system again, which runs normally until another breakpoint is triggered.
Automatic stepping does not function with breakpoints or bad row exceptions; any encountered breakpoints or bad row exceptions will be reported to Studio, but this will not stop the stepping.
The first auto step command, step trans, steps to the end of a transaction. This command does at least one common step, and then continues stepping as long as the stream stays in the COMPUTE location. The stream stops when it moves into the PUT or BAD_ROW location and allows users to examine the transaction's effect before committing or discarding it. Call step trans repeatedly to step past transactions.
If the execution blocks the INPUT or OUTPUT location for longer than 0.3 second, step trans stops.
The other auto-stepping commands are related to the concept of quiescence (running the streams until they have processed all the available input). These commands are:
Command | Function |
---|---|
step quiesce stream {streamName} | Automatically steps the stream and all of its direct and indirect descendants until they are quiesced (until all their input queues are empty). |
step quiesce downstream {streamName} | Only the stream's descendants are stepped: the stream itself is not. Use this command to clear out the descendant streams' input queues. When the argument stream produces its output, the progression of the data through the descendant streams can be easily traced. |
step quiesce from base | Automatically steps all derived (nonsource) streams until their input queues are empty. Use this command to clean out the queues of derived streams before processing an inconsistent record through the source stream. |
You can stop the Event Stream Processor from esp_client even when it is paused. The esp_client utility will unpause the Event Stream Processor and disable trace mode before stopping it.
Disabling trace mode also unpauses the Event Stream Processor.