SQL Anywhere 10.0.1 Mobile Link の推奨 ODBC ドライバ
Mobile Link サーバは、ODBC 3.5 規格を使用して複数のタイプの統合データベースに接続します。サポートされている一部の統合データベース・タイプでは、専用の iAnywhere Solutions ODBC ドライバを使用する必要があります。その他の統合データベース・タイプについては、データベース・ベンダが供給するドライバの使用をおすすめします。iAnywhere Solutions ODBC ドライバおよび Mobile Link サーバは、SQL Anywhere 10 製品に付属しています。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 サーバと同時に同期している多数のクライアントを含みます。他のベンダのドライバの中には、複数の同時接続で失敗したり、複数のプロセッサの動作中に高負荷の状況下で失敗するものがあることがわかっています。
推奨ドライバ
テストの結果として、バージョン 10.0.1 の Mobile Link サーバでは次の ODBC ドライバの使用をおすすめします。
旧バージョンの Mobile Link で問題が発生している場合は、新しいバージョンへのアップグレードを検討してください。旧バージョンはサポート対象外になっている可能性があります。詳細については、http://www.ianywhere.jp/sas/os.htmlを参照してください。
後続の各セクションでは、さまざまなタイプの統合データベースに対する推奨 ODBC ドライバを示します。一部のケースでは、代替ドライバも示してあります。下記の統合 DBMS タイプのいずれかをクリックすると、そのタイプの DBMS で Mobile Link を使用する場合の推奨ドライバ情報が表示されます。
Sybase Adaptive Server Enterprise (ASE)
Microsoft SQL Server 2000, 2005
SQL Anywhere (SA)
ドライバ |
SQL Anywhere 10.0 | |
バージョン |
10.0.1 | |
ステータス |
Mobile Linkでの使用を推奨します | |
クライアントSW | なし | |
OS | Windows | 200x, XP, Vista, Windows x64 |
Linux | Redhat Enterprise Linux 4, 5 SuSE 10, SuSE Enterprise Linux 9, 10 kernel/glibc バージョンが SQL AnywhereのLinux対応についてで指定された範囲内の場合にサポートされます。 |
|
Solaris | 8, 9, 10 | |
AIX | 5.2, 5.3 | |
Mac OS | 10.4 on Intel x86 processor | |
Mobile Link によって適用される対処法 |
-hwc+ | |
他の必要な対処法 |
なし | |
プラス面 |
全てのテストにパス | |
マイナス面 |
なし | |
備考 |
なし |
Sybase Adaptive Server Enterprise 12.5.3, 15
ドライバ | Sybase Adaptive Server Enterprise ODBC ドライバ | |
バージョン | 15.0.0.140 for Windows (このバージョンは、ASE15.0 SDKのESD#6を適用する事により使用できます。) 15.0.0.320 for Linux (このバージョンは、Sybase Software Developer Kit – 15 ESD #14を適用する事により使用できます。) | |
ステータス | 警告付きで Mobile Link での使用を推奨します | |
クライアントSW | なし | |
OS | Windows | 200x, XP, Vista |
Linux | Redhat Enterprise Linux 4 SuSE 10 |
|
Mobile Linkによって適用される対処法 | -hwi+ | |
他の必要な対処法 | なし | |
プラス面 | すべてのパフォーマンス・テストにパス ほとんどの回帰テストにパス |
|
マイナス面 | 1. SQL_CHAR にバインドしている数値カラムからゼロ値をフェッチすると、値 “0” が返されます。 2. Linux では、UseCursor=1 を設定すると、同期後に同期テーブルを削除できません。 |
|
備考 | Linux では、常に UseCursor をゼロに設定してください。ServerInitiatedTransactions は、常にゼロに設定してください。いずれかのアップロードおよびダウンロード・スクリプトの where 句に “column_name = NULL” が含まれている場合は、AnsiNull を 1 に設定します。
Linux では、SYBASE 環境変数を ASE SDK1500 のインストール先ディレクトリに設定する必要があります。そうしなければ、”Could not load code page for requested charset (要求された文字セットのコード・ページをロードできませんでした)” というエラーが発生します。. |
Oracle 9i, 10g
Oracle の ODBC ドライバはおすすめしません。弊社でテストした Oracle の ODBC ドライバは、すべてマルチスレッドの問題を抱えています。 代わりに、次のいずれかのドライバを使用してください。
ドライバ | iAnywhere Solutions 10 – Oracle ODBC ドライバ |
|
バージョン | 10.00.01 | |
ステータス | Mobile Linkでの使用を推奨します | |
クライアントSW | Oracle 9i またはそれ以上 | |
OS | Windows | 2000, XP, Vista, Windows x64 |
Linux | Redhat Enterprise Linux 4, 5 SuSE 9.1, 10, SuSE Linux Enterprise 10 |
|
Solaris | 8, 9, 10 | |
AIX | 5.2, 5.3 | |
Mobile Linkによって適用される対処法 | なし | |
他の必要な対処法 | なし | |
プラス面 | 全てのテストにパス | |
マイナス面 | なし | |
備考 | このドライバを使用する前に、Oracle 9i またはそれ以上(インスタンス)のクライアントをインストールする必要があります。このドライバをロードする為に、LD_LIBRARY_PATH( Linux, Solaris) または LIBPATH( AIX )にOracle クライアント ライブラリを設定する必要があります。Windows DSN設定またはLinuxとUnixでの.odbc.iniにあるSIDは、$ORACLE_HOME/network/admin/tnsnames.oraに定義されているOracle TNSサービス名です。Windowsでの「プロシージャは結果を返す」または、LinuxとUnixでのProcResultsのデフォルト設定は「no」になっています。
REF CURSORを返すストアド・プロシージャを使用する場合、REF CURSORパラメータ(OUT または IN OUT)はストアド・プロシージャの パラメータ・リストの最後に定義する必要があります。 |
ドライバ | iAnywhere Solutions 10 – Oracle Wire Protocol ODBC ドライバ DataDirect Oracle Wire Protocol ODBC ドライバ |
|
バージョン | 5.10.0124(B0080,U0044) (Win32), 5.10.0124(B0080,U0044)( Linux ), 5.10.0124(B0080,U0044)( Solaris ), 5.10.0124(B0080,U0044)( AIX ) **** この ドライバ を推奨しません **** |
|
ステータス | Mobile Linkでの使用を推奨します — このドライバを使用する場合、DataDirect社より購入する必要があります。 | |
クライアントSW | なし | |
OS | Windows | 2000, XP, 2003 (32-bit), Vista |
Linux | Redhat Enterprise Linux 4.0 SuSE Linux Enterprise 9.1, 10 |
|
Solaris | 8, 9, 10 | |
AIX | 5.2, 5.3 | |
Mobile Linkによって適用される対処法 |
なし | |
他の必要な対処法 | なし | |
プラス面 | 全てのテストにパス | |
マイナス面 | なし | |
備考 | このドライバは将来サポートされなくなります。iAnywhere Solutions 10 – Oracle ODBC ドライバを推奨します。ドライバのファイル名は wqora21.xxx です (xxx は dll、so、sl のいずれか)。このドライバは、Oracle 9i および Oracle 10g (RAC 機能も含む) をサポートしています。
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 2005, 2000
重要: どのバージョンの SQL Server であっても、ODBC を介して実行されるストアド・プロシージャまたは SQL バッチでは、”SET NOCOUNT ON” を最初の文として指定する必要があります。このオプションを使用しなければ、各文を実行するたびに “number of rows affected (影響を受けたローの数)” というメッセージが Mobile Link へ送られます。文への挿入、更新、選択を比較的多く行っている場合は、ネットワーク・バッファがこれらのメッセージで一杯になり、 その結果、警告なしにデータが失われる可能性があります。
SQL Server 2005
ドライバ | Microsoft SQL Native Client ODBC ドライバ |
バージョン | 2005.90.2047.00 |
ステータス | Mobile Linkでの使用を推奨します |
クライアントSW | なし |
OS | Win32 |
Mobile Linkによって適用される対処法 |
-hwe+j+f+ |
他の必要な対処法 |
なし |
プラス面 |
全てのテストにパス |
マイナス面 |
なし |
備考 |
ODBC を介して実行されるストアド・プロシージャおよびバッチの先頭には、”SET NOCOUNT ON” を必ず置いてください。SQL Server の場合は、次の ODBC 規則を使用してストアド・プロシージャを呼び出すと、問題が発生する可能性があります。 { call MyMSSProc(?, ?, ? ) } 次に示すネイティブの呼び出し規則を代わりに使用してください。 exec MyMSSProc ?, ?, ? |
SQL Server 2000
ドライバ |
Microsoft SQL Server ODBC ドライバ |
バージョン |
2000.85.1117.00 |
ステータス |
Mobile Linkでの使用を推奨します |
クライアントSW |
なし |
OS |
Win32 |
Mobile Linkによって適用される対処法 |
-hwe+j+ |
他の必要な対処法 |
なし |
プラス面 |
全てのテストにパス |
マイナス面 |
なし |
備考 |
ODBC を介して実行されるストアド・プロシージャおよびバッチの先頭には、”SET NOCOUNT ON” を必ず置いてください。SQL Server の場合は、次の ODBC 規則を使用してストアド・プロシージャを呼び出すと、問題が発生する可能性があります。 { call MyMSSProc(?, ?, ? ) } 次に示すネイティブの呼び出し規則を代わりに使用してください。 exec MyMSSProc ?, ?, ? |
IBM DB2
Important:
- Mobile Link では、Windows、Linux、Unix 上の DB2 のみがサポートされます。DB2 AS/400 および DB2 メインフレームはサポートされません。
- Mobile Link 同期で使用される DB2 Java ストアド・プロシージャは、getConnection.setAutoCommit(false) などを使用して、すぐにオートコミットを OFF に設定する必要があります。
DB2 UDB 9.1
ドライバ | IBM DB2 UDB ODBC ドライバ | |
バージョン | 9.01.00.356( Win32), 9.01.0000( Linux, Solaris, AIX ) | |
ステータス | Mobile Linkでの使用を推奨します | |
クライアントSW | DB2 UDB Client 9.1 | |
OS | Windows | 200x, XP, Vista |
Linux | Redhat Enterprise Linux 4,5 SuSE Enterprise Linux 9, 10 |
|
Solaris | 9 with patches 111711-12 and 111712-12, 10 | |
AIX | 5.2, 5.3 | |
Mobile Linkによって適用される対処法 | -hwh+ | |
他の必要な対処法 | なし | |
プラス面 | 全てのテストにパス | |
マイナス面 | “Long object binary treatment” が “AS LONGVAR data” に設定されている場合、BLOB、CLOB、LONG VARCHAR、LONG VARCHAR FOR BIT DATA テストは、すべて失敗します。常に “AS LOB data” に設定してください。 | |
備考 | サポートOSについてはhttp://www-306.ibm.com/software/data/db2/9/sysreqs.html ( このリンクはIBM社によって変更される場合があります)を参照して下さい。Linux、Solaris、AIX では、db2profile を入手して DB2 環境変数をエクスポートする必要があります。db2profile は、DB2 インストールのホーム・ディレクトリにあります。Mobile Link に負荷がかかっている状況では、LOCKLIST および APPLHEAPSZ という 2 つのデータベース設定パラメータを変更する必要があります。LOCKLIST は 500、APPLHEAPSZ は 1024 に設定してください。
DB2 UDB 9.1 の CHR() 関数は、0x00 を 0x20 に変更します。 Windows 2008 サーバではFixPak2のバージョン 9.0.1.200.98 DB2 ODBC ドライバの使用を推奨します。 |
DB2 UDB 8.x
ドライバ | IBM DB2 UDB ODBC ドライバ | |
バージョン | 8.01.11.973(Win32), 8.02.0000(Linux, Solaris, AIX) | |
ステータス | Mobile Linkでの使用を推奨します | |
クライアントSW | DB2 UDB Client 8.1+Fixpak 7 または DB2 UDB 8.2 | |
OS | Windows | 200x, XP, Vista |
Linux | Redhat Enterprise Linux 4 SuSE 9.1, 10 |
|
Solaris | 8, 9, 10 | |
AIX | 5.2, 5.3 | |
Mobile Linkによって適用される対処法 | -hwh+ | |
他の必要な対処法 | なし | |
プラス面 | 全てのテストにパス | |
マイナス面 | “Long object binary treatment” が “AS LONGVAR data” に設定されている場合、BLOB、CLOB、LONG VARCHAR、LONG VARCHAR FOR BIT DATA テストは、すべて失敗します。常に “AS LOB data” に設定してください。 | |
備考 | サポートOSについては http://www-1.ibm.com/support/docview.wss?rs=71&context=SSEPGG&uid=swg27009527 ( このリンクはIBM社によって変更される場合があります)を参照して下さい。Linux、Solaris、AIX では、db2profile を入手して DB2 環境変数をエクスポートする必要があります。db2profile は、DB2 インストールのホーム・ディレクトリにあります。Mobile Link に負荷がかかっている状況では、LOCKLIST および APPLHEAPSZ という 2 つのデータベース設定パラメータを変更する必要があります。LOCKLIST は 500、APPLHEAPSZ は 1024 に設定してください。
DB2 UDB 8.1 の CHR() 関数は、0x00 を 0x20 に変更します。 |