I am trying to get pub-sub model to work in rabbitmq.&nbsp; My understanding is that you still have to perform amqp_connection:start, amqp_connection:open_channel, amqp_channel:call(Channel, Access), channel close and connection close on each async call. <br>
I am not sure what payload_fragments_rev = [Payload] is for.&nbsp; I have searched through amqp xml specs and pdf.&nbsp; Maybe I am not hitting the right keywords.&nbsp; For pub-sub model, how do you assign the message, assign it to Payload variable?<br>
<br>I am new to erlang.&nbsp; This shouldn&#39;t be a show stopper.&nbsp; I just need to get this working.&nbsp; I am getting following error:<br><br>(rabbit@home)1&gt; amqp_async:amqp_lifecycle().<br>
Connection: {&lt;0.217.0&gt;,direct}<br>
<br>
=ERROR REPORT==== 6-Apr-2008::16:33:51 ===<br>
Lax ticket check mode: ignoring cross-realm access for ticket 101<br>
** exception exit: {{amqp,not_found,&#39;basic.publish&#39;},<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {gen_server,call,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [&lt;0.218.0&gt;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {call,{&#39;channel.close&#39;,200,&lt;&lt;&quot;Goodbye&quot;&gt;&gt;,0,0}}]}}<br>
&nbsp;&nbsp;&nbsp;&nbsp; in function&nbsp; gen_server:call/2<br>
&nbsp;&nbsp;&nbsp;&nbsp; in call from amqp_async:amqp_lifecycle/0<br><br>my pub-sub code:<br><br>-module(amqp_async).<br><br>-include_lib(&quot;rabbitmq_server/include/rabbit_framing.hrl&quot;).<br>-include_lib(&quot;rabbitmq_server/include/rabbit.hrl&quot;).<br>
<br>-export([amqp_lifecycle/0]).<br><br>amqp_lifecycle() -&gt;<br>&nbsp;&nbsp;&nbsp; User = Password = &quot;guest&quot;,<br>&nbsp;&nbsp;&nbsp; Realm = &lt;&lt;&quot;/data&quot;&gt;&gt;,<br><br>&nbsp;&nbsp;&nbsp; %% Start a connection to the server<br><br>&nbsp;&nbsp;&nbsp; Connection = amqp_connection:start(User, Password),<br>
&nbsp;&nbsp;&nbsp; io:format(&quot;Connection: ~p~n&quot;,[Connection]),<br>&nbsp;&nbsp;&nbsp; %% Once you have a connection to the server, you can start an AMQP channel gain access to a realm<br><br>&nbsp;&nbsp;&nbsp; Channel = amqp_connection:open_channel(Connection),<br>
&nbsp;&nbsp;&nbsp; Access = #&#39;access.request&#39;{realm = Realm,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exclusive = false,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; passive = true,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; active = true,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write = true,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; read = true},<br>&nbsp;&nbsp;&nbsp; #&#39;access.request_ok&#39;{ticket = Ticket} = amqp_channel:call(Channel, Access),<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; X = &lt;&lt;&quot;x&quot;&gt;&gt;,<br>&nbsp;&nbsp;&nbsp; RoutingKey = &lt;&lt;&quot;a.b.c.*&quot;&gt;&gt;,<br>
&nbsp;&nbsp;&nbsp; Payload = &lt;&lt;&quot;foobar&quot;&gt;&gt;,<br>&nbsp;&nbsp;&nbsp; BasicPublish = #&#39;basic.publish&#39;{ticket = Ticket,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exchange = X,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; routing_key = RoutingKey,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mandatory = false,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; immediate = false},<br>&nbsp;&nbsp;&nbsp; Content = #content{class_id = 60,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; properties = amqp_util:basic_properties(),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; properties_bin = none,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; payload_fragments_rev = [Payload]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<br>&nbsp;&nbsp;&nbsp; amqp_channel:cast(Channel, BasicPublish, Content),<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; %% After you&#39;ve finished with the channel and connection you should close them down<br>
<br>&nbsp;&nbsp;&nbsp; ChannelClose = #&#39;channel.close&#39;{reply_code = 200, reply_text = &lt;&lt;&quot;Goodbye&quot;&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class_id = 0, method_id = 0},<br>&nbsp;&nbsp;&nbsp; #&#39;channel.close_ok&#39;{} = amqp_channel:call(Channel, ChannelClose),<br>
&nbsp;&nbsp;&nbsp; ConnectionClose = #&#39;connection.close&#39;{reply_code = 200, reply_text = &lt;&lt;&quot;Goodbye&quot;&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class_id = 0, method_id = 0},<br>&nbsp;&nbsp;&nbsp; #&#39;connection.close_ok&#39;{} = amqp_connection:close(Connection, ConnectionClose),<br>
&nbsp;&nbsp;&nbsp; ok.<br><br>Thank you,<br>Joe<br><br><br><br><br>