アップロード操作の同期統計へのアクセスを提供します。
次の表の説明では、SQL データ型を示します。Java または .NET でスクリプトを作成する場合、適切な対応するデータ型を使用する必要があります。 SQL データ型と Java データ型とSQL データ型と .NET データ型を参照してください。
SQL スクリプトでは、名前または疑問符を使用してイベントパラメーターを指定できます。疑問符の使用は推奨されなくなりました。名前付きパラメーターを使用することをおすすめします。1 つのスクリプト内で名前と疑問符を混在させることはできません。疑問符を使用する場合、パラメーターは以下に示す順に指定する必要があり、後続のパラメーターが指定されていない場合のみ省略可能です (たとえば、パラメーター 2 を使用する場合は、パラメーター 1 を使用してください)。名前付きパラメーターを使用する場合は、パラメーターの任意のサブセットを任意の順に指定できます。
SQL スクリプトのパラメーター名 | 説明 | 順序 (SQL では非推奨) |
---|---|---|
s.remote_id | VARCHAR(128)。Mobile Link リモート ID。名前付きパラメーターを使用している場合のみ、リモート ID を参照できます。 | 適用不可 |
s.username |
VARCHAR(128)。Mobile Link ユーザー名。 |
1 |
s.warnings |
INTEGER。発生した警告の数。 |
2 |
s.errors |
INTEGER。発生したエラーの数。 |
3 |
s.inserted_rows |
INTEGER。統合データベースに正常に挿入されたローの数。 |
4 |
s.deleted_rows |
INTEGER。統合データベースから正常に削除されたローの数。 |
5 |
s.updated_rows |
INTEGER。統合データベースで正常に更新されたローの数。 |
6 |
s.conflicted_inserts |
INTEGER。常に 0 (ゼロ) です。 |
7 |
s.conflicted_deletes |
INTEGER。常に 0 (ゼロ) です。 |
8 |
s.conflicted_updates |
INTEGER。競合を引き起こした更新ローの数。対処する競合解決スクリプトが正常に呼び出された場合のみ、ローは含まれます。 |
9 |
s.ignored_inserts |
INTEGER。無視されたアップロード挿入ローの合計数。無視される理由は次のとおりです。1) 通常モードで upload_insert スクリプトがないか、または強制的な競合モードで upload_new_row_insert スクリプトがない。2) Mobile Link サーバーが対応するスクリプトを呼び出し中にエラーが発生し、handle_error または handle_odbc_error イベントが 1000 を返した。 |
10 |
s.ignored_deletes |
INTEGER。upload_delete スクリプトを呼び出したとき、handle_error または handle_odbc_error が定義され、1000 を返した場合、または指定のテーブルに対して upload_delete スクリプトが定義されていない場合にエラーを発生したアップロード削除ローの数。 |
11 |
s.ignored_updates |
INTEGER。競合を引き起こしたが、競合解決スクリプトが正常に呼び出されなかったり、upload_update スクリプトが定義されていなかったアップロード更新ローの数。 |
12 |
s.bytes |
INTEGER。アップロードを保存するために Mobile Link サーバー内で使用されるメモリの容量。 |
13 |
s.deadlocks |
INTEGER。同期で検出された統合データベース内のデッドロックの数。 |
14 |
なし。
upload_statistics イベントを使用すると、任意のユーザーについてアップロードに関する統計を収集できます。アップロードトランザクション終了時のコミット直前に、upload_statistics 接続スクリプトが呼び出されます。
次の例は、アップロード操作での同期の統計を upload_summary_audit テーブルに挿入します。
CALL ml_add_connection_script ( 'ver1', 'upload_statistics', 'INSERT INTO upload_summary_audit ( ml_user, warnings, errors, inserted_rows, deleted_rows, updated_rows, conflicted_inserts, conflicted_deletes, conflicted_updates, ignored_inserts, ignored deletes, ignored_updates, bytes, deadlocks ) VALUES ( {ml s.username}, {ml s.warnings}, {ml s.errors}, {ml s.inserted_rows}, {ml s.deleted_rows}, {ml s.updated_rows}, {ml s.conflicted_inserts}, {ml s.conflicted_deletes}, {ml s.conflicted_updates}, {ml s.ignored_inserts}, {ml s.ignored_deletes}, {ml s.ignored_updates}, {ml s.bytes}, {ml s.deadlocks} ) ' ) |
監査テーブルに統計が挿入されたら、これらの統計を使用して同期をモニターし、必要に応じて最適化を実行できます。
次の Mobile Link システムプロシージャーコールは、スクリプトバージョン ver1 を同期するときに、uploadStatisticsConnection という Java メソッドを upload_statistics 接続イベント用のスクリプトとして登録します。
CALL ml_add_java_connection_script( 'ver1', 'upload_statistics', 'ExamplePackage.ExampleClass.uploadStatisticsConnection' ) |
次に示すのは、サンプルの Java メソッド uploadStatisticsConnection です。このメソッドは、Mobile Link メッセージログに統計の一部を出力します (統計を Mobile Link メッセージログに出力すると、開発時には便利ですが、運用サーバーのパフォーマンスが遅くなります)。
package ExamplePackage; public class ExampleClass { String _curUser = null; public String uploadStatisticsConnection( String user, int warnings, int errors, int insertedRows, int deletedRows, int updatedRows, int conflictedInserts, int conflictedDeletes, int conflictedUpdates, int ignoredInserts, int ignoredDeletes, int ignoredUpdates, int bytes, int deadlocks ) { java.lang.System.out.println( "updated rows: " + updatedRows ); return ( null ); }} |
次の Mobile Link システムプロシージャーコールは、スクリプトバージョン ver1 を同期するときに、UploadStats という .NET メソッドを upload_statistics 接続イベント用のスクリプトとして登録します。
CALL ml_add_dnet_connection_script( 'ver1', 'upload_statistics', 'TestScripts.Test.UploadStats' ) |
次に示すのは、サンプルの .NET メソッド UploadStats です。このメソッドは、Mobile Link メッセージログに統計の一部を出力します (統計を Mobile Link メッセージログに出力すると、開発時には便利ですが、運用サーバーのパフォーマンスが遅くなります)。
namespace TestScripts { public class Test { string _curUser = null; public string UploadStats ( string user, int warnings, int errors, int insertedRows, int deletedRows, int updatedRows, int conflictInserts, int conflictDeletes, int conflictUpdates, int ignoredInserts, int ignoredDeletes, int ignoredUpdates, int bytes, int deadlocks ) { System.Console.WriteLine( "updated rows: " + updatedRows ); return ( null ); }}} |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |