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

asked 11 Dec '14, 11:00

rstory's gravatar image

rstory
31447
accept rate: 0%

Can you please post the full log from client?

(11 Dec '14, 13:35) Reg Domaratzki
Comment Text Removed
Comment Text Removed
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
(11 Dec '14, 14:42) rstory
Comment Text Removed

What version and build is the MobiLink Server?

(11 Dec '14, 14:46) Reg Domaratzki

11.0.1.2755

(11 Dec '14, 14:50) rstory

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

(12 Dec '14, 13:45) Reg Domaratzki

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.

(12 Dec '14, 13:47) rstory

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.

(12 Dec '14, 15:06) Reg Domaratzki

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

(15 Dec '14, 08:29) rstory
More comments hidden
showing 3 of 8 show all flat view

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.

permanent link

answered 15 Dec '14, 15:43

Reg%20Domaratzki's gravatar image

Reg Domaratzki
4.9k33270
accept rate: 40%

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.
permanent link

answered 15 Dec '14, 17:11

Graham%20Hurst's gravatar image

Graham Hurst
2.6k11843
accept rate: 28%

edited 15 Dec '14, 17:52

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!

permanent link

answered 17 Dec '14, 17:38

rstory's gravatar image

rstory
31447
accept rate: 0%

edited 17 Dec '14, 17:39

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×270

question asked: 11 Dec '14, 11:00

question was seen: 622 times

last updated: 17 Dec '14, 17:39