設定スクリプトを実行する前に、次の要件を確認してください。
設定スクリプトを実行するデータベースユーザは、同期中に Mobile Link システムテーブルにアクセスするユーザと同じである必要があります。このユーザを使用して Mobile Link サーバを起動したり、Mobile Link アプリケーションを設定したりします。 必要な権限を参照してください。
Mobile Link サーバを統合データベースに接続するために使用される RDBMS ユーザは、Mobile Link システムテーブル、プロシージャなどを修飾子なしで使用できる必要があります (SELECT * from ml_user など)。 Mobile Link サーバのシステムテーブルを参照してください。
RDBMS ユーザはまた、CATALOG READ 権限を持つ必要があります。
SAP HANA を Mobile Link 統合データベースとして動作するよう設定してするには、設定プロシージャを実行して、Mobile Link 同期に必要な Mobile Link システムテーブル、ストアドプロシージャ、ビューを追加する必要があります。次の方法を使用して、SAP HANA を設定します。
SAP HANA Studio で synchana.sql 設定スクリプトを実行します。このスクリプトファイルは、%SQLANY16%\MobiLink\Setup にあります。
Mobile Link サーバでは、SAP HANA データベースの SAP HDBODBC からの ODBC ドライバを認識できるにすぎません。参照:
SAP HANA では、スカラー入力パラメータに NULL を指定してストアドプロシージャを呼び出すことをサポートしていません。そのため、NULL 入力可のカラムを保持する同期テーブル用のストアドプロシージャ呼び出しとして、upload_insert スクリプトと upload_update スクリプトを実装しないでください。Mobile Link サーバは、NULL を、パラメータの長さ 0 の文字列 (CHAR 型) に置換するか、パラメータのバイナリ値 (BINARY 型) に置換し、その後、SAP HANA データベースによってユーザ認証スクリプトが呼び出されるときに、置換結果を SAP HANA データベースに渡します。ユーザ認証ストアドプロシージャを作成する場合は、この Mobile Link サーバの動作を考慮に入れてください。
ユーザ定義のパラメータはまた、最初に参照されたときに、長さ 0 の文字列に設定されます。
Mobile Link システムデータベース (MLSD) Mobile Link サーバでは、SAP HANA 用に MLSD をサポートしていません。
Mobile Link サーバシステムオブジェクト Mobile Link サーバシステムテーブル内のプライマリキーカラムは、ストアドプロシージャコールを介した SAP HANA SEQUENCEs によって維持されます。
接続スクリプトとテーブルスクリプトを追加、変更、または削除するには、ml_add_connection_script および ml_add_table_script システムプロシージャをそれぞれ使用し、Mobile Link ユーザとリモートデータベースを追加するには、ml_add_user および ml_add_database システムプロシージャをそれぞれ使用します。Mobile Link サーバシステムテーブルには、いかなるローも直接挿入しないでください。
参照:
タイムスタンプベースのダウンロード SAP HANA によってスナップショットアイソレーションがサポートされているので、Mobile Link サーバは現在のユーザの下で最初に開いたトランザクションの開始時刻を次の last_download_timestamp として使用します。この結果、download_cursor スクリプトと download_delete_cursor スクリプトでは、最後に変更したカラム情報を使用してタイムスタンプベースのダウンロードストリームを生成できます。次はその例です。
SAP HANA で同期テーブルを作成します。
create COLUMN table test (pk int primary key, c1 int, last_modified timestamp generated always as ( now() ) ) |
generated always as ( now() ) 句により、SAP HANA サーバは、このローが挿入または更新されるたびに、last_modified カラムを現在のタイムスタンプに更新します。
download_cursor スクリプトは、次のように作成できます。
select pk,c1 from test where last_modified > {ml s.last_table_download} |
SAP HANA ではトリガがサポートされていないので、論理削除を使用して SAP HANA からリモートデータベースへのダウンロード削除を生成することが必要な場合があります。
あるいは、HISTORY COLUMN 句を使用してテーブルを作成すると、非表示のカラム $validto$ と $validfrom$ に基づいて download_cursor スクリプトと download_delete_cursor スクリプトを作成できます。次の last_download_timestamp は generate_next_last_download_timestamp スクリプトによって生成されます。このような非表示のカラムについては、SAP HANA のマニュアルを参照してください。
Mobile Link サーバが SAP HANA データベースにログインする場合に使用するユーザ以外のデータベースユーザにより所有される任意のテーブルに、download_cursor スクリプトおよび download_delete_cursor スクリプト、またはそのいずれかがアクセスする場合は、次の文を使用して Mobile Link サーバログインユーザに CATALOG READ 権限を付与する必要があります。
GRANT CATALOG READ TO MobiLink_server_login_user_name |
こうすることで、Mobile Link サーバログインユーザは、データベースの最初に開いたトランザクションを取得しようとするときに、現在のユーザ用の開いているトランザクションだけでなく、データベース内で開いているすべてのトランザクションを確認できるようになります。
データ型マッピング カラムのデータ型は、統合データベースとリモートデータベース間で完全に一致する必要があります。 SAP HANA データベースサーバのデータ型マッピングを参照してください。
Mobile Link 独立性レベルを参照してください。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |