profile에 IDLE_TIME = 5로 설정이 되어 있습니다.
어떤 application 서비스가 구동이 되면서 10개 Oracle Session을 확보 해 놓는데, IDLE_TIME=5분으로 설정이 되어 있어서밀미리 확보해놓은 10개 세션중 IDLE TIME이 300 (5분)이 지난 Session에 할당 되면 ORA-02396 에러가 뜨면서 서비스가 죽어버리네요. (ORA-02396: exceeded maximum idle time, please connect again)
Profile 하나 더 만들어서 IDLE_TIME=unlimit 으로 설정하면 되는데, 회사 정책상 IDLE_TIME=unlimit으로는 불가능합니다.
따라서 IDLE_TIME = 5를 유지 하면서 특정 Sesson만 IDLE TIME을 주기적으로 reset 하는 방법이 있는지요? (IDLE TIMEOUT 방지를 위하여)
즉, SESSION IDLE_TIME이 300이 되기 전에 1분 단위로 IDLE TIME을 0으로 만드는 방법...... )
아니면 ptofile의 IDLE_TIME = 5를 유지 하면서 특정 Sesson의 IDLE TIME민 unlimit로 하는 방법이 있는지요 ???
개별 세션에서 주기적으로 db 에 의미없는 쿼리 (ex select 1 from dual ;) 를 날리는 방법은 사용 불가능한가요?
10개 세션은 서비스가 구동 되면서 확보해 놓는거라서요.....
세션 지정해서 Query를 날리는 방법이 있나요?
해당 세션을 확보한 서비스 ( 어플리케이션 ) 단에서 위 상준님이 말씀 하신대로
일정 주기로 쿼리를 날리는게 방법일듯 합니다..
WAS 같은 경우 보통 Checkquery 라고 하더군요..;;
상준님 말씀되로 와스 설정에 체크 하는 로직이 설정 가능합니다. 단 2분 한번정도 체크 하시면 될듯하군요