2014-04-23 16 views
7

Występuje ten błąd podczas próby zapytania Cassandry przy użyciu sterownika cassandra-jdbc (1.1.3).Cassandra Przeczytaj negatywny rozmiar ramki

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 

To jest mój przykładowy kod snippet

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

Może Twój klient nie korzysta z transportu ramowego? Jak stworzyłeś obiekt połączenia? – Richard

+0

Ponieważ używamy CQL, zastanawiam się, jak ten interfejs oszczędzania pojawia się w obrazie. – udarakr

+0

Mam do czynienia z podobnym problemem, który łączy Cassandrę w mojej aplikacji internetowej. Używam Play! Wersje 2.4 i Cassandra 2.2. Wszystkie rzeczy w moim pliku persistence.xml są dostarczane idealnie. Jedyne, czego nie jestem pewien, to co napisać w atrybucie persistence_unit w pliku persistence.xml? Wyjątek, który otrzymuję, to: org.apache.thrift.TException: org.apache.thrift.transport.TTransportException: Odczytaj ujemny rozmiar ramki (-2080374784)! Jeśli ktoś może pomóc w związku z tym? –

Odpowiedz

8

Ja zakładając, że próbujesz połączyć się z Cassandrą poprzez JDBC na porcie CQI (9042). udało mi się z nim połączyć umożliwiając zapobiegliwości z

nodetool enablethrift 

a następnie podłączenie do portu 9160 (lub cokolwiek mogłeś nadpisane w conf/cassandra.yaml). Mam nadzieję że to pomoże.

Powiązane problemy