Change Log

mxODBC Connect Change Log

The change log includes a detailed description of all changes to this package in the recent releases.
Version: 2.0.3

Changes from 2.0.2 to 2.0.3:

Security Enhancements

Server Enhancements

  • Updated the server to use mxODBC 3.2.2 for database connectivity.

Client Enhancements

Performance Enhancements

  • MS SQL Server performance can now be much enhanced, and increased to levels beyond that of mxODBC Connect 2.0.2 and previous releases, by adjusting the default cursor type to forward-only cursors instead of static cursors:
# Connect to the remote database
from mx.ODBCConnect.Client import ServerSession
session = ServerSession(...)
ODBC = session.open()
connection = ODBC.DriverConnect(...)
# Use the faster forward-only cursors
connection.cursortype = ODBC.SQL.CURSOR_FORWARD_ONLY
# Cursors created on this connection will then default
# to forward only cursors
cursor = connection.cursor()
The performance increase compared to mxODBC Connect 2.0.2 is enormous: from 2-3x faster executes/fetches for average queries, up to 300x faster for simple cases.

In mxODBC Connect 2.1, we will switch to using forward-only cursors per default for all database backends.
  • IBM DB2 can benefit from the same performance enhancements using forward-only cursors.
The effect is a lot smaller, but still noticeable: up to 2x faster executes/fetches with forward-only cursors, compared to mxODBC Connect 2.0.2.
  • Added documentation to explain the different cursor types, compatibility with different database backends and effects on performance to the mxODBC documentation.

Changes from 2.0.1 to 2.0.2:

Security Enhancements

Server Enhancements

  • Added support for unlimited connection licenses.
  • The server installer on Windows will now install the Microsoft Visual C++ 2008 SP1 Redistributable Package (if necessary) instead of shipping with side-by-side runtime DLLs. This resolves installation issues on fresh Windows server installations.
  • Improved the active connection logging to show more accurate figures in situations where a lot of new connections are opened at once.
  • mxODBC Connect Server will now free resources on broken connections much earlier than before. The setting is configurable using the max_session_reconnect_time parameter in the server's [Activity] configuration and defaults to 60 seconds.

Client Enhancements

  • No fixes were necessary.

Misc

  • Added a note that even with an unlimited license, the server sill uses an adjustable max_session configuration parameter to limit the effect of denial-of-service attacks.

Changes from 2.0.0 to 2.0.1:

API Enhancements:

  • Added support for returning SQL Server TIME columns as time value instead of as string.
  • Added a work-around to prevent truncation warnings with the SQL Server ODBC driver when using .executemany(..., direct=1). Thanks for Michael Bayer.

Server Enhancements:

  • Upgraded the mxODBC used in the server to version mxODBC 3.2.1.

Client Enhancements:

  • Added egenix-mx-base dependency to mxODBC Connect egg files.

Misc:

  • Added hint on how to work with REF CURSORS in Oracle stored procedures. Thanks to Etienne Desgagné.

Changes from 1.0.2 to 2.0.0:

Integration:

  • mxODBC Connect Server is now also available as native 64-bit build for Windows 2008R2, Vista and 7 x64.
  • All mxODBC Connect Server executables are now signed on Windows to reduce the number of UAC dialogs during installation and use.
  • The mxODBC Connect tray app was rewritten in C to reduce the memory footprint.
  • The mxODBC Connect Server tray application was updated to work on Windows 7 as well.
  • mxODBC Connect now supports Python 2.7 both on the client and server side.
  • mxODBC Connect Server now supports unixODBC 2.3 or later on Unix platforms. unixODBC 2.2 is no longer supported on 64-bit systems.

API Enhancements:

  • mxODBC Connect Server now uses mxODBC 3.2 internally and makes its API available in the mxODBC Connect Client. This is a major step forward from the mxODBC 3.0 version used in mxODBC Connect Server 1.0.
  • mxODBC Connect Server now features all the ODBC driver compatibility enhancements provided by mxODBC 3.2, including better support for MS SQL Server Native Client, Oracle Instant Client, Sybase ASE, IBM DB2, Teradata and Netezza.
  • mxODBC Connect Client comes with all mxODBC 3.2 enhancements, including:
    • connection and cursor objects can be used as context managers
    • adjustable parameter styles (qmark or named)
    • connection .autocommit attribute to easily switch on autocommit
    • adjustable timestamp resolution
    • new possibilities to set connection and cursor options to adjust the ODBC objects to your application needs, e.g. set a connection read-only or set a query timeout
    • adjustable decimal, datetime and string formats
    • adjustable warning format to be able to handle server warnings without client interaction
    • greatly improved result set scrolling support
    • Unicode support for all catalog methods
    • Access to additional result set meta data via cursor.getcolattribute()
  • See the included mxODBC 3.2 documentation for more details..

Asynchronous Execution:

  • mxODBC Connect Client now integrates directly with gevent, allowing client applications to run asynchronous tasks while performing remote database queries.
  • mxODBC Connect Client also works with a monkey-patched gevent environment.

Security:

  • mxODBC Connect now uses the official IANA registered port 6632 (mxodbc-connect) for both plain text and SSL-encrypted communication.
  • Added STARTTLS support to be able to use a single port for both unencrypted and SSL-encrypted communication.
  • mxODBC Connect Client no longer requires a client certificate and key for SSL connections.
  • mxODBC Connect Client now allows selecting the used SSL module from two available options: Python standard lib ssl module and pyOpenSSL.
  • Upgraded to pyOpenSSL 0.13.0-1.0.0j on the server side.
  • mxODBC Connect Server will now use SHA1 digests for client certificate checks instead of MD5 to improve security.
  • mxODBC Connect Client can now additionally read client certificate and private key from the config_data dictionary instead of from files only - provided that pyOpenSSL is used (Python's ssl module doesn't support this).
  • Client certificate checks are now also supported when using the standard Python ssl module on the client side.

Fixes:

  • mxODBC Connect Server will now return ProtocolErrors to the client side and close the connection in case it finds that it cannot decode the client side pickle.
  • Fixed a problem with database connections being kept alive in sessions that were not explicitly closed by the client application.
  • mxODBC Connect pure Python prebuilt archives did not always install on non-Linux platforms.
  • ServerSession.close() will no longer cause error messages at Python exit time, if the close action cannot be communicated to the server.
  • mxODBC Connect Client will now raise a mx.ODBCConnect.Error.ConnectionFailureError in case of server connection failures due to timeouts.
  • Fixed a bug in session.open() which caused the module_name parameter not to get used.

Misc:

  • Python 2.3 and 2.4 support was removed from mxODBC Connect Client.
  • The start menu entry on Windows now includes a link to the correct ODBC manager to be used with mxODBC Connect Server. This helps finding the right one on Windows x64 platforms which provide two versions.
  • mxODBC Connect Client will now directly install into the correct directories on Linux distributions that use different directories for platform dependent and non-dependent directories (e.g. 64-bit RedHat and 64-bit OpenSUSE), without needing additional options on the install command.
  • Added backwards compatibility support for the old-style using_ssl way of configuring server connections.

Changes from 1.0.1 to 1.0.2:

  • Upgraded the eGenix pyOpenSSL version included in mxODBC Connect Server to 0.9.0-0.9.8k
  • Fixed a problem with connections sometimes timing out after 10 seconds of inactivity.
  • Connection errors now cause an implicit immediate close of the connection (without having to wait for a timeout). This allows the client to shutdown much faster when exiting the Python client application in the situation of a broken server connection.
  • Clarified the INI file format used by mxODBC Connect Server and Client and added an extra section for this to the documentation.

Changes from 1.0.0 to 1.0.1:

  • Added cursor iterator support to mxODBC Connect Client.
  • Upgraded mxODBC version included in mxODBC Connect Server to 3.0.3
  • Fixed a problem with database connections being kept alive in sessions that were not explicitly closed by the client application.
  • Fixed a bug in print_resultset() due to a missing import in one of the modules.
  • mxODBC Connect Client prebuilt archives failed to install on non-Linux platforms.
  • mxODBC Connect Client's ServerSession.close() will no longer cause error messages at Python exit time, if the close event cannot be communicated to the server.

Changes from 0.9.3 to 1.0.0:

  • Further improved the mxODBC Connect network layer, resulting in much better fetch and round-trip performance, esp. for SSL connections
  • Improved the documentation, added screenshots and more configuration notes as well as tips on how to tune the network performance
  • Fixed a problem with a full Windows event log causing the mxODBC Connect Server not to start
  • The main_timeout configuration setting in both client and server configurations was split into send_timeout and receive_timeout for better customization on asymmetric network setups
  • The default for the client's server_connections configuration option now is the sorted list of connection section names

Changes from 0.9.2 to 0.9.3:

  • Enhanced the mxODBC Connect client-server performance substantially
  • Added optional compression of all network communication (enabled per default)
  • Fixed a bug related to a missing DLL in the Windows installer of 0.9.2
  • Fixed a problem with fail-over on SSL-enabled connections

Changes from 0.9.1 to 0.9.2:

  • Enhanced the SQL Server in the Linux mxODBC Connect Server version
  • Improved the documentation and clarified a few things
  • Added more FAQs
  • Added Python 2.6 support