gpt4 book ai didi

java - RESOURCE_EXHAUSTED 池中没有可用的 session

转载 作者:行者123 更新时间:2023-12-02 01:53:06 25 4
gpt4 key购买 nike

我正在使用 Java 的 Spanner 客户端库,并使用 Spring 配置客户端。

过了一会儿,应用程序开始记录以下消息,但我不明白为什么。应用程序并发量很小。看来 session 没有被重用。有什么建议吗?

RESOURCE_EXHAUSTED: No session available in the pool. Maximum number of sessions in the pool can be overridden by invoking SessionPoolOptions#Builder#setMaxSessions. Client can be made to block rather than fail by setting SessionPoolOptions#Builder#setBlockIfPoolExhausted.

@Configuration
public class SpannerConfig {

@Value("${datasource.instanceId}")
private String instance;

@Value("${datasource.databaseId}")
private String database;

@Bean
public Spanner spannerService() throws IOException {

SessionPoolOptions sessionPoolOptions = SessionPoolOptions.newBuilder()
.setFailIfPoolExhausted()
.setMinSessions(5)
.setMaxSessions(100)
.build();

SpannerOptions options = SpannerOptions.newBuilder()
.setSessionPoolOption(sessionPoolOptions)
.build();

return options.getService();
}


@Bean
public DatabaseClient spannerClient(Spanner spannerService) {
DatabaseId databaseId = DatabaseId.of(spannerService.getOptions().getProjectId(), instance, database);
return spannerService.getDatabaseClient(databaseId);
}
}

最佳答案

听起来您有 session 泄漏。确保您在任何 DatabaseClient.singleUse* 或 DatabaseClient.ReadOnlyTransaction 调用周围使用 try-with-resources 表达式,以确保 Transaction 或 ResultSet 关闭,从而允许将相应的 session 返回到 session 池。

关于java - RESOURCE_EXHAUSTED 池中没有可用的 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52695111/

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