Example: lr_set_transaction_instance_status
In the following example,the transaction instance "withdraw" measures the time it takes to perform a withdrawal from a bank server. When the server API call bank_withdraw() is completed, it returns a value to the status variable and the transaction instance is complete.
If the withdrawal fails, then lr_set_transaction_instance_status changes the default status for the transaction to LR_FAIL. The LR_FAIL status is automatically assigned to the LR_AUTO flag in the lr_end_transaction_instance statement because it uses the LR_AUTO flag.
long id; int status; int amount_overdrawn = get_amount_overdrawn(); /* Call to server API */ while (amount_overdrawn < LIMIT) { /* Notify that a transaction is starting */ id = lr_start_transaction_instance("withdraw", 0); status = bank_withdraw(500); /* Call to server API */ /* Set transaction status with operation result - pass or fail */
if (status != 0) /* Withdrawal failed */ lr_set_transaction_instance_status(LR_FAIL, id); lr_end_transaction_instance(id, LR_AUTO); amount_overdrawn = get_amount_overdrawn(); }