我在ColdFusion 9中开发了一个API,它不断搜索项目并将搜索结果的记录插入到SQL Server 2008表中,但我注意到我的应用程序日志中出现了很多错误,导致以下错误:
Error Executing Database Query.[Macromedia][SQLServer JDBC Driver]Error establishing socket to host and port: X.X.X.X:X. Reason: Too many open files. The specific sequence of files included or processed is: foo.cfm, line: 203
我意识到这里没什么可去的,但这是我从日志中得到的所有信息。
任何人都对可能发生的事情有最微妙的了解?!
答案 0 :(得分:2)
我在使用和旧版本的Lucene时遇到了类似的错误。因为Lucene使用旧版本的apache commons io,有时会停止关闭Lucene Index读取的文件。因此,每当有人在进行搜索时,文件将被打开并且永远不会关闭。最终我们达到文件打开限制,这将导致服务器上的各种问题。其中一个是你无法连接到数据源。
我们不得不反弹服务器几次以释放打开的文件。然后我们将Lucene软件更新到最新版本。
我相信Lucene是Solr所经营的(cf指数)。
这发生在Linux机器上,我们运行java,而不是coldfusion(但cf运行在Java上)