2
我從appengine數據存儲的每個示例都可以看出,使用try {} finally {}塊來包圍查詢執行等是非常重要的,以確保查詢始終關閉。未能關閉查詢或持久性管理器的後果是什麼?
如果查詢或持久性管理器未關閉,但會超出範圍,會發生什麼情況?一個實體是否永遠無法訪問?
我從appengine數據存儲的每個示例都可以看出,使用try {} finally {}塊來包圍查詢執行等是非常重要的,以確保查詢始終關閉。未能關閉查詢或持久性管理器的後果是什麼?
如果查詢或持久性管理器未關閉,但會超出範圍,會發生什麼情況?一個實體是否永遠無法訪問?
Closing a PersistenceManager 可能會釋放它到 可用PersistenceManagers池,或 可能被垃圾收集,在JDO實現的 選項。
我的這種解釋是,如果你讓一個PersistanceManager走出去的範圍,無需關閉它,然後它將進行垃圾回收,並會不被釋放到可用PersistenceManagers的池,這可能如果沒有更多可用的PersistenceManagers,則在調用PersistenceManagerFactory.getPersistenceManager()時會導致額外開銷。
好問題! – 2011-01-11 18:23:13