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

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

                                                                                  

      Driver    

      HDB ODBC driver    

      Version    

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

      Status    

      Recommended for use with MobiLink (versions 16.0.0.1877 and up for Windows, 16.0.0.1824 and up for 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:

    HANA does not support calling stored procedures with NULLs for     scalar input parameters.  Therefore, the upload_insert and     upload_update scripts should not be implemented as stored     procedure calls for any sync tables with nullable columns.  The     MobiLink server will replace 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. 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.      

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

      OS    

        Windows     

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

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

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

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

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?