Проблема при обновлении с jbpm 6.5 до 7.17 - PullRequest
0 голосов
/ 07 марта 2019

Проблема при обновлении с jbpm 6.5 до 7.17:

Я часто получаю следующий тупик:

Caused by: org.hibernate.exception.LockAcquisitionException: could not execute statement
at org.hibernate@5.3.9.Final//org.hibernate.dialect.Oracle8iDialect$3.convert(Oracle8iDialect.java:565)
at org.hibernate@5.3.9.Final//org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
at org.hibernate@5.3.9.Final//org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113)
at org.hibernate@5.3.9.Final//org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99)
at org.hibernate@5.3.9.Final//org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:178)
at org.hibernate@5.3.9.Final//org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:3484)
at org.hibernate@5.3.9.Final//org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:3737)
at org.hibernate@5.3.9.Final//org.hibernate.action.internal.EntityDeleteAction.execute(EntityDeleteAction.java:99)
at org.hibernate@5.3.9.Final//org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:604)
at org.hibernate@5.3.9.Final//org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:478)
at org.hibernate@5.3.9.Final//org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:356)
at org.hibernate@5.3.9.Final//org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:50)
at org.hibernate@5.3.9.Final//org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1414)
at org.hibernate@5.3.9.Final//org.hibernate.internal.SessionImpl.list(SessionImpl.java:1500)
at org.hibernate@5.3.9.Final//org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1537)
at org.hibernate@5.3.9.Final//org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1505)
... 252 more Caused by: java.sql.SQLException: ORA-00060: Deadlock beim Warten auf Ressource festgestellt

at com.oracle.ojdbc8@18.3.0.0.0//oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:494)
at com.oracle.ojdbc8@18.3.0.0.0//oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:446)
at com.oracle.ojdbc8@18.3.0.0.0//oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1052)
at com.oracle.ojdbc8@18.3.0.0.0//oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:537)
at com.oracle.ojdbc8@18.3.0.0.0//oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:255)
at com.oracle.ojdbc8@18.3.0.0.0//oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:610)
at com.oracle.ojdbc8@18.3.0.0.0//oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:253)
at com.oracle.ojdbc8@18.3.0.0.0//oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:86)
at com.oracle.ojdbc8@18.3.0.0.0//oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:928)
at com.oracle.ojdbc8@18.3.0.0.0//oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1136)
at com.oracle.ojdbc8@18.3.0.0.0//oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3640)
at com.oracle.ojdbc8@18.3.0.0.0//oracle.jdbc.driver.T4CPreparedStatement.executeInternal(T4CPreparedStatement.java:1384)
at com.oracle.ojdbc8@18.3.0.0.0//oracle.jdbc.driver.OraclePreparedStatement.executeLargeUpdate(OraclePreparedStatement.java:3730)
at com.oracle.ojdbc8@18.3.0.0.0//oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3710)
at com.oracle.ojdbc8@18.3.0.0.0//oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1061)
at org.jboss.ironjacamar.jdbcadapters@1.4.12.Final//org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.executeUpdate(WrappedPreparedStatement.java:537)
at org.hibernate@5.3.9.Final//org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:175)
... 263 more Caused by: Error : 60, Position : 0, Sql = delete from CorrelationKeyInfo where keyId=:1  and OPTLOCK=:2 , OriginalSql = delete from CorrelationKeyInfo where keyId=? and OPTLOCK=?, Error Msg = ORA-00060: Deadlock beim Warten auf Ressource festgestellt

at com.oracle.ojdbc8@18.3.0.0.0//oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:498)
... 279 more

Это известная проблема?Нужно ли принимать что-то в процессах?

Я работаю на wildfly 16 -> Java 11 -> Oracle

Мне также пришлось увеличить размер столбца "CORRELATIONPROPERTYINFO.Value"столбец, поскольку он был больше 255 символов

Я добавил триггер вставки и сохранил записи в отдельной таблице -> ниже приведен пример записи:

"6165871: eu.some.company.engine.core.processes.common.findavailability.v1.find: 1551899839103: eu.some.company.engine.core.processes.common.findavailability.v1.alternatives: 1551899839989: eu.some.company.engine.core.processes.common.findavailability.v1.alternative: 1551899839994 "

Только для записи -> Мне также пришлось обновить один запрос jpa:

	<!-- named-query name="GetProcessInstanceIdByCorrelation">
		<query>
			select
			key.processInstanceId
			from
			CorrelationKeyInfo key left join key.properties props
			where
			size(key.properties) = cast(:elem_count as integer) and
			props.value in :properties
			group by key.id,key.processInstanceId
			having count(key.id) = :elem_count
		</query>
	</named-query-->
	<named-query name="GetProcessInstanceIdByCorrelation">
		<query>
			select
			    key.processInstanceId 
			from 
			    CorrelationKeyInfo key 
			where 
			    key.name = :ckey
		</query>
	</named-query>
...