8.0.2 Mobile Link の推奨 ODBC ドライバ
The MobiLink server connects to several types of consolidated database, using
the ODBC 3.5 standard. For most supported consolidated database types,
you should use the Sybase iAnywhere ODBC driver for that type of database.
The Sybase iAnywhere ODBC drivers and the MobiLink server
are included in the SQL Anywhere product.
When Sybase iAnywhere does not provide an ODBC driver, then you
must use one provided by another vendor.
ODBC drivers from other vendors may not support some optional ODBC
functionality that the MobiLink server requires.
Some ODBC drivers have different
behaviors that cannot be detected by querying the driver.
For these we test the driver to determine viable workarounds.
Once we have identified a set of workarounds that are
required for a driver, we update the MobiLink server so that it recognizes
the version of the driver. It then will automatically apply the required set
of workarounds for that driver.
For some ODBC drivers, we are unable to develop viable
workarounds for all issues. In these cases, you still may be able to use the
driver if your synchronizations do not require the missing
driver functionality.
For ease of testing, and to allow MobiLink to apply
workarounds to drivers that it does not recognize, the MobiLink workarounds
can be set by the undocumented –hw command-line switch. This switch
and its associated workarounds are not documented because indiscriminate
use of workarounds could cause data corruption or software errors.
Note that after workaround sets are identified, we can make future versions
of MobiLink apply the associated hidden workaround switches
automatically.
Thus if you chose to use hidden
workarounds directly, you may not need them with newer versions of the
MobiLink server. Continued use of hidden switches with a newer MobiLink
may even cause problems or reduced performance.
Driver testing
We use two types of testing of ODBC drivers with MobiLink.
The first, referred to as MLR, is a comprehensive suite of regression tests
that exercise synchronization functionality. If some specific
MLR tests fail, the driver may still be suitable as long as your
synchronizations do not rely on the functionality that failed. For example,
if the only MLR tests that fail are for synchronization of LONG BINARY data,
then the driver may still be suitable for you if you are not using MobiLink
to synchronize LONG BINARY data.
The second type of testing, referred to as MLB, is high-load
testing involving many clients synchronizing simultaneously with a MobiLink
server running on a multi-processor computer. We have found that some drivers
from other vendors
will fail with multiple simultaneous connections or under high load while
running on multiple processors.
Recommended Drivers
As a result of our testing, we recommend the following ODBC
drivers for use with version 8.0.2 of the MobiLink server.
If you are having problems with an older version of MobiLink, you should
consider upgrading to a newer version.
Older versions may no longer be actively supported.
For more information, see
http://www.ianywhere.jp/sas/os.html.
The following sections list the recommended ODBC driver for
different types of consolidated database. In some cases, alternative drivers
are also listed. Click on one of the consolidated DBMS types below to see
recommended driver information for using MobiLink with that type of DBMS:
Sybase Adaptive Server Anywhere (ASA)
Sybase Adaptive Server
Enterprise (ASE)
Oracle 8, 8i & 9i
Microsoft SQL Server 2000
IBM DB2 UDB 7.2, 8.1
Warning for Unix
On Unix, the ODBC system information file (.odbc.ini by default) may be deleted
if file descriptor handles are exhausted.
Be sure to keep a backup copy of the file, or change it to have read-only
access, to avoid losing your ODBC driver information.
Sybase Adaptive Server Anywhere (ASA)
Driver
|
Adaptive Server Anywhere 8.0
|
Version
|
8.0.2
|
Status
|
Recommended for use with MobiLink.
|
Client s/w
|
None.
|
OS
|
Win32, Solaris, Linux, AIX
|
Workarounds applied by MobiLink
|
-hwc+o+
|
Other required workarounds
|
None
|
Pros
|
All MLR and MLB tests pass.
|
Cons
|
None.
|
Notes
|
The MLR tests all pass with the ODBC driver included with ASA, and the
MLB testing shows no problems with multiple clients simultaneously
synchronizing through a MobiLink server running on a multi-processor
computer.
On Unix and Linux, make sure the directory containing the symbolic
link to your ASA ODBC driver is first in your LD_LIBRARY_PATH.
This prevents the loading of the driver manager used
by the non-ASA ODBC drivers.
The ASA ODBC driver must not be used with this driver manager.
|
Sybase Adaptive Server Enterprise
(ASE)
Driver
|
iAnywhere Solutions 8 - Sybase ASE ODBC Driver
DataDirect Sybase Wire Protocol ODBC Driver
|
Version
|
GA: 4.00.00.34 (Win32), 4.00.00.45 (Solaris, Linux, AIX)
VBF: 4.00.00.50 (Win32), 4.00.00.45 (Solaris, Linux, AIX)
|
Status
|
Recommended for use with MobiLink with caveats.
|
Client s/w
|
None
|
OS
|
Win32, Solaris, Linux, AIX
|
Workarounds applied by MobiLink
|
-hwf+i+j+t+v+w+A+
|
Other required workarounds
|
-hwC+
|
Pros
|
All MLR tests pass.
All MLB tests pass except for Win32 cursor-based upload tests.
|
Cons
|
On Win32, with cursor-based uploads,
this ODBC driver may crash under heavy load.
|
Notes
|
When setting up the DSN, on Win32, check the "Enable Describe Parameter" option and select the "2-Full"
option for Prepare Method on Performance tab; on Solaris, Linux and AIX, set the "OptimizePrepare=2"
and other attributes using defaults. Setting the "OptimizePrepare=3" and "SelectMethod=1" together would
block ASE server.
|
Driver
|
DataDirect Sybase Wire Protocol ODBC Driver
|
Version
|
4.10.00.30 (Win32), 4.10.00.28 (Solaris, Linux, AIX)
|
Status
|
Recommended for use with MobiLink with caveats.
|
Client s/w
|
None
|
OS
|
Win32, Solaris, Linux, AIX
|
Workarounds applied by MobiLink
|
-hwf+i+j+t+v+w+A+
|
Other required workarounds
|
-hwC+
|
Pros
|
All MLR tests pass.
All MLB tests pass using statement-based uploads only.
|
Cons
|
Synchronizations with cursor-based uploads fail under heavy load.
|
Notes
|
When setting up the DSN, on Win32, check the "Enable Describe Parameter" option and select the "2-Full"
option for Prepare Method on Performance tab; on Solaris, Linux and AIX, set the "OptimizePrepare=2"
and other attributes using defaults. Setting the "OptimizePrepare=3" and "SelectMethod=1" together would
block ASE server.
The performance of this driver (4.1) is better than the 4.0 driver.
|
Oracle 8, 8i & 9i
We do not recommend any ODBC drivers from Oracle.
All of the ones from Oracle that we have tested have had
multi-threading issues.
Use one of the following drivers instead.
Driver
|
iAnywhere Solutions 8 - Oracle 8, 8i & 9i
DataDirect Oracle ODBC Driver
|
Version
|
GA: 4.00.00.31 (Win32), 4.00.00.45 (Solaris, Linux)
VBF: 4.00.00.48 (Win32), 4.00.00.45 (Solaris, Linux)
|
Status
|
Recommended for use with MobiLink
|
Client s/w
|
Net8 8.1.7.0.0, Net8 8.1.7.0.1 (Linux), Net 9.0.1.1.1
|
OS
|
Win32, Solaris, Linux
|
Workarounds applied by MobiLink
|
-hwf+i+k+w+A+F+
|
Other required workarounds
|
-hwC+ required for cursor based upload scripts,
|
Pros
|
Passes all MLR tests;
Passes all MLB tests.
|
Cons
|
The Oracle TIMESTAMP type is not supported by this driver.
This driver has
problems with double-hyphen comments and unnecessary semicolons.
|
Notes
|
The file name of the driver is wqor817.dll on Win32, wqor817.so on
Solaris and Linux.
When setting up the DSN, on Win32, don't check "Enable Static Cursors for
Long Data"; on Unix, don't set EnableStaticCursorsForLongData=1,
it will adversely affect MobiLink performance.
"Application Using Threads" should always be checked on Win32 or
"ApplicationUsingThreads=1" should be set on Unix.
If you use stored procedures to return the result sets,
you need to check "Procedure Returns Results"
on Win32 or set "ProcedureRetResults=1" on Unix.
On Linux, Net8 version 8.1.7.0.1 is required, plus
a patch that addresses Oracle bugs 1489496 and 1467074.
On Unix, unset the LC_MESSAGES enviroment variable or set the LC_MESSAGES=en_US.
Improper setting of LC_MESSAGES will make the driver unusable.
It's best if the character set of the Oracle client
is the same as the database server character set. If they are
different, there are many ways mentioned in Oracle documents to
avoid the problem.
The simplest way is setting the NLS_LANG enviroment variable on the
client side.
For example, on Unix, if the charset of consolidated database
is WE8ISO8859P1, export NLS_LANG on the command line as
    export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
|
Driver
|
iAnywhere Solutions 8 - Oracle Wire Protocol ODBC Driver
(Only available on AIX)
DataDirect Oracle Wire Protocol ODBC Driver
|
Version
|
4.00.00.50 (Win32), 4.00.00.45 (AIX, Solaris, Linux)
|
Status
|
Recommended for use with MobiLink
|
Client s/w
|
None
|
OS
|
Win32, AIX, Linux and Solaris
|
Workarounds applied by MobiLink
|
-hwf+i+k+w+A+F+
|
Other required workarounds
|
None
|
Pros
|
Passes all MLR tests;
Passes all MLB tests.
|
Cons
|
This driver doesn't support the Oracle TIMESTAMP.
|
Notes
|
The iAnywhere solution 8 - Oracle Wire Protocol ODBC Driver
is only available on AIX. Both GA and VBF shipped the version
4.00.00.45. DataDirect Oracle Wire Protocol ODBC Driver is
available for Win32, AIX, Solaris and Linux.
The file name of the driver is wqora17.dll on Win32, wqora17.so
on Solaris, Linux and AIX.
This driver doesn't need Oracle client softare, is faster than
the Oracle native ODBC driver and easier to set up.
|
Microsoft SQL Server 2000
Important: With any
version of SQL Server, you should specify "SET NOCOUNT ON" as
the first statement in all stored procedures or SQL batches
executed via ODBC. Without this option, a "number of rows
affected" message is sent to MobiLink for each statement
executed. If you are doing a relatively large number of
inserts, updates, and select into statements, these messages
can fill network buffers resulting in data being lost
without any indication that it is being lost!
Driver
|
Microsoft SQL Server ODBC Driver
|
Version
|
2000.81.9030.04
|
Status
|
Recommended for use with MobiLink.
|
Client s/w
|
None
|
OS
|
Win32
|
Workarounds applied by MobiLink
|
-hwq+e+C+
|
Other required workarounds
|
None
|
Pros
|
Passes all MLR and MLB tests.
|
Cons
|
None
|
Notes
|
Be sure to put "SET NOCOUNT ON" at the start of all stored procedures.
For SQL Server 2000, the driver has problem with
    { call MyMSSProc(?, ?, ? ) },
using the native version
    exec MyMSSProc ?, ?, ?
instead.
The MLR tests all pass with the ODBC
drivers included with Microsoft SQL Server 2000.
|
IBM DB2 UDB 8.1, 7.2
Important:
Driver
|
IBM DB2 UDB 8.1 ODBC Driver
|
Version
|
8.01.00.36
|
Status
|
Recommended for use with MobiLink with caveats.
|
Client s/w
|
DB2 UDB Client 8.01
|
OS
|
Win32
|
Workarounds applied by MobiLink
|
-hwf+h+n+u+A+
|
Other required workarounds
|
None
|
Pros
|
Passes all MLR tests using statement-based upload.
Passes all MLB tests.
|
Cons
|
Cursor-based uploads is not capable.
|
Notes
|
Knonw bug: After all rows are fetched from an opened cursor,
SQLFetchScroll and SQLExtendedFetch should return SQL_NO_DATA_FOUND,
but return SQL_SUCCESS and don't refresh the previous caches. Using
SQLFetch instead can bypass this bug.
Using default setting, that means you choose "As LOB data" .
Choosing "AS LONGVAR data", all BLOB, CLOB, LONG VARCHAR, LONG VARCHAR
FOR BIT DATA tests will fail.
This driver doesn't support cursor update. Only statement-based upload
is available.
The function CHR() of DB2 UDB 8.1 changes 0x00 to 0x20, Using this
function with caveats.
The above results come from the testing for DB2 UDB 8.1 server.
There are a lot of restrictions for using this driver with
DB2 UDB 7.2 or previous server, please refer to IBM references. We
suggest don't use this driver with DB2 UDB 7.2 or previous server.
For MLB testing, two database configuration parameters LOCKLIST
and APPLHEAPSZ need to be changed, set up LOCKLIST to 500 and APPLHEAPSZ
to 1024.
|
Driver
|
IBM DB2 UDB ODBC driver
|
Version
|
7.01.00.65
|
Status
|
Recommended for use with MobiLink with caveats.
|
Client s/w
|
DB2 UDB Client 7.01.0000 with FixPak 3 and FixPak 7
|
OS
|
Win32
|
Workarounds applied by MobiLink
|
-hwf+h+n+u+A+
|
Other required workarounds
|
None
|
Pros
|
Passes all MLR tests using statement-based upload.
Passes most MLR tests using cursor-based upload.
Passes all MLB tests.
|
Cons
|
Cursor-based uploads of BLOB, CLOB, LONG VARCHAR and LONG VARCHAR
FOR BIT DATA fail.
|
Notes
|
It's highly recommended to use statement-based upload.
To install this driver, if your DB2 UDB client is 7.01.0000,
you need first to install FixPak3 and then to install FixPak 7;
if your DB2 UDB client is 7.02.0000, just install FixPak 7 directly.
For MLB testing, two database configuration parameters LOCKLIST
and APPLHEAPSZ need to be changed, set up LOCKLIST to 500 and APPLHEAPSZ
to 1024.
This driver supports DB2 UDB 8.1 database. Be careful of the DB2 UDB 8.1
bug: DB2 UDB 8.1 changes 0x00 to 0x20 for all binary types.
|
Driver
|
iAnywhere Solutions 8 - DB2 Wire Protocol Driver
(Only available on AIX)
DataDirect DB2 Wire Protocol ODBC Driver
|
Version
|
4.00.00.45
|
Status
|
Recommended for use with MobiLink with caveats.
|
Client s/w
|
None
|
OS
|
AIX
|
Workarounds applied by MobiLink
|
-hwf+h+n+u+
|
Other required workarounds
|
-hwC+
-hwE+ (Win32 only)
|
Pros
|
Passes most MLR tests.
Passes all MLB tests.
|
Cons
|
This driver doesn't support the BLOB data type.
This driver doesn't support passing literal values to
stored procedures.
This driver only supports up to 32K-length values of the CLOB data type.
This driver doesn't support DB2 UDB 8.1 database.
|
Notes
|
The driver is only available on AIX. Both GA and VBF
have the same version number.
Before you use the DB2 data source for the first time,
you must successfully
bind a package for the data source.
This driver has difficulties caching SQL statements.
Always use the -hwC+ workaround.
When setting up a DSN on Unix, set "DecimalPrecision=31"
and "WithHold=1"; on Win32, select "31" for "DecimalPrecision" and
check "With Hold Cursors".
For MLB testing, the database configuration parameter LOCKLIST needs
to be changed to 500.
|
|