Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
Sawa_Ito
Product and Topic Expert
Product and Topic Expert
0 Kudos


このページは、以下の英語ページの抄訳です。最新の情報については、英語ページを参照してください。

 

 

 

Mobile Link サーバーは、いくつかのタイプの統合データベースに標準 ODBC 3.5 を使用して接続します。サポートされている統合データベースのタイプに対しては、SAP SQL Anywhere ODBC ドライバーを使用する必要があります。それ以外には、データベースベンダーより提供されているドライバーを使用することを推奨します。SAP SQL Anywhere ODBC ドライバーと Mobile Link サーバーは、SAP SQL Anywhere 16 製品に含まれています。SAP が ODBC ドライバーを提供しない場合には、別のベンダーから提供される ODBC ドライバーを使用する必要がありますが、他のベンダーが提供する ODBC ドライバーは、Mobile Link サーバーが必要とするオプショナルな ODBC 機能をサポートしていないかもしれません。

 

 

ドライバーテスト


 

Mobile Link とODBC ドライバーについては、2種類のテストを行います。

 

1つ目は、同期機能を実行する包括的な一連の回帰テストです。ある特定の回帰テストに失敗した場合でも、失敗した機能に依存しない同期であれば、そのドライバーは適切かもしれません。例えば、その回帰テストで LONG BINARY データの同期にのみ失敗した場合、ドライバーは Mobile Link で LONG BINARY データの同期を使用しなければそのドライバーは適切かもしれません。

 

2つ目は、マルチプロセッサーのコンピューター上で動いている Mobile Link サーバーで、多くのクライアントを、同時に同期する高負荷のテストです。他のベンダーから提供されるドライバーの中には、複数の同時接続、または、マルチプルプロセッサーを稼働させている場合に高負荷がかかると失敗するものがあることを発見しています。

 

 

推奨ドライバー


 

テストの結果、version 16.0.0 の Mobile Link サーバーと使用するには、以下のODBC ドライバーを推奨します。

 

古いバージョンのMobile Link で問題がある場合には、新しいバージョンへアップグレードすることを検討してください。古いバージョンは、サポート内容にすでに制限があるかもしれません。詳細については、SAP SQL Anywhere サポートOS および エンジニアリングサポート状況 を参照してください。

 

以下に、統合データベースタイプ別に、推奨 ODBC ドライバーをリストアップしています。場合によっては、代替のドライバーも掲載しています。下の該当する統合データベースのタイプをクリックすると、その DBMS で使用する Mobile Link の推奨ドライバー情報が参照できます。

 

SAP SQL Anywhere 16 および 12

SAP HANA 1.00.72

SAP Adaptive Server Enterprise 15.7 および 15.5

SAP IQ 16.0 および 15.4

Oracle 12.1, 11g および 10g

Microsoft SQL Server 2012 および 2008

IBM DB2 10.1 および 9.7

MySQL 5.5.16 および 5.1.3

 

サポートされる統合データベースの詳細については、 Mobile Link の統合データベースのサポートを参照してください。

 

 

SAP SQL Anywhere 16.0 および 12.0


 

SAP SQL Anywhere 16.0


 
























































ドライバー SQL Anywhere 16.0
バージョン 16.0.0
状況 Mobile Link で使用するものとして推奨
クライアントソフトウェア ナシ
OS Windows
XP, Vista, 7, Server 2003, Server 2008, Server 2008 R2, Server 2012
Linux



RedHat Enterprise Linux 5 および 6

SuSE Enterprise Linux 10 および 11
Ubuntu 10.04 および 12.04

 

kernel/glibc のバージョンが、SAP SQL Anywhere の Linux 対応 で特定されている範囲にあればサポート
Solaris 10 および 11
AIX 6.1 および 7.1
OS X 10.8
良い点 全テストをパス
悪い点 なし
備考 なし
パーミッションの必要性 ロッキング/ ブロッキング検出ロジックを呼び出すためには、MONITOR システムの権限が必要

 

SAP SQL Anywhere 12.0


 
















































ドライバー SQL Anywhere 12.0
バージョン 12.0.x
状況 Mobile Link で使用するものとして推奨
クライアントソフトウェア ナシ
OS Windows XP, Vista, 7, Server 2003, Server 2008, Server 2008 R2, Server 2012
Linux



RedHat Enterprise Linux 5 および 6

SuSE Enterprise Linux 10 および 11
Ubuntu 10.04 および 12.04

 

kernel/glibc のバージョンが、SAP SQL Anywhere の Linux 対応 で特定されている範囲にあればサポート
Solaris 10 および 11
AIX 6.1 および 7.1
良い点 全テストをパス
悪い点 ナシ
備考 ナシ

 

 

SAP HANA 1.00.72


 












































ドライバー HDB ODBC ドライバー
バージョン 1.00.72.xx (Windows x64)  および 1.00.72.xx (Linux x64).
状況 Mobile Link で使用するものとして推奨 ( Windows はversions 16.0.0.1877 以降、Linux は 16.0.0.1824 以降)
クライアントソフトウェア ナシ
OS Windows Vista, 7, Server 2008, Server 2008 R2
Linux



RedHat Enterprise Linux 5 および 6

SuSE Enterprise Linux 10 および 11
良い点 全テストをパス
悪い点 ナシ
備考

  1. ストアドプロシージャー:


 

HANA は、スカラ入力パラメーターのNULL でのストアドプロシージャーの呼び出しをサポートしていません。そのため、upload_insert と upload_update スクリプトは、いかなるnullable のカラムでの同期テーブルにも、ストアドプロシージャーの呼び出しとして、実装しないでください。MobiLink サーバーは、ユーザー認証スクリプトを呼び出す時に、CHAR/BINARY タイプのパラメーターに対して NULL をゼロの長さの文字列 / バイナリ値 に置き換え、それらをHANA にパスします。そのため、ユーザー認証のストアドプロシージャーは、Mobile Link サーバーのこの動きをベースにして書く必要があります。ユーザー定義のパラメーターもまた、最初に参照された時に、ゼロの長さの文字列に設定されます。


 

  1. Mobile Link サーバーシステム オブジェクト:


 

Mobile Link サーバーのシステムテーブルのプリマリーキーカラムは、ストアドプロシージャーの呼び出しを通じて HANA SEQUENCE によって維持されます。ユーザーは、接続とテーブルスクリプトの追加、変更、削除に ml_add_connection_script と ml_add_table_script プロシージャーを使用することができます。そして、ml_add_user と ml_add_database を Mobile Link ユーザーとリモートデータベースの追加に使用することができます。Mobile Link サーバーシステムテーブルへは、直接ローを挿入しないでください。


 

  1. タイムスタンプベースのダウンロード:


 

HANA は、常にクエリにスナップショットアイソレーションを使用するため、次の last_download_timestamp として、データベースの最も古いオープントランザクションをスタートタイムとして使用します。そのため、download_cursor と download_delete_cursor スクリプトは、「LAST MODIFIED」 ロジックを使用して、実際の同期テーブルに定義されるトリガーによってポピュレートできるシャドーテーブルから、タイムベースのダウンロードストリームを生成することができます。


 

代わりに、テーブルが「HISTORY COLUMN」句で作成され、次の last_download_timestamp が generate_next_last_download_timestamp スクリプトによって、生成することができる場合、download_cursor と download_delete_cursor スクリプトは、隠れたカラムである $validto$ と $validfrom$をベースに書くことが可能です。これらの隠されたカラムの詳細については、HANA のマニュアルを参照ください。


パーミッションの必要性 タイムスタンプベースのダウンロードメカニズムとロッキング / ブロッキング検出ロジックを呼び出すためには、CATALOG READ 権限が必要

 

 

SAP Adaptive Server Enterprise15.7 および 15.5


 

現在 ASE ODBC ドライバーを推奨することができません。ASE とのテストを継続的に行うとともに、現在問題の解決のため ASE チームと作業中です。変更については、このページを定期的にご確認ください。(注:オリジナル英語ページをご確認ださい。)

 

 

SAP IQ 16.0 および 15.4


 

SAP IQ 16.0


 












































ドライバー SAP IQ ODBC ドライバー
バージョン



Windows (x64) には16.00.00.428、Linux (x64) には16.00.0000

どちらのドライバーも SAP IQ 16.0 GA リリースよりインストール可能
状況 Mobile Link で使用するものとして推奨
クライアントソフトウェア ナシ
OS Windows XP, Vista, 7, Server 2003, Server 2008, Server 2008 R2
Linux



RedHat Enterprise Linux 5 および 6

SuSE Enterprise Linux 10 および 11
良い点 全テストをパス
悪い点 ナシ
備考

  1. SAP IQ 16.0 サーバー上で稼働するWindows および Linux の統合データベースとしては、64-bit Mobile Link サーバーのみサポート;

  2. どのアップロードテーブルに外部キーとBLOB カラムがない場合には、SAP IQ 16.0 で導入されたローレベルバージョニング(Row Level Versioning, RLV)の機能を使用すると、アップロードのスループットを著しく増加し、劇的にアップロードのパフォーマンスを向上させることができます。なぜならば、RLV ストア内で RLV が可能になったテーブルは、複数の接続によるコンカレントのアクセスが可能になるからです。しかしながら、この RLV の機能は、BLOB と外部キーカラムがないテーブルに制限されます。アップロードストリームに含まれる同期テーブルのいずれかにBLOB と/または 外部キーカラムが含まれる場合には、アップロードフェーズはシリアライズする必要があります。なぜならば、SAP IQ 16.0 サーバーは、ある1つのテーブルをコンカレントに修正するのに1 接続を超える接続を許可しないからです。この要求は、begin_upload 接続スクリプトが、以下のSQL 分を含むまたは使用するように書かれていれば可能です。


 

 

LOCK TABLE table_name IN WRITE MODE WAIT time_string




table_name が IQ ストアに定義されているテーブル名で、time_string がテーブルをロックする最大時間です。テーブルは、以下として定義されているようにシンプルです。


 

create table coordinate_upload ( c1 int )


このテーブルには、どのデータも必要ありません。


IQ テーブルの修正にその他の Mobile Link サーバーのトランザクションが必要な場合には、これらのトランザクションは全てシリアライズする必要があります。上に記載された同じロジックを使用することができます。


このテクニックは、Mobile Link サーバーに自動的にそれぞれのトランザクションをリトライさせるよりも効率的だと考えられており、ユーザーはより良いパフォーマンスを得ることができます。


パーミッションの必要性

  1. Mobile Link によるダウンロードのためのスナップショットアイソレーションを使用するには、SP_IQTRANSACTION での EXECUTE パーミッションが必要

  2. ロッキング / ブロッキング 検出ロジックを呼び出すためには、MONITOR システム権限が必要です。



 

SAP IQ 15.4


 












































ドライバー SAP IQ ODBC ドライバー
バージョン



Windows (x64) には12.00.01.3019、Linux (x64) には12.00.01.3761

このドライバーは、SAP IQ 15.4 ESD #2 より入手可能
状況 Mobile Link で使用するものとして推奨
クライアントソフトウェア ナシ
OS Windows
XP, Vista, 7, Server 2003, Server 2008, Server 2008 R2
Linux
RedHat Enterprise Linux 5 および 6

SuSE Enterprise Linux 10 および 11
良い点 全テストをパス
悪い点 ナシ
備考

  1. SAP IQ 15.4 サーバーのバイナリはSAP IQ 15.4 ESD #1 以降のものが必要

  2. SAP IQ 15.4 サーバー上で稼働する Windows と Linux の統合データベースは、64-bit の Mobile Link サーバーでのみサポート

  3. アップロード、IQ ストアで定義される同期テーブルを修正するデータが含まれ、そして Mobile Link サーバーが1より多くのコンカレントデータベースワーカースレッドで稼働する場合、または、Mobile Link サーバーが現状サーバーファームで稼働している場合には、アップロードは全てシリアライズする必要があります。なぜならば、SAP IQ 15 サーバーは、IQ ストア上のある特定のテーブルを修正するのに1 接続を超える接続を許可しないからです。この要求は、begin_upload 接続スクリプトが、以下の SQL 分を含むまたは使用するように書かれていれば可能です。


 
LOCK TABLE table_name IN WRITE MODE WAIT time_string

 

table_name が IQ ストアに定義されているテーブル名で、time_string がテーブルをロックする最大時間です。テーブルは、以下として定義されているようにシンプルです。


 
create table coordinate_upload ( c1 int )

このテーブルには、どのデータも必要ありません。

IQ テーブルの修正にその他の Mobile Link サーバーのトランザクションが必要な場合には、これらのトランザクションは全てシリアライズする必要があります。上に記載された同じロジックを使用することができます。 

このテクニックは、Mobile Link サーバーに自動的にそれぞれのトランザクションをリトライさせるよりも効率的だと考えられており、ユーザーはより良いパフォーマンスを得ることができます。

パーミッションの必要性 Mobile Link によるダウンロードのためのスナップショットアイソレーションを使用するには、SP_IQTRANSACTION での EXECUTE パーミッションが必要

 

 

Oracle 12.1, 11g, および 10g


 

Oracle 12.1


 




















































ドライバー SQL Anywhere 16 Oracle ODBC ドライバー
バージョン 16.00.00
状況 Mobile Link で使用するものとして推奨
クライアントソフトウェア Oracle 12.1 クライアント
OS Windows
7, Server 2008, Server 2008 R2, Server 2012
Linux
RedHat Enterprise Linux 5

SuSE Enterprise Linux 10 および 11
Solaris 10
AIX 6.1
良い点 全テストをパス
悪い点 ナシ
備考

  1. このドライバーを使用する前に必ず Oracle 12.1 クライアントをインストールしてください。このドライバーをロードするには、必ず Oracle クライアントライブラリを LD_LIBRARY_PATH (Linux, Solaris) または LIBPATH (AIX) に設定してください。

  2. Windows DSN 設定のTNS サーバー名と、Linux と Unix .odbc.ini の ServerName は、 $ORACLE_HOME/network/admin/tnsnames.ora に定義されている Oracle TNS サービス名です。

  3. Windows の 「Procedure return results or uses VARRAY parameters」 のデフォルト設定または、Linux と Unix の ProcResults は 'No' です。

  4. 結果セットは、「Procedure return results or uses VARRAY parameters」パラメーターのための設定に関わらず、 ストアドプロシージャーによって、Oracle の暗黙の結果セットを通して返すことができます。

  5. REF CURSOR を返すストアドプロシージャーを使用している場合には、REF CURSOR パラメーター (OUT または IN OUT のどちらか) は、ストアドプロシージャーのパラメーターリストの最後のパラメーターとして必ず定義されている必要があります。


パーミッションの必要性

  1. EXECUTE on SYS.DBMS_UTILITY のパーミッション --- Mobile Link がデータベースが Oracle RAC 上で稼働しているかどうか決定するために 必要

  2. SELECT from SYS.GV_$TRANSACTION のパーミッション --- Mobile Link が TIMESTAMP ベースのダウンロードを行うために必要

  3. SELECT from SYS.V_$SESSION のパーミッション --- Mobile Link サーバーが現在のセッションの SID と SERIAL# 値を決定するために必要

  4. SELECT from DBA_OBJECTS、SYS.GV_$LOCK、SYS.GV_$SESSION のパーミッション--- Mobile Link サーバーのロッキング/ブロッキング検出ロジックに必要



 

Oracle 11g


 




















































ドライバー SQL Anywhere 16 Oracle ODBC ドライバー
バージョン 16.00.00
状況 Mobile Link で使用するものとして推奨
クライアントソフトウェア Oracle 11g クライアント
OS Windows
XP, Vista, 7, Server 2008, Server 2008 R2, Server 2012
Linux
RedHat Enterprise Linux 5 および 6

SuSE Enterprise Linux 10 および 11
Solaris 10 および 11
AIX 6.1 および 7.1
良い点 全テストをパス
悪い点 ナシ
備考

  1. このドライバーを使用する前に必ずOracle 10g  クライアントをインストールしてください。このドライバーをロードするには、必ず Oracle クライアントライブラリーを LD_LIBRARY_PATH (Linux, Solaris) または LIBPATH (AIX) に設定してください。

  2. Windows DSN 設定のTNS サーバー名と、Linux と Unix .odbc.ini  の ServerName は、$ORACLE_HOME/network/admin/tnsnames.ora に定義されている Oracle TNS サービス名です。

  3. Windows の 「Procedure return results or uses VARRAY parameters」 のデフォルト設定または、Linux と Unix の ProcResults は 'No' です。

  4. REF CURSOR を返すストアドプロシージャーを使用している場合には、REF CURSOR パラメーター (OUT または IN OUT のどちらか) は、ストアドプロシージャーのパラメーターリストの最後のパラメーターとして必ず定義されている必要があります。


パーミッションの必要性

  1. EXECUTE on SYS.DBMS_UTILITY のパーミッション --- Mobile Link がデータベースがOracle RAC 上で稼働しているのかどうか決定するのに必要

  2. SELECT from SYS.GV_$TRANSACTION のパーミッション --- Mobile Link がTIMESTAMP ベースのダウンロードを行うのに必要

  3. SELECT from SYS.V_$SESSION のパーミッション --- Mobile Link サーバーが現在のセッションの SID と SERIAL# 値を決定するために必要

  4. SELECT from DBA_OBJECTS、SYS.GV_$LOCK、SYS.GV_$SESSION のパーミッション --- Mobile Link サーバーのロッキング/ブロッキング検出ロジックに必要



 

Oracle 10g


 




















































ドライバー SQL Anywhere 16 Oracle ODBC ドライバー
バージョン 16.00.00
状況 Mobile Link で使用するものとして推奨
クライアントソフトウェア Oracle 10g クライアント
OS Windows
XP, Vista, 7, Server 2003, Server 2008, Server 2008 R2
Linux
RedHat Enterprise Linux 5

SuSE Enterprise Linux 10 および 11
Solaris 10
AIX 6.1
良い点 全テストをパス
悪い点 ナシ
備考

  1. このドライバーを使用する前に、Oracle 10g クライアントを必ずインストールしてください。 このドライバーをロードするには、必ず Oracle クライアントライブラリーを LD_LIBRARY_PATH (Linux, Solaris) または  LIBPATH (AIX) に設定してください。

  2. Windows DSN 設定のTNS サーバー名と、Linux と Unix .odbc.ini  の ServerName は、$ORACLE_HOME/network/admin/tnsnames.ora に定義されている Oracle TNS サービス名です。

  3. Windows の 「Procedure return results or uses VARRAY parameters」  のデフォルト設定または、Linux と Unix の ProcResults は 'No' です。

  4. REF CURSOR を返すストアドプロシージャーを使用している場合には、REF CURSOR パラメーター (OUT または IN OUT のどちらか) は、ストアドプロシージャーのパラメーターリストの最後のパラメーターとして必ず定義されている必要があります。


パーミッションの必要性

  1. EXECUTE on SYS.DBMS_UTILITY のパーミッション --- Mobile Link がデータベースがOracle RAC 上で稼働しているのかどうか決定するのに必要

  2. SELECT from SYS.GV_$TRANSACTION のパーミッション --- Mobile Link がTIMESTAMP ベースのダウンロードを行うのに必要

  3. SELECT from SYS.V_$SESSION のパーミッション --- Mobile Link サーバーが現在のセッションの SID と SERIAL# 値を決定するために必要

  4. DBA_OBJECTS, SYS.GV_$LOCK と SYS.GV_$SESSION  のパーミッション --- Mobile Link サーバーのロッキング/ブロッキング検出ロジックに必要



 

 

Microsoft SQL Server 2012 および 2008


 

重要: 

SQL Server のどのバージョンでも、"SET NOCOUNT ON" をODBC 経由で実行される全てのストアドプロシージャーまたはSQL バッチの最初の文として特定する必要があります。このオプションなしでは、「number of rows affected」のメッセージが、実行される文のそれぞれでMobile Link に送られます。もし比較的大きな数の挿入、アップデート、セレクト文を行っている場合、これらのメッセージは、ネットワークのバッファーを埋め、消失しているという兆候もなく(! )結果としてデータが消失する可能性があります。

 

Microsoft SQL Server 2012


 

クライアントソフトウェア







































ドライバー Microsoft SQL ネイティブクライアント ODBC ドライバー
バージョン 2011.110.xxxx.xx
状況 Mobile Link で使用するものとして推奨
ナシ
OS Windows
XP, Vista, 7, Server 2003, Server 2008, Server 2008 R2, Server 2012
良い点 全テストをパス
悪い点 ナシ
備考 ODBC 経由で実行される全ストアドプロシージャーとバッチに "SET NOCOUNT ON" を入れるのを忘れないでください。
パーミッションの必要性

  1. VIEW SERVER STATE のパーミッション

  2. SELECT from SYS.DATABASES のパーミッション

  3. SELECT from SYS.DM_TRAN_LOCKS, SYS.PARTITIONS, SYS.SYSPROCESSES のパーミッション



 

Microsoft SQL Server 2008


 








































ドライバー Microsoft SQL ネイティブクライアント ODBC ドライバー
バージョン 2009.100.xxxx.xx
状況 Mobile Link で使用するものとして推奨
クライアントソフトウェア ナシ
OS Windows
XP, Vista, 7, Server 2003, Server 2008, Server 2008 R2, Server 2012
良い点 全テストをパス
悪い点 ナシ
備考 ODBC 経由で実行される全ストアドプロシージャーとバッチに "SET NOCOUNT ON" を入れるのを忘れないでください。
パーミッションの必要性

  1. VIEW SERVER STATE のパーミッション

  2. SELECT from SYS.DATABASES のパーミッション

  3. SELECT from SYS.DM_TRAN_LOCKS, SYS.PARTITIONS, SYS.SYSPROCESSES のパーミッション



 

 

IBM DB2 10.1 および 9.7


 

重要:

  • DB2 AS/400 はサポートしていません。

  • Mobile Link で使用されるどの DB2 Java ストアドプロシージャーでも、常ににすぐに OFF にオートコミットする必要があります。例えば、 getConnection.setAutoCommit(false) を使用するなどです。


 

IBM DB2 10.1


 












































ドライバー IBM DB2 ODBC ドライバー
バージョン 10.01.00.xxx (Windows と Linux) - これらのドライバーは、DB2 10.1 FixPack0 から入手することができます。
状況 Mobile Link で使用するものとして推奨
クライアントソフトウェア DB2 UDB クライアント 10.1
OS Windows
XP, Vista, 7, Server 2003, Server 2008 R2, Server 2012
Linux
RedHat Enterprise Linux 5 および 6

SuSE Enterprise Linux 10 および 11

Ubuntu 10.0.4 および 12.0.4
良い点 全テストをパス
悪い点 ナシ
備考

  1. ODBC ドライバーは、10.01.00.xxxx でなければいけません。古いバージョンの IBM DB2 ODBC ドライバーは、データの一貫性を保てない可能性があるため、Mobile Link と DB2 10.1 データベースとの同期には、使用しないでください。

  2. タイムスタンプベースのダウンロードを使用している場合、そして download_cursor と/または download_delete_cursor スクリプトがストアドプロシージャーの呼び出しに実装されている場合、DB2 統合データベースサーバーを設定パラメータ、ConcurrentAccessResolution を 2(結果を待つ)に設定して稼働させるか、あるいは、download_cursor と/または download_delete_cursor スクリプトのストアドプロシージャーを作成する前に、以下のSQL コマンドを実行する必要があります。


 

 
CALL SET_ROUTINE_OPTS(GET_ROUTINE_OPTS() ||
'CONCURRENTACCESSRESOLUTION WAIT FOR OUTCOME'


その後、ダウンロードカーソル結果を修正したコミットされていないオペレーションがある場合には、DB2 データベースサーバーは、ダウンロードカーソルをブロックします。これをしないと、新しいデータは、リモートデータベースにダウンロードされず、一貫性が保てない可能性があります。


  1. Oracle 互換性機能が、有効になっている場合、DB2 は、いくつかの Oracle データタイプのいくつか、例えばDATE, VARCHAR2, NUMBER をサポートします。これらのデータタイプは、Oracle データベース内にあるのと同じように動きます。DB2 と SQL Anywhere / Ultra Light の間のこれらの互換性のあるデータタイプのマッピングの詳細は、マニュアルの Mobile Link サーバーの管理 の章を参照してください。

  2. Linux では、DB2の環境変数をエクスポートするのに 'source db2profile' を実行する必要があります。 db2profile が、DB2 インストレーション下のホームディレクトリです。さらに、64-bit IBM DB2 ODBC ドライバー libdb2.so を使用する必要があります。この 64-bit IBM DB2 ODBC ドライバーは、SQLLEN (ODBC データタイプ) を 32-bit integer として定義します。しかし、64-bit Mobile Link サーバーと、その他の Linux 上の ODBC ドライバーは、 SQLLEN を 64-bit integer として定義します。この不一致は、DB2 10.1の DSN が下のエントリーを含む場合、 Linux の SQL Anywhere ODBC マネージャーが処理します。



length32=1


これは、DB2 10.1 のための Linux 64-bit Mobile Link サーバーで必要です。


  1. 高負荷のテストには、LOCKLIST と APPLHEAPSZ の 2 つのデータベース設定パラメーターの変更が必要です。LOCKLIST を 500 に設定し、 APPLHEAPSZ を 1024 に設定してください。


パーミッションの必要性 SELECT from SYSIBMADM.LOCKWAITS, SNAPSHOT_APPL_INFO のパーミッション --- Mobile Link サーバーのロッキング/ブロッキング検出ロジックに必要

 

IBM DB2 9.7


 












































ドライバー IBM DB2 ODBC ドライバー
バージョン Windows (x32 と x64) 上の 9.07.300.291 と、Linux (x64) 上の 9.07.0003  -  これらのドライバーは、DB2 9.7 FixPack3 から入手することが可能です。
状況 Mobile Link で使用するものとして推奨
クライアントソフトウェア DB2 UDB クライアント 9.7
OS Windows
XP, Vista, 7, Server 2003, Server 2008 R2
Linux
RedHat Enterprise Linux 5 および 6

SuSE Enterprise Linux 10 および 11

Ubuntu 10.0.4 および 12.0.4
良い点 全テストをパス
悪い点 ナシ
備考

  1. ODBC ドライバーは、9.0.7.xxxxでなければいけません。古いバージョンの IBM DB2 ODBC ドライバーは、データの一貫性を保てない可能性があるため、Mobile Link と DB2 9.7 データベースとの同期には、使用しないでください。

  2. タイムスタンプベースのダウンロードを使用している場合、そして download_cursor と/または download_delete_cursor スクリプトがストアドプロシージャーの呼び出しに実装されている場合、DB2 統合データベースサーバーを設定パラメータ、ConcurrentAccessResolution を 2(結果を待つ)に設定して稼働させるか、あるいは、download_cursor と/または download_delete_cursor スクリプトのストアドプロシージャーを作成する前に、以下のSQL コマンドを実行する必要があります。



CALL SET_ROUTINE_OPTS(GET_ROUTINE_OPTS() ||
'CONCURRENTACCESSRESOLUTION WAIT FOR OUTCOME'


その後、ダウンロードカーソル結果を修正したコミットされていないオペレーションがある場合には、DB2 データベースサーバーは、ダウンロードカーソルをブロックします。これをしないと、新しいデータは、リモートデータベースにダウンロードされず、一貫性が保てない可能性があります。


  1. Oracle 互換性機能が、有効になっている場合、DB2 は、いくつかの Oracle データタイプのいくつか、例えばDATE, VARCHAR2, NUMBER をサポートします。これらのデータタイプは、Oracle データベース内にあるのと同じように動きます。DB2 と SQL Anywhere / Ultra Light の間のこれらの互換性のあるデータタイプのマッピングの詳細は、マニュアルの Mobile Link サーバーの管理 の章を参照してください。

  2. Linux では、DB2の環境変数をエクスポートするのに 'source db2profile' を実行する必要があります。 db2profile が、DB2 インストレーション下のホームディレクトリです。

  3. 高負荷のテストには、LOCKLIST と APPLHEAPSZ の 2 つのデータベース設定パラメーターの変更が必要です。LOCKLIST を 500 に設定し、 APPLHEAPSZ を 1024 に設定してください。


パーミッションの必要性 SELECT from SYSIBMADM.LOCKWAITS, SNAPSHOT_APPL_INFO のパーミッション --- Mobile Link サーバーのロッキング/ブロッキング検出ロジックに必要

 

 

MySQL 5.5.16 および 5.1.3


 

MySQL 5.5.16


 












































ドライバー MySQL ODBC ドライバー
バージョン 5.01.06.00 (Win32 と 64)  および 05.01.0006 (Linux x64).
状況 Mobile Link で使用するものとして推奨
クライアントソフトウェア ナシ
OS Windows
XP, Vista, 7, Server 2003, Server 2008, Server 2008 R2, Server 2012
Linux
RedHat Enterprise Linux 5

SuSE Enterprise Linux 10 および 11

Ubuntu 10.0.4
良い点 全テストをパス
悪い点 ナシ
備考

  1. ストレージエンジン:


 
MySQL は、MySQL サーバー内にストレージサーバーのセットを提供しており、ACID 準拠のストレージエンジンもあれば、そうでないものもあります。 Mobile Link サーバーには、InnoDB や Falcon などの ACID 準拠のストレージエンジンが必要です。デフォルトのストレージエンジンは 必ず ACID 準拠であるようにしてください。もし、デフォルトのストレージエンジンが ACID 準拠でない場合、Mobile Link サーバーの全システムテーブルを、必ず ACID 準拠のストレージエンジンを使用して作成してください。



  1. ストレージプロシージャー:



MySQL ODBC ドライバーは、ストアドプロシージャーの呼び出しに inout または out パラメーターをサポートしていません。そのため、inout パラメーターを必要とする全てのプロシージャーは、必ず out 値を返すことのできる関数として書かれている必要があります。


authenticate_user, handle_error, modify_user のような inout パラメーターを必要とする Mobile Link サーバーイベントは、必ず関数として実装し、下のような select 文を使用して実行する必要があります。


select function_name( ?, ?, ?, ... )


and not


{ call function_name( ?, ?, ?, ... ) }


その後、Mobile Link サーバーは戻り値を適切に返します。


Mobile Link サーバースクリプトがネームドパラメーターを使用する場合、そのスクリプト実行後でも、そのパラメーターは変更されません。ユーザー定義のパラメーター、例えば {ml u.my_var} は、それゆえサポートされていません。


 

  1. カーソルスクリプト:


 
upload_fetch, download_cursor, または download_delete_cursor イベントは、select 文として書かれないかもしれません。そして、Mobile Link サーバーは、read-committed アイソレーションレベルを使用して、select 文を実行します。しかしながら、read-committed アイソレーションでは、MySQL ODBC ドライバーは、Mobile Link サーバーがコミットされていないオペレーション(挿入、更新、削除) を読むことを許さないかもしれません。 そして、この動きから、同期データは、統合データベースとリモートデータベースで一貫しないかもしれません。この問題は、MySQL にレポートしています。


この問題のワークアラウンドとして、upload_fetch, download_cursor, download_delete_cursor イベントのための全 select 文に、「lock in share mode」句が含まれている必要があります。例えば、これが select 文の場合、 download_cursor スクリプトは、下のように書く必要があります。


select col1, col2, ..., coln
from a_sync_table
where last_modified > ? ... lock in share mode


「lock in share mode」句で、その select 文は、同じテーブル上の他の接続によるコミットされていないオペレーションからブロックされます。そして、更新のアップロードやダウンロードデータは、統合データベースとリモートデータベース間で一貫性が保たれます。



  1. Linux プラットフォーム



Linux の ODBC 設定ファイルを特定する方法は、2つあります:




    1. ファイル ODBC.INI (ファイル名は、大文字である必要があります) または、シンボリックなリンク、ODBC.INI を現在のユーザーのホームディレクトリに置きます。

    2. 外部変数ODBCINI を作成し、本当のODBC 設定ファイルにこの環境変数をポインティングすることで、これをセットアップします。




UNIX の MySQL のサンプルDSNは、下のようになります。


[a_mysql_dsn]
Driver=full_path/libmyodbc5.so
server=host_name
uid=user_name
pwd=user_password
database=database_name

 

MySQL 5.1.3


 












































ドライバー MySQL ODBC ドライバー
バージョン 5.01.06.00 (Win32 and 64) および 05.01.0006 (Linux x64).
状況 Mobile Link で使用するものとして推奨
クライアントソフトウェア ナシ
OS Windows
XP, Vista, 7, Server 2003, Server 2008, and Server 2008 R2
Linux
RedHat Enterprise Linux 5

SuSE Enterprise Linux 10 および 11

Ubuntu 10.0.4
良い点 全テストをパス
悪い点 ナシ
備考

  1. ストレージエンジン:


 
MySQL は、MySQL サーバー内にストレージサーバーのセットを提供しており、ACID 準拠のストレージエンジンもあれば、そうでないものもあります。 Mobile Link サーバーには、InnoDB や Falcon などの ACID 準拠のストレージエンジンが必要です。デフォルトのストレージエンジンは 必ず ACID 準拠であるようにしてください。もし、デフォルトのストレージエンジンが ACID 準拠でない場合、Mobile Link サーバーの全システムテーブルを、必ず ACID 準拠のストレージエンジンを使用して作成してください。

 

  1. ストレージプロシージャー:


 
MySQL ODBC ドライバーは、ストアドプロシージャーの呼び出しに inout または out パラメーターをサポートしていません。そのため、inout パラメーターを必要とする全てのプロシージャーは、必ず out 値を返すことのできる関数として書かれている必要があります。


authenticate_user, handle_error, modify_user のような inout パラメーターを必要とする Mobile Link サーバーイベントは、必ず関数として実装し、下のような select 文を使用して実行する必要があります。

 

select function_name( ?, ?, ?, ... )


and not


{ call function_name( ?, ?, ?, ... ) }


その後、Mobile Link サーバーは戻り値を適切に返します。


Mobile Link サーバースクリプトがネームドパラメーターを使用する場合、そのスクリプト実行後でも、そのパラメーターは変更されません。ユーザー定義のパラメーター、例えば {ml u.my_var} は、それゆえサポートされていません。


 

  1. カーソルスクリプト


 
upload_fetch, download_cursor, または download_delete_cursor イベントは、select 文として書かれないかもしれません。そして、Mobile Link サーバーは、read-committed アイソレーションレベルを使用して、select 文を実行します。しかしながら、read-committed アイソレーションでは、MySQL ODBC ドライバーは、Mobile Link サーバーがコミットされていないオペレーション(挿入、更新、削除) を読むことを許さないかもしれません。 そして、この動きから、同期データは、統合データベースとリモートデータベースで一貫しないかもしれません。この問題は、MySQL にレポートしています。

 
この問題のワークアラウンドとして、upload_fetch, download_cursor, download_delete_cursor イベントのための全 select 文に、「lock in share mode」句が含まれている必要があります。例えば、これが select 文の場合、 download_cursor スクリプトは、下のように書く必要があります。


select col1, col2, ..., coln
from a_sync_table
where last_modified > ? ... lock in share mode

 
「lock in share mode」句で、その select 文は、同じテーブル上の他の接続によるコミットされていないオペレーションからブロックされます。そして、更新のアップロードやダウンロードデータは、統合データベースとリモートデータベース間で一貫性が保たれます。

 

  1. Linux プラットフォーム



Linux の ODBC 設定ファイルを特定する方法は、2つあります:




    1. ファイル ODBC.INI (ファイル名は、大文字である必要があります) または、シンボリックなリンク、ODBC.INI を現在のユーザーのホームディレクトリに置きます。

    2. 外部変数ODBCINI を作成し、本当のODBC 設定ファイルにこの環境変数をポインティングすることで、これをセットアップします。




UNIX の MySQL のサンプルDSNは、下のようになります。


[a_mysql_dsn]
Driver=full_path/libmyodbc5.so
server=host_name
uid=user_name
pwd=user_password
database=database_name

 

 

 

 

===

 

SAP SQL Anywhere に関する詳細情報は、SAP SQL Anywhere Communityページ<英語> を参照してください。

 

上記のコミュニティーに掲載されている技術情報は、順次SQL Anywhere 日本語コミュニティ

に掲載しています。

 

SQL Anywhere に関してはまずはこちらをご参照ください。無期限でご利用いただける無償の Developers Edition もこちらからダウンロードが可能です。

 

SQL Anywhere に関して技術的な質問のある方はコミュニティに登録し、
「Ask a Question」機能をご利用ください。

Language には「Japanese」、
Primary Tag には「SAP SQL Anywhere」を選択
User Tagに「sql anywhere」「sql anywhere Japanese question」

を入力してください。

不具合につきましては、サポート契約者様専用の問い合わせ方法にてお問い合わせください。

 

======================
ご購入に関するお問い合わせ

こちらよりお問い合わせください。