Why won my distributed Erlang nodes communicate?
For Erlang nodes to be able to communicate, you need • A working tcp network between the nodes. On unix systems you can check this by using telnet, though a working telnet doesn’t guarantee that enough of your network is working, e.g. DNS problems throw a spanner in Erlang’s distribution mechanisms. • The nodes to use the same node naming scheme (you cannot have a system where some nodes use fully qualified names and others use short names). • The nodes must agree to use the same “magic security cookie”. Here’s an example of how to create two nodes on different machines called martell and grolsch and verify that they’re connected. On one machine: ~ >rlogin martell Last login: Sat Feb 5 20:40:52 from super ~ >erl -sname first_node Eshell V4.9.1.1 (abort with ^G) (first_node@martell)1> erlang:set_cookie(first_node, nocookie). true And on the other ~ >rlogin grolsch Last login: Thu Feb 3 10:54:20 from :0 ~ >erl -sname second_node Eshell V4.9.1.1 (abort with ^G) (second_node@grolsch)1> erl
Related Questions
- What IP address does the Clusters function in iSeries Navigator use to communicate with the nodes in the cluster? Doesn it use the IP address of the node name?
- How does topology discovery work to communicate a new nodes presence to all the other nodes on an RPR?
- Why won my distributed Erlang nodes communicate?