Mobile Link サーバは、MySQL Community サーバと Enterprise サーバ 5.1.22 以降をサポートしています。QAnywhere モデルと Mobile Link モデルは、MySQL をサポートしていません。
MySQL を Mobile Link 統合データベースとして動作するよう設定するには、設定プロシージャを実行して、Mobile Link 同期に必要な Mobile Link システム・テーブル、ストアド・プロシージャ、トリガ、ビューを追加する必要があります。これは、次のような 2 つの方法で実行できます。
MySQL コマンド・ライン・ツールまたは MySQL Query Browser を使用して、install-dir\MobiLink\setup にある syncmys.sql 設定スクリプトを実行します。MySQL ユーザ ID にトリガを作成する権限があることを確認してください。
Sybase Central の Mobile Link プラグインで、[モード] - [管理] を選択し、サーバ・データベースに接続します。データベース名を右クリックし、[Mobile Link システム設定のチェック] を選択します。データベースの設定が必要な場合は、続行のプロンプトが表示されます。既存の Mobile Link システム設定を使用する場合、default_schema を Mobile Link システム設定のスキーマにしてください。
設定スクリプトを実行するデータベース・ユーザは、Mobile Link システム・テーブルを更新するパーミッションを持つ唯一のユーザです。Mobile Link アプリケーションを設定するには、このパーミッションが必要です。必要なパーミッションを参照してください。
Mobile Link サーバを統合データベースに接続するために使用される RDBMS ユーザは、Mobile Link システム・テーブル、プロシージャなどを修飾子なしで使用できる必要があります (SELECT * from ml_user など)。Mobile Link サーバのシステム・テーブルを参照してください。
MySQL Web サイトで提供されている ODBC ドライバを使用して、MySQL 統合データベース用の ODBC DSN を設定してください。Mobile Link サーバは、MySQL ODBC ドライバ 5.1.3 以降をサポートしています。次の項を参照してください。
UINIX で ODBC 設定ファイルを指定するには、次のいずれかを行います。
同期スクリプトに、セミコロンで区切られた、バッチによる SQL コマンドが含まれていても、Mobile Link サーバが MySQL データベースへの接続を作成するための DSN を設定するときに、[MySQL Connector/ODBC Data Source Configuration] ウィンドウの [Flags 3] ページで [Allow Multiple Statements] チェックボックスをオンにすることが必要な場合があります。
ストレージ・エンジン Mobile Link サーバでは、デフォルトのストレージ・エンジンが ACID に準拠していることを必要としています。デフォルトのストレージ・エンジンが ACID に準拠していない場合は、Mobile Link サーバのすべてのテーブルが、InnoDB、Falcon など、ACID 準拠のストレージ・エンジンを使用して作成されていることを確認してください。
[ストアド・プロシージャ] ストアド・プロシージャ・コールでは、INOUT パラメータおよび OUT パラメータを使用することはできません。これらのパラメータが必要なプロシージャは、OUT 値を返す関数として実装してください。
authenticate_user、modify_user などの INOUT パラメータが必要なサーバ・イベントは、関数として実装し、CALL 文ではなく SELECT 文を使用して実行してください。
ユーザ定義の名前付きパラメータは、サーバ・イベントの実行後に変更されないため、サポートされていません。
カーソル・スクリプト イベント upload_fetch、download_cursor、download_delete_cursor は、SELECT 文を使用して呼び出してください。SELECT 文は、Mobile Link サーバによって、コミットされた読み出し独立性レベルを使用して実行されます。MySQL ODBC ドライバのバグによって、INSERT 文、UPDATE 文、DELETE 文など、コミットされない読み出し操作がサーバで発生し、統合データベースとリモート・データベースの間でデータの一貫性が失われます。
この問題を回避するには、SELECT 文に LOCK IN SHARE MODE 句を追加します。次に例を示します。
SELECT column1 FROM table1 WHERE id > 0 LOCK IN SHARE MODE |
この句は、コミットされない操作から SELECT 文を保護します。
バルク・アップロード Mobile Link サーバは、MySQL ODBC ドライバに依存しています。MySQL ODBC ドライバは現在、バルク・アップロードをサポートしていません。
MLSD Mobile Link サーバは、MySQL ODBC ドライバに依存しています。MySQL ODBC ドライバは現在、MSDTC をサポートしていません。
UNIX 用 64 ビット Mobile Link サーバの SQLLEN データ型 MySQL ODBC ドライバは SQLLEN を 32 ビット整数として定義しているため、SQLLEN を 64 ビット整数として定義している 64 ビットの Mobile Link サーバと不一致が発生します。64 ビットの UNIX 環境で Mobile Link を実行している場合は、ODBC 設定ファイルに次を追加してください。
length32=1 |
このエントリによって、サーバは、SQLLEN を 32 ビット整数として読み込むことが強制されます。設定は、次の例のようになります。
[a_mysql_dsn] Driver=full_path/libmyodbc5.so server=host_name uid=user_name pwd=user_password database=database_name length32=1 |
MySQL サーバの設定 Mobile Link 同期スクリプトは、ml_script テーブルに TEXT として格納され、必要に応じて取得されます。my.ini ファイルの max_allowed_packet は、16m 以上に設定することが必要な場合があります。
Mobile Link 独立性レベルを参照してください。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |