cancel
Showing results for 
Search instead for 
Did you mean: 

Mobilink Client Protocol Error

Former Member
0 Kudos
2,409

I'm getting a strange error that has just started to occur. The only indication is on the client and it just gives me a 'Protocol Error' message. I have looked at the log on the server and there is no indication of an error. The error on the client happens part way through the download stream and from what I can tell at a certain table.

I have multiple users synchronizing the sames publication/script with no errors, but the error seems to be propagating to more users. The users have been syncing fine before, so I'm at a loss on what is happening. Neither the client nor server have been upgraded.

This is all I get from the client log when the error occurs, nothing from the server. The server reports a successful sync.

E. 2014-12-11 10:00:31. Protocol error

regdomaratzki
Product and Topic Expert
Product and Topic Expert
0 Kudos

Can you please post the full log from client?

Former Member
0 Kudos
I. 2014-12-11 09:48:24. SQL Anywhere MobiLink Client Version 11.0.1.2044
I. 2014-12-11 09:48:24. 1: -v+
I. 2014-12-11 09:48:24. 2: -u
I. 2014-12-11 09:48:24. 3: DFR
I. 2014-12-11 09:48:24. 4: -n
I. 2014-12-11 09:48:24. 5: salespub
I. 2014-12-11 09:48:24. 6: -o
I. 2014-12-11 09:48:24. 7: C:\\temp\\sync.log
I. 2014-12-11 09:48:24. 8: -c
I. 2014-12-11 09:48:24. 9: ***********************
I. 2014-12-11 09:48:24. 10: -e
I. 2014-12-11 09:48:24. 11: sv=salesscript13
I. 2014-12-11 09:48:24. Connecting to remote database
I. 2014-12-11 09:48:24. Loading synchronization information
I. 2014-12-11 09:48:24. Options in database for subscription to 'salespub' for 'DFR':
I. 2014-12-11 09:48:24.         ScriptVersion=salesscript13;SendColumnNames=On;
I. 2014-12-11 09:48:24. Options in database for subscription to 'salespub' for 'DFR':
I. 2014-12-11 09:48:24.         ScriptVersion=salesscript13;SendColumnNames=On;
I. 2014-12-11 09:48:24. Options in database for subscription to 'salespub' for 'DFR':
I. 2014-12-11 09:48:24.         ScriptVersion=salesscript13;SendColumnNames=On;
I. 2014-12-11 09:48:24. Begin synchronizing 'salespub' for MobiLink user 'DFR'
I. 2014-12-11 09:48:24. Options for this synchronization:
I. 2014-12-11 09:48:24.         SCN=YES,SV=salesscript13,CTP=TCPIP,ADR='host=*************;port=2439'
I. 2014-12-11 09:48:24. Log scan starting at offset 0000591129
I. 2014-12-11 09:48:24. Processing transaction logs from directory "C:\\Program Files (x86)\\Rax\\Mobile Salesman\\"
I. 2014-12-11 09:48:24. Processing transactions from active transaction log
I. 2014-12-11 09:48:24. Hovering at end of active log
I. 2014-12-11 09:48:24. Log scan ended at offset 0000627885
I. 2014-12-11 09:48:24. Connecting to MobiLink server at 'host=**************;port=2439' using 'TCPIP'
I. 2014-12-11 09:48:24. Begin upload
I. 2014-12-11 09:48:24. Character set: windows-1252
I. 2014-12-11 09:48:24. MobiLink user name: DFR
I. 2014-12-11 09:48:24. Script version: salesscript13
I. 2014-12-11 09:48:24. Remote ID: 1b1a91f3-95af-41be-a86e-bc1743b6240d
I. 2014-12-11 09:48:24. Publication 'salespub' - Synchronizing - Log offset 0000591129 - Last download time 1900-01-01 00:00:00.0.
//  This is sending down column values. I removed them because it is production data.
I. 2014-12-11 10:00:31. # rows inserted/updated into table contacts : 0
I. 2014-12-11 10:00:31. # rows deleted in table contacts : 0
I. 2014-12-11 10:00:31. 1505 delete operations downloaded for table "contacts" were for rows not found in the remote database.
I. 2014-12-11 10:00:31. Downloading into table: warehouse_quantities
I. 2014-12-11 10:00:31. # rows inserted/updated into table warehouse_quantities : 0
I. 2014-12-11 10:00:31. # rows deleted in table warehouse_quantities : 0
I. 2014-12-11 10:00:31. Downloading into table: inventory_master
I. 2014-12-11 10:00:31. # rows inserted/updated into table inventory_master : 0
I. 2014-12-11 10:00:31. # rows deleted in table inventory_master : 0
I. 2014-12-11 10:00:31. Downloading into table: pda_orders_notes
E. 2014-12-11 10:00:31. Protocol error
I. 2014-12-11 10:00:31. Download stream processing failed
I. 2014-12-11 10:00:31. ROLLBACK
I. 2014-12-11 10:00:31. End synchronizing 'salespub' for MobiLink user 'DFR'
I. 2014-12-11 10:00:31. Disconnecting from MobiLink server
I. 2014-12-11 10:00:32. Complete log scan required.
I. 2014-12-11 10:00:32. Synchronization completed
I. 2014-12-11 10:00:32. Options in database for subscription to 'salespub' for 'DFR':
I. 2014-12-11 10:00:32.         ScriptVersion=salesscript13;SendColumnNames=On;
I. 2014-12-11 10:00:32. Disconnecting from remote database
regdomaratzki
Product and Topic Expert
Product and Topic Expert
0 Kudos

What version and build is the MobiLink Server?

Former Member
0 Kudos

11.0.1.2755

regdomaratzki
Product and Topic Expert
Product and Topic Expert
0 Kudos

If this same remote database synchronizes again, will they get another protocol error over and over again, or is it intermittent?

Former Member
0 Kudos

It is consistent with the remote database. It is affecting 5 remotes out of 40.

I copied over a fresh remote database and still got the error.

regdomaratzki
Product and Topic Expert
Product and Topic Expert
0 Kudos

Your software is over five years old, and I have a memory of NULL values embedded in long binaries causing issues, but I think that was way back in v8 or v9, and not v1101.

If the problem is reproducible on 5 remotes over and over again, it's possible that running dbmlsyn with the -vx+ switch will show us some more information on exactly what's going on. There will be data in that log, so feel free to contact me by email (firstname.lastname@sap.com) if you don't want to post it to a public forum.

Former Member
0 Kudos

Just wanted to note here that I sent over a zipped log file from the client on Friday.

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member

The "protocol error" message means that one side (in this case dbmlsync) doesn't understand what the other side (the MobiLink server) sent it over the network.

Some possible causes:

  1. Software version mismatches. You have apparently ruled this out.

  2. Some byte pattern in the data that is being misinterpreted due to a software bug. If that's the case, all remotes getting that data should have the same problem. Are the 4 remotes with the problem getting data that the other remotes are not?

  3. Data corruption when the data is transferred, for example due to hardware or software problems in the network or the computers. This seems unlikely unless the 4 remotes with the problem are the only ones using a particular network switch, or share some other characteristic distinct from the others.

If different remotes get different data, an experiment would be to change a working remote (or copy of a working one) to get the same data as one of the failing ones, or vice versa. That would test #2.

Update: If the problem occurs after a failed download, it could be issue 650719 (the build number below refers to 11.0.1, and is newer than your version):

================(Build #2546 - Engineering Case #650719)================

After a failed download, an attempt to restart the download may have failed 
and reported a "Protocol Error" or a read failure. This has been 
fixed.
regdomaratzki
Product and Topic Expert
Product and Topic Expert

I can't see anything in the verbose log that helps me sort out what the issue is.

My instinct is that the problem is related to the actual data that is being downloaded. For the remotes that are failing, if you add -v+ to the dbmlsync log, are they all failing with a protocol error when downloading the pda_order_notes table?

I. 2014-12-12 15:36:20. Downloading into table: pda_orders_notes
E. 2014-12-12 15:36:20. Protocol error
I. 2014-12-12 15:36:20. Download stream processing failed
I. 2014-12-12 15:36:20. ROLLBACK

If it's always the same table, I'd consider adding some extra verbosity to the MobiLink Server (-v+) to see the data that is being downloaded to the remotes that are failing, and trying to see if there is a pattern to the specific rows that are being downloaded in this table for remotes that are failing versus remotes that successfully synchronize.

Former Member
0 Kudos

I have everything working now. We use a table to store deletes in and the protocol error was coming from the download delete operation. I found a row that seemed to be the culprit and deleted it. After doing that the remotes synced successfully, so that's my story and I'm sticking to it.

I'm used to having good error messages from Mobilink, so this one just threw me for a loop.

Another note is that the apparent offending row was not in the table that immediately preceded the error. I started removing tables from the publication and the error would just happen after the next table in line.

Thanks for everybody's help!