@Transactional(rollbackFor = Exception.class)
method{
1.delete table11
2.delete tablel2 -\> this point sqltimeout
}
< /code>
Удаление Table2 вызвало тайм -аут, и произошло SQLTimeOutException, но удаление Table1 было совершено. Журнал также выводит: < /p>
орг.springframework.transaction.transactionSystemexception: jdbc hollback.@Around("execution(" + DAO + ")")
@Transactional(rollbackFor = Exception.class)
public Object daoLog(ProceedingJoinPoint joinpoint) throws Throwable {
Signature signature = joinpoint.getSignature();
// Execution class name
String className = "";
// Execution method name
String methodName = "";
// Execution function ID
String functionId = "";
// DB action
String action = "";
// Number of processes
int processCount = 0;
if (signature instanceof MethodSignature) {
// get method name
methodName = signature.getName();
// get class name
className = joinpoint.getTarget().getClass().getSimpleName();
// get DB action
action = getDbAction(methodName);
}
if (CompareUtil.isNotNull(loginInfoDto)) {
if (CompareUtil.isNotEmpty(loginInfoDto.getFunctionId())) {
// get function ID
functionId = loginInfoDto.getFunctionId();
}
}
try {
// execute DAO method
Object result = joinpoint.proceed();
// get the number of processes
processCount = getProcessCount(result);
// output log
log.info(String.format(LOG_FORMAT, functionId, className, methodName, String.format(MESSAGE_FORMAT, processCount, action)));
return result;
} catch (Exception ex) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
log.info(String.format(LOG_FORMAT, functionId, className, methodName, "abnormal end " + ex.getClass().getName()));
throw ex;
}
}
< /code>
phenomenon < /h3>
[list]
[*]joinpoint.proceed();
At this point, the connection has already been committed and the connection has been destroyed.
### HikariCP config
```yaml
spring:
datasource:
url : jdbc:oracle:thin:@XXXX/XX
username : XXXX
password : XXXX
driver-class-name : oracle.jdbc.OracleDriver
hikari:
connection-timeout: 15000
maximum-pool-size: 10
leak-detection-threshold: 60000
autoCommit: false
< /code>
log (excerpt) < /h3>
2025/06/11 11:07:08.003 [187] [900000] WARN c.z.h.p.ProxyConnection checkException HikariPool-5 - Connection oracle.jdbc.driver.T4CConnection@71ae8c9f marked as broken because of SQLSTATE(72000), ErrorCode(1013)
java.sql.SQLTimeoutException: ORA-01013:. Cancel of current operation requested by user
Caused by: oracle.jdbc.OracleDatabaseException:. ORA-01013: Cancel of current operation requested by user
at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:530) ~[ojdbc10-19.20.0.0.jar:19.20.0.0.0]
... 181 more
2025/06/11 11:07:08.009 [187] [900000] INFO o.s.d.j.UtilLoggingJdbcLogger log [DOMA2222] THROW : CLASS=jp.co.xxxx.db.table.dao.tbikomeisaiexp.xxxxxpDaoImpl, METHOD=deleteTXxxxxxx, EXCEPTION=org.seasar.doma. SqlExecutionException
2025/06/11 11:07:08.010 [187] [900000] INFO j.c.h.c.i.DaoLogInterceptor daoLog SHMT0320 [Target Table]:TbikoMeisaiExpDaoImpl [SQL to execute]:deleteTbikoMeisaiExp Abnormal end org. QueryTimeoutException
2025/06/11 11:07:08.011 [187] [900000] INFO j.c.h.c.i.AppLogInterceptor controllerLog SHMT0320 900000 SHMT0320Controller regist abnormal termination org.springframework.transaction. TransactionSystemException
2025/06/11 11:07:08.012 [187] [900000] ERROR j.c.h.c.h.ControllerExceptionHandler handleException JDBC rollback failed
org.springframework.transaction. JDBC rollback faile
Caused by: java.sql.SQLException: Connection is closed
at com.zaxxer.hikari.pool.ProxyConnection$ClosedConnection.lambda$getClosedConnection$0(ProxyConnection.java:502) ~[HikariCP-5.0.1.jar:?]
at jdk.proxy4.$Proxy117.rollback(Unknown Source) ~[?:?]
at com.zaxxer.hikari.pool.ProxyConnection.rollback(ProxyConnection.java:385) ~[HikariCP-5.0.1.jar:?]
at com.zaxxer.hikari.pool.HikariProxyConnection.rollback(HikariProxyConnection.java) ~[HikariCP-5.0.1.jar:?]
at org.springframework.jdbc.datasource.DataSourceTransactionManager.doRollback(DataSourceTransactionManager.java:352) ~[spring-jdbc-6.0.12.jar:6.0.12]
... 127 more
2025/06/11 11:07:18.383 [187] [] ERROR o.a.c.c.C.[Tomcat].[localhost].[/xxxxx].[dispatcherServlet] log Servlet.service() for servlet [dispatcherServlet] in context with path [/xxxxx] threw exception [Request processing failed: org.springframework.transaction.TransactionSystemException: JDBC rollback failed] with root cause
java.sql.SQLException: Connection is closed
< /code>
Commortical < /h3>
[*] Время выполнения SQL (ORA-01013) < /li>
Hikaricp (Spring Standard Connection Pool) закрывает соединение как corrupt < /li> , потому что подключение к пружине. Уже закрытый < /li>
Распространен в верхние слои в качестве TransactionSystemexception < /li>
Зарегистрировано в журнале ошибок Tomcat < /li>
< /ol>
Вопрос < /h2>
Есть ли у кого -то время и все еще отката? Или кто -нибудь может сказать мне, как заставить Hikaricp откатиться назад, когда он закрывает соединение? good
[*]Use TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
in try-catch No good
[*]Set autoCommit: false in HikariCP settings No good
< /ol>
Когда в базе данных происходит тайм-аут, Hikaricp не откатывается, но совершает и завершает ненормально.[code]@Transactional(rollbackFor = Exception.class) method{ 1.delete table11 2.delete tablel2 -\> this point sqltimeout } < /code> Удаление Table2 вызвало тайм -аут, и произошло SQLTimeOutException, но удаление Table1 было совершено. Журнал также выводит: < /p>
орг.springframework.transaction.transactionSystemexception: jdbc hollback.@Around("execution(" + DAO + ")") @Transactional(rollbackFor = Exception.class) public Object daoLog(ProceedingJoinPoint joinpoint) throws Throwable {
Signature signature = joinpoint.getSignature();
// Execution class name String className = ""; // Execution method name String methodName = ""; // Execution function ID String functionId = ""; // DB action String action = ""; // Number of processes int processCount = 0;
if (signature instanceof MethodSignature) { // get method name methodName = signature.getName(); // get class name className = joinpoint.getTarget().getClass().getSimpleName();
// get DB action action = getDbAction(methodName); }
if (CompareUtil.isNotNull(loginInfoDto)) { if (CompareUtil.isNotEmpty(loginInfoDto.getFunctionId())) { // get function ID functionId = loginInfoDto.getFunctionId(); } }
try { // execute DAO method Object result = joinpoint.proceed();
// get the number of processes processCount = getProcessCount(result);
} < /code> phenomenon < /h3> [list] [*]joinpoint.proceed();[/code] [*] Timeout происходит [*][code]catch (Exception ex) {[/code] [/list] [code]At this point, the connection has already been committed and the connection has been destroyed.
### HikariCP config ```yaml spring: datasource: url : jdbc:oracle:thin:@XXXX/XX username : XXXX password : XXXX driver-class-name : oracle.jdbc.OracleDriver hikari: connection-timeout: 15000 maximum-pool-size: 10 leak-detection-threshold: 60000 autoCommit: false < /code> log (excerpt) < /h3> 2025/06/11 11:07:08.003 [187] [900000] WARN c.z.h.p.ProxyConnection checkException HikariPool-5 - Connection oracle.jdbc.driver.T4CConnection@71ae8c9f marked as broken because of SQLSTATE(72000), ErrorCode(1013) java.sql.SQLTimeoutException: ORA-01013:. Cancel of current operation requested by user
Caused by: oracle.jdbc.OracleDatabaseException:. ORA-01013: Cancel of current operation requested by user
at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:530) ~[ojdbc10-19.20.0.0.jar:19.20.0.0.0] ... 181 more 2025/06/11 11:07:08.009 [187] [900000] INFO o.s.d.j.UtilLoggingJdbcLogger log [DOMA2222] THROW : CLASS=jp.co.xxxx.db.table.dao.tbikomeisaiexp.xxxxxpDaoImpl, METHOD=deleteTXxxxxxx, EXCEPTION=org.seasar.doma. SqlExecutionException 2025/06/11 11:07:08.010 [187] [900000] INFO j.c.h.c.i.DaoLogInterceptor daoLog SHMT0320 [Target Table]:TbikoMeisaiExpDaoImpl [SQL to execute]:deleteTbikoMeisaiExp Abnormal end org. QueryTimeoutException 2025/06/11 11:07:08.011 [187] [900000] INFO j.c.h.c.i.AppLogInterceptor controllerLog SHMT0320 900000 SHMT0320Controller regist abnormal termination org.springframework.transaction. TransactionSystemException 2025/06/11 11:07:08.012 [187] [900000] ERROR j.c.h.c.h.ControllerExceptionHandler handleException JDBC rollback failed org.springframework.transaction. JDBC rollback faile
Caused by: java.sql.SQLException: Connection is closed at com.zaxxer.hikari.pool.ProxyConnection$ClosedConnection.lambda$getClosedConnection$0(ProxyConnection.java:502) ~[HikariCP-5.0.1.jar:?] at jdk.proxy4.$Proxy117.rollback(Unknown Source) ~[?:?] at com.zaxxer.hikari.pool.ProxyConnection.rollback(ProxyConnection.java:385) ~[HikariCP-5.0.1.jar:?] at com.zaxxer.hikari.pool.HikariProxyConnection.rollback(HikariProxyConnection.java) ~[HikariCP-5.0.1.jar:?] at org.springframework.jdbc.datasource.DataSourceTransactionManager.doRollback(DataSourceTransactionManager.java:352) ~[spring-jdbc-6.0.12.jar:6.0.12] ... 127 more 2025/06/11 11:07:18.383 [187] [] ERROR o.a.c.c.C.[Tomcat].[localhost].[/xxxxx].[dispatcherServlet] log Servlet.service() for servlet [dispatcherServlet] in context with path [/xxxxx] threw exception [Request processing failed: org.springframework.transaction.TransactionSystemException: JDBC rollback failed] with root cause java.sql.SQLException: Connection is closed < /code> Commortical < /h3>
[*] Время выполнения SQL (ORA-01013) < /li> Hikaricp (Spring Standard Connection Pool) закрывает соединение как corrupt < /li> , потому что подключение к пружине. Уже закрытый < /li> Распространен в верхние слои в качестве TransactionSystemexception < /li> Зарегистрировано в журнале ошибок Tomcat < /li> < /ol> Вопрос < /h2> Есть ли у кого -то время и все еще отката? Или кто -нибудь может сказать мне, как заставить Hikaricp откатиться назад, когда он закрывает соединение? good [*]Use TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();[/code] in try-catch [b]No good[/b] [*]Set autoCommit: false in HikariCP settings [b]No good[/b] < /ol>
java + пружина + hikaricp + oracle + jdbc
hi, im yuki на японском языке.
Я строю веб -систему с вышеуказанной конфигурацией.
Когда SqlTimeout происходит в базе данных, Hikaricp не откатывается, но сменит и терпит...
java + пружина + hikaricp + oracle + jdbc
hi, im yuki на японском языке.
Я строю веб -систему с вышеуказанной конфигурацией.
Когда SqlTimeout происходит в базе данных, Hikaricp не откатывается, но сменит и терпит...
У меня происходит сбой в системе. systemd-udev.service дает сбой, как видно из журналов ниже:
Apr 03 20:15:04 dut-3 charon-systemd : sending keep alive to 194.1.1.1
Apr 03 20:15:04 dut-3 charon-systemd : sending keep alive to 194.1.1.1
Apr 03...
Я пытался понять разницу между apicallattempttimeout и apicalltimeout. Что я мог понять, так это то, что apicalltimeout — это общее время, в течение которого клиентский запрос ожидает ответа, прежде чем отказаться от него, тогда как...
Я работаю над Java-приложением, созданным с использованием платформы Micronaut, которое использует функции Azure для бессерверного проектирования. Приложение подключается к базе данных Oracle. Однако я столкнулся с проблемой, когда новый пул...