1

EJB2.0 からの Spring 移行に取り組んでいます。既存の MessageListener では、JAXB オブジェクトなどの初期段階でリフレクションと複雑な操作を使用するため、いくつかの重いオブジェクトをキャッシュしました。たとえば、リスナーの最大サイズは 100 です。EJB リスナーは 100 個のオブジェクトを作成するため、スレッド セーフの問題はありません。Spring 2.5 を使用しようとすると、MDP は単一のリスナー オブジェクトでマルチスレッド化されるため、リスナー クラス レベルのオブジェクトに問題があり、スレッド オブジェクトを提供できません。Spring.aop.target.CommonsPoolTargetSource と proxyFactoryBean を使用して重いインスタンスをプールしていますが、インスタンスはスレッドセーフではなく、期待を台無しにする可能性があります。私はこの問題の解決策を見つけようとしましたが、class と process() を使用できるため、いくつかの情報を得ました。リスナー クラスを実装したいのですが、jmscontainer で構成する必要がありますが、私たちのチームはこれを行う標準的な方法を望んでいます。プロジェクトは成長する可能性があり、フレームワーク パターンに従う必要があるため、何らかの標準が必要です。

メッセージを取得するメソッドとして MessageListener と onMessage を実装するクラスで、このスレッドセーフなリソース プールを解決するのを手伝ってください。ただし、スレッドセーフなリソースが必要です。過去 1 日間、この問題に取り組んでいますが、問題を把握できませんでした。

この問題を解決するための標準的な方法を提案していただきありがとうございます。

4

0 に答える 0