0

WCF を使用して開発された 3 層アプリケーションがあります。Web レイヤー [32 ビット Windows 2003 Sp1] は、Oracle 10g DB [64 ビット Linux] と通信する WCF サービス [NLB 上の 64 ビット Windows 2008 R2] を呼び出します。DB 接続は Nhibernate 2.2 を使用して確立されます。WCF 通信は BasicHTTPBinding を使用します。

32 ビットのテスト環境ではアプリケーションは問題なく動作しますが、上記のライブ環境ではクラッシュが発生します。ロギングによると、繰り返しエラーは次のとおりです。

System.ApplicationException :> 内部例外

NHibernate.ADOException: 準備中に、stderrorme0_.ERR_NO を ERR1_10_ として、stderrorme0_.ERR_TYPE を ERR2_10_ として、.... ....、STD_ERROR_MESSAGE stderrorme0_ where stderrorme0_.ERR_NO=:p0 からエラーが発生しました ---> System.InvalidOperationException: Timeout期限切れ。プールから接続を取得する前に、タイムアウト期間が経過しました。これは、プールされたすべての接続が使用中で、最大プール サイズに達したために発生した可能性があります。

このエラーは繰り返されますが、フェッチされるテーブルが変更されるだけです。

一時的な解決策: IIS でホストされている WCF サービスを再起動します。

これを機能させるための提案と解決策を教えてください。この投稿は、さまざまなブログに従って試行錯誤を繰り返した結果です。

4

1 に答える 1