我正在使用 core java 和 IBM Websphere MQ 6.0。我们有一个独立的模块,例如 DBcomponent,它会访问数据库并根据运行时查询获取结果集。查询通过 MQ 消息传递介质传递到应用程序。我们为队列配置了一个触发器,只要队列中有可用消息,它就会调用 DBComponent。 DBComponent 使用消息、构造查询并将结果集返回到另一个队列。在整个过程中,我们使用 log4j 将语句记录到日志文件中以进行审核。
使用 Apache 池将连接集中到数据库。我正在尝试使用示例程序检查日志消息是否正确记录。程序将输入消息放入队列并检查日志文件中的日志。在我尝试检查日志文件中的消息之前,预计触发器方法调用会完成,但每次检查日志消息的程序首先执行都会导致我的检查失败。
即使我引入 Thread.sleep(time)
也不能解决问题。我怎样才能让我的方法执行等待,直到触发器操作完成?
任何建议都会有帮助。
最佳答案
我建议您去阅读 Java 为您提供的并发原语。 http://tutorials.jenkov.com/java-concurrency/index.html似乎涵盖了基础知识,特别是线程信号一章。
关于java - Java 中的多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2810016/