从WSO2和JDBC连接到Cassandra 3.0.3

从WSO2和JDBC连接到Cassandra 3.0.3,cassandra,wso2esb,thrift,wso2dss,cassandra-3.0,Cassandra,Wso2esb,Thrift,Wso2dss,Cassandra 3.0,我试图从Wso2 ESB和Wso2 DSS连接到Cassandra DB,这两种方法都会得到相同的错误 1) 方法1:从WSO2 ESB连接到Cassandra 我们正在尝试从Wso2 ESB 4.9连接Cassandra DB 3.0.3 下面是复制到components/lib文件夹的JAR 在master-datasource.xml中添加了以下配置 <datasource> <name>CassandraDB</name>

我试图从Wso2 ESB和Wso2 DSS连接到Cassandra DB,这两种方法都会得到相同的错误

1) 方法1:从WSO2 ESB连接到Cassandra

我们正在尝试从Wso2 ESB 4.9连接Cassandra DB 3.0.3

下面是复制到components/lib文件夹的JAR

在master-datasource.xml中添加了以下配置

<datasource>
        <name>CassandraDB</name>
        <description>The datasource used for cassandra</description>
                                <jndiConfig>
            <name>cassandraWSO2DB</name>
        </jndiConfig>
            <definition type="RDBMS">
            <configuration>
                <url>jdbc:cassandra://127.0.0.1:9042/sample</url>(tried with port 9160)
                <username>cassandra</username>
                <password>cassandra</password>
                <driverClassName>org.apache.cassandra.cql.jdbc.CassandraDriver</driverClassName>
                <maxActive>50</maxActive>
                <maxWait>60000</maxWait>
                <testOnBorrow>true</testOnBorrow>
                <validationQuery>SELECT COUNT(*) from sample.users</validationQuery>
                <validationInterval>30000</validationInterval>
                <defaultAutoCommit>true</defaultAutoCommit>
            </configuration>
        </definition>
    </datasource>

卡桑德拉布
用于cassandra的数据源
卡桑德拉乌索2DB
jdbc:cassandra://127.0.0.1:9042/sample(尝试使用端口9160)
卡桑德拉
卡桑德拉
org.apache.cassandra.cql.jdbc.CassandraDriver
50
60000
真的
从sample.users中选择COUNT(*)
30000
真的
2) 方法2:从WSO2 DSS连接到Cassandra

我们正在尝试从Wso2 DSS 3.5.0连接Cassandra DB 下面是复制到components/lib文件夹的JAR

创建了数据服务并添加了数据源,以下是相同的配置:

<config enableOData="false" id="CassandraSampleId">
  <property name="url">jdbc:cassandra://127.0.0.1:9042/sample</property>
  <property name="driverClassName">org.apache.cassandra.cql.jdbc.CassandraDriver</property>

jdbc:cassandra://127.0.0.1:9042/sample
org.apache.cassandra.cql.jdbc.CassandraDriver


从用户中选择*

在上面的配置中,“sample”是在Cassandra中创建的键空间。 在这两种情况下,即&[2]面临相同的以下错误。你能建议解决这个问题吗

java.sql.SQLNonTransientConnectionException: org.apache.thrift.transport.TTransportException: Read a negative frame size (-2080374784)!

    at org.wso2.carbon.dataservices.core.description.config.RDBMSConfig.<init>(RDBMSConfig.java:45)
    at org.wso2.carbon.dataservices.core.description.config.ConfigFactory.getRDBMSConfig(ConfigFactory.java:92)
    at org.wso2.carbon.dataservices.core.description.config.ConfigFactory.createConfig(ConfigFactory.java:60)
    at org.wso2.carbon.dataservices.core.DataServiceFactory.createDataService(DataServiceFactory.java:150)
    at org.wso2.carbon.dataservices.core.DBDeployer.createDBService(DBDeployer.java:785)
    at org.wso2.carbon.dataservices.core.DBDeployer.processService(DBDeployer.java:1139)
    at org.wso2.carbon.dataservices.core.DBDeployer.deploy(DBDeployer.java:195)
    ... 8 more
Caused by: java.sql.SQLNonTransientConnectionException: org.apache.thrift.transport.TTransportException: Read a negative frame size (-2080374784)!
        at org.apache.cassandra.cql.jdbc.CassandraConnection.<init>(CassandraConnection.java:159)
        at org.apache.cassandra.cql.jdbc.CassandraDriver.connect(CassandraDriver.java:92)
        at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:278)
        at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:182)
        at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:701)
        at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:635)
        at org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection(ConnectionPool.java:188)
        at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:127)
        at org.wso2.carbon.dataservices.core.description.config.SQLConfig.createConnection(SQLConfig.java:187)
        at org.wso2.carbon.dataservices.core.description.config.SQLConfig.createConnection(SQLConfig.java:173)
        at org.wso2.carbon.dataservices.core.description.config.SQLConfig.initSQLDataSource(SQLConfig.java:151)
        at org.wso2.carbon.dataservices.core.description.config.RDBMSConfig.<init>(RDBMSConfig.java:43)
        ... 14 more
Caused by: org.apache.thrift.transport.TTransportException: Read a negative frame size (-2080374784)!
        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.readAll(TBinaryProtocol.java:378)
        at org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:297)
        at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:204)
        at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:69)
        at org.apache.cassandra.thrift.Cassandra$Client.recv_describe_cluster_name(Cassandra.java:1101)
        at org.apache.cassandra.thrift.Cassandra$Client.describe_cluster_name(Cassandra.java:1089)
        at org.apache.cassandra.cql.jdbc.CassandraConnection.<init>(CassandraConnection.java:130)
java.sql.SQLNonTransientConnectionException:org.apache.thrift.transport.ttTransportException:读取负帧大小(-2080374784)!
位于org.wso2.carbon.dataservices.core.description.config.RDBMSConfig.(RDBMSConfig.java:45)
位于org.wso2.carbon.dataservices.core.description.config.ConfigFactory.getRDBMSConfig(ConfigFactory.java:92)
位于org.wso2.carbon.dataservices.core.description.config.ConfigFactory.createConfig(ConfigFactory.java:60)
位于org.wso2.carbon.dataservices.core.DataServiceFactory.createDataService(DataServiceFactory.java:150)
位于org.wso2.carbon.dataservices.core.DBDeployer.createDBService(DBDeployer.java:785)
位于org.wso2.carbon.dataservices.core.DBDeployer.processService(DBDeployer.java:1139)
位于org.wso2.carbon.dataservices.core.DBDeployer.deploy(DBDeployer.java:195)
... 8个以上
原因:java.sql.SQLNonTransientConnectionException:org.apache.thrift.transport.ttTransportException:读取负帧大小(-2080374784)!
位于org.apache.cassandra.cql.jdbc.CassandraConnection.(CassandraConnection.java:159)
位于org.apache.cassandra.cql.jdbc.CassandraDriver.connect(CassandraDriver.java:92)
位于org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:278)
位于org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:182)
位于org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:701)
位于org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:635)
位于org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection(ConnectionPool.java:188)
位于org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:127)
位于org.wso2.carbon.dataservices.core.description.config.SQLConfig.createConnection(SQLConfig.java:187)
位于org.wso2.carbon.dataservices.core.description.config.SQLConfig.createConnection(SQLConfig.java:173)
位于org.wso2.carbon.dataservices.core.description.config.SQLConfig.initSQLDataSource(SQLConfig.java:151)
位于org.wso2.carbon.dataservices.core.description.config.RDBMSConfig.(RDBMSConfig.java:43)
... 14多
原因:org.apache.thrift.transport.ttTransportException:读取负帧大小(-2080374784)!
位于org.apache.thrift.transport.TFramedTransport.readFrame(TFramedTransport.java:133)
位于org.apache.thrift.transport.TFramedTransport.read(TFramedTransport.java:101)
位于org.apache.thrift.transport.tttransport.readAll(tttransport.java:84)
位于org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:378)
位于org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:297)
位于org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:204)
位于org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:69)
位于org.apache.cassandra.thrift.cassandra$Client.recv_description_cluster_name(cassandra.java:1101)
位于org.apache.cassandra.thrift.cassandra$Client.description_cluster_name(cassandra.java:1089)
位于org.apache.cassandra.cql.jdbc.CassandraConnection.(CassandraConnection.java:130)
至少,这将使节俭在9160上运行,您将准备好再次尝试连接。然而,我不知道JDBC是否会与Cassandra3.x一起工作。如果是这样的话,您肯定不会获得所有可用的功能


我在这里看到的最大的问题是,你正在尝试使用新版本的Cassandra,它的技术并不是设计用来与之交互的。但是试着在卡桑德拉开始节俭,看看这是否有帮助。如果有什么问题的话,它应该会帮你解决下一个问题。

@kishoreNagula做了我建议的任何事情吗?你们能让这个工作吗?嗨,亚伦,谢谢你们调查这个问题。尝试使用start_rpc:true,但仍然是相同的错误。也使用了不同版本的cassandra驱动程序。不走运。
java.sql.SQLNonTransientConnectionException: org.apache.thrift.transport.TTransportException: Read a negative frame size (-2080374784)!

    at org.wso2.carbon.dataservices.core.description.config.RDBMSConfig.<init>(RDBMSConfig.java:45)
    at org.wso2.carbon.dataservices.core.description.config.ConfigFactory.getRDBMSConfig(ConfigFactory.java:92)
    at org.wso2.carbon.dataservices.core.description.config.ConfigFactory.createConfig(ConfigFactory.java:60)
    at org.wso2.carbon.dataservices.core.DataServiceFactory.createDataService(DataServiceFactory.java:150)
    at org.wso2.carbon.dataservices.core.DBDeployer.createDBService(DBDeployer.java:785)
    at org.wso2.carbon.dataservices.core.DBDeployer.processService(DBDeployer.java:1139)
    at org.wso2.carbon.dataservices.core.DBDeployer.deploy(DBDeployer.java:195)
    ... 8 more
Caused by: java.sql.SQLNonTransientConnectionException: org.apache.thrift.transport.TTransportException: Read a negative frame size (-2080374784)!
        at org.apache.cassandra.cql.jdbc.CassandraConnection.<init>(CassandraConnection.java:159)
        at org.apache.cassandra.cql.jdbc.CassandraDriver.connect(CassandraDriver.java:92)
        at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:278)
        at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:182)
        at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:701)
        at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:635)
        at org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection(ConnectionPool.java:188)
        at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:127)
        at org.wso2.carbon.dataservices.core.description.config.SQLConfig.createConnection(SQLConfig.java:187)
        at org.wso2.carbon.dataservices.core.description.config.SQLConfig.createConnection(SQLConfig.java:173)
        at org.wso2.carbon.dataservices.core.description.config.SQLConfig.initSQLDataSource(SQLConfig.java:151)
        at org.wso2.carbon.dataservices.core.description.config.RDBMSConfig.<init>(RDBMSConfig.java:43)
        ... 14 more
Caused by: org.apache.thrift.transport.TTransportException: Read a negative frame size (-2080374784)!
        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.readAll(TBinaryProtocol.java:378)
        at org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:297)
        at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:204)
        at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:69)
        at org.apache.cassandra.thrift.Cassandra$Client.recv_describe_cluster_name(Cassandra.java:1101)
        at org.apache.cassandra.thrift.Cassandra$Client.describe_cluster_name(Cassandra.java:1089)
        at org.apache.cassandra.cql.jdbc.CassandraConnection.<init>(CassandraConnection.java:130)
<query id="SampleQuery" useConfig="CassandraSampleId">
  <expression>select * from users</expression>

<validationQuery>SELECT COUNT(*) from sample.users</validationQuery>
       <definition type="RDBMS">
        <configuration>
            <url>jdbc:cassandra://127.0.0.1:9042/sample</url>(tried with port 9160)

org.apache.thrift.transport.TTransportException: 
start_rpc: true