設定スクリプトを実行するデータベースユーザーは、同期中に Mobile Link システムテーブルを更新するユーザーと同じである必要があります。このユーザーを使用して Mobile Link サーバーを起動したり、Mobile Link アプリケーションを設定したりします。
必要なパーミッションを参照してください。
Mobile Link サーバーを統合データベースに接続するために使用される RDBMS ユーザーは、Mobile Link システムテーブル、プロシージャーなどを修飾子なしで使用できる必要があります (SELECT * from ml_user
など)。 Mobile Link サーバーのシステムテーブルを参照してください。
Mobile Link サーバーのログイン ID には、Sybase IQ の SP_IQTRANSACTION システムプロシージャーに対する EXECUTE パーミッションが必要です。
Sybase IQ を Mobile Link 統合データベースとして動作するよう設定してするには、設定プロシージャーを実行して、Mobile Link 同期に必要な Mobile Link システムテーブル、ストアドプロシージャー、トリガー、ビューを追加する必要があります。次のような方法で実行できます。
\MobiLink\setup にある synciq.sql 設定スクリプトを実行します。
Sybase Central で Mobile Link のシステム設定を確認し、更新します。Mobile Link システム設定を参照してください。
IQ ストアに定義されている同期テーブルを変更するデータがアップロードに含まれていて、さらに Mobile Link サーバーが複数のデータベースワーカースレッドが同時に実行されている場合には、すべてのアップロードが直列化される必要があります。それは、Sybase
IQ 15 サーバーでは、指定の時間に IQ ストアの指定したテーブルを修正するときに 1 つの接続しか許可されないためです。
LOCK TABLE table_name IN WRITE MODE WAIT time_string
ここで、table_name は IQ ストアに定義されたテーブルの名前を表しており、time_string はテーブルをロックする最長期間を表します。次のような簡単なテーブルを定義できます。
create table coordinate_upload ( c1 int )
テーブルにはデータがなくてもかまいません。
(Mobile Link サーバー、またはその他の IQ データベースへの接続で発生する) IQ テーブルを変更するすべてのトランザクションはシリアル化する必要があります。Mobile Link サーバーのトランザクションについて、前述したロジックを同じように使用できます。この方法は、それぞれのトランザクションについて
Mobile Link サーバーが自動的に再試行する場合より効率がよいため、パフォーマンスの向上につながります
Sybase IQ 統合データベースの同期モデルを作成する場合、IQ テーブルのテーブルのマッピングのデフォルトはダウンロード専用となります。マッピングを双方向またはアップロード専用に変更した場合、それらの IQ テーブルに対する変更がシリアル化されるようにする必要があります。たとえば、前述の説明のとおり
begin_upload イベントを追加します。