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

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere 11 - 変更点とアップグレード » バージョン 10.0.0 の新機能 » Mobile Link » 動作の変更と廃止予定機能

 

Mobile Link サーバの変更

Mobile Link スクリプトの変更
  • カーソルベースのアップロードの削除   upload_cursor、new_row_cursor、old_row_cursor の各スクリプトは、バージョン 9.0.0 で廃止されていましたが、このバージョンで削除されました。代わりに、文ベースのスクリプトを使用してください。

    ローをアップロードするスクリプトの作成を参照してください。

  • 認識されないスクリプトにより同期が失敗する   Mobile Link サーバで認識されないテーブルレベルまたは接続レベルのスクリプトが検出されると、同期がアボートされます。以前のバージョンでは、認識されないスクリプトは警告メッセージを発行するだけでした。今後は、カーソルベースのアップロード・スクリプトが存在すると、同期がアボートされます。

  • 同期の失敗を引き起こすアップロード・スクリプトまたはダウンロード・スクリプトのエラー   Mobile Link サーバでアップロード・スクリプトやダウンロード・スクリプトのエラーを検出すると、同期が常にアボートされるようになりました。以前は、同期がアボートされない場合がありました。

  • 制限が厳しくなった handle_error と handle_odbc_error イベントの動作   handle_error と handle_odbc_error スクリプトが呼び出されるのは、アップロード・トランザクション中に Mobile Link で挿入、更新、または削除スクリプトの処理中に ODBC エラーが発生した場合、またはダウンロード・ローをフェッチしている場合だけになりました。それ以外の場合に ODBC エラーが発生すると、Mobile Link サーバは report_error または report_odbc_error スクリプトを呼び出して、同期をアボートします。

  • 認証スクリプトのコミット   エラーがない場合、Mobile Link サーバは authenticate_user、authenticate_user_hashed、または authenticate_parameters を呼び出した後で常にトランザクションをコミットします。以前は、失敗した認証に関係するトランザクションがロール・バックされていたため、認証の試行失敗のレコードはありませんでした。次の項を参照してください。

  • authenticate_user_hashed script の変更   authenticate_user_hashed スクリプトは、ユーザの認証シーケンス中に複数回呼び出すことができるようになりました。

    authenticate_user_hashed 接続イベントを参照してください。

  • 開始スクリプトが呼び出されると、同期の成功に関係なく終了スクリプトが呼び出される   Mobile Link スクリプトによっては、begin_connection と end_connection のように開始と終了の形式があります。以前は、同期に失敗すると、終了スクリプトが実行されないことがありました。今回のバージョンでは、開始スクリプトが呼び出されると、同期でエラーが発生した場合でも、終了スクリプトが定義されていれば常に呼び出されるようになりました。

    同期イベントを参照してください。

  • テーブルにアップロードするデータがない場合はアップロード・スクリプトが呼び出されない   以前のバージョンでは、-us オプションを使用して、アップロードするデータがない場合は Mobile Link サーバがアップロード・スクリプトを呼び出さないようにすることができました。-us オプションは削除され、デフォルトではアップロード・ストリームにアップロードするデータが含まれる場合にかぎり、Mobile Link サーバはアップロード・スクリプトを呼び出します。-zus オプションを使用すると、以前の動作に戻すことができます。

    -zus オプションを参照してください。

  • SQL Anywhere 10 と Microsoft SQL Server 2005 の統合データベースは、begin_connection スクリプトで独立性レベルを変更しない   SQL Anywhere バージョン 10 と Microsoft SQL Server 2005 以降では、ダウンロードのデフォルトの独立性レベルがスナップショットになりました。独立性レベルはダウンロード・トランザクションの開始時に変更できますが、その場合は begin_connection スクリプトの設定がすべて上書きされます。そのため、begin_download スクリプトのダウンロードの独立性レベルを変更するか、新しい mlsrv10 -dsd オプションを使用して、スナップショット・アイソレーションを無効にする必要があります。以前のマニュアルでは、begin_connection スクリプトで独立性レベルを変更することをおすすめしていました。スナップショット・アイソレーションを使用しない統合データベースに対しては、現在もこの方法が有効です。

    Mobile Link 独立性レベルを参照してください。

  • example_upload_cursor、example_upload_delete、example_upload_insert、example_upload_update テーブル・イベントの削除   -za と -ze の Mobile Link サーバ・オプションが削除されたことにより、example_upload_cursor、example_upload_delete、example_upload_insert、example_upload_update テーブル・イベントは生成されなくなりました。同期モデル作成ウィザードを使用してスクリプトを生成できるようになりました。

    モデルの作成を参照してください。

mlsrv10 の変更
  • -w と -wu オプションの変更    -w と -wu オプションは、データベース・ワーカ・スレッド数と、アップロードするデータベース・ワーカ・スレッドの最大数をそれぞれ設定します。以前のバージョンでは、これらのワーカ・スレッドが、ネットワークに対する読み込みと書き込み、プロトコル・バイトとロー・データのパックとアンパック、スクリプトの実行、統合データベースのローの更新とフェッチなど、同期のすべての処理を実行していました。

    今回のバージョンでは、-w と -wu で指定されたワーカ・スレッドはデータベース・ワーカ・スレッドになります。これらのデータベース・ワーカ・スレッドだけが、すべてのデータベース・アクティビティの処理のみを行います。他のスレッドは、ネットワーク・アクティビティ、パックとアンパック、その他の Mobile Link サーバのアクティビティの処理を行います。

    -w と -wu オプションの新しい動作は、ネットワークのアクティビティとは関係ありません。以前のバージョンでは、遅延時間が長いネットワークによってワーカ・スレッドがブロックされることがあり、一部の配備で大量のワーカ・スレッドを指定する必要がありました。新しい Mobile Link アーキテクチャでは、この要件はなくなりました。

    -w と -wu オプションは、Mobile Link サーバが統合データベースに与える負荷を制限する最も簡単な方法です。-w と -wu の値をテストすると、お使いの同期システムに最適なスループットを見つけることができます。次の項を参照してください。

  • キャッシュ・サイズの設定オプションの削除   次の mlsrv10 オプションが削除されました。

    • -bc
    • -d
    • -dd
    • -u

    これらのオプションは、mlsrv10 -cm で置き換えられました。このオプションは、すべての同期でキャッシュを設定します。

    -cm オプションを参照してください。

  • タイムアウトの設定オプションの削除   次の mlsrv10 オプションは不要になり、削除されました。

    • contd_timeout
    • unknown_timeout
    また、mlsrv10 liveness_timeout オプションも削除されました。同期クライアント用のタイムアウト・オプションで置き換えられました。

    timeoutを参照してください。

  • 不要になったバックログ・オプション   mlsrv10 バックログ・オプションは不要になり、削除されました。

  • プロトコル名とネットワーク・セキュリティ・オプションの変更   ネットワーク・プロトコル・キーワード https_fips、rsa_tls、rsa_tls_fips、ecc_tls と、ネットワーク・プロトコルのオプション・セキュリティが削除されました。プロトコルは削除されていませんが、異なる方法で指定する必要があります。mlsrv10 -x 構文は次のように変更されました。

    以前の構文 バージョン 10.0.0 の新しい構文 説明
    -x https_fips -x https(fips=y;...) HTTPS FIPS
    -x rsa_tls -x tls(tls_type=rsa;...) RSA 暗号化を使用した TCP/IP TLS
    -x rsa_tls_fips -x tls(tls_type=rsa;fips=y;...) RSA 暗号化と FIPS を使用した TCP/IP TLS
    -x ecc_tls -x tls(tls_type=ecc;...) ECC 暗号化を使用した TCP/IP TLS
    -x tcpip(security=...) -x tcpip TCP/IP
    -x http(security=...) -x http HTTP

    -x オプションを参照してください。

  • -bn オプションの変更   mlsrv10 -bn オプションは、競合検出時に BLOB バイトを比較します。以前は、LONGVARCHAR 型のデータの文字が比較されていました。今回のバージョンでは、バイナリと LONGVARCHAR BLOB で比較される単位は常にバイトになります。

    -bn オプションを参照してください。

  • 冗長出力の変更   mlsrv10 のオプション -vr、-vt、-vu は、どれもわずかに異なる情報を出力します。

    • -vr   -vr は、アップロードとダウンロードのロー値だけを返すようになりました。以前は、アップロードとダウンロードのスクリプト名と内容も返していました。

    • -vt   -vt は、変換後のスクリプトの内容だけを返すようになりました。以前は、元のスクリプトの内容も返していました。

    • -vu   -vu は、未定義のテーブル・スクリプトを呼び出す必要があるときに、それらのスクリプトすべてを返すようになりました。これには統計スクリプトも含まれます。

    -v オプションを参照してください。

  • Mobile Link サーバ・オプション -za と -ze の削除   Mobile Link サーバの -za オプションと -ze オプションによる自動スクリプト生成は削除されました。同期モデル作成ウィザードを使用してスクリプトを生成できるようになりました。

    モデルの作成を参照してください。

  • -zac と -zec の削除   Mobile Link サーバの、カーソルベースのスクリプトを生成する -zac と -zec オプションは廃止されていましたが、このバージョンで削除されました。

  • Mobile Link サーバ・オプション -oy の削除   mlsrv10 -oy オプション (タイムスタンプの年を表す) が削除されました。今後は、情報、警告、エラーの各メッセージのタイムスタンプに年は常に含まれます。

統計プロパティ
  • 統計プロパティの変更   大きく 2 つの変更があります。

    • アップロードとダウンロードのバイト数の意味が変更されました。この数は、アップロードとダウンロードを格納するために Mobile Link サーバ内で使用されるメモリ量を反映するようになりました。以前は、Mobile Link サーバに対して送受信されたアップロードとダウンロードのバイト数を表していました。新しい数は、同期がサーバ・メモリに与える影響が反映されるので、より有用になりました。また、以前の数は、HTTP、暗号化、または圧縮が使用されたときの信頼性に欠けていました。

    • マニュアルの前のバージョンでは、プロパティを通常のアップロード・モードと強制的な競合モードのどちらで使用しているかによってプロパティが異なる値を返すことについて、プロパティの説明に記述されていませんでした。この点が修正されました (以下を参照)。

    次の統計プロパティが変更されました。

    統計プロパティ 説明

    conflicted_deletes

    通常のアップロード・モードでは、この値は常に 0 です。

    強制的な競合モードでは、upload_old_row_insert スクリプトを使用して統合データベースに正常に挿入されたアップロード削除の総数を返します。

    以前は、競合が検出されたアップロード済み削除の数を返していました。

    conflicted_inserts

    通常のアップロード・モードでは、この値は常に 0 です。

    強制的な競合モードでは、upload_new_row_insert スクリプトを使用して統合データベースに正常に挿入されたアップロード挿入の総数を返します。

    以前は、競合が検出されたアップロード済み挿入の数を返していました。

    conflicted_updates

    通常のアップロード・モードでは、競合を引き起こした更新ローの総数を返します。

    強制的な競合モードでは、upload_new_row_insert または upload_old_row_insert スクリプトを使用して正常に適用されたアップロード更新ローの総数を返します。

    以前は、競合が検出されたアップロード済み更新の数を返していました。

    download_bytes

    ダウンロードを格納するために Mobile Link サーバ内で使用されるメモリ量を返します。

    以前は、ダウンロード済みバイト数を返していました。

    ignored_deletes

    通常のアップロード・モードでは、handle_error または handle_odbc_error が定義されており、1000 が返された場合、または指定のテーブルに対して upload_delete スクリプトが定義されていない場合において、upload_delete スクリプトを呼び出したときにエラーを発生させたアップロード削除ローの総数を返します。

    強制的な競合モードでは、handle_error または handle_odbc_error が定義されており、1000 が返された場合、または指定のテーブルに対して upload_old_row_insert スクリプトが定義されていない場合において、upload_old_row_insert スクリプトを呼び出したときにエラーを発生させたアップロード削除ローの総数を返します。

    以前は、無視されたアップロード済み削除の数を返していました。

    ignored_inserts

    通常のアップロード・モードでは、handle_error または handle_odbc_error が定義されており、1000 が返された場合、または指定のテーブルに対して upload_insert スクリプトが定義されていない場合において、upload_insert スクリプトを呼び出したときにエラーを発生させたアップロード挿入ローの総数を返します。

    強制的な競合モードでは、handle_error または handle_odbc_error が定義されており、1000 が返された場合、または指定のテーブルに対して upload_insert スクリプトが定義されていない場合において、upload_new_row_insert スクリプトを呼び出したときにエラーを発生させたアップロード挿入ローの総数を返します。

    以前は、無視されたアップロード済み挿入の数を返していました。

    ignored_updates

    通常のアップロード・モードでは、handle_error または handle_odbc_error が定義されており、1000 が返された場合、または指定のテーブルに対して upload_update スクリプトが定義されていない場合において、upload_update スクリプトを呼び出したときにエラーを発生させたアップロード更新ローの総数を返します。

    強制的な競合モードでは、handle_error または handle_odbc_error が定義されており、1000 が返された場合、または upload_new_row_insert または upload_old_row_insert スクリプトを呼び出したときにエラーを発生させたアップロード更新ローの総数を返します。

    以前は、無視されたアップロード済み更新の数を返していました。

    upload_bytes

    アップロードを格納するために Mobile Link サーバ内で使用されるメモリ量を返します。

    以前は、アップロード済みバイト数を返していました。

    upload_deleted_rows

    通常のアップロード・モードでは、統合データベースから正常に削除されたローの総数を返します。

    強制的な競合モードでは、この値は常に 0 です。

    以前は、同期クライアントからアップロードされたロー削除の数を返していました。

    upload_inserted_rows

    通常のアップロード・モードでは、統合データベースに正常に挿入されたローの総数を返します。

    強制的な競合モードでは、この値は常に 0 です。

    以前は、同期クライアントからアップロードされたロー挿入の数を返していました。

    upload_updated_rows

    通常のアップロード・モードでは、統合データベースで正常に更新されたローの総数を返します。

    強制的な競合モードでは、この値は常に 0 です。

    以前は、同期クライアントからアップロードされたロー更新の数を返していました。

    Mobile Link の統計のプロパティを参照してください。

Mobile Link サーバのその他の変更
  • リモート・データベースの CHAR または NCHAR データ型のカラムに対して NULL 文字を同期できるようになった   以前の Mobile Link では、NULL 文字を含む VARCHAR カラムと CHAR カラムの値によって同期が失敗することがありました。今回のバージョンでは、CHAR、VARCHAR、LONG VARCHAR、NCHAR、NVARCHAR、LONG NVARCHAR データ型のリモート・データベース・カラムに含まれる NULL 文字を同期できるようになりました。

  • 情報、警告、エラー・メッセージのログの新しいフォーマット   以前は、Mobile Link サーバは次のフォーマットでメッセージをログに記録していました。
    T.mm/dd hh:mm:ss. thread_id User_name: message

    今回のバージョンでは、次のフォーマットでメッセージがログに記録されるようになりました。

    T. yyyy-mm-dd hh:mm:ss. synchronization_id: message

    同期ごとに、ログの最初のメッセージはリモート ID、ユーザ名、スクリプト・バージョン、クライアント名 (Ultra Light または SQL Anywhere) を示します。

    新しいフォーマットでは、提供される情報は減ることなく、出力ログのサイズが小さくなりました。

  • Oracle 用システム・プロシージャの新しいデータ型   スクリプトを登録するための Mobile Link システム・プロシージャでは、Oracle 統合データベース用にスクリプトの内容パラメータで CLOB データ型が使用されるようになりました。ml_add_property システム・プロシージャでは、Oracle 用に prop_value パラメータが CLOB 型になりました。以前は、これらのパラメータは VARCHAR 型でした。

    Mobile Link サーバ・システム・プロシージャを参照してください。