Frage

Der Versuch, zwei erlang Knoten miteinander ins Gespräch zu bringen. Eines auf einem Ubuntu-Rechner und ein auf Windows XP

Wir bekommen einen „ Verbindungsversuch von nicht anerkannten Knoten “ Nachricht, die der Empfang von Nachrichten von den anderen Knoten verhindert.

Sie sind beide mit 5.XXX Versionen von Erlang OTP.

Beide Knoten haben die gleiche Cookie (.erlang.cookie)

Wir beginnen den Empfängerknoten mit:

erl -name fred@ipaddress

und die Funktion auf es mit 'fred @ ipaddress' Aufruf (in einfachen Anführungszeichen)

Wir haben gedreht Firewalls aus.

Also, was sonst sein kann, um die Verbindung zu verhindern?

Update: wir verwenden erlang: get_cookie (), um das Cookie auf beiden Knoten zu überprüfen, und die Werte sind unterschiedlich. Also das ist das Problem. Wir glauben, dass wir das Cookie sind einstellen, indem die gleiche .erlang.cookie Datei im Verzeichnis setzen, wo wir erlang auf beiden Rechnern laufen. Aber vielleicht ist dies der falsche Ort?

Update 2: Danke für die Antworten jeder. Wir entschieden uns für Ranok ist als unsere Antwort, weil es gut für uns gearbeitet. Ich bin sicher, dass einige der alternativen Möglichkeiten, die Cookie-Einstellung zu fein sein würden.

War es hilfreich?

Lösung

Auch wenn Sie das Erlang-System zu starten, gibt es eine Kommandozeilen-Flag -setcookie, die Sie das Cookie bei Startzeit angeben lassen.

erl -name fred@ipaddress -setcookie FOOBAR

Ich hoffe, das hilft, Jacob

Andere Tipps

Beginnen Sie von jedem Knoten des Cookies zu überprüfen. Aus der Schale:

erlang:get_cookie().

Wenn sie nicht gleich sind, dann einer der Cookies des Knotens ändern, um die andere entsprechen:

erlang:set_cookie(node(), "newcookie").

Wenn alles funktioniert müssen Sie sehen, warum die Cookie-Einstellung nicht aus der Konfigurationsdatei oder die Befehlszeile arg gepflückt wird.

Der Erlang-Cookie sollte in dem Benutzerverzeichnis sein. Nicht das Anwendungsverzeichnis.

So dein ist so etwas wie:

C:\Documents and Settings\InterstarUser\.erlang.cookie

Sie können die Position von HOME mit dem Befehl env in der Befehlszeile sehen, ob ich richtig von meinen Windows-Tagen erinnern.

net_adm: ping ()

versuchen net_adm: ping () von beiden Knoten.

http : //www.erlang.org/documentation/doc-5.4.13/lib/kernel-2.10.13/doc/html/net_adm.html

erlang:set_cookie(node(), 'newcookie').

nicht

erlang:set_cookie(node(), "newcookie").

Ein paar Dinge in den Sinn kommen:

  1. Haben Sie versucht, das Cookie über erlang Einstellung: set_cookie auf beiden Knoten
  2. Wenn keine .erlang.cookie Datei im $ HOME-Verzeichnis gefunden wird, wird eine erstellt. Könnte es sein, dass eine der .erlang.cookie Dateien auf einer Maschine nicht an der richtigen Stelle ist? Sie können Ihre Festplatten nach der Datei suchen und wenn Sie mehr als einen finden Sie erstellt haben, haben erlang könnte es dort setzen und es verwendet.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top