リモート マシン上の SQL サーバーで使用すると、サブソニック orm で接続プーリングが機能しないという報告を受けています。おそらくプロファイラーを使用して、彼らがこれをどのように監視しているかはわかりません。
Subsonic は、orm レイヤーで行うことになっているように遅く開き、早く閉じますが、実装に問題があり、接続が多すぎますか?
リモート マシン上の SQL サーバーで使用すると、サブソニック orm で接続プーリングが機能しないという報告を受けています。おそらくプロファイラーを使用して、彼らがこれをどのように監視しているかはわかりません。
Subsonic は、orm レイヤーで行うことになっているように遅く開き、早く閉じますが、実装に問題があり、接続が多すぎますか?
SubSonic を使用しているときに接続を開いたままにする方法があります。多くの人は、コレクションをロードするとリーダーが閉じられると想定していますが、そうではありません (クラスは許可なく別のクラスに作用するべきではありません)。このためだけに「LoadAndCloseReader()」というメソッドがあります。
さらに詳しく知ることができれば、それは素晴らしいことです。
以前のバージョンについてはわかりませんが、2.1 では AbstractList.Load() はすでに using ステートメントでラップされた LoadAndCloseReader(rdr) を使用しています。
これは、SubSonic の接続がデフォルトで永続的であることを意味しますか?
これは、同様の問題を抱えた後、私が最近発見したものです。
ロブが言ったように、次のように使用しないでください。
MyTableCollection objCol = new MyTableCollection().Load();
次のように使用する必要があります。
MyTableCollection objCol = new MyTableCollection();
objCol.LoadAndCloseReader(MyTable.FetchAll());