2

PDFファイルを提供するWebLogicアプリケーションがあります(他にもたくさんあります)。

Internet Explorerでロードすると、一部のファイルが失敗するように見えることがあるという問題があります。

  • WebLogicバージョン10.3.3.0
  • IE8.0はこれまでのところポジティブにテストされています
  • Firefoxにも問題があります
    • IEには問題があったが、Firefoxには問題がなかったファイルがいくつかあった可能性があります(100%確実ではありません)
  • 異なるコンピューターの一部のファイル(少なくとも2、3回)で発生するようです
  • ほとんどのファイルは正常に機能します
  • PDFファイルは事前に生成され、ファイルシステムで利用できます。

これらのエラーでは、次のスタックトレースが取得されます。

####<Aug 16, 2012 10:30:26 AM EEST> <Error> <HTTP> <host-name> <Front2S> <[ACTIVE] ExecuteThread: '15' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1345102226691> <WL-101019> <[ServletContext@454961994[app:appname module:modulename path:/pathname spec-version:2.5]] Servlet failed with IOException
java.io.IOException: failed to read '2607' bytes from InputStream; clen: 162774 remaining: 2607 count: 1359
        at weblogic.servlet.internal.ChunkOutput.writeStream(ChunkOutput.java:417)
        at weblogic.servlet.internal.ChunkOutputWrapper.writeStream(ChunkOutputWrapper.java:178)
        at weblogic.servlet.internal.ServletOutputStreamImpl.writeStream(ServletOutputStreamImpl.java:520)
        at weblogic.servlet.internal.ServletOutputStreamImpl.writeStream(ServletOutputStreamImpl.java:508)
        at weblogic.servlet.FileServlet.sendFile(FileServlet.java:410)
        at weblogic.servlet.FileServlet.doGetHeadPost(FileServlet.java:234)
        at weblogic.servlet.FileServlet.service(FileServlet.java:173)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:821)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:27)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:344)
        at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
    ...
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
        at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:151)
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:238)
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:168)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3650)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2174)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1446)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)

いくつかのグーグルで、転送中にファイルが変更された場合、このようなことが起こる可能性があることがわかりました。

  • 少なくとも、これがどのように発生するかはわかりません(ファイルを生成するスクリプトは夜間に実行され、エラーは日中に取得されます)
  • これは、特定のファイルでも複数回発生します

ずっと前に、WebLogicファイルのメタデータキャッシングで同様の問題が発生しましたが、メタデータキャッシングを無効にするとそれが修正されました。

<wls:container-descriptor>
    <wls:resource-reload-check-secs>0</wls:resource-reload-check-secs>
</wls:container-descriptor>

いくつかのアイデア?

Br、Touko

4

1 に答える 1

3

エラーの原因については正しいです。この問題は、読み取り中にファイルが変更されると発生します。

resource-reload-check-secs の構成は正しいです。WLS が最新のファイルをリロードするように、0 (ゼロ) のままにします。

page-check-seconds 設定を使用しているかどうか、および設定の値が 0 であるかどうかを確認します。この設定は resource-reload-check-secs をオーバーライドするため、値が 0 (ゼロ) 以外の場合は 0 に設定します。

結論として、私の提案は、値が 0 のpage-check-seconds設定を weblogic.xmlに追加し、リクエスト サイズが大きい場合に備えてweblogic.Chunksize を増やすことです。プロパティの値は、イーサネットまたは TCP ヘッダー サイズを差し引いた後のネットワークの MTU の倍数である必要があります。

次の weblogic.xml の構成が役立つことを願っています。

<jsp-descriptor>
    <page-check-seconds>0</page-check-seconds>
</jsp-descriptor>
<container-descriptor>
    <resource-reload-check-secs>0</resource-reload-check-secs>
</container-descriptor>

さらに、この問題に対するパッチ修正があることに注意してください。

于 2012-08-20T14:57:04.217 に答える