Just to add to Tim's answer...

If you are going to use the related config you might be better to
upgrade to 0.10.0 as that config has been updated a bit, and while the
old option still works for now it will be removed at a future date.

For the latest details, see
http://qpid.apache.org/releases/qpid-jms-0.10.0/docs/index.html#jms-configuration-options,
specifically in this case "jms.messageIDPolicy.messageIDType".

The users mailing list would also be better for such questions in future.

Robbie

On 18 July 2016 at 14:13, Timothy Bish <[email protected]> wrote:
> On 07/18/2016 06:10 AM, henry zhu wrote:
>>
>> Hello,
>>
>> Today, I tried to use the javax.jms.TextMessage.setJMSMessageID(uuid) to
>> set
>> a custom UUID by the qpid-jms 0.9 jar to publish the AMQP 1.0 message.
>> Unfortuately, the QPID-JMS 0.9 didn't suppor the feature of setting custom
>> message ID.  For more detailed information, please refer to the below
>> source
>> code.
>
>
> As per the JMS specification you cannot set a Message ID via the
> setJMSMessageID, the ID is supplied by the JMS provider on send.  We do
> allow some control over the type of Message ID that is provided in v0.9.0 of
> Qpid JMS which you can learn about by reading the configuration
> documentation here:
> http://qpid.apache.org/releases/qpid-jms-0.9.0/docs/index.html
>
>
>> Is there anyone help me? Much appericated in advanced.
>> /*
>>   *
>>   * Licensed to the Apache Software Foundation (ASF) under one
>>   * or more contributor license agreements.  See the NOTICE file
>>   * distributed with this work for additional information
>>   * regarding copyright ownership.  The ASF licenses this file
>>   * to you under the Apache License, Version 2.0 (the
>>   * "License"); you may not use this file except in compliance
>>   * with the License.  You may obtain a copy of the License at
>>   *
>>   *   http://www.apache.org/licenses/LICENSE-2.0
>>   *
>>   * Unless required by applicable law or agreed to in writing,
>>   * software distributed under the License is distributed on an
>>   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>   * KIND, either express or implied.  See the License for the
>>   * specific language governing permissions and limitations
>>   * under the License.
>>   *
>>   */
>> package org.apache.qpid.jms.example.success.activemq;
>>
>> import java.io.IOException;
>> import java.io.InputStream;
>> import java.util.Properties;
>> import java.util.UUID;
>>
>> import javax.jms.Connection;
>> import javax.jms.ConnectionFactory;
>> import javax.jms.DeliveryMode;
>> import javax.jms.Destination;
>> import javax.jms.ExceptionListener;
>> import javax.jms.JMSException;
>> import javax.jms.Message;
>> import javax.jms.MessageProducer;
>> import javax.jms.Session;
>> import javax.jms.TextMessage;
>> import javax.naming.Context;
>> import javax.naming.InitialContext;
>> import javax.naming.NamingException;
>>
>> import org.apache.qpid.jms.JmsConnection;
>> import org.apache.qpid.jms.JmsConnectionFactory;
>> import org.apache.qpid.jms.JmsMessageProducer;
>> import org.apache.qpid.jms.message.JmsMessageIDBuilder;
>>
>> //import org.apache.qpid.jms.example.success.Sender;
>>
>> public class Sender {
>>         private static final String USER = "user";
>>         private static final String PASSWORD = "password";
>>         private static final int DEFAULT_COUNT = 1;
>>         private static final int DELIVERY_MODE =
>> DeliveryMode.NON_PERSISTENT;
>>
>>         private Context getContext() {
>>                 InitialContext context = null;
>>                 try {
>>                         InputStream resourceAsStream =
>> this.getClass().getResourceAsStream("hello.properties");
>>                         Properties properties = new Properties();
>>                         properties.load(resourceAsStream);
>>                         context = new InitialContext(properties);
>>                 } catch (IOException e) {
>>                         // TODO Auto-generated catch block
>>                         e.printStackTrace();
>>                 } catch (NamingException e) {
>>                         // TODO Auto-generated catch block
>>                         e.printStackTrace();
>>                 }
>>                 return context;
>>
>>         }
>>
>>         public void publish(int count) {
>>                 try {
>>                         // The configuration for the Qpid
>> InitialContextFactory has been
>>                         // supplied in
>>                         // a jndi.properties file in the classpath, which
>> results in it
>>                         // being picked
>>                         // up automatically by the InitialContext
>> constructor.
>>                         Context context = this.getContext();
>>
>>                         JmsConnectionFactory factory =
>> (JmsConnectionFactory)
>> context.lookup("myFactoryLookup");
>>                         JmsMessageIDBuilder
>> messageIDBuilder=JmsMessageIDBuilder.BUILTIN.DEFAULT.createBuilder();
>>                         factory.setMessageIDBuilder(messageIDBuilder);
>>                         Destination queue = (Destination)
>> context.lookup("myQueueLookup");
>>
>>                         JmsConnection connection =
>> (JmsConnection)factory.createConnection(USER,
>> PASSWORD);
>>
>>
>>                         connection.setExceptionListener(new
>> MyExceptionListener());
>>                         connection.start();
>>
>>                         Session session = connection.createSession(false,
>> Session.AUTO_ACKNOWLEDGE);
>>
>>                         //MessageProducer messageProducer =
>> session.createProducer(queue);
>>                         JmsMessageProducer messageProducer =
>> (JmsMessageProducer)session.createProducer(queue);
>>                         long start = System.currentTimeMillis();
>>                         for (int i = 1; i <= count; i++) {
>>                                 TextMessage message =
>> session.createTextMessage("Text!");
>>                             String uuid=UUID.randomUUID().toString();
>>                             System.out.println("UUID:"+uuid);
>>                             messageProducer.setDisableMessageID(false);
>>                                 message.setJMSMessageID(uuid);
>>                                 messageProducer.send(message,
>> DELIVERY_MODE, Message.DEFAULT_PRIORITY,
>> Message.DEFAULT_TIME_TO_LIVE);
>>
>>                                 if (i % 100 == 0) {
>>                                         System.out.println("Sent message "
>> + i);
>>                                 }
>>                         }
>>
>>                         long finish = System.currentTimeMillis();
>>                         long taken = finish - start;
>>                         System.out.println("Sent " + count + " messages in
>> " + taken + "ms");
>>
>>                         connection.close();
>>                 } catch (Exception exp) {
>>                         System.out.println("Caught exception, exiting.");
>>                         exp.printStackTrace(System.out);
>>                         System.exit(1);
>>                 }
>>         }
>>
>>         public static void main(String[] args) throws Exception {
>>                 int count = DEFAULT_COUNT;
>>                 if (args.length == 0) {
>>                         System.out.println("Sending up to " + count + "
>> messages.");
>>                         System.out
>>                                         .println("Specify a message count
>> as the program argument if you wish
>> to send a different amount.");
>>                 } else {
>>                         count = Integer.parseInt(args[0]);
>>                         System.out.println("Sending up to " + count + "
>> messages.");
>>                 }
>>                 Sender sender=new Sender();
>>                 sender.publish(count);
>>
>>         }
>>
>>         private static class MyExceptionListener implements
>> ExceptionListener {
>>                 @Override
>>                 public void onException(JMSException exception) {
>>                         System.out.println("Connection ExceptionListener
>> fired, exiting.");
>>                         exception.printStackTrace(System.out);
>>                         System.exit(1);
>>                 }
>>         }
>> }
>>
>>
>>
>> --
>> View this message in context:
>> http://qpid.2158936.n2.nabble.com/The-QPID-JMS-0-9-didn-t-suppor-the-feature-of-setting-custom-message-ID-tp7647810.html
>> Sent from the Apache Qpid developers mailing list archive at Nabble.com.
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>>
>
>
> --
> Tim Bish
> twitter: @tabish121
> blog: http://timbish.blogspot.com/
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to