Retrieve the synchronization status.
Synchronize Status Listener is mainly for debugging and performance measuring purposes to monitor stages of a synchronize session. It could also be used in UI for synchronization progress status. Below is a sample Synchronize Status Listener.
import com.sybase.persistence.ObjectSyncStatusData; import com.sybase.persistence.SyncStatusListener; import com.sybase.persistence.SyncStatusState; public class MySyncStatusListener implements SyncStatusListener { long start; public MySyncStatusListener() { start = System.currentTimeMillis(); } public boolean objectSyncStatus(ObjectSyncStatusData statusData) { long now = System.currentTimeMillis(); long interval = now - start; start = now; String infoMessage; int syncState = statusData.getSyncStatusState(); switch (syncState) { case SyncStatusState.SYNC_STARTING: infoMessage = "START [" + interval + "]"; break; case SyncStatusState.APPLICATION_SYNC_SENDING_HEADER: infoMessage = "SENDING HEADERS [" + interval + "]"; break; case SyncStatusState.APPLICATION_SYNC_SENDING_SCHEMA: infoMessage = "SENDING SCHEMA [" + interval + "]"; break; case SyncStatusState.APPLICATION_DATA_UPLOADING: infoMessage = "DATA UPLOADING [" + interval + "] " + statusData.getCurrentMBO() ": (S>" + statusData.getSentByteCount() ":" + statusData.getSentRowCount() " R<" + statusData.getReceivedByteCount() ":" + statusData.getReceivedRowCount() ")"; break; case SyncStatusState.APPLICATION_SYNC_RECEIVING_UPLOAD_ACK: infoMessage = "RECEIVING UPLOAD ACK [" + interval + "]"; break; case SyncStatusState.APPLICATION_DATA_UPLOADING_DONE: infoMessage = "UPLOAD DONE [" + interval + "] " + statusData.getCurrentMBO() ": (S>" + statusData.getSentByteCount() ":" + statusData.getSentRowCount() " R<" + statusData.getReceivedByteCount() ":" + statusData.getReceivedRowCount() ")"; break; case SyncStatusState.APPLICATION_DATA_DOWNLOADING: infoMessage = "DATA DOWNLOADING[" + interval + "] " + statusData.getCurrentMBO() ": (S>" + statusData.getSentByteCount() ":" + statusData.getSentRowCount() " R<" + statusData.getReceivedByteCount() ":" + statusData.getReceivedRowCount() ")"; break; case SyncStatusState.APPLICATION_SYNC_DISCONNECTING: infoMessage = "DISCONNECTING [" + interval + "]"; break; case SyncStatusState.APPLICATION_SYNC_CHECKING_LAST_UPLOAD: infoMessage = "CHECKING LAST UPLOAD [" + interval + "]"; break; case SyncStatusState.APPLICATION_SYNC_COMMITTING_DOWNLOAD: infoMessage = "COMMITTING DOWNLOAD [" + interval + "] " + statusData.getCurrentMBO() ": (S>" + statusData.getSentByteCount() ":" + statusData.getSentRowCount() " R<" + statusData.getReceivedByteCount() ":" + statusData.getReceivedRowCount() ")"; break; case SyncStatusState.APPLICATION_SYNC_CANCELLED: infoMessage = "SYNC CANCELED [" + interval + "]"; break; case SyncStatusState.APPLICATION_DATA_DOWNLOADING_DONE: infoMessage = "DATA DOWNLOADING DONE [" + interval + "]"; break; case SyncStatusState.SYNC_DONE: infoMessage = "DONE [" + interval + "]"; break; default: infoMessage = "STATE" syncState "[" + interval + "]"; break; } LogMessage(infoMessage); return false; } }
SMP101DB.synchronize(new MySyncStatusListener())