Skip to end of metadata
Go to start of metadata

The MobiLink server connects to several types of consolidated database using the ODBC 3.5 standard. For some supported consolidated database types you should use the SAP SQL Anywhere ODBC driver for that type of database. For others we recommend drivers supplied by the database vendors. The SAP SQL Anywhere ODBC drivers and the MobiLink server are included in the SAP SQL Anywhere 17 product. When SAP 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.

As a result of our testing, we recommend the following ODBC drivers for use with version 17.0 of the MobiLink server.  We typically only recommend that the latest major release of any consolidated database be used.  Older versions of consolidated databases that were at one point recommended for use with 17.0 MobiLink can be found at the Historical List of Recommended ODBC Drivers for 17.0 MobiLink.  

If you are having problems with an older version of MobiLink, you should consider upgrading to a newer version. Older versions of the MobiLink Server may no longer be actively supported. For more information, see SAP SQL Anywhere Supported Platforms and Engineering Support Status.

The following sections list the recommended ODBC driver for different types of consolidated database.  Click on one of the consolidated DBMS types below to see recommended driver information for using MobiLink with that type of DBMS:


For detailed supported consolidated databases,  please refer to the Consolidated Databases section in the SAP SQL Anywhere 17.0 Components by Platforms.

Driver

SAP SQL Anywhere 17.0

Version

17.0

Status

Recommended for use with MobiLink

Client s/w

None

OS

We recommend using MobiLink with the SAP SQL Anywhere 17.0 ODBC driver on all platforms listed on 
the SAP SQL Anywhere Supported Platforms and Engineering Support Status page.

Pros

All tests passed

Cons

None

Notes

None

Permission requirementsThe MONITOR system privilege is required in order to invoke the locking/blocking detection logic.

Driver

SAP HANA ODBC Driver 2.0

Version

2.0

Status

Recommended for use with MobiLink 17.0 PL22 Build 4003 or later.

Client s/w

None

OS

We recommend using MobiLink with the SAP HANA ODBC Driver 2.0 on the Windows and Linux platforms
listed on the SAP SQL Anywhere Supported Platforms and Engineering Support Status page.

Pros

All tests passed

Cons

None

Notes

None

Permission requirements

The database user used by MobiLink server to connect to HANA must have the CATALOG READ privilege.

Driver

SAP Adaptive Server Enterprise ODBC driver

Version

16.00.00.05 on Windows (x86 and x64) and Linux (x86 and x64)  - This driver is available from the SAP Adaptive Server Enterprise SDK 16.0 PL05.

Status

Recommended for use with MobiLink

Client s/w

None

OS

We recommend using MobiLink with the SAP Adaptive Server Enterprise ODBC driver on the Windows and Linux
platforms listed on the SAP SQL Anywhere Supported Platforms and Engineering Support Status page.

Pros

All tests passed

Cons

On Linux, if UseCursor=1, the synchronization tables can't be dropped after synchronization.     

Notes

  1. Always set UseCursor to 0 (zero) on Linux.
  2. Always set ServerInitiatedTransactions to 0 (zero).
  3. Set AnsiNull to 1, if the "where clauses" in any of the upload and download scripts contain the clause "column_name = NULL".
  4. On Linux, you need to set SYBASE environment variable to the directory where you install the ASE SDK 16.0 PL05, otherwise, you will get the error, "Could not load code page for requested charset".
  5. On Linux, SAP provides two 64-bit ASE ODBC drivers, libsybdrvodb-sqllen4.so and libsybdrvodb-sqllen8.so.  The former defines SQLLEN (an ODBC data type) as a 32-bit integer and the latter defines SQLLEN as a 64-bit integer.  The 64-bit MobiLink server on Linux assumes SQLLEN is a 64-bit integer.  Therefore, the ASE ODBC driver, libsybdrvodb-sqllen8.so should always be used, when a DSN is configurated for the 64-bit MobiLink server to use.
  6. By default, the ASE ODBC driver from SDK 16.0 PL05 will trim all blank padding in upload and download strings. If you do not want the driver to trim blank padding, add the following connection parameter to the MobiLink server connection string:
        stripblanks=0
    The connection string of the MobiLink server will look like the following:
        -c "dsn=...;...;stripblanks=0"
  7. When the "enable functionality group" configuration parameter is enabled, the MobiLink server will use the "select ... for update" feature to lock remote IDs to prevent redundant syncs for the same remote ID simultaneously.  If for some reason, this feature needs to be disabled, all the MobiLink servers currently connected to the ASE server need to be restarted.  Otherwise, the MobiLink servers will fail all the synchronization requests.

Permission requirements

  1. Select permission on MASTER..SYSTRANSACTIONS and MASTER..SYSPROCESSES.
  2. The user ID also needs to have the dtm_tm_role role, if the MobiLink server command line option -cs is used.

Driver

SQL Anywhere 17 - Oracle ODBC Driver

Version

17.00.00

Status

Recommended for use with MobiLink

Client s/w

Oracle 19c client release 19.0.0.0.0 version 19.3.0.0.0

OS

We recommend using MobiLink with the SQL Anywhere 17 - Oracle ODBC Driver on the Windows and Linux
platforms listed on the SAP SQL Anywhere Supported Platforms and Engineering Support Status page.

Pros

All tests passed

Cons

None

Notes

  1. Before using this driver, you must install Oracle 19c client. To load this driver, you must set Oracle client libraries in your LD_LIBRARY_PATH on Linux.
  2. TNS server name on Windows DSN setting and ServerName in Linux .odbc.ini are Oracle TNS service name defined in $ORACLE_HOME/network/admin/tnsnames.ora.
  3. The default setting of "Procedure return results or uses VARRAY parameters" on Windows or ProcResults on Linux is 'No'.
  4. If you are using a stored procedure that returns a REF CURSOR, the REF CURSOR parameter (either OUT or IN OUT) must be defined as the last parameter in the parameter list of the stored procedure.

Permission requirements

  1. Permission to EXECUTE on SYS.DBMS_UTILITY - required by MobiLink to determine if the database is running on an Oracle RAC.
  2. Permission to SELECT from SYS.GV_$TRANSACTION - required by MobiLink server to do TIMESTAMP based downloads.
  3. Permission to SELECT from SYS.V_$SESSION - required by MobiLink server to determine the SID and SERIAL# values of the current session.
  4. Permission to SELECT from DBA_OBJECTS, SYS.GV_$LOCK and SYS.GV_$SESSION - required by MobiLink server locking/blocking detection logic.


Microsoft SQL Server

Microsoft SQL Server 2019

Driver

Microsoft ODBC Driver 17 for SQL Server

Version

2017.176.xxxx.xx 

Status

Recommended for use with MobiLink

Client s/w

None

OS

We recommend using MobiLink with the Microsoft SQL Native Client ODBC Driver on the Windows
platforms listed on the SAP SQL Anywhere Supported Platforms and Engineering Support Status page.

Pros

All tests passed

Cons

None

Notes
  1. Be sure to put "SET NOCOUNT ON" at the start of all stored procedures and batches that are 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!
  2. SQL Server allows users to control transaction durability at the database and transaction levels.  The durability can be set to be full durability or delayed durability.  In order to maintain data consistency, the MobiLink server requires its transactions with full durability.  So the database option delayed durability should never be set to FORCED.
Permission
Requirements
  1. Permission to VIEW SERVER STATE.
  2. Permission to SELECT from SYS.DATABASES.
  3. Permission to SELECT from SYS.DM_TRAN_LOCKS, SYS.PARTITIONS, SYS.SYSPROCESSES.

Driver

IBM DB2 ODBC Driver

Version

11.05.4000.xxx on Windows and 11.05.xxx on Linux

Status

Recommended for use with MobiLink

Client s/w

DB2 UDB Client 11.5

OS

We recommend using MobiLink with the IBM DB2 ODBC Driver on the Windows and Linux platforms 
listed on the SAP SQL Anywhere Supported Platforms and Engineering Support Status page.

Pros

All tests passed

Cons

None

Notes

  1. DB2 AS/400 is not supported.  Only DB2 running on Linux, Unix or Windows is supported as a consolidated database.
  2. Any DB2 Java stored procedures used in MobiLink synchronization should always immediately set autocommit to OFF, for example by using getConnection().setAutoCommit(false).
  3. IBM DB2 supports both column and row stores as of v10.5 databases.  However, there are a few restrictions for tables created with a column store and one of these restrictions is Queries cannot be requested to be blocked by any uncommitted transactions for tables created with a column store. This restriction would prevent the MobiLink server from providing a timestamp based synchronization for any tables with a column store in order to maintain data consistency.  Therefore, any tables involved in synchronization with MobiLink must be created with a row store, if the sync logic requires timestamp based downloads.  For sync logic with a snapshot based download, sync tables can be created either with a column store or a row store, but the MobiLink server needs to be started with command line option hwp- (that will inform the MobiLink server to skip requesting the blocking behavior for generating a download for any client), otherwise, the DB2 database server would complain with the following error:
        SQL1667N  The operation failed because the operation is not supported with the typeof the specified table.  Specified table: sync_table_name.  Table type: "ORGANIZE BY COLUMN".  Operation: "CUR_COMMIT DISABLED".  SQLSTATE=42858
    when the MobiLink server was trying to generate a download for the client.
  4. If you are using timestamp-based download and if any of the download_cursor and/or download_delete_cursor scripts are implemented in stored procedure calls, either the DB2 consolidated database server must run with the configuration parameter, ConcurrentAccessResolution being set to 2 (Wait for outcome), or executing the following SQL command:
        CALL SET_ROUTINE_OPTS(GET_ROUTINE_OPTS() || 'CONCURRENTACCESSRESOLUTION WAIT FOR OUTCOME'
    before creating the stored procedures for download_cursor and/or download_delete_cursor scripts is required. Then the DB2 database server will block the download cursors if there are any uncommitted operations that have modified the download cursor results.  Without doing so, new data may not be downloaded to the remote databases and data inconsistency may occur.
  5. When Oracle compatibility features are enabled, DB2 supports some Oracle data types, such as DATE, VARCHAR2, and NUMBER.  These data types will behave the same as those in an Oracle database.  For detailed data type mapping of these compatible data types between DB2 and SQL Anywhere/UltraLite, please see the MobiLink reference chapter in the MobiLink Server Administration manual.
  6. On Linux, you need to run 'source db2profile' to export DB2 environment variables. db2profile is in the home directory under your DB2 installation. Furthermore, you need to use the 64-bit IBM DB2 ODBC driver, libdb2o.so.
  7. Two database configuration parameters LOCKLIST and APPLHEAPSZ need to be changed for high load testing. Set LOCKLIST to 500 and APPLHEAPSZ to 1024.
Permission requirementsPermission to SELECT from SYSIBMADM.MON_LOCKWAITS and MON_GET_CONNECTION are required by the MobiLink server locking/blocking detection logic.
  • No labels