8

I have a java project in IntellyJ with Cassandra DB and I am using Maven 3 and Java 7. Cassandra version is 2.0.6. I have a table with near 100,000 rows. When I run the program I get this exception:

 java.sql.SQLNonTransientConnectionException: org.apache.thrift.transport.TTransportException: Frame size (16858796) larger than max length (16384000)!
at org.apache.cassandra.cql.jdbc.CassandraStatement.doExecute(CassandraStatement.java:197)
at org.apache.cassandra.cql.jdbc.CassandraStatement.executeQuery(CassandraStatement.java:229)
at ir.categorization.methods.featureselection.DBFeatureSelection.getFeatures(DBFeatureSelection.java:102)
at ir.categorization.methods.test.Classifier.setFeatures(Classifier.java:67)
at ir.categorization.methods.test.Classifier.<init>(Classifier.java:50)
at ir.categorization.methods.test.ClassifierTest.main(ClassifierTest.java:105)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: org.apache.thrift.transport.TTransportException: Frame size (16858796) larger than max length (16384000)!
at org.apache.thrift.transport.TFramedTransport.readFrame(TFramedTransport.java:137)
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.readAll(TBinaryProtocol.java:362)
at org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:284)
at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:191)
at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:69)
at org.apache.cassandra.thrift.Cassandra$Client.recv_execute_cql3_query(Cassandra.java:1562)
at org.apache.cassandra.thrift.Cassandra$Client.execute_cql3_query(Cassandra.java:1547)
at org.apache.cassandra.cql.jdbc.CassandraConnection.execute(CassandraConnection.java:468)
at org.apache.cassandra.cql.jdbc.CassandraConnection.execute(CassandraConnection.java:494)
at org.apache.cassandra.cql.jdbc.CassandraStatement.doExecute(CassandraStatement.java:164)
... 10 more
 Exception in thread "main" java.lang.NullPointerException
at java.util.TimSort.sort(TimSort.java:173)
at java.util.Arrays.sort(Arrays.java:659)
at ir.categorization.methods.test.Classifier.setFeatures(Classifier.java:68)
at ir.categorization.methods.test.Classifier.<init>(Classifier.java:50)
at ir.categorization.methods.test.ClassifierTest.main(ClassifierTest.java:105)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

I was already using cassandra 1.2.8 in eclipse with java 6, and every thing was ok!

P.S: I set native_transport_max_frame_size_in_mb in cassandra.yaml from 256 to 512 and thrift_framed_transport_size_in_mb from 15 to 32, but it doesn't fix.

Can any body help?

user3279360
  • 99
  • 10
mshzmkot
  • 351
  • 2
  • 7
  • 22
  • did you have a look at http://stackoverflow.com/questions/19381778/thrift-max-message-length-in-mb-not-recognized-cassandra – secmask Jun 01 '14 at 12:07
  • thanks.=, i did'nt see that! but i want to know why it was work with cassandra 1.2.8 and i did'nt have any problem! – mshzmkot Jun 02 '14 at 07:41
  • I've not used cassandra yet, but I guess they have different default value(in case you did not set it both end), do a google with this error has many result :). – secmask Jun 02 '14 at 09:36
  • Now my question is as @zsh has 48 reputation how he is gonna award +50 bounty. – Raj Jun 07 '14 at 11:38

2 Answers2

1

Please use Thrift version 0.9.0.

madheswaran
  • 196
  • 11
-1

Change property start_native_transport in cassandra.yaml to

start_native_transport: true

then try and make sure you are using right port for operation.

Which API you are using to interact with Cassandra?

kkmishra
  • 699
  • 4
  • 10