2017-03-20 15 views
0

サーブレットコードのdoPostメソッド内に同期ブロックを導入することによるパフォーマンスへの影響を理解する必要があります。サーブレットdoPost内の同期ブロック

  1. 要求(XML)は、私のサーブレットを打つ:私が何をしようとしています何

    は次のとおりです。 JAXB

  2. を使用して

  3. 非整列化XMLは、私はいくつかの基本的なロジックチェックを行い、応答

  4. 元帥応答を作成し、同じを送り出します。

リクエストのアンマーシャリング中に、JAXBは時には日付関連フィールドに適切な結果を与えていません。 私はブログを見てきましたが、これはjaxbマーシャリング/アンマーシャリングの問題のようです。

私の質問は:

synchronized (Unmarshaller.class) { 

    SoapEnvelope soap = (SoapEnvelope) MyHelper.getContext().createUnmarshaller().unmarshal(new StringReader(reqXMl)); 

    req = soap.getBody().getRequest(); 

} 

は、パフォーマンスヒットはあるのでしょう。私は私のサーブレットの次のコードビットisnide doPostメソッドを導入する場合には

? つまり、並列に50件のリクエストがあるとしますか? 49リクエストは、1リクエストが非整列化されるまで待機するか、またはすべてそのまま継続されますか?

答えて

0

デフォルトでは、指定されたサーブレットのインスタンスが1つしかないので、これはお勧めできません。

JaveEE準拠のサーバーを使用している場合は、JAX-Bの逆シリアル化を処理するステートレスEJB Beanを作成できます。作成したBeanをサーブレットに挿入して使用するだけです。

前述したように、ステートレスセッションBeanはプールされているので、チャームのように機能するはずです。

+0

疑問を明確にするためにiskramacさんに感謝します。 –

関連する問題