Ich habe eine Anwendung über 2 Knoten verteilt. Wenn ich den ersten Knoten stoppe(), funktioniert der Failover einwandfrei, aber (manchmal?) Wenn ich den ersten Knoten neu starte, schlägt die Übernahme fehl und die Anwendung stürzt ab, da start_link bereits gestartet ist.Erlang Übernahme fehlgeschlagen nach erfolgreichem Failover
SUPERVISOR REPORT <0.60.0> 2009-05-20 12:12:01
===============================================================================
Reporting supervisor {local,twitter_server_supervisor}
Child process
errorContext start_error
reason {already_started,<2415.62.0>}
pid undefined
name tag1
start_function {twitter_server,start_link,[]}
restart_type permanent
shutdown 10000
child_type worker
ok
Meine app
start(_Type, Args)->
twitter_server_supervisor:start_link(Args).
stop(_State)->
ok.
Mein Vorgesetzter:
start_link(Args) ->
supervisor:start_link({local,?MODULE}, ?MODULE, Args).
Beide Knoten die gleiche sys.config-Datei verwenden.
Was verstehe ich nicht über diesen Prozess, dass das oben genannte nicht funktionieren sollte?
Kann ich Sie fragen, wo Sie so schön formatiert sasl Supervisor-Bericht bekommen? Es ist VIEL besser lesbar als Standard. Können Sie den Link oder die Quelle teilen? – gleber
Es ist das Standardergebnis, das ich mit rb: show (N) auf einer Windows-Box mit erl_12B bekomme. Die einzigen anderen Variationen, die ich gesehen habe, ist, wenn Sie den Anruf über RPC machen, dann ist die Ausgabe mit Knotennamen überflutet? Was siehst du ? –