아래의 내용이 원래 제가 질문한 내용입니다.
=================================================================================================
현재 DB2에 접속한 응용 자신의 세션정보를 알고싶습니다.
즉, 자기자신의 SESSION ID를 획득하는 쿼리를 알고 싶네요.
아래는 타사의 DB의 경우 사용하는 쿼리문을 나열했습니다.
오라클이나 인포믹스의 경우는 아래와 같은 쿼리로 가능한데, DB2에서도 가능한지 알고 싶습니다.
오라클> select to_char(userenv('SESSIONID')) from dual
MSSQL> select spid from master.dbo.sysprocesses where spid = @@spid
인포믹스> select DBINFO(\"sessionid\") from 'informix'.SysTables WHERE TabID = 1
아시는 분들은 답변 부탁드립니다. ^^
=================================================================================================
이 질문에 대해 답변이 아래와 같습니다. (답변해주신 박진복님 감사드립니다. ^^)
=================================================================================================
udb :
select CURRENT SCHEMA
from sysibm.sysdummy1
os/390 :
select CURRENT SQLID
from sysibm.sysdummy1
=================================================================================================
하지만 위의 질의로는 해당 접속 ID 또는 접속한 DB 이름만 획득할 수 있으며,
이 정보는 각 세션마다 사용할 수 있는 고유의 값이 될수는 없습니다.
이유는 서로 다른 응용이 서로 다른 세션으로 DB에 접속하여도 같은 DB나 같은 ID로 접속을 한다면
위의 정보로는 서로 다른 응용이 접속했다는 것을 알 수 없습니다.
저도 메뉴얼을 조금 공부하여 이것저것 찾아보다가 아래와 같은 테이블 정보를 알아내었지만
이 또한 분별해낼 방법을 몰라 고생하고 있습니다.
혹시 좋은 방법을 알고 계신분께서는 알려주세요. ^^
해당 질의문>
SELECT * FROM SYSIBMADM.APPLICATIONS;
이 질의를 이용하여 현재 접속한 응용의 여러 정보를 획득할 수 있습니다. 이 정보들 중 APPL_ID 나 AGENT_ID, CLIENT_PID 같은 경우가
제가 원하는 정보인 것 같은데, 해당 응용이 자신의 정보만을 획득할 방법을 잘 모르겠습니다. 좀 도와주세요. ^^ |