2011-06-27 7 views
1

セッション・ファクトリに、作成されていてまだ開いているすべてのセッションのリストを照会できるようにしたいと考えています。たとえそれが公開されていなくても、工場から直接アクセス可能であっても、これはどこかで追跡されなければならないようです。nHibernateのセッションファクトリから開いているセッションオブジェクトのリストを取得する方法はありますか?

+1

セッションファクトリを独自に実装することができます。セッションが要求された場合は、そのセッションをセッションリストに追加します。閉じた場合は、リストから削除します。 – Peter

+0

Er ..私はセッションの要求時に、基本的に "実行中"のセッションIDのハッシュテーブルを作成して、それがどのように動作するかを見ることができます。そのキーによって参照されるオブジェクトとしてセッション自体を格納します。それはかなり簡単ですが、ちょうど乱雑に思えます。セッションが終了したら、ハッシュテーブルからセッションを削除する必要があります。私はリクエストごとにセッションを使用していないので、私は本当にきれいな実装をしたいと思います。オープンセッションのために何らかの形で_sessionfactoryを照会することができればと思っていましたが、私は入力を感謝しています。 –

+0

NHプロファイラはこれを行いますか?私はそれを使ったことはありませんが、NHが何をしているかを追跡するための一般的なツールです。 –

答えて

1

あなたの質問に間違った枠組みがあるようです(XY問題)。

なぜあなたは中央の場所から、まだ開いているセッションを知る必要がありますか?

アプリケーションにリソースが漏れていませんか?パフォーマンス統計が必要ですか?

あなたが解決しようとしている実際の問題を反映するために質問を編集することをお勧めします。

+0

ご回答いただきありがとうございます。私はボックスの外で考えて、リクエストごとにセッションとは異なるパターンでnhibernateを使用し、長期的にはそれ以上の作業をしないようにします。私は自分の質問が有効だと感じます。 –

+1

@DavidC:それが有効ではないとは言いませんでした。どのように使用しようとしているのか説明してください。お手伝いできます。そうでなければ、私があなたに与えることができる最高のものは、セッションを開くクラスを担当するクラスから自分自身を追跡し、1つも持っていなければそれを作成することです。 –

+0

これは私の最高のオプションです。 –

関連する問題