2009-03-27 16 views
1

リモートマシン上のSQL Serverで使用されているSubsonic ormで接続プールが機能していないという報告があります。私は彼らがどのようにこれを監視しているのか、プロファイラを使っているのかどうかはわかりません。Subsonicでは接続プーリングが正しく機能していますか?

サブソニックが遅く開き、あなたがormレイヤーでやっているように早く終了しますが、あまりにも多くの接続を引き起こす実装上の問題はありますか?

答えて

7

SubSonicを使用しているときに接続を開いたままにする方法があります。多くの人がコレクションを読み込むと、読者はあなたのために閉じられると思っていますが、そうではありません(クラスは決して許可なく別のクラスに行動してはいけません)。この理由だけで、 "LoadAndCloseReader()"というメソッドがあります。

もしあなたがそれ以上のものを見つけることができればそれはすばらしいでしょう。

1

これは、SubSonicの接続がデフォルトで永続的であることを意味しますか?

0

これは私が最近似たような問題を抱えた後に自分自身を発見したものです。

ロブは、このように使用すべきではありません言ったように:

MyTableCollection objCol = new MyTableCollection().Load(); 

それは同じように使用する必要があります。

MyTableCollection objCol = new MyTableCollection(); 
objCol.LoadAndCloseReader(MyTable.FetchAll()); 
+0

おそらく: MyTableCollection objCol = new MyTableCollection(); objCol.LoadAndCloseReader(MyTable.FetchAll()); 私はこれをどこでもやっていません。私は変更する約40行があります。 LoadAndCloseReaderのドキュメントはありません。 http://subsonicproject.com/docs/Main_Pageを見てください。見つからないのです。私は数ヶ月で亜音速で働いていない。 –

1

私は、以前のバージョンについてはよく分からないんだけど、2.1で、AbstractList .Load()は、usingステートメントでラップされたLoadAndCloseReader(rdr)を既に使用しています。

関連する問題