I have some problems with server to client only synchronization. I used
our own libsynthesis based server and 2 different
clients for testing (Nokia E65 mobile phone and own libsynthesis based
test client).
Currently contacts data-store is marked read/only in server side
configuration. On client side data-store is emptyed.
Below are fragments of both server and client side logs.
Removing DS admin data before sync causes slow sync and
in that case this problem does not appear. Tried also to remove
DS admin data directly after reading them from LoadAdminData, but it
does not help.
I could of course insert a new item when requested item is not found in
UpdateItem and return its ID through newID, but it would fix problem only
for my test client. Server must be able to work also with client available
for example in mobile phones.
What could be wrong?
Andris
Server side:
–
[2011-07-29 12:37:59.766] 'SyncSet' - Items involved in Sync,
datastore=contacts [--][++] [->end]
<http://10.129.34.103:9321/log/sysynclib_uni_linux_20110729T093759Z_sTeKFd2cEW5eXiOujQ5u0yyNxt_k.html#F41>
[->enclosing]
<http://10.129.34.103:9321/log/sysynclib_uni_linux_20110729T093759Z_sTeKFd2cEW5eXiOujQ5u0yyNxt_k.html#H38>
* /[2011-07-29 12:37:59.766]/ SyncOp=wants-replace : LocalID= 1
RemoteID= 1
* /[2011-07-29 12:37:59.766]/ SyncOp=wants-replace : LocalID= 2
RemoteID= 2
* /[2011-07-29 12:37:59.766]/ SyncOp=wants-replace : LocalID= 3
RemoteID= 3
* /[2011-07-29 12:37:59.766]/ SyncOp=wants-replace : LocalID= 4
RemoteID= 4
....
–
[2011-07-29 12:37:59.767] 'issue' - issuing command, Cmd=Sync [--][++]
[->end]
<http://10.129.34.103:9321/log/sysynclib_uni_linux_20110729T093759Z_sTeKFd2cEW5eXiOujQ5u0yyNxt_k.html#F47>
[->enclosing]
<http://10.129.34.103:9321/log/sysynclib_uni_linux_20110729T093759Z_sTeKFd2cEW5eXiOujQ5u0yyNxt_k.html#H27>
*
–
[2011-07-29 12:37:59.767] 'sync' - Opened Sync command bracket,
Reopen=no, SourceURI=contacts, TargetURI=./contacts,
IncomingMsgID=2, CmdID=3 [--][++] [->end]
<http://10.129.34.103:9321/log/sysynclib_uni_linux_20110729T093759Z_sTeKFd2cEW5eXiOujQ5u0yyNxt_k.html#F48>
[->enclosing]
<http://10.129.34.103:9321/log/sysynclib_uni_linux_20110729T093759Z_sTeKFd2cEW5eXiOujQ5u0yyNxt_k.html#H47>
o /[2011-07-29 12:37:59.768]/ Opened <Sync> bracket,
Source='contacts', Target='./contacts' as (outgoing MsgID=2,
CmdID=3)
o
–
[2011-07-29 12:37:59.768] 'SyncGen' - Now generating sync
commands, datastore=contacts [--][++] [->end]
<http://10.129.34.103:9321/log/sysynclib_uni_linux_20110729T093759Z_sTeKFd2cEW5eXiOujQ5u0yyNxt_k.html#F49>
[->enclosing]
<http://10.129.34.103:9321/log/sysynclib_uni_linux_20110729T093759Z_sTeKFd2cEW5eXiOujQ5u0yyNxt_k.html#H48>
+ /[2011-07-29 12:37:59.768]/ Created command '[unknown]'
(outgoing)
+
–
[2011-07-29 12:37:59.768] 'Item_Generate' - generating
SyncML item, SyncOp=wants-replace, RemoteID=1 [--][++]
[->end]
<http://10.129.34.103:9321/log/sysynclib_uni_linux_20110729T093759Z_sTeKFd2cEW5eXiOujQ5u0yyNxt_k.html#F50>
[->enclosing]
<http://10.129.34.103:9321/log/sysynclib_uni_linux_20110729T093759Z_sTeKFd2cEW5eXiOujQ5u0yyNxt_k.html#H49>
# /[2011-07-29 12:37:59.768]/ Generating....
# /[2011-07-29 12:37:59.768]/ Item LocalID='',
RemoteID='1', operation=wants-replace
# /[2011-07-29 12:37:59.768]/ *** field data not shown
because userdata log is disabled ***
–[2011-07-29 12:37:59.768] End of 'Item_Generate' [->top]
<http://10.129.34.103:9321/log/sysynclib_uni_linux_20110729T093759Z_sTeKFd2cEW5eXiOujQ5u0yyNxt_k.html#H50>
[->enclosing]
<http://10.129.34.103:9321/log/sysynclib_uni_linux_20110729T093759Z_sTeKFd2cEW5eXiOujQ5u0yyNxt_k.html#F49>
Client side (item is not found in data-store and as result code 404
is generated).
*
–
[2011-07-29 12:38:03.692] 'processCmd' - Processing incoming
command, Cmd=Replace, IncomingMsgID=2, CmdID=70 [--][++] [->end]
[->enclosing]
o command started processing
o Created command 'Status' (outgoing)
o Item (syncop: replace) started processing, remoteID='', localID='67'
o Remote sent replace-operation:
o - Source: remoteID ='', remoteName=''
o - Target: localID ='67', remoteName=''
o Explicit type 'text/vcard' specified in command or item meta
o Version '3.0' obtained from item data
o
+
–
[2011-07-29 12:38:03.692] 'Item_Parse' - parsing SyncML item,
SyncOp=replace, format=plain-text, LocalID=67 [--][++] [->end]
[->enclosing]
–[2011-07-29 12:38:03.693] End of 'Item_Parse' [->top] [->enclosing]
o
+
–
[2011-07-29 12:38:03.693] 'Process_Item' - processing remote
item, SyncOp=replace, LocalID=67 [--][++] [->end] [->enclosing]
+ replace item operation received
+ startDataWrite called, status=0
+ TStdLogicDS::logicProcessRemoteItem starting,
SyncOp=replace, RemoteID='', LocalID='67'
+ cannot update record in database (sta=404)
+ Database Error --> SyncML status 404
+ to-be-replaced item not found, but cannot switch to add
because no RemoteID is known, Status=404
+ - Operation replace failed with SyncML status=404
–[2011-07-29 12:38:03.693] End of 'Process_Item' [->top]
[->enclosing]
o processSyncOpItem: Error while processing item, status=404
o Irregularity in execution of item, status=404
o
+
–
[2011-07-29 12:38:03.694] 'issue' - issuing command, Cmd=Status
[--][++] [->end] [->enclosing]
+ WARNING: Non-OK Status 404 returned to remote!
+ Status Code 404 issued for Cmd=Replace, (incoming MsgID=2,
CmdID=70)
+ - TargetRef (localID) = '67'
+ Status: issued as (outgoing MsgID=3, CmdID=69), not waiting
for status
+ Deleted command 'Status' (outgoing MsgID=3, CmdID=69)
+ Outgoing Message size is now 9561 bytes
–[2011-07-29 12:38:03.694] End of 'issue' [->top] [->enclosing]
o Deleted command 'Replace' (incoming MsgID=2, CmdID=70)
–[2011-07-29 12:38:03.694] End of 'processCmd' [->top] [->enclosing]
As the result items are rejected on client side. I'n getting similar
behavior (but of course no detailed log) when trying the same on mobile
phone (Nokia E65)
Andris
_______________________________________________
os-libsynthesis mailing list
os-libsynthesis@synthesis.ch
http://lists.synthesis.ch/mailman/listinfo/os-libsynthesis