gpt4 book ai didi

java.lang.IllegalStateException : Pool has been closed

转载 作者:行者123 更新时间:2023-12-01 17:46:45 26 4
gpt4 key购买 nike

通过 REST API 对 google spanner 进行读写操作时出现以下异常

已手动创建 Spanner 实例、数据库和表,并尝试读取和写入 Spanner 表,但出现此错误。想知道这个错误是由于配置还是运行时代码引起的。

帮我解决这个问题

java.lang.IllegalStateException:池已关闭 在 com.google.cloud.spanner.SessionPool.getReadSession(SessionPool.java:834) ~[google-cloud-spanner-1.11.0.jar:1.11.0] 在 com.google.cloud.spanner.DatabaseClientImpl.singleUse(DatabaseClientImpl.java:72) ~[google-cloud-spanner-1.11.0.jar:1.11.0]

最佳答案

此错误源自 Spanner 客户端库,而不是 REST API。这表明您已关闭用于获取 DatabaseClientSpanner 实例,但您仍在使用 DatabaseClient。因此以下示例将强制触发此错误:

    Spanner spanner = SpannerOptions.newBuilder()
.setProjectId("project-id")
.build()
.getService();
DatabaseClient client = spanner.getDatabaseClient(DatabaseId.of("project-id", "instance-id", "database-id"));

// Don't to this if you intend to use the DatabaseClient you just got on
// the previous line at a later moment.
spanner.close();

// The following line will trigger the error mentioned.
try(ResultSet rs = client.singleUse().executeQuery(Statement.of("SELECT * FROM FOO"))) {
while(rs.next()) {
System.out.println(rs.getCurrentRowAsStruct().toString());
}
}

Spanner 实例通常应在应用程序的整个生命周期中存在。仅当您确定不再与数据库进行任何进一步交互时才应该关闭它。

关于java.lang.IllegalStateException : Pool has been closed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60855094/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com