我的应用程序有一个无状态 EJB。现在我需要通过 Stateful 进行一些数据库操作。这个无状态 EJB 可以访问将打开有状态连接的 DB 实用程序吗?这会导致任何设计/性能问题吗?
user164649
问问题
864 次
1 回答
0
哪个会打开有状态的连接?
你的意思是:
- 打开一个有状态的连接,在对服务器的调用之间保持打开状态,并且在返回客户端时不会自动提交?
- 使用会话上下文中可用的安全凭据打开连接以获取与用户自己的数据库用户/密码的连接?
在第一种情况下,虽然可以在 StatelessSessionBean (SLSB) 之前使用 StatefulSessionBean (SFSB),但可能有更好的方法(例如,使用命令模式来收集远程调用之间的交互,直到您准备好犯罪)。
在第二种情况下,DataSource.lookup(username, password) 可能会有所帮助,尽管您的 DataSource 查找可能需要始终如一地提供用户名和密码以保证接收相同的连接。
这会导致任何设计/性能问题吗?
在这两种情况下,您都必须非常小心,不要犯基本的安全错误(例如以纯文本形式发送密码)。我从来没有使用过任何一种方法,并且倾向于重新设计包含任何一种方法的解决方案。
我不太担心性能问题,而不是安全性和其他设计问题,例如维护时的脆弱性。
于 2009-12-13T13:12:29.137 回答