Once a session has been identified, the MQL command kill transaction session SESSION_ID can be used to mark the transaction as aborted. This command does not kill the thread. Only after the code path executed by the thread or a print transaction command checks the transaction status is the thread killed. For example, if the monitor server output shows: Session Od6io9i3vFQxq15QCAXJtiT:mx14237257883bce03e:(_emxRunMQL.java:629) To mark the transaction as aborted, use: mql< > kill trans session Od6io9i3vFQxq15QCAXJtiT:mx14237257883bce03e:(_emxRunMQL.java:629) If the dispatch for the session is active, a warning is displayed: #0 Warning #4000056 Transaction for session SESSION_ID will be aborted. The system then makes an attempt to abort the transaction. If just before you issue the kill command, the transaction completes and a new dispatch starts for this session ID, the command will interrupt the wrong dispatch. If the transaction was reading from the database when the kill command was executed, the following message is added to mxtrace.log or the ClientTaskList: System Error #1400020 Transaction was aborted by 'kill transaction' command while reading from the database. Note:
A programmed infinite loop in a Tcl or Java program cannot
be stopped with the kill transaction command if that
loop is not interacting with the kernel.
|