[英]Creating JDBC transaction for second data source with existing connection pool in Glassfish
我有使用数据库的主要数据源,该数据库使用了一些连接池。 现在,我要创建第二个数据源,该数据源将使用相同的连接池在单独的事务中执行记录操作,然后在主数据库事务中执行记录操作! 据我从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;
}
我已经知道了。 有必要启动一个新的线程,然后将创建一个新的事务。 另请参阅回滚期间写入数据库日志
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.