2014-04-23 11 views
7

Ich erfahre diesen Fehler beim Abfragen von Cassandra mit Cassandra-jdbc (1.1.3) -Treiber.Cassandra Lesen Sie eine negative Bildgröße

Caused by: org.apache.thrift.transport.TTransportException: Read a negative frame size (-2147418110)! 
at org.apache.thrift.transport.TFramedTransport.readFrame(TFramedTransport.java:133) 
at org.apache.thrift.transport.TFramedTransport.read(TFramedTransport.java:101) 
at org.apache.thrift.transport.TTransport.readAll(TTransport.java:84) 
at org.apache.thrift.protocol.TBinaryProtocol.readStringBody(TBinaryProtocol.java:354) 
at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:215) 
at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:69) 
at org.apache.cassandra.thrift.Cassandra$Client.recv_prepare_cql_query(Cassandra.java:1438) 
at org.apache.cassandra.thrift.Cassandra$Client.prepare_cql_query(Cassandra.java:1424) 
at org.apache.cassandra.cql.jdbc.CassandraConnection.prepare(CassandraConnection.java:438) 
at org.apache.cassandra.cql.jdbc.CassandraConnection.prepare(CassandraConnection.java:452) 
at org.apache.cassandra.cql.jdbc.CassandraPreparedStatement.<init>(CassandraPreparedStatement.java:85) 
... 79 more 

Dies ist mein Beispielcode

statement = connection.prepareStatement(SELECT_CQL); 
statement.setString(1, ID); 
resultSet = statement.executeQuery(); 
+0

Vielleicht benutzt Ihr Kunde nicht gerahmten Transport? Wie hast du das Verbindungsobjekt erstellt? – Richard

+0

Da wir CQL verwenden, frage ich mich, wie diese Sparsamkeit Schnittstelle ins Bild kommt .. – udarakr

+0

Ich bin mit einem ähnlichen Problem konfrontiert Cassandra in meiner Web-Anwendung zu verbinden. Ich benutze Spiel! 2.4 und Cassandra 2.2 Versionen jeweils. All die Dinge in meiner persistence.xml werden perfekt zur Verfügung gestellt. Das einzige, was mir nicht ganz sicher ist, ist, was ich in das Attribut persistence_unit in persistence.xml schreiben soll? Die Ausnahme, die ich bekomme, ist 'org.apache.thrift.TException: org.apache.thrift.transport.TTransportException: Lesen Sie eine negative Framegröße (-2080374784)!'. Kann mir jemand helfen? –

Antwort

8

Snippet Ich bin der Annahme, Sie Cassandra über JDBC auf cql-Port (9042) zu verbinden versuchten. konnte ich es mit

nodetool enablethrift 

und dann dem Anschluss an Port 9160 (oder welcher auch immer Sie in conf/cassandra.yaml außer Kraft gesetzt haben könnten) ermöglicht Sparsamkeit verbinden. Hoffe das hilft.