Currently Being Moderated

Recommended ODBC Drivers for 16.0 MobiLink

  Recommended ODBC Drivers for 16.0.0 MobiLink

  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 16 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.

  Driver testing

  We use two types of testing of ODBC drivers with MobiLink.

  The first type of testing is a comprehensive suite of regression tests  that exercise synchronization functionality. If some specific regression  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 regression 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 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 16.0.0 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    SAP SQL Anywhere Supported Platforms and Engineering Support Status.

  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:

  SAP SQL Anywhere (SQLA) 12 and 16

  SAP HANA 1.00.90

  SAP Adaptive Server  Enterprise 15.5 and 15.7

  SAP IQ 15.4 and 16.0

  Oracle 10g, 11g, and 12.1

  Microsoft SQL Server 2008 and 2012

  IBM DB2 9.7 and 10.1

  MySQL 5.1.3 and 5.5.16

  For detailed supported consolidated databases,  please refer to      MobiLink Consolidated Database Support .

    SAP SQL Anywhere (SQLA) 12.0 and 16.0

    SAP SQL Anywhere (SQLA) 16.0.0

                                                                                        

      Driver   

      SAP SQL Anywhere 16.0.0   

      Version   

      16.0.0

      Status   

      Recommended for use with MobiLink

      Client s/w   

      None

      OS   

          Windows    

          XP, Vista, 7, Server 2003, Server 2008, Server 2008 R2, and 2012    

    Linux

    Redhat Enterprise Linux 5, 6
    SuSE Enterprise Linux 10, 11
    Ubuntu 10.0.4, 12.0.4
    Supported where the kernel/glibc versions are within the ranges      specified on the       SQL Anywhere Supported Linux Platforms.

    Solaris

    10, 11

    AIX

    6.1, 7.1  

    MAC OS X

    10.8 (Intel)

      Pros   

      All tests passed

      Cons   

      None

      Notes   

      None

Permission requirements

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

 

    SAP SQL Anywhere (SQLA) 12.0

                                                                                                                                                                        

      Driver   

      SAP SQL Anywhere 12.0   

      Version   

      12.0.x

      Status   

      Recommended for use with MobiLink

      Client s/w   

      None

      OS   

          Windows    

          XP, Vista, 7, Server 2003, Server 2008, Server 2008 R2, and 2012    

          Linux    

          Redhat Enterprise Linux 5, 6
  SuSE Enterprise Linux 10, 11
  Ubuntu 10.0.4, 12.0.4
  Supported where the kernel/glibc versions are within the ranges    specified on the          SAP SQL Anywhere Supported Linux Platforms.    

          Solaris    

          10, 11    

          AIX    

          6.1, 7.1    

          MAC OS X    

          10.8 (Intel)    

      Pros   

      All tests passed

      Cons   

      None

      Notes   

      None

 

    SAP HANA 1.00.90

                                                                                

      Driver   

      HDB ODBC driver   

      Version   

      1.00.90.xx (Windows x64) and 1.00.90.xx (Linux x64).

      Status   

      Recommended for use with MobiLink (versions 16.0.0.2052 and up for Windows and Linux)

      Client s/w   

      None

      OS   

      Windows

      Vista, 7, Server 2008, and Server 2008 R2

      Linux

      Redhat Enterprise Linux 5, 6
      SuSE Enterprise Linux 10, 11

      Pros   

      All tests passed

      Cons   

      None

      Notes   

      
  1. Stored Procedures:

    Although HANA SPS09 does support calling stored procedures with    NULLs for scalar input parameters, the MobiLink server still    replaces NULLs with zero length string/binary values for parameters    with CHAR/BINARY types and then pass them to the HANA database,    when it calls the user authentication scripts.  Therefore the user    authentication stored procedures should be written accordingly based    on this behavior of the MobiLink server.  The user-defined parameters    are also set to zero length strings when first referenced.    

  2. Spatial Data:

    The MobiLink server supports spatial data synchronization against    HANA SPS 09 databases.  

  3. MobiLink Server System Objects:

    The primary key columns in the MobiLink server system tables are    maintained by HANA SEQUENCEs through stored procedure calls.    Users can use the ml_add_connection_script and    ml_add_table_script procedures to add, modify, or delete    connection and table scripts and the ml_add_user and    ml_add_database to add MobiLink users and remote databases.    Please do not directly insert any rows into the MobiLink server    system tables.    

  4. Timestamp-based Download:

    Since HANA always uses snapshot isolation for queries, MobiLink    server will use the start time of the oldest open transaction of    the database as the next last_download_timestamp.  So    download_cursor and download_delete_cursor scripts can use the    "LAST MODIFIED" logic to generate a time based download stream    from shadow tables that can be populated by triggers defined on    the actual synchronization tables.

    Alternatively, the download_cursor and download_delete_cursor    scripts can be written based on the hidden columns $validto$    and $validfrom$, when the table is created with the "HISTORY    COLUMN" clause and the next last_download_timestamp can be    generated by the generate_next_last_download_timestamp script.    For more details about these hidden columns, please reference    the HANA documents.  

Permission requirements

  
    The CATALOG READ privilege is required in order to invoke the timestamp-based download mechanism and the locking/blocking detection logic.  

 

    SAP Adaptive Server Enterprise 15.5 and 15.7

    SAP Adaptive Server Enterprise 15.5

                                                                                            

      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   

        Windows  

        XP, Vista, 7, and Server 2008 R2  

        Linux  

        Redhat Enterprise Linux 5, 6
SuSE Enterprise 11  

      Pros   

      All tests passed  

      Cons   

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

      Notes   

  1. Always set UseCursor to zero on Linux.
  2.     
  3. Always set ServerInitiatedTransactions to zero.
  4.     
  5. Set AnsiNull to 1, if the "where clauses" in any of the upload and      download scripts may have the clause of "column_name = NULL".
  6.   
  7. 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".
  8.   
  9. 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.
  10. 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"
  11.   

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, -cs is used.
  3.   

 

    SAP Adaptive Server Enterprise 15.7

                                                                                            

      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   

        Windows  

        XP, Vista, 7, and Server 2008 R2  

        Linux  

        Redhat Enterprise Linux 5, 6
SuSE Enterprise 11  

      Pros   

      All tests passed  

      Cons   

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

      Notes   

  1. Always set UseCursor to zero on Linux.
  2.     
  3. Always set ServerInitiatedTransactions to zero.
  4.     
  5. Set AnsiNull to 1, if the "where clauses" in any of the upload and      download scripts may have the clause of "column_name = NULL".
  6.   
  7. 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".
  8.   
  9. 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.
  10. 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"
  11. When the "enable functionality group" configuration parameter is enabled on the ASE 15.7 server, 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, -cs is used.
  3.   

 

    SAP IQ 15.4 and 16.0

    SAP IQ 16.0

                                                                                                          

      Driver   

      SAP IQ ODBC driver   

      Version   

      16.00.00.428 on Windows (x64) and 16.00.0000 on Linux (x64) - Both drivers can be installed from the SAP IQ 16.0 GA release.

      Status   

      Recommended for use with MobiLink

      Client s/w   

      None

      OS   

          Windows    

          XP, Vista, 7, Server 2003, Server 2008 and 2008 R2    

          Linux    

          Redhat Enterprise Linux 5, 6
  SuSE Enterprise 10, 11    

      Pros   

      All tests passed  

      Cons   

None  

      Notes   

  1. Only a 64-bit MobiLink server is supported on Windows and Linux for consolidated databases running on a SAP IQ 16.0 server;
  2. Using the Row Level Versioning feature introduced in SAP IQ 16.0 would greatly increase the throughput for upload and dramatically improves the upload performance, if there is no BLOB columns and foreign keys used in any of the upload tables, because the RLV enabled tables created on the RLV store would be allowed to be accessed concurrently by multiple connections.  However, the ELV feature is limited to tables without BLOB and foreign key columns. If any of the sync tables that will be included in the upload streams contains BLOB and/or foreign key columns, the upload phase must be serialized, because SAP IQ 16.0 server does not allow more than one connection to modify a given table concurrently. This requirement can be achieved, if the begin_upload connection script is written to include or to use the following SQL statement
        LOCK TABLE table_name IN WRITE MODE WAIT time_string
    where table_name is the name of a table that is defined on the IQ store and the time_string gives the maximum time period to lock the table.  The table can be as simple as the one defined as
        create table coordinate_upload ( c1 int )
    It is not required to have any data in this table.
    If any of the other MobiLink server transactions is required to modify any IQ tables, all of these transaction must be serialized.  The same logic mentioned above can be used.
    This technique is considered more efficient than the MobiLink server to retry on each transaction automatically and users will get better performance.
  3.   

Permission requirements

  
        
  1. The EXECUTE permission on SP_IQTRANSACTION is required by MobiLink    server to use snapshot isolation for download.
  2. The MONITOR system privilege is required in order to invoke    the locking/blocking detection logic.
  3.   

 

    SAP IQ 15.4

                                                                                                          

      Driver   

      SAP IQ ODBC driver   

      Version   

      12.00.01.3019 on Windows (x64) and 12.00.01.3761 on Linux (x64) - Both drivers can be installed from the SAP IQ 15.4 ESD #2.

      Status   

      Recommended for use with MobiLink

      Client s/w   

      None

      OS   

          Windows    

          XP, Vista, 7, Server 2003, Server 2008 and 2008 R2    

          Linux    

          Redhat Enterprise Linux 5, 6
  SuSE Enterprise 10, 11    

      Pros   

      All tests passed  

      Cons   

None  

      Notes   

  1. The SAP IQ 15.4 server binaries must be from SAP IQ 15.4 ESD #1 or up;
  2. Only a 64-bit MobiLink server is supported on Windows and Linux for consolidated databases running on a SAP IQ 15.4 server;
  3. If an upload contains any data that modifies any sync tables that were defined on the IQ store and if the MobiLink server is running with more than one concurrent database worker threads or the MobiLink server is currently running in a server farm, all the uploads must be serialized, because SAP IQ 15 server allows only a single connection to modify a given table on the IQ store at any given time.  This requirement can be achieved, if the begin_upload connection script is written to include or to use the following SQL statement
        LOCK TABLE table_name IN WRITE MODE WAIT time_string
    where table_name is the name of a table that is defined on the IQ store and the time_string gives the maximum time period to lock the table.  The table can be as simple as the one defined as
        create table coordinate_upload ( c1 int )
    It is not required to have any data in this table.
    If any of the other MobiLink server transactions is required to modify any IQ tables, all of these transaction must be serialized.  The same logic mentioned above can be used.
    This technique is considered more efficient than the MobiLink server to retry on each transaction automatically and users will get better performance.
  4.   

Permission requirements

  
    Permission to EXECUTE on SP_IQTRANSACTION - required by MobiLink server to use snapshot isolation for download  

 

    Oracle 10g, 11g, and 12.1

    Oracle 12.1

                                                                                                            

      Driver   

      iAnywhere Solutions 16 - Oracle ODBC Driver
   

      Version   

      16.00.00     

      Status   

      Recommended for use with MobiLink

      Client s/w   

      Oracle 12.1 client, version 12.1.0.1.0        

Warning: There is a behavior change in the Oracle OCI library, versions 12.1.0.2.0 and up      for stored procedure calls with INOUT parameters. This behavior change can cause data      corruption with current versions of MobiLink server. Therefore, in order to avoid data      corruption, any Oracle OCI library versions greater than or equal to 12.1.0.2.0 should      not be used with the MobiLink server until further notice.

      OS   

        Windows  

        7, Server 2008, Server 2008 R2, and Server 2012  

        Linux  

        Redhat Enterprise Linux 5, 6
SuSE Enterprise Linux 11  

          Solaris  

          11  

      Pros   

      All tests passed

      Cons   

      None

      Notes   

      
  1. Before using this driver, you must install Oracle 12.1 client.    To load this driver, you must set Oracle client libraries in your LD_LIBRARY_PATH    (Linux, Solaris) or LIBPATH (AIX).
  2.   
  3. TNS server name on Windows DSN setting and ServerName in Linux and Unix .odbc.ini are Oracle TNS service    name defined in $ORACLE_HOME/network/admin/tnsnames.ora
  4.   
  5. The default setting of "Procedure return results or uses VARRAY parameters" on Windows or ProcResults    on Linux and Unix is 'No'.
  6.   
  7. Result sets can now be returned by stored procedures through the Oracle    implicit result set regardless of the setting for the "Procedure    return results or uses VARRAY parameters" parameter.
  8.   
  9. 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.
  5.   

 

    Oracle 11g

                                                                                                                            

      Driver   

      iAnywhere Solutions 16 - Oracle ODBC Driver
   

      Version   

      16.00.00     

      Status   

      Recommended for use with MobiLink

      Client s/w   

      Oracle 11g client

      OS   

Windows  

XP, Vista, 7, Server 2008, Server 2008 R2, and Server 2012  

Linux  

        Redhat Enterprise Linux 5, 6
SuSE Enterprise Linux 10, 11  

        Solaris  

10, 11  

        AIX  

        6.1, 7.1  

      Pros   

      All tests passed

      Cons   

      None

      Notes   

      
  1. Before using this driver, you must install Oracle 11g client.    To load this driver, you must set Oracle client libraries in your LD_LIBRARY_PATH    (Linux, Solaris) or LIBPATH (AIX).
  2.   
  3. TNS server name on Windows DSN setting and ServerName in Linux and Unix .odbc.ini are Oracle TNS service    name defined in $ORACLE_HOME/network/admin/tnsnames.ora
  4.   
  5. The default setting of "Procedure return results or uses VARRAY parameters" on Windows or ProcResults    on Linux and Unix is 'No'.
  6.   
  7. 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.
  8.   

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.     
  3. Permission to SELECT from SYS.GV_$TRANSACTION - required by MobiLink    server to do TIMESTAMP based downloads
  4.     
  5. Permission to SELECT from SYS.V_$SESSION - required by MobiLink    server to determine the SID and SERIAL# values of the current    session
  6.     
  7. Permission to SELECT from DBA_OBJECTS, SYS.GV_$LOCK and SYS.GV_$SESSION    - required by MobiLink server locking/blocking detection logic.
  8.   

 

    Oracle 10g

                                                                                                                            

      Driver   

      iAnywhere Solutions 16 - Oracle ODBC Driver
   

      Version   

      16.00.00     

      Status   

      Recommended for use with MobiLink

      Client s/w   

      Oracle 10g client

      OS   

        Windows  

        XP, Vista, 7, Server 2003, Server 2008 and 2008 R2  

        Linux  

        Redhat Enterprise Linux 5
SuSE Enterprise Linux 10, 11  

          Solaris  

          10  

        AIX  

        6.1  

      Pros   

      All tests passed

      Cons   

      None

      Notes   

      
  1. Before using this driver, you must install Oracle 10g client.    To load this driver, you must set Oracle client libraries in your LD_LIBRARY_PATH    (Linux, Solaris) or LIBPATH (AIX).
  2.   
  3. TNS server name on Windows DSN setting and ServerName in Linux and Unix .odbc.ini are Oracle TNS service    name defined in $ORACLE_HOME/network/admin/tnsnames.ora
  4.   
  5. The default setting of "Procedure return results or uses VARRAY parameters" on Windows or ProcResults    on Linux and Unix is 'No'.
  6.   
  7. 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.
  5.   

 

    Microsoft SQL Server 2008 and 2012

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!

    Microsoft SQL Server 2012

                                                                    

      Driver   

      Microsoft SQL Native Client ODBC Driver   

      Version   

      2011.110.xxxx.xx

      Status   

      Recommended for use with MobiLink

      Client s/w   

      None

      OS   

      XP, Vista, 7, Server 2003, Server 2008, Server 2008 R2, and 2012

      Pros     

      All tests passed

      Cons   

      None

      Notes   

      Be sure to put "SET NOCOUNT ON" at the start of all stored procedures      and batches that are executed via ODBC.

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
  4.   

 

    Microsoft SQL Server 2008

                                                                    

      Driver   

      Microsoft SQL Native Client ODBC Driver   

      Version   

      2009.100.xxxx.xx

      Status   

      Recommended for use with MobiLink

      Client s/w   

      None

      OS   

          XP, Vista, 7, Server 2003, Server 2008, Server 2008 R2, and 2012

      Pros     

      All tests passed

      Cons   

      None

      Notes   

      Be sure to put "SET NOCOUNT ON" at the start of all stored procedures      and batches that are executed via ODBC.

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
  4.   

 

    IBM DB2 9.7 and 10.1

    Important:

  • DB2 AS/400 is not supported.
  • Any DB2 Java stored procedures used in MobiLink synchronization should      always immediately set autocommit to OFF, for example by using      getConnection.setAutoCommit(false).

    IBM DB2 10.1

                                                                                  

      Driver   

      IBM DB2 ODBC Driver   

      Version   

      10.01.00.xxx (Windows and Linux) -      These drivers can be retrieved from DB2 10.1 FixPack0.

      Status   

      Recommended for use with MobiLink

      Client s/w   

      DB2 UDB Client 10.1

      OS   

      Windows

      XP, Vista, 7, Server 2003, Server 2008 R2, and 2012

      Linux

      Redhat Enterprise Linux 5, 6
      SuSE Enterprise Linux 10, 11
      Ubuntu 10.0.4, 12.0.4

      Pros   

      All tests passed

      Cons   

      None

      Notes   

      
  1. The ODBC driver version must be 10.01.00.xxxx. Older versions of the IBM DB2 ODBC driver should not be use for the MobiLink      server to talk to a DB2 10.1 database, because it can cause data inconsistency.
  2.   
  3. 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.
  4.   
  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.   
  7. 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, libdb2.so. This 64-bit IBM DB2 ODBC driver defines SQLLEN (an ODBC data type) as a 32-bit integer, but the 64-bit MobiLink server and the other ODBC drivers on Linux define SQLLEN as a 64-bit integer.  This disagreement is handled by the SQL Anywhere ODBC driver manager for Linux, when a DSN for DB2 10.1 contains the following entry:
      length32=1
    This is required by the 64-bit MobiLink server on Linux for DB2 10.1.
  8.   
  9. Two database configuration parameters LOCKLIST      and APPLHEAPSZ need to be changed for high load testing. Set LOCKLIST to 500 and APPLHEAPSZ      to 1024.

Permission requirements

  
            Permission to SELECT from SYSIBMADM.MON_LOCKWAITS, SNAPSHOT_APPL_INFO - required by the MobiLink server locking/blocking detection logic.  

 

    IBM DB2 9.7

                                                                                  

      Driver   

      IBM DB2 ODBC Driver   

      Version   

      9.07.300.291 on Windows (x32 and x64) and 9.07.0003 on Linux (x64) -      These drivers can be retrieved from DB2 9.7 FixPack3.

      Status   

      Recommended for use with MobiLink

      Client s/w   

      DB2 UDB Client 9.7

      OS   

      Windows

      XP, Vista, 7, Server 2003, and Server 2008 R2

      Linux

      Redhat Enterprise Linux 5, 6
      SuSE Enterprise Linux 10, 11
      Ubuntu 10.0.4, 12.0.4

      Pros   

      All tests passed

      Cons   

      None

      Notes   

      
  1. The ODBC driver version must be 9.0.7.xxxx. Older versions of the IBM DB2 ODBC driver should not be use for the MobiLink      server to talk to a DB2 9.7 database, because it can cause data inconsistency.
  2.   
  3. 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.
  4.   
  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.   
  7. On Linux, you need to run 'source db2profile' to export DB2 environment        variables. db2profile is in the home directory under your DB2 installation.
  8.   
  9. Two database configuration parameters LOCKLIST      and APPLHEAPSZ need to be changed for high load testing. Set LOCKLIST to 500 and APPLHEAPSZ      to 1024.

Permission requirements

  
            Permission to SELECT from SYSIBMADM.LOCKWAITS, SNAPSHOT_APPL_INFO - required by the MobiLink server locking/blocking detection logic.  

 

    MySQL 5.1.3 and 5.5.16

    MySQL 5.5.16

                                                                        

      Driver   

      MySQL ODBC driver   

      Version   

      5.01.06.00 (Win32 and 64) and 05.01.0006 (Linux x64).

      Status   

      Recommended for use with MobiLink

      Client s/w   

      None

      OS   

      Windows

XP, Vista, 7, Server 2003, Server 2008, Server 2008 R2, and Server 2012

      Linux

      Redhat Enterprise Linux 5
      SuSE Enterprise Linux 10, 11
      Ubuntu 10.0.4

      Pros   

      All tests passed

      Cons   

      None

      Notes   

      
  1. Storage Engine:  

    MySQL offers a set of storage engines in a MySQL server and some    storage engines are ACID compliant and some are not. The MobiLink    server requires an ACID compliant storage engine, such as InnoDB,    Falcon. Please make sure the default storage engine is ACID    compliant. If the default storage engine is not ACID compliant,    please make sure all the MobiLink server system tables are created    using an ACID compliant storage engine.

  2.   
  3. Stored Procedures:

    The MySQL ODBC driver does not support inout or out parameters for    stored procedure calls. Therefore, all procedures that need inout    parameters must be written as functions that can return an out value.

    The MobiLink server events that require inout parameters, such as    authenticate_user, handle_error, modify_user must be implemented    as functions and run using a select statement, like
              select function_name( ?, ?, ?, ... )
        and not
              { call function_name( ?, ?, ?, ... ) }
        Then the MobiLink server will catch the return value properly.

    If the MobiLink server scripts use named parameters, the parameters    will not be changed after execution of the script. User-defined named    parameters, e.g. {ml u.my_var} are thus not supported.

  4.   
  5. Cursor Scripts:  

    The upload_fetch, download_cursor, or download_delete_cursor event may    be written as a select statement and the MobiLink server uses the    read-committed isolation level to execute the select statement.    However, with the read-committed isolation, the    MySQL ODBC driver may allow the MobiLink server to read uncommitted    operations (inserts, updates and deletes).  Then with this behavior,    synchronization data would not be consistent between the consolidated    and remote databases.  This problem has been reported to MySQL.  

    To work around this problem, all the select statements for the upload_fetch,    download_cursor, and download_delete_cursor events must contain a    "lock in share mode" clause.  For instance, a download_cursor script    should be written as
              select col1, col2, ..., coln from a_sync_table where last_modified > ? ... lock in share mode
        if it is a select statement.  With the "lock in share mode" clause,    the select statement will be blocked by any uncommitted operations    made by the other connections on the same table and then upload    updates and download data will be consistent in the consolidated and    remote databases.  

  6. Linux Platforms:  

    There are two ways to specify an ODBC configuration file on Linux:  

    a) Place the file ODBC.INI (the file name must be in upper case) or    symbolic link, ODBC.INI in the home directory of the current user;
      b) Create an environment variable, ODBCINI and setup this environment    variable by pointing it to the real ODBC configuration file.
        

    A sample DSN for MySQL on UNIX can be
      [a_mysql_dsn]
      Driver=full_path/libmyodbc5.so
      server=host_name
      uid=user_name
      pwd=user_password
      database=database_name

  7.   

 

    MySQL 5.1.3

                                                                        

      Driver   

      MySQL ODBC driver   

      Version   

      5.01.06.00 (Win32 and 64) and 05.01.0006 (Linux x64).

      Status   

      Recommended for use with MobiLink

      Client s/w   

      None

      OS   

      Windows

      XP, Vista, 7, Server 2003, Server 2008 and 2008 R2

      Linux

      Redhat Enterprise Linux 5
      SuSE Enterprise Linux 10, 11
      Ubuntu 10.0.4

      Pros   

      All tests passed

      Cons   

      None

      Notes   

      
  1. Storage Engine:  

    MySQL offers a set of storage engines in a MySQL server and some    storage engines are ACID compliant and some are not. The MobiLink    server requires an ACID compliant storage engine, such as InnoDB,    Falcon. Please make sure the default storage engine is ACID    compliant. If the default storage engine is not ACID compliant,    please make sure all the MobiLink server system tables are created    using an ACID compliant storage engine.

  2.   
  3. Stored Procedures:

    The MySQL ODBC driver does not support inout or out parameters for    stored procedure calls. Therefore, all procedures that need inout    parameters must be written as functions that can return an out value.

    The MobiLink server events that require inout parameters, such as    authenticate_user, handle_error, modify_user must be implemented    as functions and run using a select statement, like
              select function_name( ?, ?, ?, ... )
        and not
              { call function_name( ?, ?, ?, ... ) }
        Then the MobiLink server will catch the return value properly.

    If the MobiLink server scripts use named parameters, the parameters    will not be changed after execution of the script. User-defined named    parameters, e.g. {ml u.my_var} are thus not supported.

  4.   
  5. Cursor Scripts:  

    The upload_fetch, download_cursor, or download_delete_cursor event may    be written as a select statement and the MobiLink server uses the    read-committed isolation level to execute the select statement.    However, with the read-committed isolation, the    MySQL ODBC driver may allow the MobiLink server to read uncommitted    operations (inserts, updates and deletes).  Then with this behavior,    synchronization data would not be consistent between the consolidated    and remote databases.  This problem has been reported to MySQL.  

    To work around this problem, all the select statements for the upload_fetch,    download_cursor, and download_delete_cursor events must contain a    "lock in share mode" clause.  For instance, a download_cursor script    should be written as
              select col1, col2, ..., coln from a_sync_table where last_modified > ? ... lock in share mode
        if it is a select statement.  With the "lock in share mode" clause,    the select statement will be blocked by any uncommitted operations    made by the other connections on the same table and then upload    updates and download data will be consistent in the consolidated and    remote databases.  

  6. Linux Platforms:  

    There are two ways to specify an ODBC configuration file on Linux:  

    a) Place the file ODBC.INI (the file name must be in upper case) or    symbolic link, ODBC.INI in the home directory of the current user;
      b) Create an environment variable, ODBCINI and setup this environment    variable by pointing it to the real ODBC configuration file.
        

    A sample DSN for MySQL on UNIX can be
      [a_mysql_dsn]
      Driver=full_path/libmyodbc5.so
      server=host_name
      uid=user_name
      pwd=user_password
      database=database_name

  7.   

Comments

Delete Document

Are you sure you want to delete this document?