我有一个消息驱动Bean,它接收审核消息。这些消息还包含有关正在审核的系统的信息。收到消息后,如果MDB不存在,则MDB可以创建系统或重用现有系统。

我的挑战是,当同时接收到来自新系统的大量消息时,会创建多个MDB实例,并且最终可能会创建重复的系统。向数据库添加约束是解决它的一种方法。有没有办法避免在应用程序(在这种情况下为MDB)中出现这些重复项?

最佳答案

您可以尝试这样的事情:

private Object LOCK;
public void onMessage() {
    code…
    synchronized(LOCK) {
        check if system exists, create if necessary
    }
    more code…
}

10-05 20:36
查看更多