在Domino Java代理中,我正在访问需要使用JCIFS库进行身份验证的共享驱动器,并且已设法访问该文件并循环访问该文件。但是,我一直在服务器日志中收到一条消息"错误清理代理线程"。我已经added some code来展示线程发生了什么,但我真的不知道还可以关闭或回收什么。
这是代码和服务器日志。我已经注释掉了文件的处理过程,但是消息仍然显示在注释掉的代码中。
CODE SNIPPET:
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
答案 0 :(得分:0)
JCIFS启动了几个线程(正如您在线程转储中看到的那样)。如果代理主线程结束时这些线程仍在运行,则Domino会打印“清理...”错误。如果我没记错的话,你只需要给JCIFS几秒钟来关闭它的线程。您可以使用一个休眠一秒的循环,直到所有JCIFS线程都终止。或者只是在一段固定的时间内睡觉,也应该这样做。