Mobile Link は、Linux、UNIX、Windows 用の IBM DB2 LUW をサポートしています。AS/400 用の IBM DB2 はサポートしていません。
DB2 を Mobile Link 統合データベースとして動作するよう設定するには、設定プロシージャを実行して、Mobile Link 同期に必要な Mobile Link システム・テーブル、ストアド・プロシージャ、トリガ、ビューを追加する必要があります。次のような方法で実行できます。
install-dir\MobiLink\setup にある syncdb2.sql 設定スクリプトを実行します。スクリプトを実行する前に、別のロケーションにコピーして変更してください。手順については後述します。
Sybase Central の Mobile Link プラグインで、[モード] - [管理] を選択し、サーバ・データベースに接続します。データベース名を右クリックし、[Mobile Link システム設定のチェック] を選択します。データベースの設定が必要な場合は、続行のプロンプトが表示されます。下記の手順 1 を実行する必要があることに注意してください。
同期モデル作成ウィザードまたは同期モデル展開ウィザードを使用する場合は、サーバ・データベースに接続するとシステム設定がチェックされます。データベースの設定が必要な場合は、続行のプロンプトが表示されます。下記の手順 1 を実行する必要があることに注意してください。
設定スクリプトを実行するデータベース・ユーザは、Mobile Link システム・テーブルを更新するパーミッションを持つ唯一のユーザです。Mobile Link アプリケーションを設定するには、このパーミッションが必要です。必要なパーミッションを参照してください。
Mobile Link サーバを統合データベースに接続するために使用される RDBMS ユーザは、Mobile Link システム・テーブル、プロシージャなどを修飾子なしで使用できる必要があります (SELECT * from ml_user など)。Mobile Link サーバのシステム・テーブルを参照してください。
設定スクリプトを使用して Mobile Link システム・テーブルをインストールするには、IBM DB2 LUW テーブル領域は最低でも 8 KB ページを使用します。テーブル領域が 8 KB ページを使用しない場合は、次の手順を実行します。
1 つ以上のバッファ・プールに 8 KB ページがあることを確認します。ない場合は、8 KB ページのバッファ・プールを作成してください。
8 KB ページのバッファ・プールを使用する、新しいテーブル領域とテンポラリ・テーブル領域を作成します。
詳細については、DB2 LUW のマニュアルを参照してください。
使用する接続情報を含むように、syncdb2.sql をカスタマイズします。
syncdb2.sql を変更と保存を行う新しいロケーションにコピーします。
syncdb2.sql スクリプトには、デフォルトの接続文 connect to DB2Database
が含まれています。DB2 データベースに接続するようにこの行を変更します。次の構文を使用します。
connect to DB2Database user userid using password ~ |
ここでは、DB2Database、userid、password に適切な名前を指定します。(syncdb2.sql スクリプトでは、チルダ (~) をコマンド・デリミタとして使用します。)
syncdb2.sql を実行します。
db2 -c -ec -td~ +s -v -f syncdb2.sql |
DB2 データベースで提供されている ODBC ドライバを使用して、DB2 統合データベース用の ODBC DSN を設定してください。次の項を参照してください。
テーブル領域の容量 DB2 LUW データベースを統合データベースとして使用する場合のテーブル領域とテンポラリ・テーブル領域は、8 KB ページを使用します。
また、LONG テーブル領域が必要なカラムもあります。次の例のように、デフォルトの LONG テーブル領域がない場合は、これらのカラムを含むテーブルの作成文を正しく設定します。
CREATE TABLE ... ( ... ) IN tablespace LONG IN long-tablespace |
サンプル・アプリケーションの使用例については、Mobile Link CustDB サンプルの解説を参照してください。
セッション全体の変数 バージョン 8 より前の DB2 LUW では、セッション全体の変数はサポートされていません。これを解決する便利な方法としては、Mobile Link ユーザ名と他のセッション・データ用のカラムがあるベース・テーブルを使用します。ベース・テーブルには、同時同期を表すローが含まれます。
ユーザ定義のプロシージャ バージョン 8.2 より前の DB2 LUW では、SQL プロシージャを実行可能ライブラリ (DLL など) にコンパイルする必要があります。作成された DLL/共有ライブラリは、サーバ上の特別なディレクトリにコピーする必要があります。C/C++ や Java など、さまざまな言語を使用してプロシージャを記述できることに注意してください。
Java と .NET の同期スクリプトの詳細については、以下の項目を参照してください。
CHAR カラム IBM DB2 LUW では、CHAR データ型は固定長で、文字列の長さに合わせてブランクが埋め込まれています。Mobile Link リモート・データベース (SQL Anywhere または Ultra Light) では、CHAR は VARCHAR と同じで、固定幅に合わせて値にブランクが埋め込まれることはありません。統合データベースで CHAR の代わりに VARCHAR を使用することを強くおすすめします。CHAR を使用する必要がある場合は、mlsrv11 -b コマンド・ライン・オプションを使用すると、同期中に文字列から後続ブランクを削除できます。このオプションは、重複を検出するときに使用する文字列の比較にとって重要です。
-b オプションを参照してください。
データ型マッピング カラムのデータ型は、統合データベースとリモート・データベース間で完全に一致する必要があります。詳細については、IBM DB2 LUW データのマッピングを参照してください。
システム・プロシージャ・コール内の引用符を 2 つにする Mobile Link システム・プロシージャを使用して、スクリプトを DB2 統合データベースに追加する場合は、引用符を 2 つにする必要があります。たとえば、ml_add_table_script を使用して追加するスクリプトに、他の統合データベースに対する
SET "DELETED"=''Y''
という行が含まれている場合、DB2 では、これを SET "DELETED" = ''''Y''''
と記述する必要があります。
バージョン 5 以前に対する特別な注意事項 バージョン 6 より前の IBM DB2 LUW を使用している場合、カラム名とその他の識別子には 18 文字までしか使用できません。したがって、Mobile Link システム・プロシージャの名前をトランケートする必要があります。たとえば、ml_add_connection_script を呼び出すには、ml_add_connection_ という名前を使用します。
Mobile Link 独立性レベルを参照してください。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |