当前位置: 首页 > 知识库问答 >
问题:

为什么针对Spanner仿真程序运行的Spanner spring演示无法创建池数据库连接?

孔茂
2023-03-14

我无法让Google的spring-data-jpa-sample项目在Spanner仿真器上运行。我正在MacOS Mojave上使用预装的JDK11(AdoptOpenJDK build 11.0.3+7)。

我已经根据我的GCP帐户进行了身份验证,并按照这里的说明完成了模拟器的设置,然后按照说明启动模拟器,成功创建实例,并将SPANNER_EMULATOR_HOST环境变量设置为localhost:9010

java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 30088ms.

在此之前有两个警告。HHH000342:无法获取查询元数据的连接)和SQL错误:0,SqlState:null。

如果我更新spring.datasource.url以在结尾添加useplaintext=true,我在这里将其视为一种建议的解决方案,那么结果是相同的。

应用程序代码和配置与spring-data-jpa-sample项目中所示完全相同,这就是为什么我没有在这里发布它--除了Application.properties中的spring.datasource.url值(参见下面)。要复制此问题,请按照此处的模拟器设置说明进行操作,克隆存储库,设置项目、实例和数据库变量并运行代码示例。

下面是application.properties文件的内容:

# Application configuration to use Cloud Spanner with Spring Data JPA

# Spanner connection URL.
# - ${PROJECT_ID} Replace with your GCP project ID
# - ${INSTANCE_ID} Replace with your Spanner instance ID
# - ${DATABASE_NAME} Replace with your Spanner database name within your Spanner instance
spring.datasource.url=jdbc:cloudspanner:/projects/test-project/instances/test-instance/databases/spring-demo?usePlainText=true

# Specify the Spanner JDBC driver.
spring.datasource.driver-class-name=com.google.cloud.spanner.jdbc.JdbcDriver

# Specify the Spanner Hibernate dialect.
spring.jpa.properties.hibernate.dialect=com.google.cloud.spanner.hibernate.SpannerDialect

spring.jpa.hibernate.ddl-auto=update

# Settings to enable batching statements for efficiency
spring.jpa.properties.hibernate.jdbc.batch_size=100

# You may display SQL statements and stats for debugging if needed.
spring.jpa.properties.hibernate.show_sql=true
spring.jpa.properties.hibernate.format_sql=true

共有1个答案

耿永寿
2023-03-14
gcloud spanner databases create spring-demo --instance=test-instance 

现在一切都好了。

 类似资料:
  • 我对Android开发是全新的,我正在尝试在Android中做一个小任务(一个注册表单)。然而,我得到以下错误: 我为Android 4.4 API level 19增加了768(以前为512),但我得到 创建上下文0x3005失败[2013-12-05 13:55:54-Emulator]模拟器:警告:无法使用软件呈现器初始化OpenglES仿真。wglGetExtensionsStringAR

  • 问题内容: 我有这样的代码: 每次尝试访问它时,总会出现恐慌。 像这个: 我以为我可以访问从我设置为全局变量。当我将数据库初始化移动到错误不会出现。 我的代码中哪些部分是错误的? 另外,我是Golang的新手。如果您对如何组织我的代码有任何建议,请告诉我。谢谢.. :) 问题答案: 您的函数中的db变量正在遮盖全局变量。执行此操作时: 它将其分配给新的局部变量db。这是因为它不是来自同一块。根据标

  • 本文向大家介绍解释一下什么是池化设计思想。什么是数据库连接池?为什么需要数据库连接池?相关面试题,主要包含被问及解释一下什么是池化设计思想。什么是数据库连接池?为什么需要数据库连接池?时的应答技巧和注意事项,需要的朋友参考一下 池话设计应该不是一个新名词。我们常见的如java线程池、jdbc连接池、redis连接池等就是这类设计的代表实现。这种设计会初始预设资源,解决的问题就是抵消每次获取资源的消

  • 我试过这是DBeaver和DataGrip。 在本地运行Google Spanner模拟器(0.8.0) 我的jdbc连接字符串如下(项目、实例和数据库都已创建):

  • 设备:Macbook pro catalina和所有软件都是最新的。 我在android studio中完成了设置flutter的所有正确步骤,安装了推荐的模拟器,所有事情都可以,但在模拟器中构建flutter演示应用程序无法工作(它在IOS模拟器中工作得很好),并显示了这个错误: 在https://help.gradle.org获得更多帮助 生成失败,39s完成,错误:Gradle task a

  • 我对Cloud Spanenr很陌生。我已经理解了hoe创建连接(dbClient),并用于事务和执行查询/其他突变。但是我不清楚如何为云Spanner创建ConnectionPooling,有SpannerOptions,Session/SessionPoolOptions。通过创建 将处理企业应用程序所需的connectionPooling。 如果我们将Connection object从Po