- TOP
- 技術情報
- Oracle DB Tips
- [12c R2] MAX_IDLE_TIMEパラメータ
KNOWLEDGE
コーソルの技術情報
KNOWLEDGE検索
コーソルでは経験豊かなエンジニアが、Oracle Databaseに関するお役立ち情報を発信しています。
データベースのチューニングや設定にお役立ていただけます。
コーソルの技術情報
KNOWLEDGE検索
コーソルでは経験豊かなエンジニアが、Oracle Databaseに関するお役立ち情報を発信しています。
データベースのチューニングや設定にお役立ていただけます。
Oracle DB Tips
長時間アイドル状態にあるセッションを自動的に終了するためのパラメータです。 セッションが、MAX_IDLE_TIMEで指定された時間(単位:分)アイドル状態を継続すると、そのセッションは自動的に終了されます。 このパラメータはOracle Database 12.2から導入されました。
MAX_IDLE_TIMEパラメータに1(単位:分)を設定すると、セッションが1分間以上アイドル状態を継続すると、セッションが強制終了されます。 ローカル接続時にMAX_IDLE_TIME分以上アイドル状態を継続した後にSQLを実行すると、ORA-03135エラーが発生します。
[oracle@lc201ora1 ~]$ sqlplus test/test@localhost:1521/c201ora.world SQL*Plus: Release 12.2.0.1.0 Production on 金 3月 24 17:40:04 2017 Copyright (c) 1982, 2016, Oracle. All rights reserved. 最終正常ログイン時間: 金 3月 24 2017 17:16:50 +09:00 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production に接続されました。 SQL> select * from dual; D - X SQL> --- MAX_IDLE_TIME 分以上 時間経過 SQL> select * from dual; select * from dual * 行1でエラーが発生しました。: ORA-03113: 通信チャネルでend-of-fileが検出されました プロセスID: 8546 セッションID: 15、シリアル番号: 10043
リモート接続時にMAX_IDLE_TIME分以上アイドル状態を継続した後にSQLを実行すると、ORA-03135エラーが発生します。
[oracle@lc201ora1 ~]$ sqlplus test/test@localhost:1521/c201ora.world SQL*Plus: Release 12.2.0.1.0 Production on 金 3月 24 17:46:29 2017 Copyright (c) 1982, 2016, Oracle. All rights reserved. 最終正常ログイン時間: 金 3月 24 2017 17:40:04 +09:00 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production に接続されました。 SQL> select * from dual; D - X SQL> select * from dual; select * from dual * 行1でエラーが発生しました。: ORA-03113: 通信チャネルでend-of-fileが検出されました プロセスID: 8872 セッションID: 15、シリアル番号: 40522
上記実行例からわかるとおり、アイドル時間の計測はあまり厳密ではないようです。
※ALTER SYSTEM SET文を用いてデータベース単位で設定されます。したがって、特定のユーザーに対してのみ、アイドルセッションの自動終了機能を適用するなどはできません。
※PDB単位で設定することができます。
※ALTER SESSION SET文を用いてセッション単位で設定することはできません。
※アイドル時間の計測はあまり厳密ではないようです。
Oracle Database 12.1以前では、長時間アイドル状態にあるセッションを自動的に終了するための仕組みとして、以下の2つが用意されていました。
※リソースマネージャ
※プロファイル 上記の仕組みはともにMAX_IDLE_TIMEよりも柔軟性の高い仕組みです。特にリソースマネージャは柔軟性の高さにより、さまざまな状況に適用することができます。 一方で、MAX_IDLE_TIMEは上記の仕組みに比べて、柔軟性が低く、適用できる状況が限定されます。このため、MAX_IDLE_TIMEは、アイドルセッションの自動終了する動作を簡易的に使いたい場合に使用する機能と考えられます。
※MAX_IDLE_TIME – OracleR Databaseリファレンス 12cリリース2 (12.2) E72905-02 [http://docs.oracle.com/cd/E82638_01/REFRN/MAX_IDLE_TIME.htm#GUID-9E26A81D-D99E-4EA8-88DE-77AF68482A20]