Question
· Sep 6, 2023

How can I tell if (and how many) rollbacks have happened on a system

on red hat, but I would also be interested in a wider answer.

after running a benchmark for 40 minutes, I have been asked if any rollbacks occurred in that time. Rollbacks from SQL or objects.

The application does not record this, so I am looking for a system level record.

The journal entries do the necessary reverse sets and commit just like any transaction. So i don't think i can detect them there.

The SQL documentation says "Messages indicating that a rollback occurred, and errors encountered during the rollback operation are logged in the cconsole.log", but when I deliberately write code and do a rollback, I see no such messages. Is there a setting?

(The ObjectScript TROLLBACK documentation only says that rollback failures are logged)

thanks

Product version: IRIS 2023.2
$ZV: IRISHealth-2023.2.0.227.0
Discussion (4)1
Log in or sign up to continue

I expect transactions rolled back would be missing a TCOMMIT in the journal file. Walking the journal files and counting the TSTARTS vs TCOMMITS should give you a rough number. It could be off by the number of transactions that happened to be open at the start of the period. That error margin will vary significantly based on activity. 

Unfortunately, this is not the case, all transactions have to be closed anyway. 

In example below, I changed only one value and then used rollback, so, it changed it back and committed 

Missing TCOMMIT, would only mean, that transaction is still open, and it's a bad sign, which will be logged in messages.log, for a long opened transactions.

Hello David,

Both object script and SQL transaction rollback's are captured in log once you enabled the setting is true  System > Configuration > Compatibility Settings > Edit Compatibility Settings  for rollback log

USER>write $ZV
IRIS for Windows (x86-64) 2023.1 (Build 229) Fri Apr 14 2023 17:36:18 EDT
USER>tstart
 
TL1:USER>set ^TEST=1
 
TL1:USER>trollback

log entry