JFinal

登录 注册

解决 jfinal 3.5 版本之前engine为 devMode时在 linux 文件句柄不能及时关闭问题

     jfinal 3.5 版本之前,如果 engine 工作在 devMode = true 模式下,ClassPathSource 中的 url.openConnection() 这行代码会打开一个文件句柄,而且关闭不及时,在高并发下可能引起 linux 打开文件句柄过多的问题。

    检查项目中是否受影响:

1:配置过 engine.setToClassPathSourceFactory()

2:配置过 engine.setSourceFactory(new ClassPathSourceFactory())


解决办法如下:

1:下载 MyClassPathSource、MyClassPathSourceFactory 两个文件

https://pan.baidu.com/s/1yOudl-qqDBkrHKXd06WqUA

 

2: 将所有对 engine 配置 ClassPathSourceFactory 的地方改成配置成 MyClassPathSourceFactory,例如:

    arp.getEngine().setSourceFactory(new ClassPathSourceFactory());

    改成:

    arp.getEngine().setSourceFactory(new MyClassPathSourceFactory());


     jfinal 3.5 已经改进了这里,但这个版本暂时未发布,未配置 ClassPathSourceFactory 的不受影响。engine 配置为 setDevMode(false) 的也不受影响



评论