Translating with DrWatson… this can take a few seconds the first time.
This is a genuine, complex translation. DrWatson protects commands, error codes, and log output while naturally translating the surrounding text. It’s translated once and saved.
User needed to identify which session was holding database locks, but onstat -u grep didn't find owners shown in parentheses in lock output. Luis explained that parenthesized owner values represent shared memory addresses of transaction structures for global transactions, not regular user sessions. These should be cross-referenced with onstat -G output instead of onstat -u.
Auto-generated by DrWatson from the posts below — may be imperfect; read the full thread.
Hi,
I would like to ask how can I find the locking user using the data below
Locks
address wtlist owner lklist type tblsnum rowid key#/bsiz
347d61a8 0 (700000019709508) 70000001ca75ba8 HDR+X a00157 88305 K- 1 I
Normally, I would just onstat -u | grep owner then find the session culprit
then issue onstat -g ses or onstat -g sql to check the query it is using. But
unfortunately for the above data whenever I'm doing onstat -u | grep owner no
data was found. This only happens on owners inside the parenthesis.
Thanks in advance
↪ replying to LESTER POLICARPIO
LUIS MARQUES — — source: IIUG Forums & Mailing Lists
From the 11.50 "IBM Informix Dynamic Server Administrator's Reference", on the
onstat -k.
owner:
Is the shared-memory address of the thread that is holding the lock
This address corresponds to the address in the address field of onstat -u
(users) output. When the owner value is displayed in parenthesis, it
represents the shared memory address of a transaction structure. This
scenario is possible only when a lock is allocated for a global transaction.
This address corresponds to the address field of the output for onstat -G.
So when owner is displayed in parenthesis, it should be cross-referenced with
the output of onstat -G.
Hi Luis,
Thanks for the answer, is there a way to check the script being executed in
the global transaction of even the originator (actual program/application)
running? So if possible we can terminate the program from the originating
system?
We use strictly necessary cookies to make this site work. With your
consent we’d also use optional cookies for analytics and marketing. You can accept all,
reject all, or choose. Read our Cookie Policy.