我正在使用 weblogic 10.3 。我正在尝试使用由 jdbc 存储(在 Oracle DB 中)支持的持久消息配置持久订阅。我有一个 MDB 作为持久订阅者正在监听的主题。在方案 1 下:如果我发送消息,它会到达 MDB。
在场景 2 下:我暂停 MDB,希望发送到主题的消息只要不被 MDB(它是唯一注册的持久订阅者)消耗,就会一直存在。但是当我确实将消息发送到主题时,它会短暂显示在那里然后消失(我使用 HermesJMS 看到它)。
我的印象是,在这种情况下,由于消息没有被 MDB 使用,它们将被记录到 JDBC 存储中,但是 oracle db 中的 WLSTORE 表也没有得到任何持久化的消息。
后来我发现消息确实显示在主题 > 持久订阅者 > 在管理控制台中显示消息中。
因此,显然发生的事情是主题不保留消息,但在其下注册的持久订阅会保留它,直到消息被消费。
问题-1)但是消息不去基于Oracle的jdbc存储的事实仍然没有意义吗?我在这里做错了什么?
问题-2)即使我确实恢复MDB以开始侦听消息,该主题仍会在持久订阅者(在管理控制台中)下显示所有消息仍然完好无损-我希望它们在处理后会从那里删除由唯一注册的持久订户。