On Sep 25, 2009, at 16:29 , Patrick Ohly wrote:
Ah, progress. In other words, more questions... ;-)
How do I tell the server which URL to use and how to append (or not
append) the ?sessionID=... suffix? The <serverurl> element is only
You don't need to. The client will send it in the Target LocURI of the
The engine takes it from there and adds the sessionID suffix (if
enabled) to create a RespURI.
If you don't need the respURI, disable it using the new config
directives (see commit message of
4b9c739d0a01f20ae85da983a8feb989b8230c51 for details).
You said that OpenSession() accepts a sessionID created by the app.
could use that when I want to create my own ID. If I don't do that,
I query which session ID was generated by the engine?
Yes, you can query the session key for "localSessionID" to get it.
Profiles are gone in the server. How do I control the sync modes
the server for specific datastores? I'm using
for the server and my own plugin for each datastore.
The client controls the sync modes. The server just executes what the
There are options to declare a datastore or a session read-only, which
then prevents writing to the DB (see <readonly> and SETREADONLY() in
the config reference).
A related question: I was using the "dbname" in a target to
datastore name related to a progress event. The code looked like this
(with wrapper classes around the underlying handles):
SharedKey targets = m_engine.OpenKeyByPath(profile, "targets");
target = m_engine.OpenSubkey(targets, progressInfo.targetID);
std::string name = m_engine.GetStrValue(target, "dbname");
Is there a better way that works in both client and server?
Note that the server does not have progress events at this time at
all. Could be added, but requires some work, and would require to re-
architect the progress events to some degree as these are all global
(engine level) now, and would need to be made separate per session.
At the moment I can start a sync session, but SessionStep() returns
error at some point. Need to look more closely into that before I can
Just let me know...
Lukas Zeller (luz(a)synthesis.ch)
Synthesis AG, SyncML Solutions & Sustainable Software Concepts