Datenbankdeadlockproblem mit Implementierungen großer Lösungen
Wenn Sie versuchen, eine große Lösung zu implementieren, wird im IBM® FileNet P8-Serverfehlerprotokoll möglicherweise ein Datenbankdeadlockfehler generiert.
Symptome
Sie versuchen, eine große Lösung zu implementieren, und im IBM FileNet P8-Serverfehlerprotokoll wird ein Datenbankdeadlockfehler generiert, beispielsweise der folgende Fehler: 013-07-12T16:48:33.293 19F319F3 ENG FNRCE0019E - ERROR method name: throwEngineException
principal name: Administrator Global Transaction: true User Transaction:
false Exception Info: The operation could not be completed due to
a deadlock error. A retry might be appropriate. ObjectStore: "CMTOS",
SQL: ""ALTER TABLE CMTOS.Container ADD (u2586_dub_hvlointeger67 number(10)
NULL) "" com.filenet.api.exception.EngineRuntimeException: FNRCE0019E:
E_DEADLOCK_ERROR: The operation could not be completed due to a deadlock
error. A retry might be appropriate. ObjectStore: "CMTOS", SQL: ""ALTER
TABLE CMTOS.Container ADD (u2586_dub_hvlointeger67 number(10) NULL)
"" failedBatchItem=42
at com.filenet.engine.dbpersist.DBOracleContext.throwEngineException(DBOracleContext.java:335)
at com.filenet.engine.dbpersist.DBExecutionElement.execute(DBExecutionElement.java:296)
at com.filenet.engine.dbpersist.DBExecutionContext.getNextResult(DBExecutionContext.java:106)
at com.filenet.engine.dbpersist.DBStatementList.executeStatements(DBStatementList.java:161)
at com.filenet.engine.dbpersist.DBStatementList.getNextResult(DBStatementList.java:601)
at com.filenet.engine.dbpersist.DBStatementAlter.process(DBStatementAlter.java:834)
at com.filenet.engine.dbpersist.DBStatementAlter.process(DBStatementAlter.java:778)
Ursachen
Fehlerbehebung
Erhöhen Sie den Wert des Keepalive-Intervalls für große Lösungsimplementierungen von 2 Sekunden auf 30 Sekunden. Der Wert wird in Millisekunden angegeben: 30.000 entspricht 30 Sekunden.
So erhöhen Sie das Keepalive-Intervall auf 30 Sekunden:
- Legen Sie den folgenden JVM-Parameter auf dem IBM Case
Manager-Server fest:
-Dcom.ibm.casemgmt.config.keep.alive.interval=30000 - Starten Sie JVM erneut, damit Ihre Änderungen wirksam werden.