Auxiliary objects for MobiLink synchronization
If you create an instance of MLSync by PowerScript code or
from the New dialog box, you should also consider using auxiliary
objects that are generated automatically by the wizard that you
can customize in the PowerBuilder Window painter.
Using an existing synchronization progress window
After you instantiate an MLSync object and call SetParm to
enable an end user to set authentication properties at runtime,
you can call a Response! type window to document the progress of
a database synchronization. You open the progress window with an OpenWithParm call,
using the window name and the MLSync object name as arguments. By
default, the wizard generates a progress window named w_appname_syncprogress
and adds the OpenWithParm call for you.
In the Properties view for an MLSync object, you can select
a customized progress window to document the progress of a synchronization
call. If you customize a wizard-generated progress window—typically
to hide some of the fields on its tab pages, or even to hide one
or two of the tab pages—you can select the customized progress
window for all of your MobiLink applications.
Changing the connection arguments at runtime
To allow a user to override authentication parameters at runtime,
you can call a customized options window or the synchronization
options window generated by the wizard. The options window can,
in turn, call an instance of the SyncParm object that can be initialized
with authentication values from a highly secure persistent store,
such as a remote database table. You can choose to make some or
all of the authentication values writeable, allowing the end user
to override them at runtime.
Normally when you call SetParm(SyncParm)
from an MLSync object, you automatically override any authentication
values (AuthenticationParms, DBUser, DBPass, EncryptionKey, MLUser,
and MLPass) that you set for properties of the MLSync object—even
when the value of a particular SyncParm property is an empty string.
However, if you call SetNull to set a particular
property of the SyncParm object to NULL before you call SetParm, the
property value in the MLSync object will be used instead.
The default synchronization options window, w_appname_sync_options, returns
a SyncParm structure to its caller through the PowerObjectParm property
of the Message object. This allows the caller to save the highly sensitive
authentication property values in a secure location. It also sets
the SyncParm ReturnCode property with an integer value that indicates
whether to proceed with the actual synchronization.
Default tab pages of the
options window
The default synchronization options window has four tab pages: Subscriptions, SQL Anywhere, MobiLink Server, and
Settings.
Subscriptions page
When you used the MobiLink wizard, you selected one or more
publications from the list of available publications. The selected publications
display on the Subscriptions page, but cannot be edited at runtime.
Each remote user can supply a MobiLink synchronization user
name on this page. The name must be associated in a subscription
with the publications displayed on the page. If the application
is always used by the same MobiLink user, this information never
needs to be supplied again. The name is saved in the registry and
used by default every time synchronization is launched from the
application on this device.
The MobiLink password and authentication parameters are never
saved to the user’s registry. They can either be entered
each time by the user or provided from a secure database.
SQL Anywhere
page
Remote users can supply a DSN file name on this page to pass
all the arguments needed to connect to a remote database.
If a DSN file is not used, or if the DSN file does not include
a user name and password, each remote user can supply a remote database
user name. The name is saved in the registry and used by default
every time synchronization is launched from the application on this
device.
Figure 13-3 displays
the options window SQL Anywhere
tab page with DSN, DBUser, DBPass, and Encryption Key fields. The
database password and encryption key are never saved in the registry.
Figure 13-3: Synchronization options window
MobiLink Server page
When you create a subscription, you specify a protocol, host,
port, and other connection options. For ease of testing, the default
protocol is TCP/IP and the default host is localhost. The
default port is 2439 for TCP/IP, 80 for HTTP, and 443 for
HTTPS.
You might need to change these defaults when you are testing,
and your users might need to change them when your application is
in use if the server is moved to another host or the port changes.
If you did not enter values for the host and port at design time,
and the user does not make any changes on this page, dbmlsync uses
the values in the subscription.
For more information about subscriptions, see “Adding subscriptions”.
Settings page
The Settings page displays logging options, and any other dbmlsync options
you specified at design time and lets the user change any of these
options at runtime. It also gives the user a choice of displaying
or not displaying a synchronization progress window.
Extended options are added to the dbmlsync command
line with the -e switch. You do not need to type
the -e switch in the text box.