【发布时间】:2010-11-23 14:58:41
【问题描述】:
我的应用程序有一个无状态 EJB。现在我需要通过 Stateful 进行一些数据库操作。这个无状态 EJB 可以访问将打开有状态连接的 DB 实用程序吗?这会导致任何设计/性能问题吗?
【问题讨论】:
-
应用程序访问数据库并不意味着您需要有状态 bean。
标签: jakarta-ee ejb stateless stateful
我的应用程序有一个无状态 EJB。现在我需要通过 Stateful 进行一些数据库操作。这个无状态 EJB 可以访问将打开有状态连接的 DB 实用程序吗?这会导致任何设计/性能问题吗?
【问题讨论】:
标签: jakarta-ee ejb stateless stateful
哪个会打开有状态的连接?
你的意思是:
在第一种情况下,尽管可以在 StatelessSessionBean (SLSB) 前面使用 StatefulSessionBean (SFSB),但可能有更好的方法(例如,使用命令模式来收集远程调用之间的交互,直到您准备好提交)。
在第二种情况下,DataSource.lookup(username, password) 可能会有所帮助,尽管您的 DataSource 查找可能需要始终如一地提供用户名和密码以保证接收相同的连接。
这会导致任何设计/性能问题吗?
在这两种情况下,您都必须非常小心,不要犯基本的安全错误(例如以纯文本形式发送密码)。我从来没有使用过任何一种方法,并且倾向于重新设计一个包含任何一种方法的解决方案。
与安全性和其他设计问题(例如维护中的脆弱性)相比,我不太担心性能问题。
【讨论】: