2016-03-28 5 views
0

Neue EC2-Instanz von neo4j über CloudFormation-Vorlage erstellt (ubuntu-Host). https://github.com/neo4j-contrib/ec2neoKeine Befehlsantwort von neo4j-shell, obwohl eine Verbindung hergestellt wurde

Das Web-Interface funktioniert gut, und die DB läuft.

Ich versuche, mich mit neo4j-shell von meinem lokalen Dev-Computer verbinden, und ich kann eine Verbindung zum Remote-EC2-Server herstellen.

$ neo4j-shell -host ec2-xx-xx-xx-xx.compute-1.amazonaws.com 

Welcome to the Neo4j Shell! Enter 'help' for a list of commands 
NOTE: Remote Neo4j graph database service 'shell' at port 1337 

neo4j-sh (?)$ 

netstat bestätigt, dass eine Verbindung ESTABLISHED wurde

tcp6 0 0 xx.xx.xx.xx:1337 my.local.ip.add:13785 ESTABLISHED

An diesem Punkt Typ I help oder über Neo4j Befehl, und ich erhalte keine Antwort vom Server zurück. Die Konsole hängt einfach. Sobald ich den neo4j-Dienst auf dem Server stoppe, erhalte ich die folgende Ausnahme auf der Client-Konsole.

java.rmi.UnmarshalException: Error unmarshaling return header; nested exception is: 
    java.io.EOFException 
    at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:229) 
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:162) 
    at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:194) 
    at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:148) 
    at com.sun.proxy.$Proxy1.interpretLine(Unknown Source) 
    at org.neo4j.shell.impl.AbstractClient.evaluate(AbstractClient.java:149) 
    at org.neo4j.shell.impl.AbstractClient.evaluate(AbstractClient.java:133) 
    at org.neo4j.shell.impl.AbstractClient.grabPrompt(AbstractClient.java:101) 
    at org.neo4j.shell.StartClient.grabPromptOrJustExecuteCommand(StartClient.java:383) 
    at org.neo4j.shell.StartClient.startRemote(StartClient.java:330) 
    at org.neo4j.shell.StartClient.start(StartClient.java:196) 
    at org.neo4j.shell.StartClient.main(StartClient.java:135) 
Caused by: java.io.EOFException 
    at java.io.DataInputStream.readByte(DataInputStream.java:267) 
    at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:215) 
    ... 11 more 

Ich habe folgende Änderung neo4j-wrapper.conf gemacht:

wrapper.java.additional=-Djava.rmi.server.hostname=ec2-xx-xx-xx-xx.compute-1.amazonaws.com

Alle iptables sind "gesperrt", Variablen zu eliminieren. Ich bin in der Lage zu laufen neo4j-shell auf dem Server selbst, 127.0.0.1

Was fehlt mir in meinem Netzwerk Config oder Neo4j Server Config?

+0

Dies kann auf das Problem .policy/permissions auf dem Server hinweisen. – EJP

Antwort

0

Versuchen Sie, ssh in die Instanz und führen Sie es dort. Remote-Verbindungen waren wegen der zugrunde liegenden Java-RMI-Port-Handhabung lange Zeit ein Problem. Sie können auch cycli ausprobieren, die http und auth unterstützt.

+0

Ja, scheint mit https://github.com/neo4j/neo4j/issues/1432 verbunden zu sein, genau wie alle anderen SO-Probleme rund um RMI für neo4j-shell. Ich dachte meins war anders, weil ich erfolgreich eine Verbindung herstellen konnte, aber später erkannte ich, dass die interne IP-Auflösung immer noch nicht funktionierte. – changingrainbows

+0

Probleme beim Verbinden mit cycli zu neo4j-Instanz auf EC2 ohne Firewall/Port-Blockierung. Irgendwelche Guidance/sites/blogs auf die Verbindung mit cycli zu EC2-hosted neo4j hinweisen? Klar funktioniert es, da Graphene es den ganzen Tag benutzt .... – changingrainbows