mxODBC Connect™ is a client-server product from eGenix that enables fast, easy and secure access from any Python application to remote databases on your network, using the same well-established mxODBC Python DB-API 2.0 compatible API.
Unlike our mxODBC Python ODBC Interface, mxODBC Connect is designed as client-server application, so you no longer need to find production quality ODBC drivers for all the platforms you target with your Python application.
Instead you use an easy to install royalty-free Python client library which connects directly to the mxODBC Connect database server over the network.
This makes mxODBC Connect the ideal basis for writing cross-platform multi-tier database applications in Python, especially if you develop applications that need to communicate with databases such as MS SQL Server and MS Access, Oracle Database, IBM DB2 and Informix , Sybase ASE and Sybase Anywhere, MySQL, PostgreSQL, SAP MaxDB and many more, that run on remote Windows or Linux machines.
By removing the need to install and configure ODBC drivers on the client side, mxODBC Connect greatly simplifies setup, rollout and configuration of database driven client applications, while at the same time making the network communication between client and database server more efficient and more secure.
You can get a significant performance boost with mxODBC Connect 2.0 when using MS SQL Server or IBM DB2, by upgrading to version 2.0.4 or later, and using the following server configuration to have mxODBC Connect work with forward-only cursors per default:
[Connection_Example]
interface = 127.0.0.1
netmask = 255.255.255.0
...
# Use the faster forward-only cursors for this connection connection_cursortype = SQL.CURSOR_FORWARD_ONLY
Using the above configuration you can have all applications using this connect work with forward-only cursors per default.
The performance increase for MS SQL Server compared to using mxODBC Connect 2.0's default of using static cursors is enormous: from 2-3x faster executes/fetches for average queries, up to 300x faster for simple cases.
For IBM DB2 the effect is smaller, but you still get up to 2x faster executes/fetches with forward-only cursors.
For mxODBC Connect 2.1 we will default to forward-only cursors, so that the above setting won't be necessary.
ODBC, or Open Database Connectivity, is the industry standard API for connecting applications to databases. In order to facilitate setting up ODBC connectivity, operating systems typically provide ODBC managers which help set up the ODBC drivers and manage the binding of the applications against these drivers. On Windows and Mac OS X the ODBC manager is built into the system. On Unix platforms, there are two ODBC managers, unixODBC and iODBC, which provide the same functionality on most Unix systems.
mxODBC, our stand-alone Python Database Interface, uses these ODBC managers to connect your Python application to the database. On Windows this is a straight-forward approach, since database vendors ship production quality Windows ODBC drivers for their databases.
On platforms such as Linux, Solaris, FreeBSD and Mac OS X, however, it is often not easy to get production quality ODBC drivers.
This is where mxODBC Connect makes a big difference...
mxODBC Connect consists of two parts:
The server part is a stand-alone application that uses our high-performance database adapter mxODBC to connect to the database server via ODBC.
The client package communicates with the server part over a TCP/IP network, optionally using:
Features that many other database drivers fail to deliver.
Instead of installing mxODBC and an ODBC driver on every client machine that runs your Python application, you only have to download and install the mxODBC Connect Client on your client machine.
The mxODBC Connect Client is an add-on to our eGenix.com mx Base Distribution which easily installs and runs on all major Python platforms, so you no longer have to worry about getting production quality ODBC drivers for all the client platforms you intend to support with your application.
On the server side, you install the mxODBC Connect Server. This stand-alone application comes with an easy to use installer for Windows and Linux and connects to the ODBC driver on the server machine in order to talk to the database kernel.
By having all server components on the same machine, you benefit from the added performance due to reduced low-level network communication, direct low-latency connection to the database kernel and the advantage of running queries on the more powerful database server machine.
The network protocol used by mxODBC Connect is optimized for the mxODBC Python Database API. As a result, you can achieve much better overall performance by using mxODBC Connect.
mxODBC Connect solves the following typical use cases:
The mxODBC Connect Clients requires installation of our Open-Source eGenix.com mx Base Distribution.
If you also want to use SSL encrypted network communication, you can
either use the standard Python ssl module or install the eGenix.com pyOpenSSL Distribution
to benefit from more advanced features. Both eGenix distributions come
as easy to install pre-built binaries and are available on a wide
variety of platforms.
The only other requirement is a working Python 2.5, 2.6 or 2.7 installation.
You do not need to have ODBC drivers for the platform on which you plan to run the mxODBC Connect Client package.
The eGenix mxODBC Connect Server includes everything you need to connect the server side ODBC manager to the mxODBC Connect Clients.
However, it does not include an ODBC manager or any ODBC drivers. You have to have these installed on the server machine in order to be able to use mxODBC Connect Server.
On Windows, the situation is very simple: most databases come with ODBC drivers and register them with the Windows ODBC manager that's part of every Windows system.
Please consult the ODBC driver documentation for details on how to setup ODBC data sources. The mxODBC User Manual also includes a section on this topic and some helpful hints in case you run into problems.
On Linux, you will have to install one of the popular ODBC managers iODBC, unixODBC or DataDirect and then register the ODBC drivers for your database with these ODBC managers.
Linux systems usually come with at least one of these ODBC managers preinstalled. Please see the mxODBC User Manual for ODBC data source setup instructions.
We currently support these Linux distributions for the mxODBC Connect Server: RedHat, Ubuntu, Debian and openSUSE. It will likely run on most other recent Linux distributions as well.
Depending on customer feedback, mxODBC Connect Server will also be made available for other platforms.
If you have questions, please contact our sales team.
The eGenix.com mxODBC Connect Server and Client products are made available under the terms and conditions of the eGenix.com Commercial License Agreement, Version 1.3.0 (PDF file).
The mxODBC Connect Client is a royalty-free download and can be installed on any number of machines, subject to the eGenix.com Commercial License Agreement, Version 1.3.0 together with the eGenix.com mxODBC Connect Client 2.0.0 General Proof of Authorization.
The only condition is that you have licensed the mxODBC Connect Server for evaluation or production use.
Licenses are required to run the mxODBC Connect Server. You purchase licenses based on the number of concurrent database connections you intend to open with the mxODBC Connect Server and the number of mxODBC Connect Server installations you require.
When purchasing a license for the mxODBC Connect Server product, you will receive a digitally signed Proof of Authorization (POA) license.txt file together with a license.py file that you need in order to provide to the mxODBC Connect Server installer.
Note: mxODBC Connect Server contains a number of open-source third-party products. For details please see the mxODBC Connect User Manual and Installation Guide.The license texts for these third-party products are available in the eGenix.com Third-Party License Guide 2.0.
If you would like to evaluate the eGenix.com mxODBC Connect product, please request an evaluation license or send an email to the eGenix.com Sales Team and include the following information: name of the licensee, number of evaluation licenses.
We will then send you the requested number of evaluation licenses by email. The evaluation licenses each permit installation on 1 CPU and allow up to 20 concurrent database connections. They have a built-in timeout of 30 days, but are otherwise fully functional.
If you are satisfied with the product, you can then proceed to the next section.
Production licenses for the mxODBC Connect Server product can be bought via our eGenix.com Online Shop. Licenses are sold per installation and number of concurrent database connections. We offer licenses for:
For prices and volume discounts please check the mxODBC Connect Server License Shop Page.
We also offer site and corporate licenses. Please write to sales@egenix.com for quotes on these.
After purchase, you will receive the necessary license files from eGenix.com within two business by email to the shipping address you specified in the ordering process.
If you need to buy licenses for third parties (e.g. as contractor or reseller), please consult sales@egenix.com for instructions.
If you have questions about the ordering process, or the needed number of licenses, please write to the eGenix.com Sales Team.
If you are intending to upgrade from an existing mxODBC Connect Server license to the new mxODBC Connect Server 2.0, please contact the eGenix.com Sales Team with your existing license serials for details for an upgrade discount coupon.
We will give out 20% discount coupons for upgrade purchases going from mxODBC Connect Server 1.x to 2.0. After upgrade, use of the original license from which you upgraded is no longer permitted.
We plan to also offer developer licenses for mxODBC Connect which will then allow you to integrate mxODBC Connect into an application or product. Please contact the eGenix.com Sales Team for details.
The following documentation is available for mxODBC Connect:
mxODBC Connect User Manual and Installation Guide - HTML and PDF
The manual includes an installation guide, a discussion of the design principles behind mxODBC Connect, as well as a reference of the available programming interfaces in the mxODBC Connect Client.
The mxODBC API itself is described in the following manual:
mxODBC User Manual and Reference Guide - HTML and PDF
The manual includes a reference of the available mxODBC programming interfaces.
Please note that the manual refers to the mxODBC package version included in the mxODBC Connect Server, which may be different from the mxODBC version availableas stand-alone package.
mxODBC Connect Server contains a number of open-source third-party products. The licenses for these are available in the eGenix.com Third-Party License Guide 2.0 .
The above PDF files are also available as part of the installation and can be found in the mx/ODBCConnect/Doc/
folder.
"Python Programming On Win32" by Mark Hammond, Andy Robinson has a section on the mxODBC API.
Since mxODBC Connect is designed as client-server application, you need to download components for the server and each of the clients.
The following sections explain the downloads required for the server and client. In this section, we give a brief overview of what you need to download and install.
If you need help with the installation process, please contact support@egenix.com.
A successful installation of mxODBC Connect requires installation of at least one mxODBC Connect Server and a number of mxODBC Connect Clients.
Please note:
Redistribution of these files is not allowed. Please contact the eGenix Sales Team for details about redistribution possibilities and terms.
If you need mxODBC Connect Server for platforms not mentioned here, please contact support@egenix.com for details. It is very likely that we can find a way to help you.
These are quick-install instructions. Please see the mxODBC Connect User Manual and Installation Guide for full details on installation and configuration of the mxODBC Connect Server.
The mxODBC Connect Server is shipped as installer application for Windows and as installation archive for Unix platforms.
Please Note:
The installer on both Windows and Unix will ask for a directory where
you've unzipped the license files, so please make sure you have these
readily available. The installer will then copy the files into the
server installation directory.
Installation using the Windows installers is straight forward: just double-click on the installer EXE file and follow the instructions.
On Unix, you have to untar the installation archive, cd into the installation directory and then run the ./install command as root, e.g.
sudo ./install
The installer will then ask a few questions and guide you through the installation process.
mxODBC Connect Client is a Python extension package suitable for installation on a wide variety of client platforms. It is needed to communicate with the mxODBC Connect Server.
Please note:
Redistribution of these files is not allowed. Please contact the eGenix Sales Team for details about redistribution possibilities and terms.
mxODBC Connect Client is a commercial product for which we do not make the source code available. However, the above prebuilt distribution archives do not depend on the client platform and should install on all Python platforms supported by the eGenix.com mx Base Distribution.
You can also use our egg builds of the packages. Simply point easy_install
to our egg index:
easy_install -i https://downloads.egenix.com/python/index/ucs2/ \If you are using zc.buildout, you only have to register the above PyPI-style index URLs with buildout in the buildout.cfg file and then reference the package by name in the eggs properties.
egenix-mxodbc-connect-client
These are quick-install instructions. Please see the mxODBC Connect User Manual and Installation Guide for full details on installation and configuration of the mxODBC Connect Client.
The mxODBC Connect Client package installation process works just like that of our other Python extension packages.
Installation using the Windows installers is straight forward: just double-click on the installer EXE or MSI file and follow the instructions.
Both installers register the distribution with the Windows software registry, so you can easily uninstall the distribution should you require to do so.
With the new MSI installer you also have the option to run the installer without the GUI or to integrate it into an automatic installation process. Please see the MSI installer documentation on the Python web-site for details.
To uninstall the distribution, please use the standard Windows software registry.
To reduce the number of binaries that we have to create for each release, we have adapted a new generic distribution format that works on all Python platforms: the Prebuilt Distribution Format.
Technically, this format is a standard Python distutils distribution, but with only the build/
directory and without the source tree.
In order to install such a distribution, please follow these instructions:
sudo python setup.py installOn Windows and some other platforms that don't have
sudo
, please run the above without sudo
as administrator or root. The distribution will then be installed into the standard directory
for Python extensions of your Python installation (usually the site-packages/
subdirectory of the Python standard library directory).
To uninstall, follow the same steps as above, but use the command uninstall
instead:
sudo python setup.py uninstall
You will need to be able to sudo on the target machine or know the
root password for the above to work. If you don't have permission to
install packages as root, you can still install the distribution into a
local directory, e.g. ~/lib/python
by using the following installation command:
python setup.py install --home=/home/user/
This will install the distribution into the directory /home/user/lib/python/
.
In order to have Python see this directory and make it useable for
import, you have to adjust the PYTHONPATH environment variable to
include this directory, e.g.
export PYTHONPATH /home/user/lib/python
To see all the possible installation options, run the install script using the help options:
python setup.py install --help
To uninstall, follow the same steps as above, but use the command uninstall
instead:
sudo python setup.py uninstall --home=/home/user/
The egg archives we provide are made available through two PyPI-style indexes which the egg tools setuptools/easy_install/zc.buildout can access to automatically download and install the right egg archive.
There are two indexes, one for Python UCS2 builds:
https://downloads.egenix.com/python/index/ucs2/
and one for Python UCS4 builds:
https://downloads.egenix.com/python/index/ucs4/
Because the mxODBC Connect Client does not use compiled C
extensions, you can choose either of those two indexes for installation.
If you are using a Python UCS2 build, then you can install the egg archives using this command:
easy_install -i https://downloads.egenix.com/python/index/ucs2/ \
egenix-mxodbc-connect-client
For UCS4 builds, please use this command:
easy_install -i https://downloads.egenix.com/python/index/ucs4/ \
egenix-mxodbc-connect-client
The command line parameters for other tools such as pip are similar. Please consult their documentation for details.
In some cases, easy_install and other download tools cannot map the platform name to the name used in the egg archive.
If you get errors during the installation, please manually download the
right egg archive and then run the command directly on the downloaded
egg archive, e.g.
easy_install \
egenix_mxodbc_connect_client-2.0.5-py2.7.egg
eGenix offers these support options:
Professional level support for this product as well as all other eGenix products and Python itself is available directly from the developers at eGenix.com.
eGenix.com offers professional consulting services for all questions and tasks around this product, including customized modifications, help with integration and on-site problem solving. Please contact sales@egenix.com for details.
In order for our users to keep in touch and be able to help themselves, we have created the egenix-users user mailing list.
Please see the change log for details regarding changes to the package between releases.
Older versions of mxODBC Connect, which are still available:
mxODBC Connect Server: This product includes cryptographic software written by Eric Young (eay@cryptsoft.com). This product includes software written by Tim Hudson (tjh@cryptsoft.com). This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)