IHS的esi功能导致下载大文件报500错误

来源:互联网 发布:ubc法学院 知乎 编辑:程序博客网 时间:2024/05/16 11:31

问题现象:

项目为WAS 水平+垂直集群 + IHS转发,在登录portal之前,有一个插件下载对话框,提供了5个插件的下载按钮,在通过IHS打开登录界面后,部分插件的下载按钮无法使用,点击后报500内部错误。但是通过每个WAS server的端口访问,每个下载链接都没问题。

问题分析:

通过IHS转发存在问题,登录单独的WAS server没问题,基本问题定位在了IHS转发上。查看IHSlogpluginlog,然后清空两个log,重现问题,观察两个log中出现的日志。再pluginlog中发现了每次点下载按钮报500错误的时候,pluginlog中都出现以下报错:

ERROR: ESI: esiMalloc: malloc failure 
ERROR: ws_common: websphereHandleRequest: Failed to handle request 

经查,该错误是因为plugin-cfg.xml文件中的ESI的相关参数造成的。

问题解决:

找到${plugin_home}/config/webserver1/plugin-cfg.xml文件,修改其中的配置,将ESI功能关闭,做法为

1.使用文本编辑器打开plugin-cfg.xml文件找到如下的内容 
<Property Name="ESIEnable" Value="true"/> 
<Property Name="ESIMaxCacheSize" Value="1024"/> 
<Property Name="ESIInvalidationMonitor" Value="false"/>

2.Property Name="ESIEnable" Value="true"中的"true"更改为“false”,因此更改完后因该是: 
<Property Name="ESIEnable" Value="false"/> 
<Property Name="ESIMaxCacheSize" Value="1024"/> 
<Property Name="ESIInvalidationMonitor" Value="false"/>

保存后,重启IHS即可进行验证。

原因分析:

ESI的主要作用是对静态的Web内容提供缓存功能。这一功能会影响到大文件的下载。

0 0