1

次のことを行うための最良の方法を知る必要があります。ビジネス レベルの API (レベル 1 とレベル 2 など) をネストしています。L1 は L2 を呼び出す必要があります。どちらの API も、独自のネスト レベルでデータベース レイヤーを直接使用します。

ここで、データベース層で、次のように毎回プールから db 接続をフェッチします。

    SqlConnection conn = new SqlConnection(connString);
    conn.Open();
  1. 上記のように、DBレベルの呼び出しごとに毎回db接続を取得するのは適切ですか? ASP.NET 接続プールから接続が返されることはわかっています。

  2. ただし、ネストされた呼び出し全体 (または現在の http 要求の有効期間全体) で同じ DB 接続を維持する方がよいのではないでしょうか?

  3. 毎回プールから接続をフェッチすると、ネストされた TransactionScopes で問題が発生しますか?

4

1 に答える 1

0

#1 への回答 問題ありませんが、システムが非常にビジーな場合は、接続文字列の最大接続パラメータを増やす必要があります。理想的には、(少なくとも私が行う方法は次のとおりです。-要求応答サイクルの1つの接続。)

2,3 2 つのレイヤーの実装方法によっては、2 つのレイヤーが使用している接続が 1 つしかない場合、トランザクションが問題になります。これらのレイヤー間でトランザクションが機能する必要がないという点で、2 つのレイヤーは実際には「接続」されていないと思います。もしそうなら、私はあなたが持っている道を行きます。

于 2010-11-12T03:39:58.620 に答える