借助Cloud SQL,在App
Engine上寻找连接池解决方案时,会出现多个条目,并提出HikariCP应该起作用的建议,因为它允许外部ThreadFactory配置。
配置如下所示:
import com.google.appengine.api.ThreadManager;
...
HikariConfig lConfig = new HikariConfig();
config.setThreadFactory(ThreadManager.backgroundThreadFactory());
...
但是有问题。
Google App Engine上的HikariCP
实际上,由于App Engine受限制的“沙盒”环境,快速尝试暴露了多个问题。
所以问题仍然存在。 有人成功在Google App Engine上实现了HikariCP吗?
是的,我已经在Google App Engine上实现了HikariCP,但是有一些注意事项。
Google App Engine使用三种类型和实例类;
只有基本和手动缩放类型允许背景线程,因此是与HikariCP一起使用的唯一候选者。我使用了基本扩展,这对于大约已知的用户群(例如,每个部署的实例一个公司)来说是没有问题的。此类型启用其他一些不错的功能,例如会话支持和功能强大的B8实例(1024
MB / 4.8 GHz)。对于我的大多数应用程序,我更喜欢一个强大的初始化实例,而不是多个实例。
属性 threadFactory
仅可通过编程配置来使用,因此我实现了自己的连接提供程序;
public class MyConnectionProvider implements ConnectionProvider, Configurable, Stoppable
{
...
public void configure(Map props) throws HibernateException
{
try
{
mHikariConfig = HikariConfigurationUtil.loadConfiguration(props);
if (SystemProperty.environment.value() == SystemProperty.Environment.Value.Production)
{
mHikariConfig.setDriverClassName("com.mysql.jdbc.GoogleDriver");
mHikariConfig.setJdbcUrl("jdbc:google:mysql://project-xxx:database/xxx");
mHikariConfig.setThreadFactory(ThreadManager.backgroundThreadFactory());
}
else
{
mHikariConfig.setDriverClassName("com.mysql.jdbc.Driver");
mHikariConfig.setJdbcUrl("jdbc:mysql://localhost:3306/xxx");
}
mHikariConfig.addDataSourceProperty("databaseName", "xxx");
mHikariConfig.setUsername("USERNAME");
mHikariConfig.setPassword("PASSWD");
mHikariConfig.setRegisterMbeans(false);
mHikariConfig.setMaximumPoolSize(12);
mHikariConfig.addDataSourceProperty("cachePrepStmts", "true");
mHikariConfig.addDataSourceProperty("useServerPrepStmts", "true");
mHikariConfig.addDataSourceProperty("prepStmtCacheSize", "250");
mHikariConfig.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
mHikariDataSource = new HikariDataSource(mHikariConfig);
}
catch (Exception e)
{
throw new HibernateException(e);
}
}
...
}
数据库名称已经在JdbcUrl中,但是我不得不再次指定它。另一个重要的配置设置是
mHikariConfig.setRegisterMbeans(false);
这会禁用on App Engine的受限Java管理扩展。
根据Mozilla的说法,iOS上没有任何浏览器支持跨源开放策略,这是启用ShareDarrayBuffer的安全要求之一。这是否意味着我不能将SharedArrayBuffer用于iOS平台上的任何Web应用程序?
项目的数据库连接我是用HikariCP,单个增删查改速度是还算快的。但请求一多,速度就变得很慢很慢了。请问这个可以怎么优化? 然后我是这么配置的
我需要在macOS上运行旧版本的JDK 7。 我看过“如何在Mac OSX上使用JDK 7?”在“JavaVirtualMachine”中:如何在Mac OSX上使用JDK 7? 还查看了:“OpenJDK”:https://openjdk.java.net/ 知道在哪里可以找到macOS的JDK 7吗?
问题内容: 我正在使用Spring 3.0.x,并按照枚举单例模式进行实现。 最近,我们开始通过Spring收集这些类型,因此我需要在类中添加@Component。 收集方法是 完成此操作后,我观察到失败,原因是Spring无法初始化枚举类(这是可以理解的)。 我的问题是- 是否有其他方法可以将枚举类标记为bean? 还是我需要更改实施方式? 问题答案: 如果确实需要使用基于枚举的单例(尽管默认情
问题内容: 要在iPhone上通过HTML拨打电话,我创建了一个标签,其标签的href格式为:。 Android上有与HTML相当的东西吗? 澄清-使用格式href =’tele:123-555-1212’确实适用于android。我正在设备上的本机Java包装中测试该应用程序。它似乎好像不能从本地包装器中托管的Web应用程序进行呼叫。 问题答案: 是的你可以;它也适用于Android: tel:
问题内容: 我想将通用映射分组到中,但不能使用,因为我的实体已经扩展了另一个。所以我需要一个类似下面的界面: 我想像下面这样使用它: 我的意思是说这项工作可行吗? 我可以在接口上使用@MappedSuperclass注释吗? Hibernate是否支持接口? 问题答案: 号如前所述这里: JPA不直接支持接口或变量关系。