1

在 Domino Java 代理中,我正在访问需要使用 JCIFS 库进行身份验证的共享驱动器,并且已设法访问该文件并循环访问它。但是,我在服务器日志中不断收到一条消息“清理代理线程时出错”。我添加了一些代码来显示线程正在发生什么,但我真的不知道我还能关闭或回收什么。

这是代码和服务器日志。我已经注释掉了文件的处理,但是该消息仍然出现在注释掉的代码中。

代码片段:

NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("testdomain", "test user", "password"); SmbFile csvImportFile = new SmbFile("smb://sap/general/"+ filePattern, auth); Reader reader = new InputStreamReader(csvImportFile.getInputStream()); /* process file */ reader.close(); System.out.println("Dump the current threadgroup:\n"); dumptg(null);

服务器日志:

27/05/2015 05:03:42 PM HTTP JVM: Dump the current threadgroup: 27/05/2015 05:03:42 PM HTTP JVM: ThreadGroup UTG: JavaAgent, objid = 982530704 27/05/2015 05:03:42 PM HTTP JVM: subgroups = 0 27/05/2015 05:03:42 PM HTTP JVM: total threads = 6 27/05/2015 05:03:42 PM HTTP JVM: Thread Name, ThreadID, ThreadGroup 27/05/2015 05:03:42 PM HTTP JVM: JCIFS-QueryThread: testdomain, 587342594, UTG: JavaAgent 27/05/2015 05:03:42 PM HTTP JVM: Transport1, 1880453141, UTG: JavaAgent 27/05/2015 05:03:42 PM HTTP JVM: Transport2, 621094149, UTG: JavaAgent 27/05/2015 05:03:42 PM HTTP JVM: JCIFS-NameServiceClient, 1103184321, UTG: JavaAgent 27/05/2015 05:03:42 PM HTTP JVM: JCIFS-QueryThread: testdomain, 342692973, UTG: JavaAgent 27/05/2015 05:03:42 PM HTTP JVM: AgentThread: JavaAgent, 279056546, UTG: JavaAgent 27/05/2015 05:03:43 PM HTTP JVM: Error cleaning up agent threads

4

1 回答 1

0

JCIFS 启动了几个线程(如您在线程转储中所见)。如果代理主线程结束时这些线程仍在运行,Domino 会打印“cleaning up...”错误。如果我没记错的话,你只需要给 JCIFS 几秒钟的时间来关闭它的线程。您可以使用一个休眠一秒钟的循环,直到所有 JCIFS 线程都终止。或者只是睡一段固定的时间,那也应该这样做。

于 2017-11-01T11:41:19.877 回答