Symptom
Enormous and endlessly database growing. After making several thread dumps, you see the same stack trace similar like this:
".MessagesDeletedEventonMessagesDeleted" #11760 prio=5 os_prio=0 cpu=2570.00 [reset 2570.00] ms elapsed=120027.13 [reset 120027.13] s allocated=499923720 B (476.76 MB) [reset 499923720 B (476.76 MB)] defined_classes=6
io= file i/o: 4271/0 B, net i/o: 0/14977516 B, files opened:1, socks opened:0 [reset file i/o: 4271/0 B, net i/o: 0/14977516 B, files opened:1, socks opened:0 ]
application="sap.com/com.sap.aii.adapter.idoc.util.app" tid=0x00007fff6929c000 nid=0x61dd / 25053 pthread-id=140734318892800 in Object.wait() [_thread_blocked (_at_safepoint), stack(0x00007fff42f5d000,0x00007fff4315e000)] [0x00007fff4315a000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(J)V(Native Method)
- waiting on <0x0000000769b8a600> (a com.sybase.jdbc4.timedio.ResponseQueue)
at com.sybase.jdbc4.timedio.InStreamMgr.takeIfNoReadAhead(Lcom/sybase/jdbc4/timedio/StreamContext;)I(InStreamMgr.java:702)
- locked <0x0000000769b8a600> (a com.sybase.jdbc4.timedio.ResponseQueue)
at com.sybase.jdbc4.timedio.InStreamMgr.doRead(Lcom/sybase/jdbc4/timedio/StreamContext;)V(InStreamMgr.java:319)
at com.sybase.jdbc4.tds.TdsProtocolContext.getChunk()Lcom/sybase/jdbc4/utils/BufferInterval;(TdsProtocolContext.java:622)
at com.sybase.jdbc4.tds.PduInputFormatter.readPacket()Z(PduInputFormatter.java:239)
at com.sybase.jdbc4.tds.PduInputFormatter.read()I(PduInputFormatter.java:72)
at com.sybase.jdbc4.tds.TdsInputStream.read()I(TdsInputStream.java:91)
at com.sybase.jdbc4.tds.TdsInputStream.readUnsignedByte()I(TdsInputStream.java:124)
at com.sybase.jdbc4.tds.Tds.nextResult(Lcom/sybase/jdbc4/jdbc/ProtocolContext;)I(Tds.java:2912)
at com.sybase.jdbc4.jdbc.ResultGetter.nextResult()I(ResultGetter.java:78)
at com.sybase.jdbc4.jdbc.SybStatement.nextResult(Lcom/sybase/jdbc4/jdbc/ParamManager;)I(SybStatement.java:294)
at com.sybase.jdbc4.jdbc.SybStatement.nextResult()I(SybStatement.java:276)
at com.sybase.jdbc4.jdbc.SybStatement.updateLoop()I(SybStatement.java:2749)
at com.sybase.jdbc4.jdbc.SybStatement.executeUpdate(Ljava/lang/String;Lcom/sybase/jdbc4/jdbc/ParamManager;)I(SybStatement.java:2733)
at com.sybase.jdbc4.jdbc.SybPreparedStatement.executeUpdate()I(SybPreparedStatement.java:335)
at com.sap.sql.jdbc.basic.BasicPreparedStatement.executeUpdate()I(BasicPreparedStatement.java:108)
at com.sap.sql.jdbc.syb.SybPreparedStatement.executeUpdate()I(SybPreparedStatement.java:54)
at com.sap.sql.jdbc.direct.DirectPreparedStatement.executeUpdate(Lcom/sap/sql/trace/TraceContext;)I(DirectPreparedStatement.java:373)
at com.sap.sql.jdbc.common.CommonPreparedStatement.executeUpdate()I(CommonPreparedStatement.java:354)
at com.sap.engine.services.dbpool.wrappers.PreparedStatementWrapper.executeUpdate()I(PreparedStatementWrapper.java:397)
at com.sap.engine.services.orpersistence.core.StoreManager.executeUpdate(Ljava/sql/Connection;Lcom/sap/engine/services/orpersistence/core/PersistenceUnitData;Ljava/util/List;[Lcom/sap/engine/services/orpersistence/query/InputParameter;)Ljava/util/List;(StoreManager.java:2098)
at com.sap.engine.services.orpersistence.core.PersistenceContextImpl.executeUpdate(Lcom/sap/engine/services/orpersistence/query/QueryData;)I(PersistenceContextImpl.java:1142)
at com.sap.engine.services.orpersistence.core.MonitoredPersistenceContextImpl.executeUpdate(Lcom/sap/engine/services/orpersistence/query/QueryData;)I(MonitoredPersistenceContextImpl.java:209)
at com.sap.engine.services.orpersistence.entitymanager.EntityManagerImpl.executeUpdate(Lcom/sap/engine/services/orpersistence/query/QueryData;)I(EntityManagerImpl.java:134)
at com.sap.engine.services.orpersistence.query.AbstractQuery.executeUpdate()I(AbstractQuery.java:266)
at com.sap.engine.services.orpersistence.query.QueryImpl.executeUpdate()I(QueryImpl.java:38)
at com.sap.aii.af.idoc.store.bean.IDocStoreBean.removeLeftoverTransactions(Lcom/sap/aii/af/idoc/store/IDocObjectDirection;)I(IDocStoreBean.java:1071)
and in the DefaulTrace you can see statement like this:
*DELETE FROM "XI_IDOC_OUT_TREX" WHERE "XI_IDOC_OUT_TREX"."AUTO_NUMBER" NOT IN (SELECT DISTINCT "OMSG"."REF_NUMBER" FROM "XI_IDOC_OUT_MSG" "OMSG") AND "XI_IDOC_OUT_TREX"."AUTO_NUMBER" NOT IN (SELECT DISTINCT "OACK"."REF_NUMBER_TREX" FROM "XI_IDOC_OUT_ACK" "OACK")
Read more...
Environment
SAP NetWeaver 7.5
Product
Keywords
MessagesDeletedEventonMessagesDeleted, XI_IDOC_OUT_TREX, XI_IDOC_OUT_MSG, XI_IDOC_OUT_ACK, IdocDBTableCleanup, IdocDBTableCleanupPeriodic, Process Integration 7.30, PI 7.30, Process Integration 7.31, PI 7.31, Process Orchestration 7.4, PI 7.4, PO 7.4, Process Orchestration 7.5, PI 7.5, PO 7.5, XI, AEX , KBA , BC-XI-CON-IDO , Idoc Adapter J2EE , Problem
About this page
This is a preview of a SAP Knowledge Base Article. Click more to access the full version on SAP for Me (Login required).Search for additional results
Visit SAP Support Portal's SAP Notes and KBA Search.
SAP Knowledge Base Article - Preview