有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用JCIFS清理代理线程时出现多线程DominoJava代理错误

在DominoJava代理中,我正在访问一个共享驱动器,该驱动器需要使用JCIFS库进行身份验证,并已成功访问该文件并在其中循环。但是,我在服务器日志中不断收到一条消息“清理代理线程时出错”。我已经added some code展示了线程发生了什么,但我真的不知道还有什么可以关闭或回收

这是代码和服务器日志。我已经注释掉了文件的处理过程,但是消息仍然显示注释掉的代码

代码段:

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


共 (1) 个答案

  1. # 1 楼答案

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