【现象】
在intra-mart WebPlatform (Resin) 中,长时间发生大量的同时访问时,在写入Resin的access.log的过程中有时发生死锁。
(由于受此影响,无法返回响应,不能应答。)
以下是发生此现象的产品。
・WebPlatform ver 7.0.x
・WebPlatform ver 7.1.x
・WebPlatform ver 7.2.x
【原因】
这是Resin的问题。
以下URL中,有Resin问题的详细信息。(英语)
0003509: deadlock when writing access log
http://bugs.caucho.com/view.php?id=3509
【规避方法】
请在http.xml的<access-log>标签中,添加auto-flush="true" 。
( 参考 → http://caucho.com/resin-3.1/doc/config-log.xtp#Access logging(英语) )
设置示例如下所示。
・修改前
<access-log path="log/access.log"
format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"'
rollover-period="1W"/>
・修改后
<access-log path="log/access.log"
format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"'
rollover-period="1W"
auto-flush="true"/>
【备注】
关于此问题,在WebPlatform ver 7.0.x、 7.1.x、7.2.x中不进行修改。
(由于Resin 3.1.x难以修改)
由此给您带来的不便我们深表歉意,但还请您使用上述的规避方法进行运用。
-- 适用对象 ----------------------------------------------------------------
iWP/Web系统构建基础/WebPlatform/AppFramework
--------------------------------------------------------------------------------
FAQID:338
在写入Resin的access.log的过程中,有时发生死锁。