繁体   English   中英

使用Glassfish中的现有连接池为第二个数据源创建JDBC事务

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM