考虑服务,其中启动一些thread
。 Will Tapestry 5
管理此线程的一部分。在这样的线程中关闭hibernate
会话还是不行? (例如,我们可以从服务中传递Session
这个子线程内的对象,线程死后线程安全地关闭这个会话?)。Tapestry是否管理应用程序内的所有线程?
0
A
回答
0
Hibernate会话附加到正在处理当前请求的Web容器的线程。
如果您决定生成自己的线程并将它传递给它,那么只有在Tapestry提交之前完成或者上述Web容器的线程结束处理该请求之前完成了对该会话的更改。
在请求处理完会话关闭后,Tapestry对hibernate会话的控制被绑定到当前请求,因此产生另一个超出请求的线程来使用会话将是一个坏主意。
2
Tapestry只能管理你的AppModule中声明的东西。
作为一个简单的规则,如果您使用“新”关键字,它不是由挂毯管理。
如果你想挂毯来管理运行的,如果你想模仿挂毯管理线程ParallelExecutor
看一看,你必须调用Perthreadmanager.cleanup()一旦你可运行完毕。
+0
PerThreadManager服务具有API来协助解决此问题。请参阅http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/services/PerthreadManager.html#run(java.lang.Runnable) – 2013-03-28 17:00:01
相关问题
- 1. GC是否停止.NET中的所有应用程序线程?
- 2. 管理应用程序发出的所有消息的内容
- 3. Android内存管理 - 我的应用程序是否健康?
- 4. 是否有Jetty的应用程序管理控制台?
- 5. 是否有第三方GUI来管理OTP应用程序?
- 6. Mozilla应用程序是否可以访问进程管理器?
- 7. 在应用程序内管理数据
- 8. MVC应用程序内存管理
- 9. 是否所有的WinForms应用程序窗口都共享同一个线程?
- 10. 单线程应用程序是否线程安全
- 11. 窗口管理器,所有活动应用程序中的
- 12. 管理Android应用程序中的后台线程
- 13. 应用程序管理
- 14. 是否有可能将QT应用程序托管到WPF应用程序中?
- 15. 对ios应用程序中的内存管理有些怀疑?
- 16. 应用程序内的多个线程
- 17. 无法在Rails应用程序中管理模型所有权
- 18. 是否有可以管理用户配置文件的Django“应用程序”?
- 19. 是否有类似于Django auth应用程序的Java用户管理包?
- 20. 如何为Android应用程序创建线程管理器?
- 21. 清理在C#应用程序退出非托管C++线程
- 22. 如何在C#web应用程序中管理线程?
- 23. 如何检查是否应用程序作为管理员VB.NET
- 24. 找出应用程序是否需要管理员权限
- 25. 管理我的应用程序的应用程序?
- 26. 我是否应该使用线程来加速应用程序
- 27. 是否有Facebook API调用列出所有应用程序?
- 28. 断点是否停止所有线程?
- 29. 未处理的异常停止winform应用程序中的所有线程?
- 30. 应用程序管理器中的Android应用程序标题
没有明白。你能回答:是或否在我的问题上? – Andremoniy 2013-03-22 19:02:14
tapestry中没有任何内容将hibernate会话与请求绑定在一起。 tapestry提供的休眠会话是一个延迟加载的perthread值。底层数据库连接是按需创建的。你只需要确保你打电话perthreadmanager.cleanup如果你在一个产卵的线程。如果在请求线程上,Tapestry会为您调用此函数 – 2013-03-23 16:43:26
Session对象是代理;将代理传递给新线程,并为该新线程创建一个新的实例。因此,不需要这么做......只需注入全局会话对象即可。 – 2013-03-28 16:58:39