FINERACT-2081: Fix Connection is not available, request timed out after 30000ms issue of "read-only" check
This commit is contained in:
+5
-1
@@ -25,6 +25,7 @@ import java.sql.SQLException;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.CopyOnWriteArrayList;
|
import java.util.concurrent.CopyOnWriteArrayList;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
import org.springframework.jdbc.datasource.DataSourceUtils;
|
||||||
import org.springframework.jdbc.datasource.JdbcTransactionObjectSupport;
|
import org.springframework.jdbc.datasource.JdbcTransactionObjectSupport;
|
||||||
import org.springframework.orm.jpa.EntityManagerHolder;
|
import org.springframework.orm.jpa.EntityManagerHolder;
|
||||||
import org.springframework.orm.jpa.JpaTransactionManager;
|
import org.springframework.orm.jpa.JpaTransactionManager;
|
||||||
@@ -65,10 +66,13 @@ public class ExtendedJpaTransactionManager extends JpaTransactionManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isReadOnlyConnection() {
|
public boolean isReadOnlyConnection() {
|
||||||
try (Connection connection = getDataSource().getConnection()) {
|
Connection connection = DataSourceUtils.getConnection(getDataSource());
|
||||||
|
try {
|
||||||
return connection.isReadOnly();
|
return connection.isReadOnly();
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new IllegalStateException(e);
|
throw new IllegalStateException(e);
|
||||||
|
} finally {
|
||||||
|
DataSourceUtils.releaseConnection(connection, getDataSource());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user