私は activemq 設定で priorityedMessages を有効にしました。優先度は正常に機能します。つまり、X メッセージを送信すると、半分は優先度 0 で半分は優先度 9 で、消費者はメッセージを正しい順序で受信します。
CMSPriority > 0
ただし、またはなどのセレクターを使用して createConsumer() メソッドを呼び出すと、CMSPriority < 4
メッセージが受信されません。
関連する消費者コードは次のとおりです。
mSession = mConnection->createSession(Session::INDIVIDUAL_ACKNOWLEDGE);
mDestination = mSession->createQueue( mDestURI );
mConsumer = mSession->createConsumer(mDestination, "CMSPriority < 4");
最後の行を に変更するとmConsumer = mSession->createConsumer(mDestination);
、すべてのメッセージが正しい優先度で受信されます。
誰でもこの動作を説明できますか?