2016-04-28 7 views
-1

私はATGアプリケーションをjboss上でApp Serverとして実行しています。リクエストスコープのコンポーネント(Bean)は、CartManagerにaddToBag(...)メソッドがあると言います。アプリケーションサーバーの複数のスレッドが要求スコープのコンポーネントを変更できるか

要求の範囲があるので、各要求とアプリケーションサーバーでインスタンス化されると、そのインスタンスにアクセスできるスレッドは1つだけであることが保証されます。

私たちは並行性の問題を経験していますので、可能性のある説明を除外したいだけです。

+0

アプリケーションサーバーはそれを保証しません。何らかの奇妙な理由で、単一の要求を処理するために複数のスレッドが実行されていた場合は、すべて要求範囲にアクセスできる可能性があります。それが保証するのは、要求スコープを互いに隔てることです。 – EJP

答えて

0

ユーザーがボタンをダブルクリックすると問題が発生する可能性があります(Add To Bagボタンでよく起こります)。 ATG内にはこれに対抗する方法があり、RepeatingRequestMonitorと呼ばれています。

本質的に、現在のハンドラを実行している要求を追跡し、同じハンドラに対する後続の要求をブロックするか許可します。

ショッピングカートプロセスでは、すでにPurchaseProcessFormHandlerに実装されています。この特定のFormHandlerを拡張する場合は、アクセサメソッドを使用できます。

関連する問題