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 サーバ・テクノロジの使用 » Mobile Link 統合データベース

 

IBM DB2 LUW 統合データベース

Mobile Link は、Linux、UNIX、Windows 用の IBM DB2 LUW をサポートしています。AS/400 用の IBM DB2 はサポートしていません。

DB2 LUW を統合データベースとして設定する

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 サーバのシステム・テーブルを参照してください。

♦  DB2 設定スクリプトを実行するには、次の手順に従います。
  1. 設定スクリプトを使用して Mobile Link システム・テーブルをインストールするには、IBM DB2 LUW テーブル領域は最低でも 8 KB ページを使用します。テーブル領域が 8 KB ページを使用しない場合は、次の手順を実行します。

    • 1 つ以上のバッファ・プールに 8 KB ページがあることを確認します。ない場合は、8 KB ページのバッファ・プールを作成してください。

    • 8 KB ページのバッファ・プールを使用する、新しいテーブル領域とテンポラリ・テーブル領域を作成します。

      詳細については、DB2 LUW のマニュアルを参照してください。

  2. 使用する接続情報を含むように、syncdb2.sql をカスタマイズします。

    1. syncdb2.sql を変更と保存を行う新しいロケーションにコピーします。

    2. syncdb2.sql スクリプトには、デフォルトの接続文 connect to DB2Database が含まれています。DB2 データベースに接続するようにこの行を変更します。次の構文を使用します。

      connect to DB2Database user userid using password ~

      ここでは、DB2Databaseuseridpassword に適切な名前を指定します。(syncdb2.sql スクリプトでは、チルダ (~) をコマンド・デリミタとして使用します。)

  3. syncdb2.sql を実行します。

    db2 -c -ec -td~ +s -v -f syncdb2.sql
ODBC ドライバ

DB2 データベースで提供されている ODBC ドライバを使用して、DB2 統合データベース用の ODBC DSN を設定してください。次の項を参照してください。

DB2 LUW の問題
  • テーブル領域の容量   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 独立性レベルを参照してください。