2011-06-27 72 views
1

我希望能夠查詢會話工廠以獲取所有已創建且仍處於打開狀態的會話列表。這似乎應該在某個地方進行跟蹤,即使它不是公開的或者可以從工廠直接訪問。有沒有辦法從nHibernate中的會話工廠中檢索打開的會話對象列表?

+1

你可以自己實現會話工廠。如果請求會話,請將其添加到會話列表中。如果它關閉,則將其從列表中刪除。 – Peter

+0

Er..I可以看看如何工作,基本上創建一個「運行」sessionid的哈希表,當我請求一個會議。將會話本身存儲爲該密鑰引用的對象。這很容易,但它似乎很混亂。會話結束時,我必須從散列表中刪除會話。由於我沒有使用每個請求的會話,我真的很想要一個更清晰的實現。我希望我可以簡單地以某種方式查詢_sessionfactory進行開放會話,但是我非常欣賞輸入@peer。 –

+0

NH profiler是否做到這一點?我從來沒有使用過它,但它是跟蹤NH正在做什麼的流行工具。 –

回答

1

在我看來,你是錯誤地構建你的問題(XY問題)。

爲什麼您需要從中心位置知道哪些會話仍處於開啓狀態?

您的應用程序是否泄漏資源?你需要性能統計嗎?

我建議你編輯你的問題,以反映你正試圖解決的實際問題。

+0

感謝您的回覆。我試圖在盒子外面思考,並且以不同的模式使用nhibernate而不是每個請求的會話,並且從長遠來看不會做更多工作。我覺得我的問題是有效的。 –

+1

@DavidC:我沒有說這是無效的。請解釋你如何使用它,我們將能夠提供幫助。否則,我可以給你的最好的就是「只需從負責開課的班級自己跟蹤他們,創建它,如果你沒有一個」 –

+0

好吧,看起來這是我最好的選擇,謝謝! –

相關問題