キューの深さnに関して、キューからメッセージを消費するときにJMSセレクターを適用するアルゴリズムの時間計算量はどれくらいですか?特に、読み取りごとに線形(O(n))ですか?これは(JMSプロバイダーに)実装に依存しますか?また、要求されているフィールドに依存しますか?
(実装に依存する場合、私はWebsphere MQとSolaceの動作に特に興味がありますが、特に複雑さを説明するドキュメントへのリンクがある場合は、特定のJMSプロバイダーを扱う回答を歓迎します!)
動機:各メッセージには、aninvocationID
とaの2つのプロパティがありbatchName
ます。バッチは、いくつかの呼び出しで構成されます。クライアントは、2つの方法のいずれかでメッセージを消費したいと考えています。によってinvocationID
またはによってbatchName
。メッセージが作成された時点では、どの方法でメッセージが消費されるのかわかりません。
これは、セレクターを介して実装できます。
invocationID=42
または
batchName="reconciliation"
...カスタムプロパティの代わりに相関IDを使用することで、これらの1つを高速化できますが、もう1つは低速のままになるのではないかと心配しています。