DB2 Everyplace の Java 同期アプリケーションを作成するうえで役立ついくつかのサンプル Java プログラム があります。
これらサンプルが入っている場所については、DB2 Everyplace サンプル・アプリケーションの概要を参照してください。
サンプル・プログラム ISyncSample.java では、DB2 Everyplace ネイティブ同期プロバイダー用の同期クライアント・ アプリケーションのコーディング方法を示します。
ISyncSample.java サンプル・アプリケーションの主なステップは、次のとおりです。
import com.ibm.mobileservices.isync.*;
import com.ibm.mobileservices.isync.event.*;
JNI ベース同期プロバイダーの場合は、com.ibm.mobileservices.isync.db2e.jni.*; をインポートする
トラップ・ベース同期プロバイダーの場合は、com.ibm.mobileservices.isync.db2e.sti.*; をインポートする
// 例 1: ISync Java - 単純な API の使用法 // // ステップ 1: 同期クライアント Java パッケージのインポート // import com.ibm.mobileservices.isync.*; import com.ibm.mobileservices.isync.event.*; import com.ibm.mobileservices.isync.db2e.jni.*; // ステップ 2: ISyncListener インターフェースの eventIssued() メソッドのインプリメント // (オプショナル:イベント通知に興味がある場合) // public class ISyncSample implements ISyncListener { public ISyncSample () {} public int eventIssued(ISyncEvent evt) { int evtType = evt.getEventType(); switch(evtType) { // display event status 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; // ignore other event types default: break; } // let sync engine take default action 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"; // a data directory under current dir ISyncSubscriptionSet ssArr[] = null; int rc = 0; try { // ステップ 3: インスタンス DB2eISyncProvider の取得 // provider = DB2eISyncProvider.getInstance(); // ステップ 4: プロバイダーからの同期サービスのインスタンスの取得 // /* 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); // ステップ 5: 構成ストアのインスタンスの取得 // config = service.getConfigStore(path); // ステップ 6: 同期を実行するための同期ドライバー // のインスタンスの取得 syncer = config.getSyncDriver(); // ステップ 7: 同期時における同期ドライバー・オブジェクトからの イベント通知のリスナー・オブジェクト // の設定 (オプショナル) syncer.setSyncListener(this); // ステップ 8: 使用可能になったすべてのサブスクリプション・セットでの同期の実行 // 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 { // ステップ 9: 割り振られたすべてのリソースのクローズと解放 // 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 = "localhost"; 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); } // end main() } // end ISyncSample class
関連したタスク
関連した概念
関連した解説