When online abnormally ends, the information that describes why online goes offline is written to the log, and the following example is logged in the system log at the end of online:
Processabortedabnormally:pid=22500user=210us=c003f15cflags=a01
Processabortedabnormally (critialsection):p ID=22500USER=210FLAG=A01
Informix-onlineenteringabortmode!!! informix-onlinestopped
Log entries show that a Sqlturbo process that enters a critical state ends abnormally, a critical state is the term used by a process to execute write calls that cannot be interrupted. If a process is in a critical state and the end is not normal, online to protect the integrity of the data into the offline mode. A quick recovery is performed when online restarts, and all outstanding transactions are rolled back.
If the process that holds the latch (latch) is not finished properly, online will also end abnormally. Latches are used to control access to shared memory resources such as buffers, locking tables, and so on. To prevent interference with other processes requesting shared memory resources, Informixonline Controls access to resource tables with latches.
Although the online background process cleans up the aborted process on a daily basis, data consistency prevents the background process from releasing the shared memory latch during the cleanup process. For background processes, it is not possible to determine whether a user process has completed modifications to the database. To liberate this with a dilemma, online forces itself into the offline way. Fast recovery occurs automatically when online is back on line. Quick Restore enables online to achieve the same status as the last completed transaction.
When the process that holds the latch ends, the following entries are generated:
Processabortedabnormally:pid=10743user=104us=60204cflags=21
processabortedabnormally (latch):p id=10743user=104flags=21
Informix-onlineenteringabortmode!!!
--onlineaborting--us=6019a8,pid=11987,uid=1000
The information provided by these log entries is useful in determining why the process ended abnormally, and the fields in the entry are defined as follows:
PID---------Sqlturbounix Process ID
User--------True UserID
US----------the address of the user structure in shared memory
Flags-------defined as follows
0x0000001------0X0000001 user structure in use
0x0000002------0x0000002 Waiting latch
0x0000004------0x0000004 Wait for lock
0x0000008------0x0000008 Wait Buffer
0x0000010------0x0000010 waiting for checkpoints.
0x0000020------0x0000020 waiting for read calls
0x0000040------0x0000040 Write logical logs to archived tracks
0x0000080 waiting for clear long transaction
0x0000100------0x0000080 Specific Turbo detection user
0x0000200 in transaction
0X0000400 process is rolling back
The process of 0x0000800------0x0000100 in critical state continues ...
0x0001000------0x0000200 A specific background process
0x0002000 Start work Log registrations
0x0004000------0x0000400 Archive
0x0008000------0x0000800 Clear the dead process
0x0020000------0x00002000 A specific buffer flush process
0x0010000------0x0002000 Wait for logical buffer writes
0x0040000------0x0004000 The process is a remote server
0x0080000 The process is completing a remote task
0x0100000------0x0008000 Deadlock Timeout
-----------0x00010000-----Normal lock timeout
-----------0x00020000-----Timeout Wait period has ended
-----------0x00040000-----Waiting for a transaction
In the above log entries, the UNIX process ID of the Sqlturbo process is 10743, the real user ID is 104, the address of the user structure in the shared memory is 0x60204c, the flag indicates that the user structure is in use, and the online engine is in a read call (0x00000001 , &0x00000020).
This information identifies an abnormally terminated user, identifies whether he or she has encountered an unexpected error, or in some way causes the abnormal end of the process. Users should not use the kill-9 command for the Informix process. An administrator can use the Onmode-zpid command to abort a Sqlturbo thread. If the process is holding a latch or is in a critical state, the Tbmode command does not immediately abort the process.