2 Stimmen

Nachricht asynchron in WebSphere MQ-Warteschlange stellen

Ich versuche, persistente Nachrichten in eine WebSphere MQ-Warteschlange zu stellen, aber diese müssen async puts sein. Die einzige Möglichkeit, wie ich async zum Laufen bringen kann, ist, wenn die Nachrichten nicht persistent sind (damit meine ich, dass die putSuccessCount entspricht der Anzahl der Nachrichten, die auf dem MQAsyncStatus , in allen anderen Fällen ist sie Null). Der folgende Code beschreibt, was ich zu tun versuche:

import com.ibm.mq.MQAsyncStatus;
import com.ibm.mq.MQDestination;
import com.ibm.mq.MQMessage;
import com.ibm.mq.MQPutMessageOptions;
import com.ibm.mq.MQQueueManager;
import com.ibm.mq.constants.MQConstants;

public class MQPutTest extends TestCase{

    private static Logger log = Logger.getLogger(MQPutTest.class);

    public void testPut() throws Exception{

        Hashtable<String, Object> props = new Hashtable<String, Object>();
        props.put(MQConstants.CHANNEL_PROPERTY, "my_channel");
        props.put(MQConstants.PORT_PROPERTY, 1414);
        props.put(MQConstants.HOST_NAME_PROPERTY, "localhost");

        String qManager = "my_queue_manager"; 
        MQQueueManager qMgr = new MQQueueManager(qManager, props);

        int openOptions = MQConstants.MQOO_OUTPUT | MQConstants.MQOO_INPUT_AS_Q_DEF;

        MQDestination queue = qMgr.accessQueue("my_queue", openOptions);

        MQPutMessageOptions pmo = new MQPutMessageOptions();
        pmo.options = MQConstants.MQPMO_ASYNC_RESPONSE;

        MQMessage message = new MQMessage();
        message.format = MQConstants.MQFMT_STRING;
        message.writeString("test message");
        queue.put(message, pmo);

        queue.close();
        MQAsyncStatus asyncStatus = qMgr.getAsyncStatus();
        qMgr.disconnect();
    }
}

Ich schreibe die Leistungssteigerung, die ich bei einer großen Anzahl von Nachrichten sehe, der Tatsache zu, dass die Warteschlange auf nicht persistent eingestellt ist, anstatt dass die Nachrichten asynchron gesetzt werden. Ich habe in den erweiterten Eigenschaften der Warteschlange im MQ-Explorer den Standardantworttyp "Put" auf "Asynchronous" gesetzt, aber das hat keine Auswirkungen.

Für jede Hilfe wären wir dankbar.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X