同期処理の完了時にアプリケーションを Mobile Link サーバから切断する時点で、任意の文を処理します。
次の表の説明では、SQL データ型を示します。Java または .NET でスクリプトを作成する場合、適切なデータ型を使用してください。SQL データ型と Java データ型とSQL データ型と .NET データ型を参照してください。
SQL スクリプトのパラメータ名 |
説明 |
順序 |
---|---|---|
s.remote_id | VARCHAR(128)。Mobile Link リモート ID。名前付きパラメータを使用している場合のみ、リモート ID を参照できます。 | 適用不可 |
s.username |
VARCHAR(128)。Mobile Link ユーザ名。 |
1 |
s.synchronization_ok |
INTEGER。この値は、同期が成功すると 1 に、失敗すると 0 になります。 |
2 |
なし
同期の完了後、Mobile Link サーバはこのスクリプトを実行します。ブロッキング・ダウンロード確認を使用している場合、Mobile Link クライアントがダウンロードの受信の確認を返した後に、スクリプトが実行されます。
このスクリプトは、ダウンロード・トランザクションの後に、別のトランザクションで実行されます。
end_synchronization スクリプトは統計値の管理に便利です。これは、begin_synchronization スクリプトを呼び出した場合、エラーや競合が発生しても end_synchronization スクリプトが起動されるので、アップロード・トランザクションがロールバックされている間は、統計値が維持されるためです。
次の SQL スクリプトは、同期試行の終了時刻と同期の成功または失敗を記録するシステム・プロシージャを呼び出します。これは SQL Anywhere 統合データベース用の構文です。
CALL ml_add_connection_script( 'ver1', 'end_synchronization', 'CALL RecordEndOfSyncAttempt( {ml s.username}, {ml s.synchronization_ok} )' ) |
次の Mobile Link システム・プロシージャ・コールは、スクリプト・バージョン ver1 を同期するときに、endSynchronizationConnection という Java メソッドを end_synchronization イベント用のスクリプトとして登録します。
CALL ml_add_java_connection_script( 'ver1', 'end_synchronization', 'ExamplePackage.ExampleClass.endSynchronizationConnection' ) |
次に示すのは、サンプルの Java メソッド endSynchronizationConnection です。このメソッドは JDBC 接続を使用して更新を実行します。これは SQL Anywhere 統合データベース用の構文です。
public String endSynchronizationConnection( String user ) throws java.sql.SQLException { execUpdate( _syncConn, "UPDATE sync_count set count = count + 1 where user_id = '" + user + "' " ); return ( null ); } |
次の Mobile Link システム・プロシージャ・コールは、スクリプト・バージョン ver1 を同期するときに、EndSync という .NET メソッドを end_synchronization 接続イベント用のスクリプトとして登録します。
CALL ml_add_dnet_connection_script( 'ver1', 'end_synchronization', 'TestScripts.Test.EndSync' ) |
次に示すのは、サンプルの .NET メソッド EndSync です。このメソッドは、テーブル sync_count を更新します。これは SQL Anywhere 統合データベース用の構文です。
public string EndSync( string user ) { return( "UPDATE sync_count set count = count + 1 where user_id = '" + user + "' "); return ( null ); } |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |