2

私のアプリケーションにはステートレス EJB があります。そして今、ステートフルを介していくつかのデータベース操作を行う必要があります。このステートレス EJB は、ステートフルな接続を開く DB ユーティリティにアクセスできますか? これにより、設計/パフォーマンスの問題が発生しますか?

4

1 に答える 1

0

どちらがステートフルな接続を開きますか?

つまり:

  1. サーバーへの呼び出し間で開いたままになり、クライアントに戻るときに自動的にコミットしないステートフル接続を開きますか?
  2. セッション コンテキストから利用可能なセキュリティ資格情報を使用して接続を開き、ユーザー自身のデータベース ユーザー/パスワードとの接続を取得しますか?

最初のケースでは、StatelessSessionBean (SLSB) の前に StatefulSessionBean (SFSB) を使用することも可能かもしれませんが、おそらくはるかに優れたアプローチがあります (たとえば、コマンド パターンを使用してリモート呼び出し間の相互作用を収集する準備が整うまで)。専念)。

2 番目のケースでは、DataSource.lookup(username, password) が役立つ可能性がありますが、同じ接続を確実に受信するために、DataSource ルックアップでユーザー名とパスワードを一貫して提供する必要がある可能性があります。

これにより、設計/パフォーマンスの問題が発生しますか?

どちらの場合も、基本的なセキュリティ エラー (プレーン テキストでパスワードを送信するなど) を行わないように十分注意する必要があります。私はどちらのアプローチも使用したことがなく、いずれかを含むソリューションを再設計する傾向があります。

セキュリティや、メンテナンス中の脆弱性などの他の設計上の問題よりも、パフォーマンスの問題について心配することはありません。

于 2009-12-13T13:12:29.137 に答える