The MobiLink client is usually located very close to the remote database, and sometimes integrated in a fashion where a sync is not attempted until the remote database's availability is known (e.g., a client application that is already connected to the database invokes dbmlsync).
How are you launching a synchronization? Are you using the dbmlsync schedule extended option?
The dbmlsync utility is a client like any other, and reattempting failed database connections is the responsibility of the client... hence the question "how are you launching".