Hello,
We are working with Mobile 7.1. We changed one of the records from the client side in the table M45NOTIFICATION (the automatically created table for NOTIFICATION Data Object). During the synchronization with the DOE, the changes passed successfully and the record was updated in the backend.
On the next synchronization the DOE tried to pass the feedback to the client but the exception was thrown. When we checked the trace file on the client, we found that the program was trying to perform SELECT from the table that doen't exist - M33NOTIFICATION instead of M45NOTIFICATION!
Please, see the trace attached below.
<r id="1228227880372" t="16:24:40" d="2008-12-02" s="E" c="000" u="" g="" m="SELECT M33NOTIFICATION."SYNCSTATE",M33NOTIFICATION."TXID",M33NOTIFICATION."PREVTXID" FROM M33NOTIFICATION WHERE M45NOTIFICATION."SYNCKEY_MMW" = 00155D1E651E1DEDB08F1206C9EE5F0E --> com.sap.dbtech.jdbc.exceptions.DatabaseException: [-4004] (at 91): Unknown table name:M33NOTIFICATION
at com.sap.dbtech.jdbc.packet.ReplyPacket.createException(ReplyPacket.java:63)
at com.sap.dbtech.jdbc.ConnectionSapDB.throwSQLError(ConnectionSapDB.java:953)
at com.sap.dbtech.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:593)
at com.sap.dbtech.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:461)
at com.sap.dbtech.jdbc.StatementSapDB.sendCommand(StatementSapDB.java:820)
at com.sap.dbtech.jdbc.StatementSapDB.sendSQL(StatementSapDB.java:884)
at com.sap.dbtech.jdbc.StatementSapDB.execute(StatementSapDB.java:259)
at com.sap.dbtech.jdbc.StatementSapDB.executeQuery(StatementSapDB.java:413)
at com.sap.dbtech.jdbc.trace.Statement.executeQuery(Statement.java:80)
at com.sap.tc.mobile.cfs.pers.jdbc.spi.Database.doExecuteQuery(Database.java:574)
at com.sap.tc.mobile.cfs.pers.jdbc.core.JDBCPersistenceSink.executeQuery(JDBCPersistenceSink.java:1138)
at com.sap.tc.mobile.cfs.pers.jdbc.core.JDBCPersistenceSink.executeQuery(JDBCPersistenceSink.java:381)
at com.sap.tc.mobile.cfs.pers.cache.DefaultPersistenceManager.executeQuery(DefaultPersistenceManager.java:2162)
at com.sap.tc.mobile.cfs.pers.cache.DefaultPersistenceManager.executeQuery(DefaultPersistenceManager.java:2385)
at com.sap.tc.mobile.cfs.mbosync.InboundProcessor.loadMBONodeData(InboundProcessor.java:846)
at com.sap.tc.mobile.cfs.mbosync.InboundConfirmationProcessor.finishNodeLocal(InboundConfirmationProcessor.java:342)
at com.sap.tc.mobile.cfs.mbosync.InboundProcessor.finishNode(InboundProcessor.java:480)
at com.sap.tc.mobile.cfs.mbosync.MBOInboundMessageProcessor$XmlContentHandler.endElement(MBOInboundMessageProcessor.java:625)
at com.sap.tc.mobile.cfs.xml.api.MIXMLParser$ElementParser.parse(Unknown Source)
at com.sap.tc.mobile.cfs.xml.api.MIXMLParser.parseInternal(Unknown Source)
at com.sap.tc.mobile.cfs.xml.api.MIXMLParser.parse(Unknown Source)
at com.sap.tc.mobile.cfs.mbosync.MBOInboundMessageProcessor.messageReceived(MBOInboundMessageProcessor.java:202)
at com.sap.tc.mobile.cfs.sync.SyncManagerImpl.callInboundMessageProcessor(SyncManagerImpl.java:1854)
at com.sap.tc.mobile.cfs.sync.SyncManagerImpl.callInboundMessageProcessor(SyncManagerImpl.java:1837)
at com.sap.tc.mobile.cfs.sync.SyncManagerImpl.processOutStandingMessages(SyncManagerImpl.java:393)
at com.sap.tc.mobile.cfs.sync.synchronizer.http.HttpSynchronizer.syncOnce(HttpSynchronizer.java:724)
at com.sap.tc.mobile.cfs.sync.synchronizer.http.HttpSynchronizer.synchronize(HttpSynchronizer.java:600)
at com.sap.tc.mobile.cfs.sync.SyncManagerImpl.synchronizeOnce(SyncManagerImpl.java:619)
at com.sap.tc.mobile.cfs.sync.SyncManagerImpl.synchronize(SyncManagerImpl.java:451)
at com.sap.tc.mobile.cfs.sync.spi.SyncManagerSPI.synchronize(SyncManagerSPI.java:693)
at com.sap.tc.mobile.cfs.sync.spi.SyncManagerSPI.synchronizeStart(SyncManagerSPI.java:675)
at com.sap.tc.mobile.cfs.sync.spi.impl.SyncCoordinator.startSync(SyncCoordinator.java:138)
at com.sap.tc.mobile.mwd.laptop.container.SyncProgress$SyncThread.run(SyncProgress.java:567)
at java.lang.Thread.run(Unknown Source)
">
<f n="ThreadName" v="Thread-49"/>
</r>
<r id="1228227880373" t="16:24:40" d="2008-12-02" s="E" c="000" u="" g="" m="Error while processing inbound message of type 00155D1E651E1DEDAFF171D112C07F0E with id 678 and message content "<?xml version="1.0" encoding="utf-8"?><Msg type="C" id="3346"><NOTIFICATION C3="SERGEY TEST" C0="00155D1E651E1DEDB08F1206C9EE5F0E" ty="U" tv="00155D1E651E1DEDB08F8C1F85573F0E"/></Msg>" --> com.sap.tc.mobile.cfs.pers.jdbc.spi.JDBCException: SQL Exception with message: [-4004] (at 91): Unknown table name:M33NOTIFICATION / State: 42000 / ErrorCode: -4004
at com.sap.tc.mobile.cfs.pers.jdbc.core.JDBCPersistenceSink.executeQuery(JDBCPersistenceSink.java:1156)
at com.sap.tc.mobile.cfs.pers.jdbc.core.JDBCPersistenceSink.executeQuery(JDBCPersistenceSink.java:381)
at com.sap.tc.mobile.cfs.pers.cache.DefaultPersistenceManager.executeQuery(DefaultPersistenceManager.java:2162)
at com.sap.tc.mobile.cfs.pers.cache.DefaultPersistenceManager.executeQuery(DefaultPersistenceManager.java:2385)
at com.sap.tc.mobile.cfs.mbosync.InboundProcessor.loadMBONodeData(InboundProcessor.java:846)
at com.sap.tc.mobile.cfs.mbosync.InboundConfirmationProcessor.finishNodeLocal(InboundConfirmationProcessor.java:342)
at com.sap.tc.mobile.cfs.mbosync.InboundProcessor.finishNode(InboundProcessor.java:480)
at com.sap.tc.mobile.cfs.mbosync.MBOInboundMessageProcessor$XmlContentHandler.endElement(MBOInboundMessageProcessor.java:625)
at com.sap.tc.mobile.cfs.xml.api.MIXMLParser$ElementParser.parse(Unknown Source)
at com.sap.tc.mobile.cfs.xml.api.MIXMLParser.parseInternal(Unknown Source)
at com.sap.tc.mobile.cfs.xml.api.MIXMLParser.parse(Unknown Source)
at com.sap.tc.mobile.cfs.mbosync.MBOInboundMessageProcessor.messageReceived(MBOInboundMessageProcessor.java:202)
at com.sap.tc.mobile.cfs.sync.SyncManagerImpl.callInboundMessageProcessor(SyncManagerImpl.java:1854)
at com.sap.tc.mobile.cfs.sync.SyncManagerImpl.callInboundMessageProcessor(SyncManagerImpl.java:1837)
at com.sap.tc.mobile.cfs.sync.SyncManagerImpl.processOutStandingMessages(SyncManagerImpl.java:393)
at com.sap.tc.mobile.cfs.sync.synchronizer.http.HttpSynchronizer.syncOnce(HttpSynchronizer.java:724)
at com.sap.tc.mobile.cfs.sync.synchronizer.http.HttpSynchronizer.synchronize(HttpSynchronizer.java:600)
at com.sap.tc.mobile.cfs.sync.SyncManagerImpl.synchronizeOnce(SyncManagerImpl.java:619)
at com.sap.tc.mobile.cfs.sync.SyncManagerImpl.synchronize(SyncManagerImpl.java:451)
at com.sap.tc.mobile.cfs.sync.spi.SyncManagerSPI.synchronize(SyncManagerSPI.java:693)
at com.sap.tc.mobile.cfs.sync.spi.SyncManagerSPI.synchronizeStart(SyncManagerSPI.java:675)
at com.sap.tc.mobile.cfs.sync.spi.impl.SyncCoordinator.startSync(SyncCoordinator.java:138)
at com.sap.tc.mobile.mwd.laptop.container.SyncProgress$SyncThread.run(SyncProgress.java:567)
at java.lang.Thread.run(Unknown Source)
Caused by: com.sap.dbtech.jdbc.exceptions.DatabaseException: [-4004] (at 91): Unknown table name:M33NOTIFICATION
at com.sap.dbtech.jdbc.packet.ReplyPacket.createException(ReplyPacket.java:63)
at com.sap.dbtech.jdbc.ConnectionSapDB.throwSQLError(ConnectionSapDB.java:953)
at com.sap.dbtech.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:593)
at com.sap.dbtech.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:461)
at com.sap.dbtech.jdbc.StatementSapDB.sendCommand(StatementSapDB.java:820)
at com.sap.dbtech.jdbc.StatementSapDB.sendSQL(StatementSapDB.java:884)
at com.sap.dbtech.jdbc.StatementSapDB.execute(StatementSapDB.java:259)
at com.sap.dbtech.jdbc.StatementSapDB.executeQuery(StatementSapDB.java:413)
at com.sap.dbtech.jdbc.trace.Statement.executeQuery(Statement.java:80)
at com.sap.tc.mobile.cfs.pers.jdbc.spi.Database.doExecuteQuery(Database.java:574)
at com.sap.tc.mobile.cfs.pers.jdbc.core.JDBCPersistenceSink.executeQuery(JDBCPersistenceSink.java:1138)
... 23 more
">
<f n="ThreadName" v="Thread-49"/>
</r>
<r id="1228227880374" t="16:24:40" d="2008-12-02" s="E" c="000" u="" g="" m="Message processing failed, please consult administrator">
<f n="SourceName" v=" [/CFS/Sync]"/>
<f n="LocationName" v=" (com.sap.tc.mobile.cfs.sync.api.SyncManager:postMessage)"/>
<f n="ThreadName" v="Thread-49"/>
</r>
Why does the program refer to the unexistinf table?
Waiting for your help,
Sergey