Tibco 認定メッセージング モードを使用するにはどうすればよいですか? WebsphereMQ は同じ機能を提供しますか? JMS 仕様はこの機能を定義していますか?
2 に答える
確実な配信を提供するメッセージ トランスポートを探していると思います。たとえば、メッセージの受信者が不在の場合、受信者がオンラインに戻ったときにメッセージが配信されますか?
TIBCO Rendezvous には、Rendezvous Certified Messaging (RVCM) と呼ばれるモードがあり、すべての受信者が確認するまでメッセージをディスクに保存します。TIBCO EMS と Websphere MQ の両方で、同様の機能を持つ永続的な宛先を構成できます。これらを構成して使用する方法の詳細については、特定の言語のいずれかのベンダーが提供するドキュメントを参照してください。
JMS は仕様であり、上記の実装ではありませんが、メッセージが永続的としてマークされている場合、JMS プロバイダーは「JMS プロバイダーの障害により転送中にメッセージが失われないように細心の注意を払う」必要があると述べています。JMS API を使用して、TIBCO EMS と Websphere MQ の両方にアクセスできることに注意してください。
JMS/EMS の世界での TIBCO RVCM に相当するのは、永続サブスクリプションへの「PERSISTENT」メッセージングです。より具体的には、パブリッシャーで publish(..,DeliverMode.PERSISTENT,..) を使用し、サーバーで Session.createDurableSubscriber(..) を使用します。消費する側。
そうすれば、サブスクライバーがしばらくダウンしていても、このトピックにパブリッシュされたすべてのメッセージが最終的にサブスクライバーに到達し、すべてのメッセージが配信前にディスクに保存されるため、tibemsd のダウンタイムを乗り切ることができます。
ただし、注意してください。メッセージがパブリッシャーに保存される RVCM とは異なり、EMS メッセージはデーモン (tibemsd) に保存されるため、メッセージを取得していない 1 つのサブスクライバーによって、tibemsd のメモリとディスクがどんどん大きくなります。max_msg_memory と msg_swapping を設定し、これをテストしてください!
RVCM では、1 つのルージュ サブスクライバーが実際にパブリッシュしているパブリッシャーのみに影響を与える可能性があります。EMS では、1 つのルージュ サブスクライバーがシステム全体のメモリとパフォーマンスに影響を与える可能性があります。