Я получаю TraceRetrievalException при чтении данных из Кассандры - PullRequest
1 голос
/ 12 апреля 2019

Я пытаюсь прочитать определенные данные из базы данных. И выполнение запроса, чтобы получить результат. Я выполняю код в цикле while (true), чтобы повторять операцию снова и снова.

В некоторых итерациях я получаю результат, но в некоторых случаях он показывает com.datastax.driver.core.exceptions.TraceRetrievalException и не может получить время выполнения запроса. Кассандра версия-3.11.4, Datastax версия-3.7

Исключение:

com.datastax.driver.core.exceptions.TraceRetrievalException: Unable to retrieve complete query trace for id bf7902b0-5d26-11e9-befd-d97cd54dc732 after 5 tries
    at com.datastax.driver.core.QueryTrace.doFetchTrace(QueryTrace.java:242)
    at com.datastax.driver.core.QueryTrace.maybeFetchTrace(QueryTrace.java:176)
    at com.datastax.driver.core.QueryTrace.getDurationMicros(QueryTrace.java:105)
    at com.cassandra.datastax.DatastaxTestBootstrapper.lambda$0(DatastaxTestBootstrapper.java:227)
    at java.util.Collections$SingletonList.forEach(Collections.java:4822)
    at com.cassandra.datastax.DatastaxTestBootstrapper.readData(DatastaxTestBootstrapper.java:227)
    at com.cassandra.datastax.MultipleThread.run(MultipleThread.java:13)
    at java.lang.Thread.run(Thread.java:748)

Можно ли как-то преодолеть это исключение или я могу увеличить количество повторных попыток для получения полной трассировки запроса?

Statement statement1 = new SimpleStatement(
                    "SELECT * FROM keyspace.table where key='405861500500033'").enableTracing();
            ResultSet resultSet = session.execute(statement1);

            resultSet.getAllExecutionInfo()
                    .forEach(e -> System.out.println("time  :  " + e.getQueryTrace().getDurationMicros()));
...