Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » Mobile Link - サーバ管理 » Mobile Link イベント » 同期イベント

 

end_synchronization 接続イベント

同期処理の完了時にアプリケーションを 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 スクリプトは、同期試行の終了時刻と同期の成功または失敗を記録するシステム・プロシージャを呼び出します。これは SQL Anywhere 統合データベース用の構文です。

CALL ml_add_connection_script(
 'ver1',
 'end_synchronization',
 'CALL RecordEndOfSyncAttempt(
   {ml s.username}, 
   {ml s.synchronization_ok} )' )
Java の例

次の 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 );
}
.NET の例

次の 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 );
}