接続タイムアウトの原因は?

「応答時間が長すぎます」の表示で特定のサイトにログインできない不具合が出ることがあります。この原因と対処法を紹介します。このエラーは主にはネットワークのタイムアウトが想定されます。その中での主たる要因の切り分けと、その場での対応方法を解説します。

目次

  • 1 「応答時間が長すぎます」が表示される理由
    • 1.1 ネットワークの接続タイムアウトエラー発生
    • 1.2 タイムアウト以外のネットワーク障害もある
  • 2 「応答時間が長すぎます」が表示される原因と問題の切り分け
    • 2.1 【原因】①当該サイトのサーバ側の不具合
    • 2.2 【原因】②ネットワークプロバイダ側の不具合
    • 2.3 【原因】③ルータなどネットワーク機器の不具合

「応答時間が長すぎます」が表示される理由

接続タイムアウトの原因は?

それでは、まず「応答時間が長すぎます」が表示される理由を詳しく確認していきましょう。主な理由は2つのケースが考えられますので、一つ一つ見ていきましょう。

ネットワークの接続タイムアウトエラー発生

接続タイムアウトの原因は?

インターネットを閲覧中に、とあるサイトを開こうと思った時に、上のような画像になり、「このサイトにアクセスできません。○○○○.○○(サイトのアドレス)からの応答時間が長すぎます。」と表示され、開こうと思ったサイトを閲覧することができないケースがあります。このような表示の理由は、インターネットの接続が遅く、ネットワークの接続タイムアウトエラーが発生したという可能性があります。

タイムアウト以外のネットワーク障害もある

「応答時間が長すぎます」のエラーメッセージが表示される理由には、タイムアウト以外のネットワーク障害もあります。指定されたアドレスが存在するものの、TCPポートもしくはUDPポートに対する「接続拒否」の状態になっている、という可能性もあるようです。

「応答時間が長すぎます」が表示される原因と問題の切り分け

接続タイムアウトの原因は?

それでは、「応答時間が長すぎます」というエラーメッセージが表示される原因と問題の切り分けに関して確認していきます。主に原因は5つ考えられますので、ひとつひとつ詳しく見ていきましょう。

【原因】①当該サイトのサーバ側の不具合

「応答時間が長すぎます」というエラーメッセージが表示される原因として考えられる1つめが、当該サイトのサーバ側の不具合があります。表示したいサイトのあるサーバに何らかの問題が生じていて、応答に時間がかかっている可能性があります。問題の切り分け方ですが、まず他のサイトにアクセスしてみてください。他のサイトには問題なくアクセスできる場合は、当該サイトのサーバの不具合が考えられます。

【原因】②ネットワークプロバイダ側の不具合

「応答時間が長すぎます」というエラーメッセージが表示される原因として考えられる2つめです。ネットワークブロバイダ側に何らかの問題が生じていて不具合が起きていて、応答に時間がかかっている可能性があります。問題の切り分け方ですが、ネットワークに接続しているすべてのデバイスが同様の表示が出るようであれば、ネットワークプロバイダ側の不具合という可能性が高くなります。

【原因】③ルータなどネットワーク機器の不具合

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

インターネット接続タイムアウトの原因は?

原因①】ネットワークの接続タイムアウト では、何故サーバーからの応答がない状態になってしまうのか、その原因はネットワーク接続に不具合が起きているためだ。 ネットワーク接続の不具合とは、Wi-Fi接続インターネットサイトを閲覧した際、Wi-Fiの電波状況が悪いために、応答時間が長すぎますという不具合が起きる。

接続要求がタイムアウトって何?

要求タイムアウト」プロパティー、サーバーがあるクライアントへの接続を受け付けからそのクライアントから情報を受け取るまでに待機する秒数を指定します。 デフォルト設定 30 秒です。 ほとんどの状況下では、この設定を変更する必要ありません。

タイムアウトエラーって何?

サーバーやコンピューターネットワークへの接続要求に対し、所定の時間内にも応答がない場合に生じるエラー

TNSタイムアウトの原因は?

ORA-12170: TNS: 接続タイムアウトが発生しました。 これらのメッセージは、ネットワークやファイアウォールの問題であったり、データベースサーバが落ちていたり、hostsファイルやtnsnames.oraに設定されているIPアドレスが間違っていたりと発生要因はさまざまです。