<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Hi Emile<br>
      <br>
      Thanks for your response.<br>
      <br>
      On 03/09/2013 10:50, Emile Joubert wrote:<br>
    </div>
    <blockquote cite="mid:5225A2F2.8060106@rabbitmq.com" type="cite">
      <pre wrap="">
Hi Jan,

On 03/09/13 08:59, Jan Jacobs wrote:

</pre>
      <blockquote type="cite">
        <pre wrap="">A queue is created by the server or the client 
</pre>
      </blockquote>
      <pre wrap="">
Are you sure the server and client declare a queue with the same attributes?</pre>
    </blockquote>
    I am using libraries in the respective implementations.<br>
    Server:<br>
    I am using the amqp_rpc_server from the amqp_client. <br>
    From the source code:<br>
    <br>
    &nbsp;&nbsp;&nbsp; process_flag( trap_exit, true ),<br>
    <br>
    &nbsp;&nbsp;&nbsp; %% Get config from config file for the server and port&nbsp; <br>
    &nbsp;&nbsp;&nbsp; Params = <br>
    &nbsp;&nbsp;&nbsp; #amqp_params_network<br>
    &nbsp;&nbsp;&nbsp; {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; username&nbsp; = amqp_conf:username()<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,password = amqp_conf:password()<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,host&nbsp;&nbsp;&nbsp;&nbsp; = amqp_conf:server()<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,port&nbsp;&nbsp;&nbsp;&nbsp; = amqp_conf:port()<br>
    &nbsp;&nbsp;&nbsp; }, <br>
    &nbsp;&nbsp;&nbsp; <br>
    &nbsp;&nbsp;&nbsp; try amqp_connection:start( Params ) of<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {ok, Connection}<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt;<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ok<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,State#state<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; connection&nbsp;&nbsp;&nbsp; = Connection<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,time_started = {date(), time()}<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,server&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = amqp_rpc_server:start( Connection,
    State#state.queue, State#state.handler )<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
    &nbsp;&nbsp;&nbsp; catch<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _:Reason -&gt; {stop, Reason}<br>
    &nbsp;&nbsp;&nbsp; end<br>
    <br>
    Client:<br>
    I am using the RabbitMQ plugin for Grails:<br>
    <br>
    // RabbitMQ<br>
    rabbitmq<br>
    {<br>
    &nbsp;&nbsp;&nbsp; connectionfactory<br>
    &nbsp;&nbsp;&nbsp; {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; username = 'guest';<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; password = 'guest';<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hostname = '127.0.0.1';<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; consumers = 1;<br>
    &nbsp;&nbsp;&nbsp; }<br>
    &nbsp;&nbsp;&nbsp; <br>
    &nbsp;&nbsp;&nbsp; retryPolicy {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxAttempts = 3<br>
    &nbsp;&nbsp;&nbsp; }<br>
    &nbsp;&nbsp;&nbsp; <br>
    &nbsp;&nbsp;&nbsp; queues =<br>
    &nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'unitrac.application.MaxManV1.RPC'()<br>
    &nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp; <br>
    }<br>
    <br>
    From the documentation: <br>
    "
    <meta http-equiv="content-type" content="text/html;
      charset=ISO-8859-1">
    <span style="color: rgb(68, 68, 68); font-family: Arial; font-size:
      14px; font-style: normal; font-variant: normal; font-weight:
      normal; letter-spacing: normal; line-height: 14px; orphans: auto;
      text-align: justify; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
      206); display: inline !important; float: none;"><span
        class="Apple-converted-space">&nbsp;</span>the<span
        class="Apple-converted-space">&nbsp;</span></span><code
      style="font-family: 'Courier New', monospace, serif; font-size:
      14px; color: rgb(68, 68, 68); font-style: normal; font-variant:
      normal; font-weight: normal; letter-spacing: normal; line-height:
      14px; orphans: auto; text-align: justify; text-indent: 0px;
      text-transform: none; white-space: normal; widows: auto;
      word-spacing: 0px; -webkit-text-stroke-width: 0px;">autoDelete</code><span
      style="color: rgb(68, 68, 68); font-family: Arial; font-size:
      14px; font-style: normal; font-variant: normal; font-weight:
      normal; letter-spacing: normal; line-height: 14px; orphans: auto;
      text-align: justify; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
      206); display: inline !important; float: none;">,<span
        class="Apple-converted-space">&nbsp;</span></span><code
      style="font-family: 'Courier New', monospace, serif; font-size:
      14px; color: rgb(68, 68, 68); font-style: normal; font-variant:
      normal; font-weight: normal; letter-spacing: normal; line-height:
      14px; orphans: auto; text-align: justify; text-indent: 0px;
      text-transform: none; white-space: normal; widows: auto;
      word-spacing: 0px; -webkit-text-stroke-width: 0px;">durable</code><span
      style="color: rgb(68, 68, 68); font-family: Arial; font-size:
      14px; font-style: normal; font-variant: normal; font-weight:
      normal; letter-spacing: normal; line-height: 14px; orphans: auto;
      text-align: justify; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
      206); display: inline !important; float: none;"><span
        class="Apple-converted-space">&nbsp;</span>and<span
        class="Apple-converted-space">&nbsp;</span></span><code
      style="font-family: 'Courier New', monospace, serif; font-size:
      14px; color: rgb(68, 68, 68); font-style: normal; font-variant:
      normal; font-weight: normal; letter-spacing: normal; line-height:
      14px; orphans: auto; text-align: justify; text-indent: 0px;
      text-transform: none; white-space: normal; widows: auto;
      word-spacing: 0px; -webkit-text-stroke-width: 0px;">exclusive</code><span
      style="color: rgb(68, 68, 68); font-family: Arial; font-size:
      14px; font-style: normal; font-variant: normal; font-weight:
      normal; letter-spacing: normal; line-height: 14px; orphans: auto;
      text-align: justify; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
      206); display: inline !important; float: none;"><span
        class="Apple-converted-space">&nbsp;</span>attributes default to<span
        class="Apple-converted-space">&nbsp;</span></span><code
      style="font-family: 'Courier New', monospace, serif; font-size:
      14px; color: rgb(68, 68, 68); font-style: normal; font-variant:
      normal; font-weight: normal; letter-spacing: normal; line-height:
      14px; orphans: auto; text-align: justify; text-indent: 0px;
      text-transform: none; white-space: normal; widows: auto;
      word-spacing: 0px; -webkit-text-stroke-width: 0px;">false</code><span
      style="color: rgb(68, 68, 68); font-family: Arial; font-size:
      14px; font-style: normal; font-variant: normal; font-weight:
      normal; letter-spacing: normal; line-height: 14px; orphans: auto;
      text-align: justify; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
      206); display: inline !important; float: none;"><span
        class="Apple-converted-space">&nbsp;</span>and the<span
        class="Apple-converted-space">&nbsp;</span></span><code
      style="font-family: 'Courier New', monospace, serif; font-size:
      14px; color: rgb(68, 68, 68); font-style: normal; font-variant:
      normal; font-weight: normal; letter-spacing: normal; line-height:
      14px; orphans: auto; text-align: justify; text-indent: 0px;
      text-transform: none; white-space: normal; widows: auto;
      word-spacing: 0px; -webkit-text-stroke-width: 0px;">arguments</code><span
      style="color: rgb(68, 68, 68); font-family: Arial; font-size:
      14px; font-style: normal; font-variant: normal; font-weight:
      normal; letter-spacing: normal; line-height: 14px; orphans: auto;
      text-align: justify; text-indent: 0px; text-transform: none;
      white-space: normal; widows: auto; word-spacing: 0px;
      -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
      206); display: inline !important; float: none;"><span
        class="Apple-converted-space">&nbsp;</span>attribute defaults to
      null.</span>"<br>
    <br>
    <blockquote cite="mid:5225A2F2.8060106@rabbitmq.com" type="cite">
      <pre wrap="">

</pre>
      <blockquote type="cite">
        <pre wrap="">If the client and the server is active and the broker restarts then the
broker change the queue durability to |durable|: true and it survives
the restart.
</pre>
      </blockquote>
      <pre wrap="">
That is not possible, because the non-durable queue is not present on
startup. The broker can't change the queue durability, and neither can a
client. A queue must be deleted before the durability or any other
attribute can be changed.

A possible explanation is that the server and client don't create the
queue with the same attributes, and you see different behaviour
depending on which one gets to declare the queue.



-Emile

</pre>
    </blockquote>
    <br>
    According to me the server and the client declare the queue with the
    same attributes, but I will investigate more by only having one of
    them active when I restart the broker. That will indicate which one
    is responsible.<br>
    <br>
    Thanks<br>
    <div class="moz-signature">-- <br>
      <img src="cid:part1.07030505.09040707@econsys.co.za" border="0"></div>
  </body>
</html>