Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将持久性设置为JMS客户端?_Java_Jms_Weblogic_Ibm Mq - Fatal编程技术网

Java 如何将持久性设置为JMS客户端?

Java 如何将持久性设置为JMS客户端?,java,jms,weblogic,ibm-mq,Java,Jms,Weblogic,Ibm Mq,我使用使用SSL的安全通道通过JMS与Weblogic IBM Webpsphere MQ建立了连接。 我在Weblogic上的应用程序收到来自MQ的消息。 正在将应答发送到应答队列。 响应头存在于MQMD中,它填充java。在参数持久化JMS发送值“1”中。其他系统需要在持久化时接收值“0”。如何将此参数设置为java? 我猜这个参数是javax.jms.deliverymode。但我不知道如何设置它 无论如何,谢谢您的帮助。JMS上的相应属性是传递模式(要设置的Int参数),用于设置持久性和

我使用使用SSL的安全通道通过JMS与Weblogic IBM Webpsphere MQ建立了连接。 我在Weblogic上的应用程序收到来自MQ的消息。 正在将应答发送到应答队列。 响应头存在于MQMD中,它填充java。在参数持久化JMS发送值“1”中。其他系统需要在持久化时接收值“0”。如何将此参数设置为java? 我猜这个参数是javax.jms.deliverymode。但我不知道如何设置它


无论如何,谢谢您的帮助。

JMS上的相应属性是传递模式(要设置的Int参数),用于设置持久性和非持久性消息


您可以从中引用此URL以了解详细信息

您应该这样尝试:

public String sendMessage(ConnectionFactory connectionFactory,
                      Destination destination,
                      Destination jmsReplyTo,
                      CorrelationType correlationType,
                      CallOptions<String> callOptions,
                      String rqUid,
                      JMSAbstract transport) throws JMSException {
Connection connection = null;
Session session = null;
MessageProducer producer = null;

try {

    connection = connectionFactory.createConnection();
    session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

    producer = session.createProducer(destination);

    // Set JMS DeliverMode (1/2)
    producer.setDeliveryMode(1);

    // create message
    Message message = createTextMessage(session, jmsReplyTo, correlationType, callOptions, rqUid, transport);

    // send message
    producer.send(message);

    return correlationType.getCorrelationId(message);

    } finally {
        closeResource(connection, session, null, producer, rqUid);
    }
}

我认为0x5a4d的答案是可以的,但最好像IBM最佳实践那样使用它

//Persistentmode=1
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
//Persistentmode=2
producer.setDeliveryMode(DeliveryMode.PERSISTENT);

谢谢,但是如何在JMS-JMSDeliveryMode上设置属性?此属性设置在何处?创建要放置的邮件时,请设置此属性。另请注意:。我只是检查一下。您必须在QueueSender中设置要反映的值。这就是问题所在。我的应用程序不生成头MQMD。标题构建Weblogic服务器。我的应用程序在没有MQMD的情况下接收到消息。MQMD由java与库com.ibm.mq.jar组成。我从MQ服务器获取的库。您也不需要创建MQMD。我假设您在消息或队列发送者级别进行操作。JMS传递模式是在队列发送方级别设置的
MQQueue mqQueue = new MQQueue("QueueName");
mqQueue.setPersistence(1);