我有一个应用程序生成的报告处理时间超过 30 分钟,我收到超时错误。如果我生成一份报告并且持续时间少于 20 分钟,它就可以工作。我的环境工作如下:
Balancer https://www.example.com/
/ \
IHS1 IHS2 redirect IHS:443 to WAS:9081 (WEB) and WAS:9082 (REPORT)
/ \
WAS1 WAS2 WAS:WEB and WAS:REPORT
\ /
DB
当我更改我的应用程序以将数据返回到 WAS 或 IHS 时,它可以工作。如果我返回平衡器,我会收到超时。这是我在 IHS 上的配置:
ServerName example.com
RewriteEngine on
RedirectMatch ^/$ https://example.com/example/
SSLEnable
SSLProtocolDisable SSLv2
SSLProtocolDisable SSLv3
SSLCipherSpec TLS_RSA_WITH_AES_256_GCM_SHA384
SSLCipherSpec TLS_RSA_WITH_AES_256_CBC_SHA256
SSLCipherSpec TLS_RSA_WITH_AES_128_GCM_SHA256
SSLCipherSpec TLS_RSA_WITH_AES_128_CBC_SHA256
SSLCipherSpec TLS_RSA_WITH_AES_256_CBC_SHA
SSLCipherSpec TLS_RSA_WITH_AES_128_CBC_SHA
SSLClientAuth none
SSLServerCert example-ssl
KeyFile /opt/IBM/HTTPServer/ssl/example.kdb
SSLStashfile /opt/IBM/HTTPServer/ssl/example.sth
ProxyPass /example-rel/ http://10.10.0.3:9082/example-rel/ connectiontimeout=7200 timeout=7200
ProxyPassReverse /example-rel/ http://10.10.0.3:9082/example-rel/
ProxyPass /example/ http://10.10.0.2:9081/example/ connectiontimeout=7200 timeout=7200
ProxyPassReverse /example/ http://10.10.0.2:9081/example/
ProxyPassReverseCookiePath / /example/
ErrorLog logs/ihs-443-example-error_log
CustomLog logs/ihs-443-example-access_log common_ssl
我将 webcontainer/ejb 容器/事务管理器的超时设置为 7200,会话管理 invalidationTimeout 设置为 120 分钟。我还在 WAS 上的自定义属性上设置了 HttpInboundPersistReadTimeout。
我是否忘记在某处增加超时?