Java 在cassandra中使用TTL指定列过期

Java 在cassandra中使用TTL指定列过期,java,jdbc,cassandra,cql,Java,Jdbc,Cassandra,Cql,当我插入TTL列过期的值时,它会给我一些意外的输出 public static void setTTL() { try { Class.forName("org.apache.cassandra.cql.jdbc.CassandraDriver"); Connection con = DriverManager.getConnection("jdbc:cassandra://192.168.1.32/temp

当我插入TTL列过期的值时,它会给我一些意外的输出

public static void setTTL()
    {
        try
        {
            Class.forName("org.apache.cassandra.cql.jdbc.CassandraDriver");
            Connection con = DriverManager.getConnection("jdbc:cassandra://192.168.1.32/temp");
            String qry = "INSERT INTO userscql3(user_name,password)VALUES('yogesh','temp@123') USING TTL 5";
            Statement smt = con.createStatement();
            smt.executeUpdate(qry);
            System.out.println(" TTL has been set");
        }
        catch(Exception e)
        {
            System.out.println(" : " + e.getMessage());
            e.printStackTrace();
        }
    }
追踪之后我得到了什么

Caused by: UnavailableException()
    at org.apache.cassandra.thrift.Cassandra$execute_cql_query_result.read(Cassandra.java:33485)
    at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:78)
    at org.apache.cassandra.thrift.Cassandra$Client.recv_execute_cql_query(Cassandra.java:1402)
    at org.apache.cassandra.thrift.Cassandra$Client.execute_cql_query(Cassandra.java:1388)
    at org.apache.cassandra.cql.jdbc.CassandraConnection.execute(CassandraConnection.java:392)
    at org.apache.cassandra.cql.jdbc.CassandraConnection.execute(CassandraConnection.java:416)
    at org.apache.cassandra.cql.jdbc.CassandraStatement.doExecute(CassandraStatement.java:161)
    ... 3 more

没有回溯,很难做出反应。但是您似乎在本地主机之外的另一台服务器中使用Cassandra。您是否已配置Cassandra的侦听地址?默认情况下,它只在本地主机上侦听

编辑

cassandra.yaml
中,您必须更改
listen\u地址
rpc\u地址
。仅针对测试用例,您可以使用:
0.0.0.0

如果在中检查
不可用异常
,您可以阅读:

不可用异常 无法创建和/或读取所需的所有副本


可能您正在使用一致性
ALL
,而您的一个节点出现故障或类似情况。

没有可用的Cassandra服务器。。。。这是我得到的输出,我指的是回溯。类似于
e.printStackTrace()
的东西应该可以使用。请看我之后得到了什么backtrack@thepaul .. sry现在我已经添加了它