SQL Anywhere Studio 8.0.3 Mobile Link の推奨ODBCドライバ

Mobile Link サーバは、ODBC 3.5 規格を使用して複数のタイプの統合データベースに接続します。サポートされている一部の統合データベース・タイプでは、専用の iAnywhere Solutions ODBC ドライバを使用する必要があります。その他の統合データベース・タイプについては、データベース・ ベンダが供給するドライバの使用をおすすめします。iAnywhere Solutions ODBC ドライバおよび Mobile Link サーバは、 SQL Anywhere 製品に付属しています。iAnywhere Solutions に ODBC ドライバが用意されていない場合は、別のベンダが提供する ODBC ドライバを使用してください。他のベンダの ODBC ドライバでは、Mobile Link サーバに必要なオプションの ODBC 機能が一部 サポートされない場合があります。

一部の ODBC ドライバは、ドライバの問い合わせでは検出できない動作を備えています。これらのドライバについては、弊社がドラ イバのテストを行って、実行可能な対処法を判断します。また、ドライバに必要な一連の対処法を特定した後には、そのバージョン のドライバを認識できるように Mobile Link サーバを更新します。更新の結果、Mobile Link サーバは、ドライバに必要な一連の対 処法を自動的に適用するようになります。

一部の ODBC ドライバについては、すべての問題に対して実行可能な対処法を策定できません。これらのケースでは、欠けているド ライバ機能が同期化に必要なければ、引き続きドライバを使用できます。

テストを容易化し、認識されないドライバへの対処法を Mobile Link が適用できるように、この対処法は、マニュアルに記載され ていない -hw コマンドライン・スイッチで設定できるようになっています。対処法をむやみに使用するとデータの破損や ソフトウェアのエラーにつながる可能性があるため、このスイッチと関連の対処法はマニュアルに記載されていません。

対処法の特定後は、関連する隠れた対処法スイッチを新バージョンの Mobile Link に自動的に適用させることができます。したが って、隠れた対処法を直接使用した場合、新しいバージョンの Mobile Link サーバではそれらの対処法が不要になる可能性があり ます。新しい Mobile Link で隠しスイッチを引き続き使用すると、問題が発生したり、パフォーマンスが低下する可能性がありま す。

ドライバのテスト

弊社では、Mobile Link での ODBC ドライバのテストとして 2 つのタイプを使用します。

最初のタイプのテストは、同期化機能を働かせる包括的な回帰テストです。いくつかの特定の回帰テストに失敗しても、失敗した 機能に同期化が依存していないかぎり、そのドライバは引き続き適切である可能性があります。たとえば、失敗した唯一の回帰テ ストが LONG BINARY データの同期化を対象としている場合は、Mobile Link を使用して LONG BINARY データを同期化していなけ れば、そのドライバは引き続き適切である可能性があります。

2 番目のタイプのテストは高負荷テストであり、マルチプロセッサ・コンピュータで実行されている Mobile Link サーバと同時 に同期している多数のクライアントを含みます。他のベンダのドライバの中には、複数の同時接続で失敗したり、複数のプロセッ サの動作中に高負荷の状況下で失敗するものがあることがわかっています。

推奨ドライバ

テストの結果として、バージョン 8.0.3 の Mobile Link サーバでは次の ODBC ドライバの使用をおすすめします。

旧バージョンの Mobile Link で問題が発生している場合は、新しいバージョンへのアップグレードを検討してください。旧バージ ョンはサポート対象外になっている可能性があります。詳細については、 http://www.ianywhere.jp/sas/os.htmlを参照してください。

以下の各セクションでは、さまざまなタイプの統合データベースに対する推奨 ODBC ドライバを示します。一部のケースでは、代 替ドライバも示してあります。下記の統合 DBMS タイプのいずれかをクリックすると、そのタイプの DBMS で Mobile Link を使 用する場合の推奨ドライバ情報が表示されます。

Sybase Adaptive Server Anywhere (ASA)

Sybase Adaptive Server Enterprise (ASE)

Oracle 8, 8i, 9i, 10g

Microsoft SQL Server 2000

IBM DB2 UDB 7.2, 8.1

Sybase Adaptive Server Anywhere (ASA)

ドライバ Adaptive Server Anywhere 8.0
バージョン 8.0.3
ステータス Mobile Linkでの使用を推奨します。
クライアントSW なし
OS Win32
Mobile Linkによって適用される対処法 -hwc+o+
他の必要な対処法 なし
プラス面 すべてのMLRにパス
すべてのMLBにパス
マイナス面 なし .
備考 ASA 付属の ODBC ライバについては、すべての MLR テストに合格しています。また、MLB テストでは、 マルチプロセッサ・コンピュータで稼働す る Mobile Link サーバを介した複数クライアントの同時同 期についても問題がないことがわかっています。

Sybase Adaptive Server Enterprise (ASE)

ドライバ iAnywhere Solutions 8 – Sybase ASE ODBC driver
DataDirect Sybase Wire Protocol ODBC Driver
バージョン 4.20.0063(B0061,U0057) (Win32) , 4.20.0059(B0058,U0055)( Solaris ), 4.20.0073(B0067,U0062)( Linux ), 4.20.0055(B0054, U0053)( AIX )
ステータス Mobile Linkでの使用を推奨します。
クライアントSW なし
OS Win32 ,Solaris, Linux, AIX
Mobile Linkによって適用される対処法 -hwf+i+j+t+v+w+A+
他の必要な対処法 -hwC+
プラス面 すべてのMLRにパス
すべてのMLBにパス
マイナス面 カーソル・ベースのアップロードについては、1000 のクライアントと 1000 のローを使用する MLB テストが失敗する場合があります。したがって、必ず文ベースのアップロードを使用してください。
備考 Win32 の場合、ドライバのファイル名は wqase19.dll です。

Win32 で DSN を設定する際、[Enable Describe Parameter] オプションを選択し、[Performance] タブの [Prepare Method] オプションを “2-Full” に設定します。Solaris、Linux、AIX の場合、[OptimizePrepare=2] オプションを設定し、それ以外のオプションはデフォルト値のままにします。[OptimizePrepare=3] や [SelectMethod=1] を設定すると、ASE サーバでブロッキングが発生する可能性があります。

Oracle 8, 8i, 9i, 10g

Oracle 10g の詳細については、iAnywhere Solutions 8 ODBC ドライバの「備考」の項を参照してください。

Oracle の ODBC ドライバはおすすめしません。弊社でテストした Oracle の ODBC ドライバは、すべてマルチ スレッドの問題を抱えています。代わりに、次のいずれかのドライバを使用してください。

ドライバ iAnywhere Solutions 8 – Oracle Wire Protocol ODBC Driver
DataDirect Oracle Wire Protocol ODBC Driver
バージョン GA: 4.20.0061(B0059,U0056) (Win32) 4.20.0081(B0067,U0062)( Solaris, AIX ), 4.20.0080(B0067,U0062)( Linux )
EBF 5122: 4.20.0081(B0067,U0062)(Win32)
ステータス Mobile Linkでの使用を推奨します。
クライアントSW なし
OS Win32 ,Solaris, Linux, AIX
Mobile Linkによって適用される対処法 -hwf+i+k+w+A+F+C+
他の必要な対処法 なし
プラス面 すべてのMLRにパス
すべてのMLBにパス
マイナス面 BINARY_FLOAT および BINARY_DOUBLE データ型 (Oracle 10g の新しいデータ型) はサポートされません。
備考 Win32 の場合、ドライバのファイル名は wqase19.dll です。

このドライバはOracle 8i (8.1.6, 8.1.7), Oracle 9i および Oracle 10gをサポートします。 また、このドライバは Oracle 10g でテストが行われていますが、Oracle 10g の新機能についてはテストされていないため、この点に関しては制限があります。以下のよう な点が既知の制限事項です。

  • BINARY_FLOAT および BINARY_DOUBLE がサポートされない
  • グリッドがサポートされない
  • RAC (Real Application Clusters) への接続は可能だが、フェイルオーバ機能はサポートされない

Oracle クライアント・ソフトウェアを必要としないこのドライバはOracleのネイティブ ODBCドライバよりも高速なうえに設定が簡単です。

DSN のセットアップ時には、Win32 では [Enable Static Cursors for Long Data]、Unix では “EnableStaticCursorsForLongData=1″ を設定しないでください。これらを設定すると、Mobile Link のパフォーマンスが低下します。Win32 では、[Application Using Threads] を常に有効にする必要があります。Unix では、同等のオプションである “ApplicationUsingThreads=1″を設定する必要があります。

ストアド・プロシージャで結果セットを返すようにする場合は、Win32 では “Procedure Returns Results”を有効にし、Unix では “ProcedureRetResults=1″ を設定します。

Unix では、”EnableScrollableCursor=1″ を設定する必要があります。そうしなければ、ドライバのアンロックに失敗します。

Microsoft SQL Server 2000

重要: With any どのバージョンの SQL Server であっても、ODBC を介して実行されるストアド・プロシージャまたは SQL バッチでは、” SET NOCOUNT ON” を最初の文として指定する必要があります。このオプションを使用しなければ、各文を実行するたびに “number of rows affected (影響を] 受けたローの数)” というメッセージが Mobile Link へ送られます。文への挿入、更新、選択を比較的多く行っている場合は、ネットワーク ・ バッファがこれらのメッセージで一杯になり、その結果、警告なしにデータが失われる可能性があります

ドライバ Microsoft SQL Server ODBC Driver
バージョン 2000.81.9030.04 (for SQL Server 2000, Win32)
2000.85.1022 (for SQL Server 2000, Win64)
ステータス Mobile Linkでの使用を推奨します。
クライアントSW なし
OS Win32, Win64
Mobile Linkによって適用される対処法 -hwq+e+C+
他の必要な対処法 なし
プラス面 すべてのMLRにパス
すべてのMLBにパス
マイナス面 なし
備考 ODBC を介して実行されるストアド・プロシージャおよびバッチの先頭には、”SET NOCOUNT ON” を必ず置いてください。

SQL Server の場合は、次の ODBC 規則を使用してストアド・プロシージャを呼び出すと、問題が発生する可能性があります。
  { call MyMSSProc(?, ?, ? ) }
次に示すネイティブの呼び出し規則を代わりに使用してください。
  exec MyMSSProc ?, ?, ?

IBM DB2 UDB 8.1, 7.2

重要:

  • Mobile Link では、Windows、Linux、Unix 上の DB2 のみがサポートされます。DB2 AS/400 および DB2 メインフレームはサポートされません。
  •  Sybase iAnywhere DB2 ODBC ドライバの [Dynamic Sections] オプションの重要性を参照して下さい。
  • Mobile Link 同期で使用される DB2 Java ストアド・プロシージャは、getConnection.setAutoCommit(false) などを使用して、すぐにオートコミットを OFF に設定する必要があります。
ドライバ iAnywhere Solutions 8 – DB2 Wire Protocol ODBC Driver
DataDirect DB2 Wire Protocol ODBC Driver
バージョン GA: 4.20.0065(B0059,U0056) (Win32) , 4.20.0108(B0080,U0069) ( AIX )
EBF 5122: 4.20.0085(B0067,U0062)(Win32)
ステータス 警告付きで Mobile Link での使用を推奨します。
クライアントSW なし
OS Win32, AIX
Mobile Linkによって適用される対処法 -hwf+n+u+A+D+
他の必要な対処法 なし
プラス面 すべてのMLRにパス
すべてのMLBにパス
マイナス面 BLOB データ型は、DB2 8.1 以上に対して実行される場合にのみサポートされます。

このドライバは、DB2 7.2 以下のサーバに対して実行される最大 32K までの長さの CLOB データ型をサポートします。

BLOB データを大量にフェッチすると、バッファの後続バイトに 0x00 が設定されます。

備考 このドライバは、DB2 UDB 7.2 および 8.1 をサポートします。

このドライバは、IBM の自社製 DB2 ODBC ドライバよりも優れたパフォーマンスです。

DB2 7.2 を統合データベースとして使用して、BLOB または 32k よりも大きい CLOB カラムを同期したい場合、このドライバの使用はおすすめできません。

DB2 データ・ソースをはじめて使用する場合、事前にデータ・ソースのパッケージのバインドを成功させておく必要があります。詳細については、Mobile Link のマニュアルを参照してください。

MLB テストを行う場合、データベース設定パラメータの LOCKLIST を 500 に変更する必要があります。

DB2 UDB 8.1 の CHR() 関数は、0x00 を 0x20 に変更します。

Win32 の場合、ドライバのファイル名は wqdb219.dll です。

ドライバ IBM DB2 UDB 8.1 ODBC Driver
バージョン 8.01.02.169 (Win64)
ステータス 警告付きで Mobile Link での使用を推奨します。
クライアントSW DB2 UDB Client 8.01
OS Win64
Mobile Linkによって適用される対処法 -hwf+h+n+u+A+
他の必要な対処法 なし
プラス面 すべてのMLRにパス
すべてのMLBにパス
マイナス面 “Long object binary treatment” が “AS LONGVAR data” に設定されている場合、BLOB、CLOB、LONG VARCHAR、LONG VARCHAR FOR BIT DATA テストは、すべて失敗します。常に “AS LOB data” に設定してください。
備考 このドライバはWin32と同様にWin64でも使用できますが、Win32ではiAnywhereのドライバの使用を推奨します。

このドライバはカーソル・ベースのアップロードをサポートしていません。文ベースのアップロードを使用して下さい。

LBテストを行う場合、LOCKLIST および APPLHEAPSZ という 2 つのデータベース設定パラメータを変更する必要があります。LOCKLIST は 500、APPLHEASZ は 1024 に設定してください。

DB2 UDB 8.1 の CHR() 関数は、0x00 を 0x20 に変更します。

上記はDB2 UDB 8.1 サーバのテストの結果です。DB2 UDB 7.2またはそれ以前のサーバでこのドライバを使用すると多くの制限があります。IBMのドキュメントを参照して下さい。DB2 UDB7.2またはそれ以前のサーバでこのドライバを使用しない事を推奨します。

 

ドライバ IBM DB2 UDB ODBC ドライバ
バージョン 7.01.00.65
ステータス 警告付きで Mobile Link での使用を推奨します。
クライアントSW DB2 UDB Client 7.01.0000 FixPak 3 および FixPak 7
OS Win32
Mobile Linkによって適用される対処法 -hwf+h+n+u+A+
他の必要な対処法 なし
プラス面 2つのBLOBテストを除き、文ベースのアップロードを使用したすべてのMLRテストにパスしています。

カーソル・ベースのアップロードを使用したほとんどのMLRテストにパスしています。

すべてのMLBテストにパスしています。

マイナス面 BLOB、 CLOB、 LONG VARCHAR および LONG VARCHAR FOR BIT DATA に対するカーソル・ベースのアップロードは失敗します。

このドライバは2つ以上のBLOBカラムが原因となる不具合があり、1つ以上のBLOBカラムを持つテーブルにアップロードする場合、SQLParamDataでは「Memory allocation failed」が発生します。

備考 カーソル・ベースのアップロードの代わりに、文ベースのアップロードを使用して下さい。

このドライバをインストールするには、DB2 UDBクライアントが7.01.0000の場合、最初にFixPak3をインストールし、その後FixPak7をインストールする必要があります。また、DB2 UDBクライアントが7.02.0000の場合はFixPak7のみをインストールして下さい。

MLBテストでは、LOCKLIST および APPLHEAPSZ という 2 つのデータベース設定パラメータを変更する必要があります。LOCKLIST は 500、APPLHEASZ は 1024 に設定してください。

このドライバは、DB2 UDB 8.1 をサポートします。