[rabbitmq-discuss] Using rabbitmq-http2 (was: simple.publish over the JSON RPC interface)

Nathan Gray n8gray at n8gray.org
Thu Aug 6 06:53:40 BST 2009


Hi Cuong,

On Wed, Aug 5, 2009 at 9:36 PM, Cuong Le<cuonglb at facemain.com> wrote:
> Hi Nathan,
>
> because you're using json_rpc synchronous requests - call, you must
> keep-alive it with steps 5s/request.
> It think you have to set : session timeout = 5s (gen_server:call default
> time out is 5000ms).
>
> resp = proxy.rpccall("/rpc/rabbitmq", "open", ["guest", "guest",5,"/"])

Ah, thank you!  This is progress!  But I'm now quite confused about
what this session timeout really means.  Shouldn't "poll" just return
instantly?  Why does it wait for the session to timeout?

If I replace the call to poll with channel.declare, then a session
timeout of 5s gives me the gen_server timeout error again.  If I set
the session timeout to something less than 5s I get this response:

{"version":"1.1","id":1,"error":{"name":"JSONRPCError","code":504,"message":"Closed","error":null}}

And again, I'm not sure why it waits for the session timeout to expire
before replying.  Here's the code that I put in to replace the poll
rpc call:

resp = proxy.rpccall(url, "call", ["exchange.declare",
                                   [0,           #ticket
                                    "foobar",   #exchange name
                                    "fanout",    #exch type
                                    False,       #passive
                                    True,        #durable
                                    False,       #auto-delete
                                    False,       #internal
                                    True,        #nowait
                                    []           #exchange arguments
                                    ]])

Thanks again,
-n8

-- 
http://n8gray.org




More information about the rabbitmq-discuss mailing list