私は weblogic 10.3 を使用しています。jdbc ストア (Oracle DB) に裏打ちされた永続的なメッセージを使用して、永続的なサブスクリプションを構成しようとしています。MDB が永続サブスクライバーとしてリッスンしているトピックがあります。シナリオ 1 の下: メッセージを送信すると、MDB にヒットします。
シナリオ 2 では、トピックに送信されたメッセージが MDB (唯一の登録済み永続サブスクライバー) によって消費されない限り、メッセージが保持されることを期待して MDB を一時停止します。しかし、メッセージをトピックに送信すると、そこに一時的に表示されてから消えます (HermesJMS を使用して表示されます)。
メッセージは MDB によって消費されていないため、この場合は JDBC ストアにログインされるという印象を受けましたが、oracle db の WLSTORE テーブルにもメッセージが保持されません。
後で、管理コンソールのトピック > 恒久サブスクライバー > メッセージを表示 にメッセージが表示されることがわかりました。
どうやら何が起こっているのかというと、トピックはメッセージを保持しませんが、その下に登録されている永続的なサブスクリプションは、メッセージが消費されるまでそれを保持します。
質問 -1) しかし、メッセージが Oracle ベースの jdbc ストアに送信されないという事実は、まだ意味がありませんか? ここで何が間違っていますか?
質問 -2) MDB を再開してメッセージのリッスンを開始しても、(管理コンソールで) 永続的なサブスクライバーの下ですべてのメッセージがそのままトピックに表示され続けます - 処理されたときにそこから削除されることを望んでいました唯一の登録済み永続サブスクライバーによって。