ok... a very very resumed answer...
First, what do you understand about LOGICAL LOGs ??
SIMPLE ANSWER: LOGICAL LOGs are a rotate logs that contain all information of all transactions executed in the IDS instance, and this propose are lot things, but the mainly are:
- Permits a transaction database (begin work / commit / rollback )
- In case of crash of database/machine, permits recover the IDS instance to the last situation minutes before the crash.
You can monitor the rotate behave with command "onstat -l " looking in "uniqid" column.
To monitor what transactions are open and what logical log are started, use the command "onstat -x" , column "log begin" (=uniqid)
That said, now think about this situation.
- A user start a transaction
- this user begin a big update, over a table with more than 100 millions of rows and changing all rows...
- all modification (before image/after image) of this rows will be logged in the Logical Log , imagine how much Mbytes are logged...
- now, think if in the last row to be update, the transaction are aborted... a rollback will be started...
Transaction X logical log
now, if your logical log are configured with 1GB of space, and this table have a amount of 80G... think how will work the rotate logical log , where will be the "log begin" of this transaction? probably it already overwritten ... so, how the IDS will execute a rollback if it don't have the first log (log begin) ?
For this situations , exists the "long transaction".
If you have 1GB of Logical Log, you cannot have a unique transaction what use more than 1GB of Logical Log data, and to tunning this , the LTXHWM and LTXEHWM are used.
LTXHWM = percent of logical log used by a unique transaction.
LTXHWM = percent of logical log used to start a exclusive access
let's say you have 1GB of Logical Log and LTXHWM = 80 (%) and LTXEHWM = 90, so your transactions cannot pass 800MB of data , when reach this limit a "long transaction" occur and a rollback start automatically . But a rollback need to use the logical log too, so if the rollback reach the 900M (90%) , all other threads are stopped and the rollback have grant to exclusive access to logical log, to avoid it become full...
Parameters involved in this situations are Dynamic_logs .
Just a note: in this example , when I said "a limit of 800MB of data for unique transaction", isn't exactly this what I mean. The Logical log are shared with ALL logged databases... so in this 800MB , you must count the data of others users transactions...
I believed this answer are practically the same what are in the manuals... so...