当前位置: 首页 > 面试题库 >

使用Cloud SQL的App Engine上的连接池

拓拔野
2023-03-14
问题内容

听起来像用于应用程序引擎(1)的较新的云SQL JDBC驱动程序支持连接池

我们的应用程序使用Spring +
Hibernate,并且我们正尝试使用现有的Java框架之一进行连接池(BoneCP,C3p0,Hikari),但由于应用程序引擎的限制,迄今为止未能使用其中任何一个。使用下面的Spring
+ Hibernate + C3p0进行堆栈跟踪。有人设法使它起作用吗?

[INFO] java.lang.NoClassDefFoundError: java.lang.management.ManagementFactory is a restricted class. Please see the Google  App Engine developer's guide for more details.
[INFO]  at com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51)
[INFO]  at com.mchange.v2.c3p0.management.ActiveManagementCoordinator.<init>(ActiveManagementCoordinator.java:54)
[INFO]  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[INFO]  at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
[INFO]  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[INFO]  at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
[INFO]  at com.google.appengine.tools.development.agent.runtime.Runtime.newInstance_(Runtime.java:127)
[INFO]  at com.google.appengine.tools.development.agent.runtime.Runtime.newInstance(Runtime.java:148)
[INFO]  at com.mchange.v2.c3p0.C3P0Registry.<clinit>(C3P0Registry.java:146)
[INFO]  at java.lang.Class.forName0(Native Method)
[INFO]  at java.lang.Class.forName(Class.java:190)
[INFO]  at com.google.appengine.tools.development.agent.runtime.RuntimeHelper.checkRestricted(RuntimeHelper.java:70)
[INFO]  at com.google.appengine.tools.development.agent.runtime.Runtime.checkRestricted(Runtime.java:64)
[INFO]  at com.mchange.v2.c3p0.impl.DriverManagerDataSourceBase.<init>(DriverManagerDataSourceBase.java:212)
[INFO]  at com.mchange.v2.c3p0.DriverManagerDataSource.<init>(DriverManagerDataSource.java:72)
....

(1):旧驱动程序= com.google.appengine.api.rdbms.AppEngineDriver。新驱动程序=
com.mysql.jdbc.GoogleDriver。


问题答案:

我们最终使用Tomcat DBCP(http://tomcat.apache.org/tomcat-7.0-doc/jdbc-
pool.html
)解决了这个问题。大多数其他池的问题在于它们使用线程,这是应用引擎的模型在前端实例(即长寿命线程)上可以防止的。



 类似资料:
  • 问题内容: 我使用Google Cloud SQL和MySQL服务器开发了一些GO库。当我导入`appengine / cloudsql时,发生以下错误。 我知道这个套件仅适用于Google App Engine,并不存在于其他任何地方。 我想知道如何在单个库中将其用于GAE和其他环境的标准sql库。 PS:我可以正确设置Google App Engine SDK。我的问题与此无关。希望我的库可以

  • 问题内容: 爱堆栈,我的第一个帖子完全出于挫败感。感谢您的评论! 创建了App Engine项目 在我的App Engine项目中创建了第二代MySQL实例 在MySQL实例中创建的数据库 在App Engine中,我激活-> Google Cloud Shell <-。(我正在console.cloud.google.com中的命令提示符下工作) 我已经复制了这个基本的GO程序以连接到我的MyS

  • 我正在尝试使用Firebase的云函数来构建一个API,该API与Google Cloud SQL(PostgreSQL)实例进行对话。 我正在使用HTTP(S)触发器。 当我用白名单列出桌面的IP地址时,我可以通过函数的节点连接到云SQL。来自本地计算机的js代码。但当我部署时,我无法连接到白名单,也无法计算Firebase功能服务器的主机IP地址。 您如何从Firebase的云函数与Googl

  • 在Appengine上使用HikariCP作为连接池部署Spring Boot应用程序时,在执行一些请求时,我会遇到一些与数据库(线程)相关的错误: 然后我发现AppEngine只允许应用程序使用它的ThreadFactory创建线程。因此,我确保将Hikari配置为使用AppEngine的线程工厂,如下所示:

  • 我已经为我的数据源设置了一个prod配置来连接到GCP MySQL实例,基本上遵循以下教程:https://quarkus.io/guides/deploying-to-google-cloud#using-cloud-sql 配置为: 我还把它加到了maven上: 然后我用 然后我将图像推送到我的GCP注册表,并从GoogleRun启动它。 这部分工作得很好! 关键是,我希望使用本机映像,因此我

  • 我一直试图连接到运行在中的示例PHP Hello world应用程序到