cancel
Showing results for 
Search instead for 
Did you mean: 

Exception during client synchronization in Mobile 7.1

Former Member
0 Kudos

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.&quot;SYNCSTATE&quot;,M33NOTIFICATION.&quot;TXID&quot;,M33NOTIFICATION.&quot;PREVTXID&quot; FROM M33NOTIFICATION WHERE M45NOTIFICATION.&quot;SYNCKEY_MMW&quot; = 00155D1E651E1DEDB08F1206C9EE5F0E --&gt; 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 &quot;&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;&lt;Msg type=&quot;C&quot; id=&quot;3346&quot;&gt;&lt;NOTIFICATION C3=&quot;SERGEY TEST&quot; C0=&quot;00155D1E651E1DEDB08F1206C9EE5F0E&quot; ty=&quot;U&quot; tv=&quot;00155D1E651E1DEDB08F8C1F85573F0E&quot;/&gt;&lt;/Msg&gt;&quot; --&gt; 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

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hello Narayani,

Thanks for the quick answer. No, we have only one application. The table M33NOTIFICATION was the right table. Then we performed some changes in the application, uninstall it from the client and install it again (under the same version but containing the changes). During all this process, the old table M33NOTIFICATION was deleted and the new table M45NOTIFICATION was created. For some reason during the feedback the client is still searching for the old table.

Best,

Sergey

0 Kudos

Hi,

Could you check in your SQL Studio if the M33NOTIFICATION still exists? yes you have memntioned it got deleted, but somehow the application still refers there.

Another thing you can try is to uninstall the application and check before installing the new version whether any M*NOTIFICATION still exists.

Thanks and Regards,

Narayani

Answers (2)

Answers (2)

Former Member
0 Kudos

Hello,

We checked SQL Studio and the table M33NOTIFICATION was not there. Then we uninstalled and installed the application and the problem was solved. We cannot reproduce the problem one more time...

We will try to change/create/delete notifications and uninstall/install the application in order to find out the problem.

Thanks a lot,

Sergey

0 Kudos

Hi,

Do you have more than one application which uses the same data object(NOTIFICATION) and backend tables?

If yes when you changed the data in M45NOTIFICATION, the backend table also got updated, now when the confirmation comes from the backend it is trying to update all the notification tables on the client.

You can deactivate the rule for the any other applications other than the one you are updating for NOTIFICATION and try again.

Hope this helps.

Thanks and Regards,

Narayani