簡體   English   中英

java.sql.SQLNonTransientConnectionException:org.apache.thrift.transport.TTransportException:幀大小大於最大長度(16384000)!

[英]java.sql.SQLNonTransientConnectionException: org.apache.thrift.transport.TTransportException: Frame size larger than max length (16384000)!

我在具有Cassandra DB的IntellyJ中有一個Java項目,正在使用Maven 3和Java7。Cassandra版本為2.0.6。 我有一張近100,000行的表。 當我運行程序時,出現以下異常:

 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)

我已經在Java 6的Eclipse中使用cassandra 1.2.8,一切正常!

PS:我在cassandra.yaml中將native_transport_max_frame_size_in_mb設置為256至512,將thrift_framed_transport_size_in_mb設置為15至32,但它沒有解決。

有身體可以幫助嗎?

請使用0.9.0版的Thrift。

將cassandra.yaml中的屬性start_native_transport更改為

start_native_transport: true

然后嘗試確保使用正確的端口進行操作。

您正在使用哪個API與Cassandra進行交互?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM