When a connection is configured to use the batch marker function strings, statements are sent to the data server in the following order:
The rs_begin command is sent to the replicate data server first, either separately or grouped with the batch of commands, based on the configuration parameter batch_begin as it is with current functionality.
The rs_batch_start command is processed and sent only when use_batch_markers is configured to true.
The rs_batch_start marker is grouped with the commands being sent as a batch. Valid rs_begin and rs_batch_start function strings allows processing of both single and batched transactions to the data servers.
A batch of commands is sent to the replicate data server.
The size of the batch varies, and sending of the batch follows the existing rules for terminating the grouping and flushing of the commands to the replicate data server. These commands contain a command separator between each individual command.
The rs_batch_end command is the last command in the batch of commands. The rs_batch_end marker is sent only when the configuration parameter use_batch_markers is set to true.
The rs_batch_start, a batch of commands, and rs_batch_end may be repeated if more than one batch is required when commands have been flushed by limits such as dsi_cmd_batch_size.
After the final rs_batch_end command has been sent, the rs_commit command is sent to the replicate data server. The rs_commit is processed according to the present rules.