안녕하세요 요즘 자주 질문 드립니다. 프로젝트가 막바지라 이해 바랍니다. ~
제가 하려는 작업은 세션이 접속될 경우 저희 모듈을 초기화 하고 세션오프 시에
자원 해제를 하려 합니다.
오라클처럼 세션이 로그인 , 로그오프 된경우에 트리거를 걸수 있는 방법이 없어서
여러생각을 해보다 몇가지 테스트를 해보고있습니다. 제가 하려는게 가능한건지 조언 바랍니다.
view 에 트리거를 걸기위하여 버젼은 9.1.0 입니다.
작업 방벙
1. 로그인 정보 테이블을 뷰테이블로 생성 합니다. (create table stat_activity select * FROM pg_catalog.pg_stat_activity)
2. 중복된 초기화와 자원 해제가 되지 않게 하기위하여 초기화후 pid 를 인서트 하고 해제후 pid 를 삭제 할수 있도록 pid 테이블 생성 ( create table procpid ( pid integer ); )
3. 인서트 정보가 들어올 경우 pid 테이블의 정보를 확인 후 인서트 된 pid 가 없을경우 초기화후 pid 테이블에 현재 입력받은 pid를 인서트 합니다.
4. 삭제 정보가 들어올 경우 입력 받은 pid 가 현재 자신의 pid 가 맞는지 확인후 맞다면 자원 해제후 pid 테이블에 입력받은 pid 를 삭제 합니다.
트리거 쿼리까지 생성시에 에러는 없이 생성이 됩니다.
다만 새 세션을 접속 했을경우 트리거가 동작 하지 않습니다.
로그에도 정보가 남지않아 동작을 했는지 동작중에 에러가 난건지 파악 하기 힙든 상황입니다.
위 작업 자체가 가능 한건지 부터 알고 싶습니다.
이상 입니다.
감사합니다.
|