ResourceType を ConnectionPoolDataSource として Glassfish 接続プールを作成しました。したがって、glassfish は接続プールにネイティブ接続プール実装を使用します。分散トランザクションを実行したくないので、XADatasource ResourceType を使用していません。
私のアプリケーションでは、実行時に TEMPERORY MYSQL テーブル作成を使用する必要があります。そのため、以下のコードを使用して、glassfish の JNDI データソースから接続を取得しています。
@Resource(mappedName = "jdbc/xxxxx")
private DataSource dataSource;
public Connection getConnection() throws SQLException {
Connection con = dataSource.getConnection();
return con;
}
さて、私の質問は、この Connection オブジェクトで setAutoCommit(false)、commit() および rollback()、close() を実行できますか???? フォーラムで、分散トランザクションに関与するコンテナ管理分散トランザクション (XADataSource) から接続を取得する場合、接続オブジェクトでこれらのメソッドを呼び出すべきではないことを読みました。しかし、私はこの接続を非分散トランザクションから取得しています。したがって、これらのメソッドを正しく呼び出すことができますか???
他の質問は、db 操作を実行した後、con.close() を呼び出すと、この接続は再び接続プールに戻るのでしょうか?