quarta-feira, 27 de maio de 2009

Identificando Transação Aberta

Olá,

Muitos desenvolvedores 4gl necessitam saber se na sessão corrente existe uma transação aberta (begin work).

O primeiro passo é identificar o ID da sessão corrente através do comando dbinfo.

select dbinfo('sessionid') into wsid
from sysdual

Depois faça um acesso em sysmaster:sysrstcb (Rsam Thread Control Block) e identifique o endereço físico da sessão em memória:

select address into waddress from sysrstcb
where sid=wsid

Com este endereço procure algumas transação aberta onde o owner seja igual a waddress:

select bitval(flags,2) from systxptab where owner= waddress

Se a query retornar valor 1 quer dizer que na sessão especificada foi executado o comando BEGIN WORK.

Abrazos

Vagner

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.