Existen varios programas Java de ejemplo que puede utilizar como ayuda para escribir aplicaciones de sincronización Java para DB2 Everyplace.
Consulte el apartado Visión general de las aplicaciones de ejemplo de DB2 Everyplace para obtener más información sobre el lugar en que están ubicados los ejemplos.
El programa de ejemplo ISyncSample.java demuestra cómo codificar una aplicación Sync Client para el proveedor de sincronización nativa de DB2 Everyplace.
Los pasos principales de la aplicación de ejemplo ISyncSample.java son:
import com.ibm.mobileservices.isync.*;
import com.ibm.mobileservices.isync.event.*;
Para el proveedor de sincronización basado en JNI, importar com.ibm.mobileservices.isync.db2e.jni.*;
Para el proveedor de sincronización basado en la detección, importar com.ibm.mobileservices.isync.db2e.sti.*;
// Ejemplo 1: ISync Java - Uso de la API simple // // Paso 1: importar los paquetes Java de Sync Client // import com.ibm.mobileservices.isync.*; import com.ibm.mobileservices.isync.event.*; import com.ibm.mobileservices.isync.db2e.jni.*; // Paso 2: implementar el método eventIssued() en // la interfaz ISyncListener si está interesado en la notificación // de sucesos (opcional) // public class ISyncSample implements ISyncListener { public ISyncSample () {} public int eventIssued(ISyncEvent evt) { int evtType = evt.getEventType(); switch(evtType) { // visualizar el estado del suceso case ISync.EVTTYPE_INFO: case ISync.EVTTYPE_ERROR: System.out.println ("*********************"); System.out.println ("SubsSet: " + evt.getSubscriptionSetName() ); System.out.println ("Subs: " + evt.getSubscriptionName() ); System.out.println ("SubsType: " + evt.getSubscriptionType() ); System.out.println ("Event Type: " + evtType ); System.out.println ("Event Code: " + evt.getEventCode() ); System.out.println ("Progress: " + evt.getSyncProgress()); System.out.println ("**********************\n"); return ISync.RTNCB_DONE; case ISync.EVTTYPE_RETRY: return ISync.RTNCB_REPLY_YES; case ISync.EVTTYPE_CONFLICT: return ISync.RTNCB_DONE; // ignorar otros tipos de suceso default: break; } // dejar que el motor de sincronización emprenda la acción por omisión return ISync.RTNCB_DEFAULT ; } public void runSample(String host, String port, String userID, String passwrd) { ISyncProvider provider = null; ISyncService service = null; ISyncConfigStore config = null; ISyncDriver syncer = null; String path = "data"; // dir de datos bajo dir actual ISyncSubscriptionSet ssArr[] = null; int rc = 0; try { // Paso 3: obtener una instancia de DB2eISyncProvider // provider = DB2eISyncProvider.getInstance(); // Paso 4: obtener del proveedor una instancia // de servicio de sincronización // /* For the DB2j sync client, the JDBC driver and url are required String driver = "com.ibm.db2j.jdbc.DB2jDriver"; String jdbcUrl = jdbc:db2j:crtlDb;create=true; */ if (driver != null) userProps.put("target.db.driver", driver); if (jdbcUrl != null) userProps.put("target.db.url", jdbcUrl); Properties userProps = new Properties(); userProps.put("isync.user", user); userProps.put("isync.password", password); userProps.put("isync.trace", "detailed"); service = provider.createSyncService(uri, userProps); // Paso 5: obtener una instancia del almacén de configuración // config = service.getConfigStore(path); // Paso 6: obtener una instancia del controlador de // sincronización syncer = config.getSyncDriver(); // Paso 7: establecer objeto de escucha para notificación // de sucesos a partir del objeto sincronizador // durante la sincronización (opcional) syncer.setSyncListener(this); // Paso 8: realizar sincronización en todos los conjuntos // de suscripción habilitados // rc = syncer.sync(); switch (rc) { case ISync.RTN_SUCCEEDED: System.out.println("Synchronization succeeded"); break; case ISync.RTN_CANCELED: System.out.println ("Synchronization canceled"); break; default: System.out.println ("Synchronization failed"); break; } ssArr = config.getSubscriptionSets(); for (int i=0; i < ssArr.length; i++ ) { System.out.print ("Subscription Set: " + ssArr[i].getName() + " Status: "); switch(ssArr[i].getStatus()) { case ISync.STATUS_READY: System.out.println("READY"); break; case ISync.STATUS_COMPLETED: System.out.println ("COMPLETED"); break; case ISync.STATUS_CANCELED: System.out.println ("CANCELED"); break; default: System.out.println ("FAILED"); break; } } } catch (ISyncException ie) { System.out.println("Exception code: " + ie.getCode()); ie.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } finally { // Paso 9: cerrar y liberar todos los recursos asignados // try { if (syncer != null) { syncer.close(); syncer = null; } if (config != null) { config.close(); config = null; } if (service != null) { service.close(); service = null; } } catch(ISyncException ie2) { System.out.println("Exception code: " + ie2.getCode()); ie2.printStackTrace(); } } } // end runSample() public static void main(String args[]) { String host = "hostlocal"; String port = "8080"; String userID = "nurse1"; String passwrd = "nurse1"; ISyncSample isa = new ISyncSample(); if (args.length > 0) { if (args.length == 4) { host = args[0]; port = args[1]; userID = args[2]; passwrd = args[3]; } else System.out.println("Usage: java ISyncSample [host] [port] " + "[userid] [password]"); } isa.runSample(host, port, userID, passwrd); } // final de principal() } // final de clase ISyncSample
Tareas relacionadas
Conceptos relacionados
Consulta relacionada