Further, if you are to use a pre defined queue, then all you need is just a name.
Ex "message_testqueue". If that queue is not there the address code will throw an exception. Regards, Rajith On Mon, May 16, 2011 at 6:14 PM, Rajith Attapattu <[email protected]> wrote: > Hello Mahmoud, > > This is not recommended at all. > The AMQ** classes are internal classes and can change between releases. > > You are supposed to use the JMS API along with JNDI. > If you need to create queues on the fly, you could use > session.createQueue and session.createTopic methods. > Both JNDI and the above methods except address strings. > > The reason why your queue wasn't durable was bcos the addressing > string is wrong. > message_testqueue; {create: always, node-properties: {durable: true}}" > > It should "node", not "node-properties". > > Regards, > > Rajith > > On Mon, May 16, 2011 at 5:35 PM, Mahmoud Parsian <[email protected]> wrote: >> After some research and testing, I found a solution for using persistent >> queues: >> >> Destination queue = new AMQAnyDestination(new >> AMQShortString("test.direct"), // exchangeName >> new AMQShortString("direct"),// exchangeClass >> new AMQShortString("testqueue"), // routingKey >> false,// isExclusive >> false,// isAutoDelete >> new AMQShortString("testqueue"), // queueName >> true,// isDurable >> new AMQShortString[]{new AMQShortString("test")}); // bindingKeys >> >> The queue (defined above) uses pre-built persistent queue created by qpid >> server. >> >> Using jconsole, I verified the results. >> >> best, >> Mahmoud >> >> >> ________________________________ >> From: Mahmoud Parsian <[email protected]> >> To: "[email protected]" <[email protected]> >> Cc: Mahmoud Parsian <[email protected]> >> Sent: Monday, May 9, 2011 3:33 PM >> Subject: putting a message into a defined queue (created by a qpid server at >> startup time) >> >> >> Hello all, >> >> I posted my question in a wrong thread, so I am posting it here again (sorry >> about this!). >> >> I am using qpid-0.10 (Java with BDB persistence for messages). I define a >> single queue (it's name is: testqueue -- definition is given below), which >> is created at server start up time. >> Then I put 2 messages into this queue (code is given below), but it seems >> that my messages are not put there, but put in qpid store (somewhere!). When >> I restart the server, the log file indicates that: >> "Message id 1 in store, but not in any queue - removing...." >> "Message id 2 in store, but not in any queue - removing...." >> >> What is the proper way of putting messages into specific queues? I am using >> the following to designate my testqueue (complete code is given below): >> >> Destination queue = new AMQAnyDestination("ADDR:message_testqueue; >> {create: always, node-properties: {durable: true}}"); >> >> >> Many thanks in advance. >> best, >> Mahmoud >> >> === code which puts messages into a queue ---- (I want to put into >> "testqueue" defined in virtualhosts.xml file which I point to) === >> >> import java.util.ArrayList; >> import java.util.Arrays; >> import java.util.HashMap; >> import java.util.List; >> import java.util.Map; >> import javax.jms.Connection; >> import javax.jms.Destination; >> import javax.jms.MapMessage; >> import javax.jms.MessageProducer; >> import javax.jms.Session; >> import org.apache.qpid.client.AMQAnyDestination; >> import org.apache.qpid.client.AMQConnection; >> >> public class MapSender { >> >> public static void main(String[] args) throws Exception { >> Connection connection = new >> AMQConnection("amqp://guest:guest@test/?brokerlist='tcp://dhcp45.nextbiosystem.com:5672'"); >> Session session = connection.createSession(false, >> Session.AUTO_ACKNOWLEDGE); >> Destination queue = new AMQAnyDestination("ADDR:message_testqueue; >> {create: always, node-properties: {durable: true}}"); >> MessageProducer producer = session.createProducer(queue); >> >> MapMessage m = session.createMapMessage(); >> m.setIntProperty("Id", 987654321); >> m.setStringProperty("name", "Widget"); >> m.setDoubleProperty("price", 0.99); >> m.setJMSExpiration(0); >> producer.send(m); >> connection.close(); >> } >> } >> >> ==== virtualhosts.xml file which defines testqueue ===== >> >> <?xml version="1.0" encoding="ISO-8859-1"?> >> <virtualhosts> >> <default>test</default> >> <virtualhost> >> <name>test</name> >> <test> >> <store> >> >> <class>org.apache.qpid.server.store.berkeleydb.BDBMessageStore</class> >> <!-- >> <class>org.apache.qpid.server.store.MemoryMessageStore</class> --> >> </store> >> >> <housekeeping> >> <threadCount>2</threadCount> >> <expiredMessageCheckPeriod>200000</expiredMessageCheckPeriod> >> </housekeeping> >> >> <exchanges> >> <exchange> >> <type>direct</type> >> <name>test.direct</name> >> <durable>true</durable> >> </exchange> >> <exchange> >> <type>topic</type> >> <name>test.topic</name> >> <durable>true</durable> >> </exchange> >> </exchanges> >> >> <queues> >> <minimumAlertRepeatGap>30000</minimumAlertRepeatGap> >> <maximumMessageCount>50</maximumMessageCount> >> <durable>true</durable> >> <queue> >> <name>testqueue</name> >> <testqueue> >> <exchange>amq.direct</exchange> >> <maximumQueueDepth>4235264</maximumQueueDepth> >> <!-- 4Mb --> >> <maximumMessageSize>2117632</maximumMessageSize> >> <!-- 2Mb --> >> <maximumMessageAge>600000</maximumMessageAge> >> <!-- 10 mins --> >> <durable>true</durable> >> </testqueue> >> </queue> >> <queue> >> <name>testping</name><durable>true</durable> >> <testping> >> <exchange>amq.direct</exchange> >> <maximumQueueDepth>4235264</maximumQueueDepth> >> <!-- 4Mb --> >> <maximumMessageSize>2117632</maximumMessageSize> >> <!-- 2Mb --> >> <maximumMessageAge>600000</maximumMessageAge> >> <!-- 10 mins --> >> <durable>true</durable> >> </testping> >> </queue> >> </queues> >> </test> >> </virtualhost> >> </virtualhosts> >> >> ==== server log file =============== >> 2011-05-09 11:48:20,544 INFO [main] (Log4jMessageLogger.java:72) - [Broker] >> BRK-1001 : Startup : Version: 0.10 Build: 1091571 >> 2011-05-09 11:48:20,683 WARN [main] (AMQUserManagementMBean.java:441) - >> Access rights contains user 'user' but there is no authentication data for >> that user >> 2011-05-09 11:48:20,686 INFO [main] (Log4jMessageLogger.java:72) - [Broker] >> MNG-1001 : Startup >> 2011-05-09 11:48:20,706 INFO [main] (Log4jMessageLogger.java:72) - [Broker] >> MNG-1002 : Starting : RMI Registry : Listening on port 8999 >> 2011-05-09 11:48:20,815 INFO [main] (Log4jMessageLogger.java:72) - [Broker] >> MNG-1002 : Starting : JMX RMIConnectorServer : Listening on port 9099 >> 2011-05-09 11:48:20,816 INFO [main] (Log4jMessageLogger.java:72) - [Broker] >> MNG-1004 : Ready >> 2011-05-09 11:48:20,824 INFO [main] (Log4jMessageLogger.java:72) - [Broker] >> VHT-1001 : Created : test >> 2011-05-09 11:48:20,866 INFO [main] (Log4jMessageLogger.java:72) - [Broker] >> EXH-1001 : Create : Durable Type: headers Name: amq.match >> 2011-05-09 11:48:20,872 INFO [main] (Log4jMessageLogger.java:72) - [Broker] >> EXH-1001 : Create : Durable Type: topic Name: amq.topic >> 2011-05-09 11:48:20,874 INFO [main] (Log4jMessageLogger.java:72) - [Broker] >> EXH-1001 : Create : Durable Type: direct Name: amq.direct >> 2011-05-09 11:48:20,876 INFO [main] (Log4jMessageLogger.java:72) - [Broker] >> EXH-1001 : Create : Durable Type: fanout Name: amq.fanout >> 2011-05-09 11:48:20,880 INFO [main] (Log4jMessageLogger.java:72) - [Broker] >> EXH-1001 : Create : Durable Type: direct Name: <<default>> >> 2011-05-09 11:48:20,884 INFO [main] (Log4jMessageLogger.java:72) - [Broker] >> EXH-1001 : Create : Durable Type: direct Name: test.direct >> 2011-05-09 11:48:20,886 INFO [main] (Log4jMessageLogger.java:72) - [Broker] >> EXH-1001 : Create : Durable Type: topic Name: test.topic >> 2011-05-09 11:48:20,912 INFO [main] (Log4jMessageLogger.java:72) - [Broker] >> [vh(/test)/qu(testqueue)] QUE-1001 : Create : Durable >> 2011-05-09 11:48:20,936 INFO [main] (Log4jMessageLogger.java:72) - [Broker] >> [vh(/test)/ex(direct/amq.direct)/qu(testqueue)/rk(testqueue)] BND-1001 : >> Create >> 2011-05-09 11:48:20,938 INFO [main] (Log4jMessageLogger.java:72) - [Broker] >> [vh(/test)/qu(testping)] QUE-1001 : Create : Durable >> 2011-05-09 11:48:20,946 INFO [main] (Log4jMessageLogger.java:72) - [Broker] >> [vh(/test)/ex(direct/amq.direct)/qu(testping)/rk(testping)] BND-1001 : Create >> 2011-05-09 11:48:20,963 INFO [main] (Log4jMessageLogger.java:72) - [Broker] >> [vh(/test)/ms(BDBMessageStore)] CFG-1001 : Created : >> org.apache.qpid.server.store.berkeleydb.BDBMessageStore >> 2011-05-09 11:48:20,965 INFO [main] (Log4jMessageLogger.java:72) - [Broker] >> [vh(/test)/ms(BDBMessageStore)] MST-1002 : Store location : >> /home/mahmoud/downloads/qpid-0.10/work/bdbstore/test >> 2011-05-09 11:48:21,163 INFO [main] (Log4jMessageLogger.java:72) - [Broker] >> [vh(/test)/ms(BDBMessageStore)] MST-1004 : Recovery Start >> 2011-05-09 11:48:21,168 INFO [main] (Log4jMessageLogger.java:72) - [Broker] >> [vh(/test)/ms(BDBMessageStore)] TXN-1004 : Recovery Start >> 2011-05-09 11:48:21,187 INFO [main] (Log4jMessageLogger.java:72) - [Broker] >> [vh(/test)/ms(BDBMessageStore)] MST-1001 : Created : >> org.apache.qpid.server.store.berkeleydb.BDBMessageStore >> 2011-05-09 11:48:21,230 INFO [main] (Log4jMessageLogger.java:72) - [Broker] >> [vh(/test)/ms(BDBMessageStore)] TXN-1001 : Created : >> org.apache.qpid.server.store.berkeleydb.BDBMessageStore >> 2011-05-09 11:48:21,231 WARN [main] >> (VirtualHostConfigRecoveryHandler.java:346) - Message id 1 in store, but not >> in any queue - removing.... >> 2011-05-09 11:48:21,264 WARN [main] >> (VirtualHostConfigRecoveryHandler.java:346) - Message id 2 in store, but not >> in any queue - removing.... >> 2011-05-09 11:48:21,268 INFO [main] (Log4jMessageLogger.java:72) - [Broker] >> [vh(/test)/ms(BDBMessageStore)] TXN-1006 : Recovery Complete >> 2011-05-09 11:48:21,360 INFO [main] (Log4jMessageLogger.java:72) - [Broker] >> BRK-1002 : Starting : Listening on TCP port 5672 >> 2011-05-09 11:48:21,361 INFO [main] (Log4jMessageLogger.java:72) - [Broker] >> BRK-1004 : Qpid Broker Ready >> 2011-05-09 11:49:25,820 INFO [MINANetworkDriver(Acceptor)-2] >> (Log4jMessageLogger.java:72) - [con:1(/192.168.2.37:54514)] CON-1001 : Open >> 2011-05-09 11:49:25,821 INFO [MINANetworkDriver(Acceptor)-2] >> (Log4jMessageLogger.java:72) - [con:1(/192.168.2.37:54514)] CON-1001 : Open >> : Protocol Version : 0-10 >> 2011-05-09 11:49:25,916 INFO [MINANetworkDriver(Acceptor)-5] >> (Log4jMessageLogger.java:72) - [con:1(test@/192.168.2.37:54514/test)] >> CON-1001 : Open : Client ID : test : Protocol Version : 0-10 >> 2011-05-09 11:49:26,039 INFO [MINANetworkDriver(Acceptor)-6] >> (Log4jMessageLogger.java:72) - [con:1(test@/192.168.2.37:54514/test)/ch:0] >> CHN-1001 : Create >> 2011-05-09 11:49:26,105 INFO [MINANetworkDriver(Acceptor)-9] >> (Log4jMessageLogger.java:72) - [con:1(test@/192.168.2.37:54514/test)/ch:0] >> [vh(/test)/qu(message_testqueue)] QUE-1001 : Create : Transient >> 2011-05-09 11:49:26,115 INFO [MINANetworkDriver(Acceptor)-9] >> (Log4jMessageLogger.java:72) - [con:1(test@/192.168.2.37:54514/test)/ch:0] >> [vh(/test)/ex(direct/<<default>>)/qu(message_testqueue)/rk(message_testqueue)] >> BND-1001 : Create >> 2011-05-09 11:49:26,192 INFO [MINANetworkDriver(Acceptor)-11] >> (Log4jMessageLogger.java:72) - [con:1(test@/192.168.2.37:54514/test)/ch:0] >> [sub:0(vh(/test)/qu(message_testqueue)] SUB-1001 : Create : Arguments : >> Browser >> 2011-05-09 11:49:26,199 INFO [MINANetworkDriver(Acceptor)-11] >> (Log4jMessageLogger.java:72) - [con:1(test@/192.168.2.37:54514/test)/ch:0] >> [sub:0(vh(/test)/qu(message_testqueue)] SUB-1002 : Close >> 2011-05-09 11:49:26,240 INFO [MINANetworkDriver(Acceptor)-13] >> (Log4jMessageLogger.java:72) - [con:1(test@/192.168.2.37:54514/test)/ch:0] >> [sub:1(vh(/test)/qu(message_testqueue)] SUB-1001 : Create : Arguments : >> Browser >> 2011-05-09 11:49:26,375 INFO [MINANetworkDriver(Acceptor)-5] >> (Log4jMessageLogger.java:72) - [con:1(test@/192.168.2.37:54514/test)/ch:0] >> [sub:1(vh(/test)/qu(message_testqueue)] SUB-1002 : Close >> 2011-05-09 11:49:26,378 INFO [MINANetworkDriver(Acceptor)-5] >> (Log4jMessageLogger.java:72) - [con:1(test@/192.168.2.37:54514/test)/ch:0] >> [con:1(test@/192.168.2.37:54514/test)/ch:0] CHN-1003 : Close >> 2011-05-09 11:49:26,381 INFO [MINANetworkDriver(Acceptor)-5] >> (Log4jMessageLogger.java:72) - [con:1(test@/192.168.2.37:54514/test)] >> [con:1(test@/192.168.2.37:54514/test)] CON-1002 : Close > --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:[email protected]
