【问题标题】:Session timeout with apache web server and weblogic cluster. JSESSIONID in response is not the same as the one in request与 apache web 服务器和 weblogic 集群的会话超时。响应中的 JSESSIONID 与请求中的不同
【发布时间】:2014-04-01 15:38:37
【问题描述】:

我们有一个 apache 网络服务器(版本 httpd-2.2.22-win32-x86-openssl-0.9.8t),带有 3 个节点的 weblogic(版本 10.3.2)集群。在我们的负载测试中,我们在某些情况下会遇到会话超时错误(小于 1%)。这种情况正在发生,即使我们在 weblogic 节点的 web.xmls 中有 -1 的会话超时。经过几天的调试,我们意识到在某些情况下,请求发送的 JSESSIOID 不会被响应所接受。 Fiddler 跟踪显示 RESPONSE 有一个名为 Set-Cookie:JSESSIONID 的标头,其值与请求中发送的 JSESSIONID 不同。我们立即获得会话到期页面。如前所述,这仅在极少数情况下发生。

【问题讨论】:

    标签: apache2 session-timeout weblogic-10.x


    【解决方案1】:

    使用 WeblogicCluster 时,请求具有会话亲缘关系。因此,请求会转到进行初始联系的同一节点。但问题是在高负载下,节点没有响应。因此,请求转到其他节点。这是 WeblogicCluster 的默认行为。由于我们没有启用会话复制和故障转移,任何发送到辅助节点的请求都会给我们会话超时错误。 对此的一种解决方案是开始在 weblogic 中支持会话复制和故障转移。但我们不希望这样,因为影响很大。

    这些是解决此问题的配置更改

    在 httpd.conf 中

        ConnectTimeoutSecs 50 (default is 10)
        ConnectRetrySecs 5 (default is 2)
        WLSocketTimeoutSecs 10 (default is 2)
        WLIOTimeoutSecs 18000 (default is 300)
        Idempotent OFF (default is ON)
    

    ConnectTimeoutSecs 和 ConnectRetrySecs 的前 2 个更改意味着 重试 10 次 (50/5) 而不是默认的 5 (10/2)

    在 weblogic 节点中

    domain --> environment --> servers --> click on the required server -->
        tuning--> Accept Backlog:
        --> default value is 300. Made it 375.
       restart the weblogic nodes and apache
    

    更多详情请参考 http://docs.oracle.com/cd/E13222_01/wls/docs81/plugins/plugin_params.html http://docs.oracle.com/cd/E13222_01/wls/docs81/plugins/apache.html 。请参阅此处的图表以获取

    【讨论】:

      猜你喜欢
      • 2011-08-26
      • 1970-01-01
      • 2019-11-27
      • 2012-05-29
      • 2012-10-07
      • 2015-05-31
      • 1970-01-01
      • 2018-12-24
      • 1970-01-01
      相关资源
      最近更新 更多