我有使用数据库的主要数据源,它使用一些连接池。现在我想创建第二个数据源,它将使用相同的连接池在单独的事务中执行日志记录操作,然后是主数据库事务!据我从Glassfish文档中了解,如果多个数据源使用相同的连接池,那么它们将共享一个事务,直到连接未关闭为止(我可能错了,请纠正我)。
那么,在连接到数据源时,是否有方法启动新事务?通过设置TransactionIsolation可能是?
通过以下方式检索连接:
private synchronized Connection getConnection() {
if (connection == null) {
try {
final Context ctx = new InitialContext();
final DataSource ds = (DataSource) ctx.lookup(getDataSourceLookupAddress());
connection = ds.getConnection();
} catch (final NamingException e) {
errorHandler.error("Datasource JNDI lookup failed: " + dataSourceLookupAddress + "!");
errorHandler.error(e.toString());
} catch (final SQLException e) {
errorHandler.error("Sql connection failed to " + dataSourceLookupAddress + "!");
errorHandler.error(e.toString());
}
}
return connection;
}
我已经弄明白了。有必要启动一个新线程,然后将创建一个新事务。请参见在回滚过程中写入数据库日志
我试图在glassfish 5中为Microsoft SQL Server数据库创建一个jdbc连接池。我使用的是和最新的SQLExpress服务器版本(MSSQL14.SQLExpress) 资源类型: 数据源类名: Ping SQL_TIRE_POOL的连接池失败。无法分配连接,原因是:驱动程序无法使用安全套接字层(SSL)加密建立到SQL Server的安全连接。错误:“unsupporte
我正在尝试创建一个从glassfish到Oracle的连接池。当我使用命令行时,在创建过程中一切似乎都正常,但应用程序崩溃,出现以下异常:
我以前也这样做过,但由于某种原因,我在创建这个连接池时确实遇到了一些困难。在创建连接池后ping连接池时,我收到以下错误: 我在创建池时提供的信息如下: : 3306; : bondsaverdb; :localhost; : root; :我的密码; 有什么我遗漏的吗?我有拼写错误或输入错误的地方吗? 先谢谢!
我的WebApp使用多个数据库,我尝试使用GlassFish连接池来管理连接,但我发现配置示例只使用一个数据库。 那么,我该怎么办?创建与我正在使用的数据库数量相同的连接池,或者是否有方法将一个池配置为多个数据库?
我正在将Dropwizard与HikariCP连接池一起使用,但我想这可能与使用任何连接池有关。如何配置Dropwizard,以便在应用程序关闭时调用HikariCP数据源的shutdown()方法?有可能吗? HikariCP常见问题解答指出,Spring或其他IOC容器使之成为可能,但我目前没有使用DI框架,只有Dropwizard。
我想创建一个类的实例,该类可以访问底层的嵌入式derby数据库,并使用声明性服务将该类传递给绑定到数据库包的每个包。 我在derby留档中看到,为多个线程共享一个连接有很多陷阱。所以我在考虑为我正在创建的类的每个实例创建一个连接。由于我只想要一种非常简单的方法来创建多个连接并管理它们,因此在这里使用“MiniConnectionPoolManager”似乎是一个不错的选择。derby的示例代码如下