1

私はかなり厄介な問題を抱えており、多くの調査を行ってきましたが、解決策を見つけることができませんでした。

Tomcat サーブレットで構成される Web アプリケーションがあります。Tomcat は Windows 2008 R2 サーバー上で実行され、Tomcat との間のリダイレクトに IIS で Apache ISAPI Redirector 1.2.37 を使用します (ajp13 を使用)。

私のアプリケーションは、XML ファイルのライブラリを管理しています。クライアント (ブラウザー) から要求されると、サーブレットは XSL を使用して XML ファイルを HTML に変換します。HTML は IIS に戻され、ブラウザに戻されて表示されます。Xalan は、JAXP javax.xml.transform に使用される実装です。このアーキテクチャは、数年間うまく機能しています。

最近、Xalan 2.7.0 から 2.7.1 にアップグレードしたところ、ブラウザーで表示したときに一部の XML ファイルの HTML が切り捨てられていることがわかりました。

試行錯誤の結果、次のことがわかっています。

  1. 切り捨ては、ソース XML ファイルが 1.7 MB を超える場合にのみ発生します。
  2. HTML は毎回同じ場所で切り捨てられます。(バッファサイズの問題??)
  3. Xalan からの出力をファイルに直接リダイレクトしようとしました...切り捨てはありません。
  4. IIS 7 で Xalan 2.7.1 を使用した場合にのみ切り捨てが発生する

    Xalan 2.7.1 + IIS 7 = 切り捨て

    Xalan 2.7.1 + IIS 6 = 切り捨てなし

    Xalan 2.7.0 + IIS 7 = 切り捨てなし

  5. ISAPI リダイレクタ ログには、次のメッセージが含まれています。

    [error] isapi_write_client::jk_isapi_plugin.c (1250): WriteClient failed with 534 (0x00000216)      
    
    [info] ajp_process_callback::jk_ajp_common.c (1945): Writing to client aborted or client network problems
    
    [info] ajp_service::jk_ajp_common.c (2607): (ajp13w) sending request to tomcat failed (unrecoverable), because of client write error (attempt=1)
    
    [info] service::jk_lb_worker.c (1400): service failed, worker ajp13w is in local error state
    
    [info] service::jk_lb_worker.c (1419): unrecoverable error 200, request failed. Client failed in the middle of request, we can't recover to another instance.
    
    [info] HttpExtensionProc::jk_isapi_plugin.c (2257): service() failed because client aborted connection
    

上記の項目 4 と 5 を考えると、誰が犯人か (IIS、リダイレクタ、Xalan、または Tomcat ... またはそれらすべて) が明確ではありません。

どんな提案でも、非常に高く評価されます。

4

0 に答える 0