<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.5pt;
        font-family:Consolas;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:Consolas;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
span.EmailStyle21
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle22
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=EN-ZA link=blue vlink=purple>
<div class=Section1>
<p class=MsoPlainText>Hi Matthias,<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>I have tried to do what you asked for in order for you to
understand the problem better, forgive me if I misinterpreted one or two
things, just let me know and I will try again ;-)<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>I really appreciate the help, thank you.<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>1) a directory listing of %ERLANG_HOME%\erl5.7.1\lib <o:p></o:p></p>
<p class=MsoPlainText> <span style='color:red'>You
can see the Rabbit* folders below...<o:p></o:p></span></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><img width=394 height=425 id="Picture_x0020_1"
src="cid:image001.png@01C9E93A.11F36AB0"
alt="cid:image001.png@01C9E936.39031960"><o:p></o:p></p>
<p class=MsoNormal><img width=397 height=373 id="Picture_x0020_2"
src="cid:image002.png@01C9E93A.11F36AB0"
alt="cid:image002.png@01C9E936.39031960"><o:p></o:p></p>
<p class=MsoNormal><img width=393 height=209 id="Picture_x0020_3"
src="cid:image003.png@01C9E93A.11F36AB0"
alt="cid:image003.png@01C9E936.39031960"><o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>2) a deep directory listing for all rabbitmq* directories in
the above.<o:p></o:p></p>
<p class=MsoNormal>
<span style='color:red'>Not sure how you wanted this represented?<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:red'><o:p> </o:p></span></p>
<p class=MsoNormal><img width=301 height=185 id="Picture_x0020_4"
src="cid:image004.png@01C9E93A.11F36AB0"
alt="cid:image004.png@01C9E936.39031960"><o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><span style='color:red'>Just for interest this is the
version etc of the Server....<o:p></o:p></span></p>
<p class=MsoNormal><img width=600 height=139 id="Picture_x0020_5"
src="cid:image005.png@01C9E93A.11F36AB0"
alt="cid:image005.png@01C9E936.E23BB780"><o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><span style='color:red'>Here is the client.....latest
version....<o:p></o:p></span></p>
<p class=MsoNormal><img width=405 height=214 id="Picture_x0020_6"
src="cid:image006.png@01C9E93A.11F36AB0"
alt="cid:image006.png@01C9E936.E23BB780"><o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoPlainText>3) the location of the erlang client directory, and a
deep directory listing thereof<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><img width=400 height=252 id="Picture_x0020_7"
src="cid:image007.png@01C9E93A.11F36AB0"
alt="cid:image007.png@01C9E936.E23BB780"><o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><span style='color:red'>Here are my environment variables,
not sure if you wanted to see them...<o:p></o:p></span></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><img width=661 height=504 id="Picture_x0020_11"
src="cid:image008.png@01C9E93A.11F36AB0"
alt="cid:image010.png@01C9E937.54F671C0"><o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoPlainText>4) the exact command line used for invoking the erlang
client, including the dir it is run from<o:p></o:p></p>
<p class=MsoNormal><span style='color:red'>NOTE: I *assume* that I don’t need
to add anything to the load path because the server + client are in the Erlang
LIB folder.....<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:red'>Also, you can see it HANGING
again.....<o:p></o:p></span></p>
<p class=MsoNormal><img width=523 height=72 id="Picture_x0020_12"
src="cid:image009.png@01C9E93A.11F36AB0"
alt="cid:image008.png@01C9E938.2264EDD0"><o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><span style='color:red'>And just to see the LOG again from
this evening...<o:p></o:p></span></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>=INFO REPORT==== 9-Jun-2009::19:13:10 ===<o:p></o:p></p>
<p class=MsoNormal>started TCP listener on 0.0.0.0:5672<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>=INFO REPORT==== 9-Jun-2009::19:22:59 ===<o:p></o:p></p>
<p class=MsoNormal>accepted TCP connection on 0.0.0.0:5672 from 127.0.0.1:1822<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>=INFO REPORT==== 9-Jun-2009::19:22:59 ===<o:p></o:p></p>
<p class=MsoNormal>starting TCP connection <0.148.0> from 127.0.0.1:1822<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>=ERROR REPORT==== 9-Jun-2009::19:23:09 ===<o:p></o:p></p>
<p class=MsoNormal>error on TCP connection <0.148.0> from 127.0.0.1:1822<o:p></o:p></p>
<p class=MsoNormal>{handshake_timeout,frame_header}<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>=INFO REPORT==== 9-Jun-2009::19:23:09 ===<o:p></o:p></p>
<p class=MsoNormal>closing TCP connection <0.148.0> from 127.0.0.1:1822<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoPlainText>5) the output of [P || P <- code:get_path(),
string:str(P, "rabbit") =/= 0]. when run inside the Erlang client's
shell.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><img width=522 height=69 id="Picture_x0020_13"
src="cid:image010.png@01C9E93A.11F36AB0"
alt="cid:image009.png@01C9E938.2264EDD0"><o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoPlainText>6) the output of [code:which(M) || M <-
[lib_amqp, rabbit_framing_channel, rabbit]]. when run inside the Erlang
client's shell.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><img width=639 height=81 id="Picture_x0020_14"
src="cid:image011.png@01C9E93A.11F36AB0"
alt="cid:image011.png@01C9E938.2264EDD0"><o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoPlainText>7) the sequence of erlang function calls used in the test<o:p></o:p></p>
<p class=MsoNormal><span style='color:red'>For this is am just calling the
“lifecycle_test” function in the “network_client_test.erl” script in the
TESTS folder of the client code.....<o:p></o:p></span></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>-module(network_client_test).<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>-export([test_coverage/0]).<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>-include_lib("eunit/include/eunit.hrl").<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>basic_get_test() -><o:p></o:p></p>
<p class=MsoNormal>
test_util:basic_get_test(new_connection()).<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>basic_return_test() -><o:p></o:p></p>
<p class=MsoNormal>
test_util:basic_return_test(new_connection()).<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>basic_qos_test() -><o:p></o:p></p>
<p class=MsoNormal>
test_util:basic_qos_test(new_connection()).<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>basic_recover_test() -> <o:p></o:p></p>
<p class=MsoNormal> test_util:basic_recover_test(new_connection()).<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>basic_consume_test() -> <o:p></o:p></p>
<p class=MsoNormal>
test_util:basic_consume_test(new_connection()).<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><span style='color:red'>lifecycle_test() -><o:p></o:p></span></p>
<p class=MsoNormal><span style='color:red'>
test_util:lifecycle_test(new_connection()).<o:p></o:p></span></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>basic_ack_test() -><o:p></o:p></p>
<p class=MsoNormal>
test_util:basic_ack_test(new_connection()).<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>channel_lifecycle_test() -><o:p></o:p></p>
<p class=MsoNormal>
test_util:channel_lifecycle_test(new_connection()).<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>queue_unbind_test() -><o:p></o:p></p>
<p class=MsoNormal>
test_util:queue_unbind_test(new_connection()).<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>command_serialization_test() -><o:p></o:p></p>
<p class=MsoNormal>
test_util:command_serialization_test(new_connection()).<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>teardown_test() -><o:p></o:p></p>
<p class=MsoNormal>
test_util:teardown_test(new_connection()).<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>rpc_test() -><o:p></o:p></p>
<p class=MsoNormal> test_util:rpc_test(new_connection()).<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>%%---------------------------------------------------------------------------<o:p></o:p></p>
<p class=MsoNormal>%% Negative Tests<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>non_existent_exchange_test() -> <o:p></o:p></p>
<p class=MsoNormal> negative_test_util:non_existent_exchange_test(new_connection()).<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>hard_error_test() -><o:p></o:p></p>
<p class=MsoNormal>
negative_test_util:hard_error_test(new_connection()).<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>%%---------------------------------------------------------------------------<o:p></o:p></p>
<p class=MsoNormal>%% Common Functions<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><span style='color:red'>new_connection() -><o:p></o:p></span></p>
<p class=MsoNormal><span style='color:red'>
amqp_connection:start("guest", "guest",
"localhost").<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:red'><o:p> </o:p></span></p>
<p class=MsoNormal>test_coverage() -><o:p></o:p></p>
<p class=MsoNormal> rabbit_misc:enable_cover(),<o:p></o:p></p>
<p class=MsoNormal> test(),<o:p></o:p></p>
<p class=MsoNormal> rabbit_misc:report_cover().<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText><span lang=EN-US>-----Original Message-----<br>
From: Matthias Radestock [mailto:matthias@lshift.net] <br>
Sent: 09 June 2009 04:52 PM<br>
To: Lynton Grice<br>
Cc: rabbitmq-discuss@lists.rabbitmq.com<br>
Subject: Re: [rabbitmq-discuss] Erlang RabbitMQ Client hanshake problem on
"State = Driver:handshake(InitialState), "</span><o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>Lynton,<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>Lynton Grice wrote:<o:p></o:p></p>
<p class=MsoPlainText>> Hi Matthias,<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> I have been looking through the posts and cannot see
anything specific that<o:p></o:p></p>
<p class=MsoPlainText>> says exactly how to solve this issue. Yes, you
mention load path etc....so I<o:p></o:p></p>
<p class=MsoPlainText>> assume "erl -pa" etc.....but can I see an
example of what needs to be done<o:p></o:p></p>
<p class=MsoPlainText>> "load path" wise for the client to work? I
have been trying to get the<o:p></o:p></p>
<p class=MsoPlainText>> client to work to almost 2 days now....;-(<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> I have installed BOTH the server and client folders
into the<o:p></o:p></p>
<p class=MsoPlainText>> %ERLANG_HOME%\erl5.7.1\lib folder....surely that
should be fine?<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>If you have the server in the above dir, as per the
installation<o:p></o:p></p>
<p class=MsoPlainText>instructions, then the client code should find the server
libraries<o:p></o:p></p>
<p class=MsoPlainText>without needing to modify the load path.<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>In order to diagnose this further, please send me<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>1) a directory listing of %ERLANG_HOME%\erl5.7.1\lib<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>2) a deep directory listing for all rabbitmq* directories
in the above.<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>3) the location of the erlang client directory, and a
deep directory<o:p></o:p></p>
<p class=MsoPlainText>listing thereof<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>4) the exact command line used for invoking the erlang
client, including<o:p></o:p></p>
<p class=MsoPlainText>the dir it is run from<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>5) the output of [P || P <- code:get_path(),
string:str(P, "rabbit") =/=<o:p></o:p></p>
<p class=MsoPlainText>0]. when run inside the Erlang client's shell.<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>6) the output of [code:which(M) || M <-
[lib_amqp,<o:p></o:p></p>
<p class=MsoPlainText>rabbit_framing_channel, rabbit]]. when run inside the
Erlang client's shell.<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>7) the sequence of erlang function calls used in the test<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>> I just keep getting this:<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> =INFO REPORT==== 9-Jun-2009::14:23:53 ===<o:p></o:p></p>
<p class=MsoPlainText>> accepted TCP connection on 0.0.0.0:5672 from
127.0.0.1:1319<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> =INFO REPORT==== 9-Jun-2009::14:23:53 ===<o:p></o:p></p>
<p class=MsoPlainText>> starting TCP connection <0.175.0> from
127.0.0.1:1319<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> =ERROR REPORT==== 9-Jun-2009::14:24:01 ===<o:p></o:p></p>
<p class=MsoPlainText>> error on TCP connection <0.175.0> from
127.0.0.1:1319<o:p></o:p></p>
<p class=MsoPlainText>> connection_closed_abruptly<o:p></o:p></p>
<p class=MsoPlainText>> <o:p></o:p></p>
<p class=MsoPlainText>> =INFO REPORT==== 9-Jun-2009::14:24:01 ===<o:p></o:p></p>
<p class=MsoPlainText>> closing TCP connection <0.175.0> from
127.0.0.1:1319<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>Are you still getting {undef,
[{rabbit_framing_channel,start_link,...}]}<o:p></o:p></p>
<p class=MsoPlainText>error in the client? If so then the above is likely a
consequence of that.<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>> Yes, I do agree I probably need to understand Erlang
better with regard to<o:p></o:p></p>
<p class=MsoPlainText>> the "load path" etc....<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>Some knowledge of Erlang when using the Erlang client is
highly<o:p></o:p></p>
<p class=MsoPlainText>recommended ;)<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>Regards,<o:p></o:p></p>
<p class=MsoPlainText><o:p> </o:p></p>
<p class=MsoPlainText>Matthias.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
</div>
</body>
</html>