2012-05-02 9 views
0

現在、Windowsサービスとして構成されているVB .NETアプリケーションのいずれかでOracle Data Connect DLLを使用しています。使用している.NetバージョンはFramework 3.5で、Oracle 10gに接続します。.NET 3.5プラットフォームからORACLEデータベースに接続する際の問題

このアプリケーションは常にデータベースとの接続を確立し、その特定のインスタンスですべての接続をすぐに閉じます(シングルトン設計パターンの一種がデータベース接続に関係します)。 DB接続(「接続失効連絡」)に関してエラーが頻繁に発生していました。いくつかのブログを読んだ後、接続文字列にパラメータVALIDATE CONNECTION = TRUEを追加しました。このエラーが解決しましたが、私たちは今、新しいエラーメッセージを取得している、私はそれは.NET/ODP.NETのためOracleのデータプロバイダを使用してタイムアウトを指定する参照

答えて

1

のみのConnectionStringオプションを「接続要求がタイムアウトしました」説明ここhttp://www.connectionstrings.com/oracle#p12

されています:

Data Source=myOracle;User Id=myUsername;Password=myPassword;Min Pool Size=10;Connection Lifetime=120;Connection Timeout=60;Incr Pool Size=5;Decr Pool Size=2; 

あなたが現在より多くの例を得ることができます:は以下の通りでありますデフォルトでは、接続プーリングは有効です。これはプールメカニズムを制御します。接続プーリングサービスは、ConnectionStringプロパティを使用してプールを一意に識別して接続プールを作成します。

最初に開いた接続によって接続プールが作成されます。このサービスは、Min Pool Sizeパラメータで定義された数の接続を最初に作成します。

Incr Pool Size属性は、接続が必要なときに接続プールサービスによって作成される新しい接続の数を定義します。

接続が閉じられると、接続プールサービスは接続の有効期間がConnection Lifetime属性の値を超えているかどうかを判断します。そうであれば、接続は閉じられます。それ以外の場合は、接続プールに戻ります。

接続プーリングサービスは、3分ごとに未使用の接続を閉じます。 Decr Pool Size属性は、3分ごとに終了できる接続の最大数を指定します。

また、問合せを実行しているOracleCommandからタイムアウトが発生しているかどうかを確認できます。 OracleCommand.CommandTimeoutプロパティに関するドキュメントを参照してください。

は、Oracleのコマンドタイムアウト https://forums.oracle.com/forums/thread.jspa?threadID=317603

に関する議論については、このサイト上で見てください
関連する問題