rwloadsim

Interrupting rwloadsim

If rwloadsim is being interrupted with SIGINT by a user hitting ctrl-c, a graceful termination is attempted. If there is outstanding SQL at the time, such SQL is likely to receive the ORA-01013 error and receiving this error sets an internal flag, which will make rwloadsim terminate. The same flag is also set if rwloadsim itself catches the interrupt generated by hitting ctrl-c. When the flag is set, all worker threads will terminate as quickly as possible, which may imply rolling back outstanding transactions; this specific behavior is however not guaranteed. It is the responsibility of the user to make sure any clean-up - if necessary - is done. Note that with many worker threads and/or many processes in a multi-process run, it is normal to see a sequence of RWL and/or ORA errors if ctrl-c is hit, but execution will normally terminate shortly after hitting ctrl-c.

If rwloadsim should not stop after hitting ctrl-c, you can hit ctrl-c multiple times, which will cause it to terminate using SIGTERM.

In rare cases, rwloadsim will not terminate, even after receiving multiple ctrl-c interrupts. In such cases, you can attempt using ctrl-\ (generating SIGQUIT), or use the kill (or killall) command to terminate the rwloadsim processes.

Note that if the directive $oraerror:stop is in effect, any ORA error (not only ORA-01013) will cause the internal termination flag to be set, which means that any ORA error in any thread will lead to process termination after a short time.

You can make rwloadsim treat an ORA-01013 like any other error, which means it will continue, by using the $ora01013:continue directive. Note that when doing so, you cannot interrupt rwloadsim, so use this with care.