株式会社コーソル

KNOWLEDGE

コーソルの技術情報

コーソルでは経験豊かなエンジニアが、Oracle Databaseに関するお役立ち情報を発信しています。
データベースのチューニングや設定にお役立ていただけます。

KNOWLEDGE検索人気のキーワード

Oracle DB Tips

ORA-12170: TNS: 接続タイムアウトが発生しました。(TNS-12170)

01.ORA-12170(TNS-12170)エラーとはどのようなエラーか?

クライアントからデータベース・サーバーに対する新規接続処理が、タイムアウト時間内に完了しなかった場合に発生するエラーです。
同様の状況でTNS-12170が発生する場合がありますが、これらのエラーは同じ意味となります。

02.ORA-12170エラーのエラー出力例

SQL> connect scott/tiger@ora11202
ERROR:
ORA-12170: TNS: 接続タイムアウトが発生しました。

03.ORA-12170の一般的な発生要因と対処

ORA-12170が発生する背景には、以下の2つが考えられます。

  • ネットワークの構成、Oracle Netの構成に誤りがある
  • Oracle Netの新規接続処理に時間を要している

 

ネットワークの構成、Oracle Netの構成に誤りがある

ネットワークの構成、Oracle Netの構成に誤りがある場合、誤ったIPアドレスに対して接続を試みて、OSのTCP新規接続タイムアウト時間を超過したエラーで失敗した結果、ORA-12170の発生に至る場合があります。
原因は構成の誤りであるため、新規接続処理が毎回失敗します。この場合は構成の誤りを修正して対処します。

Oracle Netの新規接続処理に時間を要している場合

負荷の増加など主に偶発的な要因によって、新規接続処理に時間を要し、Oracle Netのタイムアウト設定に抵触してORA-12170の発生に至る場合があります。
新規接続処理は、リスナーの接続中継を経て、クライアントとサーバのネゴシエーションによって実現されます。また、ネゴシエーションはネットワークを介して実行されるため、クライアント、リスナー、サーバ、ネットワークの負荷を総合的な観点で調査して、問題を特定する必要があります。あわせて、アラートログ、リスナーログなどのログファイルにエラーが出力されていないかを確認してください。
負荷要因を特定し、負荷を軽減する対処を講じることがもっとも効果的なアプローチですが、エラー発生の回避を優先したい場合、Oracle Netのタイムアウト値を増加することもご検討ください。

04.ORA-12170に関するFAQ

Oracle Netのタイムアウト設定には何がありますか?
sqlnet.ora SQLNET.INBOUND_CONNECT_TIMEOUT (Oracle9i Net Services 9.2.0.2以降)

サーバー側のsqlnet.oraに設定することで、指定した時間以上経過してもデータベースのユーザ認証を完了できなかった場合セッションを強制的に終了することができます。
その際に「ORA-12170: TNS: 接続タイムアウトが発生しました。」を sqlnet.log ファイルに出力します。

sqlnet.ora SQLNET.OUTBOUND_CONNECT_TIMEOUT (Oracle Net Services 10g Relsease2以降)

クライアント側のsqlnet.oraに設定することで、新規接続処理に要する時間が設定時間を越えると、クライアントがtnsnames.oraのADDRESS_LISTの次のサーバーへの接続を試行させることができます。
ADDRESS_LIST 内のすべてのエントリに対する試行が設定時間を越えた場合は、クライアントにORA-12170が返り、接続処理が終了します。

sqlnet.ora TCP.CONNECT_TIMEOUT (Oracle Net Services 11g以降)

クライアント側のsqlnet.oraに設定することで、接続時(TCPのconnect()時)のタイムアウトをOSのタイムアウトより短くなるよう変更することができます。
TCPでの接続時にのみ有効となりその他のプロトコルでは有効とはなりません。

05.キーワード

ORA-12170 TNS-12170 ORA-12535 TNS-12535 タイムアウト TIMEOUT

この記事の監修者

監修者の写真

舛井 智行 (ますい ともゆき)

営業本部 企画&マーケティング部 次長

《資格》

Oracle Master Gold、Oracle RAC Expert、Linux Expert、LPIC Level1、Dbvisit Standby Certified Associate、基本情報技術者

《略歴》

2004年コーソル入社。2019年まで一貫してOracle Databaseの設計・構築・運用のサービス提供に従事。リモートDBAやリモート監視のサービス化、働き方改革プロジェクトで人事制度改革を手掛ける。2019年からライセンス販売強化のため企画&マーケティング部に異動。DbvisitやToad、DPAの取扱開始、販売促進活動を推し進め、ライセンス販売事業の売上拡大に注力中。

《主な著書》

オラクルマスター教科書 Gold DBA Oracle Database AdministrationⅡ
オラクルマスター教科書 Silver DBA Oracle Database Administration I
オラクルマスター教科書 Silver SQL Oracle Database SQL
Oracleの基本 ~データベース入門から設計/運用の初歩まで
プロとしてのOracle入門
Oracle Database 10g Oracle Enterprise Manager 逆引きクイックリファレンス

《担当者様からの一言》

コーソルはOracle Databaseの技術力において日本有数の知見を有すると自負しています。Oracle Masterの最高峰資格である『Oracle Master Platinum』の取得者数も日本No.1です。Oracle Databaseのことはもちろん、それ以外のDBについてもリモートDBAサービスを始めとした様々なサービス、製品を駆使してお客様のお困りごとを解消いたします。お困りごとがあればコーソルまでご相談ください。

監修者の写真

峯岸 隆一 (みねぎし りゅういち)

インフラソリューション部 市ヶ谷クラウドサービスチーム シニアエキスパート

《資格》

Oracle Master Gold、ORACLE MASTER Platinum、Oracle RAC Expert、
Oracle Database Cloud Service Oracle Infrastructure as a Service Cloud 2017 Implementation Essentials、
Oracle Cloud Infrastructure 2018 Architect Associate、
Oracle Cloud Infrastructure 2019 Architect Professional、
AWS Certified Solutions Architect – Associate、OSS-DB Silver、
MySQL 5.6 Database Administrator、基本情報技術者、テクニカルエンジニア(データベース)

《略歴》

2006年コーソル入社。2021年までOracle Databaseを中心にMySQLやGoldenGateなど、多岐にわたる製品のサポート業務に従事。2021年から企画&マーケティング部に異動し、Nutanix NDBサービス化、Qlik Replicateサービス化、AWS、OCIなど様々な製品のサービス化、クラウド環境上の製品検証、ブログ執筆を手掛ける。2023年からOCI技術に磨きをかけるべくOCI基盤の設計・構築業務を遂行中 。

《主な著書》

オラクルマスター教科書 Gold DBA Oracle Database AdministrationⅡ
オラクルマスター教科書 Silver DBA Oracle Database Administration I
オラクルマスター教科書 Silver SQL Oracle Database SQL  Oracleの基本 ~データベース入門から設計/運用の初歩まで

《担当者様からの一言》

コーソルはOracle Database製品および周辺製品において特化した技術力を有している会社です。また、育成にも力を入れており、新卒などOracle Databaseの知識がないエンジニアでも数年でOracle Master Platinumを取得するほどのエンジニアに育て上げることに成功しています。クラウド分野(AWS、Oracle Cloud)にも積極的に進出しておりますので、Oracle Databaseに関するサービスをご要望であればプラットフォーム問わず対応できるコーソルにご連絡下さい。