SMBJ 和 DFS 以及“嵌套会话”

我有一个项目,在那里我获得了一个 ID,然后使用该 ID 查找文件路径并处理它们……这些文件位于各种安装的驱动器上,因此我使用 SMBJ java 库来访问它们。

我遇到的问题是某些(大多数)文件正在使用 DFS 挂载点......现在,这本身并不是问题,但显然 SMBJ 库似乎为每个不同的 DFS 创建嵌套会话地点。因此,即使我在阅读完文件后关闭了实际文件,DiskSession 对象仍然保留所有这些嵌套会话......最终要么通过 DFS 配置设置,要么通过这些库,我遇到了一些问题并停止允许创建更多会话。

我正在处理数十万条记录,“崩溃”似乎发生在大约 500 条记录(会话)正在处理的某个地方。在查看代码以明确关闭这些嵌套会话时,我没有看到任何明显的东西.. 事实上,我在 DiskShare 对象的外部根本看不到对它们的外部访问。

我是否缺少某种设置可以最大限度地提高所坚持的会话?除了我围绕这个管理某种我自己的计数器,关闭和重新打开会话/连接之外,我不知道如何处理这个问题。

有谁知道我在这里想念什么?


皈依舞
浏览 245回答 1
1回答

catspeake

我为 SMBJ 创建了一个 PR,它改变了这一点。它将为同一主机重用嵌套会话。我自己已经成功地使用它来避免您遇到的完全相同的问题。https://github.com/hierynomus/smbj/pull/489
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java