Для моей диссертации мне нужно загрузить данные из файла в Cassandra Cluster. с session.execute () это слишком медленно. Поэтому я решил использовать session.executeAsyn (). но это вызывает BusyConnectionException.
Вот мой код на Java:
final PoolingOptions poolingOptions = new PoolingOptions();
poolingOptions.setMaxRequestsPerConnection(HostDistance.LOCAL, 32768)
.setMaxRequestsPerConnection(HostDistance.REMOTE, 32768);
final Cluster cluster = Cluster.builder()
.withPoolingOptions(poolingOptions)
.addContactPoint("x.x.x.x")
.withPort(9042)
.build();
final Session session = cluster.connect();
System.out.println("session object---" + session.getState());
final String path = "&PathToFile%";
final File dir = new File(path);
session.execute("use products;");
for (final File file : dir.listFiles()) {
final BufferedReader br = new BufferedReader(new FileReader(file));
String str;
final String insert = br.readLine();
while ((str = br.readLine()) != null) {
final String query = insert + str.substring(0, str.length() - 1) + "IF NOT EXISTS ;";
session.executeAsync(query);
}
}
session.close();
cluster.close();
}
вот исключения, которые были у меня при выполнении кода:
Ошибка запроса /x.x.x.1:9042: com.datastax.driver.core.exceptions.BusyPoolException: [/x.x.x.1] Пул занят (нет доступного соединения, и очередь достигла максимального размера 256)
Ошибка запроса /x.x.x.2:9042: com.datastax.driver.core.exceptions.BusyPoolException: [/x.x.x.2] Пул занят (нет доступного соединения, и очередь достигла максимального размера 256)
Ошибка запроса /x.x.x.3:9042: com.datastax.driver.core.exceptions.BusyPoolException: [/x.x.x.3] Пул занят (нет доступного соединения, и очередь достигла максимального размера 256)
Ошибка запроса /x.x.x.4:9042: com.datastax.driver.core.exceptions.BusyPoolException: [/x.x.x.4] Пул занят (нет доступного соединения, и очередь достигла максимального размера 256)
Ошибка запроса /x.x.x.5:9042: com.datastax.driver.core.exceptions.BusyPoolException: [/x.x.x.5] Пул занят (нет доступного соединения, и очередь достигла максимального размера 256)