サービス層(EJB3.0ビジネスロジックとデータベースアクセスを含む)とWeb層(Servlet/JSP)があります。 JBoss AS 7に分散したマシンで、耳と戦争が分離されて配置されています。発信者の情報をWeb層からEJB層に渡すにはどうすればいいですか?
サービス層には、ステートフルとステートレス EJBの両方が含まれています。
メソッドを呼び出すためのEJBインターセプタがあります。 ウェブ層からログインしたユーザーの場合、ユーザー情報はHttpSessionに保存されます(ユーザー確認はDBのパスワード&のパスワードを照会するだけで処理されます)。
パフォーマンスチューニングでは、どのユーザーがこれらのEJBメソッド、ユーザー情報、日付情報などを呼び出すかを知る必要があります。 を抽出し、ログに記録するか、またはアナライズ用にDBに格納します。
今私の質問は:
EJB層に、発信者の情報を区別するためにどのように?
EJBインターセプタは、EJBメソッドのパラメータとそれが呼び出されたときに取得できます。しかし、我々はそれを誰が呼んでいるのか分からない。
EJB層とWeb層を組み合わせるのは醜いことが分かっています。したがって、Session/Requestオブジェクトから必要なものを取得するのに役立つ場合でも、HttpSession/HttpRequestをEJBレイヤーに渡すことはありません。
また、WebからすべてのEJBメソッドにTuningInfo(リクエスト情報、ユーザー情報などを含む)を渡すことができない非常に多くのEJBメソッドがあります。
EJB層で呼び出し元の情報を取得することは可能ですか?
ありがとうございます。