Hi Gastón,
you can use QMF method "delete" with parameters "type" ("queue" in our case) 
and "name" (name of the queue).

Here is the code snippet from C++ program I use:

    Connection connection(url/*, connectionOptions*/);
    try {
        connection.open();
        Session session = connection.createSession();
        Sender sender = session.createSender("qmf.default.direct/broker");
        Address responseQueue("#reply-queue; {create:always, 
node:{x-declare:{auto-delete:true}}}");
        Receiver receiver = session.createReceiver(responseQueue);

        Message message;
        Variant::Map content;
        Variant::Map OID;
        Variant::Map arguments;
        OID["_object_name"] = "org.apache.qpid.broker:broker:amqp-broker";
        arguments["type"] = "queue";
        arguments["name"] = queue_name; // a string of the queue name

        content["_object_id"] = OID;
        content["_method_name"] = "delete";
        content["_arguments"] = arguments;

        encode(content, message);
        message.setReplyTo(responseQueue);
        message.setProperty("x-amqp-0-10.app-id", "qmf2");
        message.setProperty("qmf.opcode", "_method_request");

        sender.send(message, true);

        /* check response if the queue was properly deleted */
        Message response;
        if (receiver.fetch(response,qpid::messaging::Duration(30000)) == true)
        {
                qpid::types::Variant::Map recv_props = response.getProperties();
                if (recv_props["x-amqp-0-10.app-id"] == "qmf2")
                        if (recv_props["qmf.opcode"] == "_method_response")
                                std::cout << "Response: OK" << std::endl;
                        else if (recv_props["qmf.opcode"] == "_exception")
                                std::cerr << "Error: " << response.getContent() 
<< std::endl;
                        else
                                std::cerr << "Invalid response received!" << 
std::endl;
                else
                        std::cerr << "Invalid response not of qmf2 type 
received!" << std::endl;
        }
        else
                std::cout << "Timeout: No response received within 30 seconds!" 
<< std::endl;

        connection.close();
        return 0;
    } catch(const std::exception& error) {
        std::cout << error.what() << std::endl;
        connection.close();
    }



Kind regards,
Pavel

----- Original Message -----
> From: "Gaston Quezada" <quezada.gas...@gmail.com>
> To: users@qpid.apache.org
> Sent: Monday, December 5, 2011 9:14:10 PM
> Subject: how to delete queue from jms client
>
> Hi,
>
> Im using qpid-client 0.12, and need delete queue from JMS client.
> the queue is not auto delete
>
> regards
>
> --
> Gastón Quezada
>

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:users-subscr...@qpid.apache.org

Reply via email to