3 Replies Latest reply: Jan 26, 2012 4:01 AM by 913211 RSS

    ODP.NETでの接続障害

    913211
      OS:Windows Xp
      開発ツール VoisualStadio 2008 (C#)
      ODP.NET 11.1.0.7.20

      上記の条件でプログラムを開発し、接続の出来たのですが

      ある日突然「ORA-03136: インバウンド接続がタイムアウトになりました 」のメッセージが出て
      Oracle接続できなくなりました。

      Oracle接続のコーディング(抜粋しています)としては
      using System;
      using System.Collections.Generic;
      using System.Text;
      using Oracle.DataAccess.Client;
      using Oracle.DataAccess.Types;
      public bool OraConnect(string oraUser, string oraPass, string OraService, string OraServer)
      {
      string strSQL = "";
      OracleConnection oCon = new OracleConnection();
      oCon.ConnectionString = null;
      strSQL = "User Id=hoge;password=hogehoge;" +
      " Data Source=(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = testserver)(PORT = 1521))" +
      " (CONNECT_DATA = (SERVICE_NAME = orcl.world)))";
      try
      {
      oCon.ConnectionString = strSQL;
      oCon.Open(); ←ここでエラー
      return true;
      }
      catch (Exception ex)
      {
      strOraMsg = ""; strOraMsg = ex.Message;
              --- エラーメッセージをテキスト出力---
      oCon.Close(); oCon.Dispose();
      return false;
      }
      }

      エラーになっている端末でSQLPlusを使用しての接続は正常に接続し、
      接続時のユーザー間違えて実行すると、「ユーザー/パスワードが違う」のエラーがでます。

      開発したEXEはClickOnceでの配布しています。

      分かっているの範囲で記載しましたが、ここまでで手詰まりになりました。
      申し訳ありませんがご教授の程お願いします。
        • 1. Re: ODP.NETでの接続障害
          hamadeguchi
          別のプロセスで接続を行っていたりしませんか?
          古いexeとか常駐とか
          http://suzumenuko.blog100.fc2.com/blog-entry-90.html

          あとはサーバ負荷が高くなっているとか
          アラートログに-600番台などの不審なエラーが出てないか確認してください
          http://www.dba-oracle.com/sf_ora_03136_inbound_connection_timed_out.htm
          • 2. Re: ODP.NETでの接続障害
            913211
            -----------------------------------------------------------------------------------------------------------------
            別のプロセスで接続を行っていたりしませんか?
            古いexeとか常駐とか
            http://suzumenuko.blog100.fc2.com/blog-entry-90.html

            あとはサーバ負荷が高くなっているとか
            アラートログに-600番台などの不審なエラーが出てないか確認してください
            http://www.dba-oracle.com/sf_ora_03136_inbound_connection_timed_out.htm
            ----------------------------------------------------------------------------------------------------------------


            hamadeguchi さん

            情報ありがとうございます。

            別のプロセスで接続を行っていたりしませんか?
            古いexeとか常駐とか
            これに関しては、常駐はありませんでした。
            又、EXEの作成・更新日付およびバージョンを確認したのですが、最新のEXEでした。
            あとはサーバ負荷が高くなっているとか
            アラートログに-600番台などの不審なエラーが出てないか確認してください
            現在確認させて頂いています。


            もう少し詳しく記載すると

            事務所と工場があり
            DBサーバーは事務所にあります。
            工場が別の所にあり
            イントラネットを使用しDBサーバーに接続しています。

            接続できなくなったのは工場の全ての端末で発生しました。
            事務所で同じEXEを使用して実行すると、正常に接続できます。

            工場の端末にリモート接続し、
            SQLPlusでの接続
            TNSPINGの実行
            これは正常に接続(実行)できました。

            VS2008(C#)+ODP.NETで実行するとエラー(接続出来ない)状況です。
            • 3. Re: ODP.NETでの接続障害
              913211
              回避策をサポートセンターより頂きました。

              サーバー側のsqlnet.oraの設定で
              SQLNET.INBOUND_CONNECT_TIMEOUT=0
              を設定すると接続する様になりました。

              どうもイントラネットが想定している速度より遅いらしく
              60秒(省略値)内で解決出来なかったみたいです。

              お騒がせ致しました。

              Edited by: user8954309 on 2012/01/26 2:01