Easysoft ODBC-ODBC Bridge

Why does it take so long to connect to the server?

Article:
00055
Last Reviewed:
5th January 2024
Revision:
2

In our experiments, it takes less than a 1/10th of a second to connect an application linked directly with the Easysoft ODBC-ODBC Bridge client on Linux to a data source on Windows over a 100Mb Ethernet link, where both machines are on the same LAN. The connection is a small fraction of a second slower for interpreted languages like Perl or if there is a Driver Manager (like unixODBC) between the application and the ODBC-ODBC Bridge client.

If you are experiencing connect times much slower than 1 second you should check the following:

  1. Are the client and server machines on the same Local Area Network (LAN)?

    Connection times can increase dramatically if they are not. Try pinging the server from the client and see what return times you get.

    e.g.

    ping www.easysoft.com
    PING easysoft.com (194.131.236.4): 56 data bytes
    64 bytes from 194.131.236.4: icmp_seq=0 ttl=255 time=0.6 ms
    64 bytes from 194.131.236.4: icmp_seq=1 ttl=255 time=0.1 ms

    In this case, less than 0.6ms - quick. Machines not on the same LAN can show a much greater time and this will be reflected in your ODBC connect times.

  2. Disable Reverse Lookups in the ODBC-ODBC Bridge Server. Performing a reverse lookup on an IP address can be quite slow, depending on how the machine is configured to perform the reverse lookup. You can do this from the ODBC-ODBC Bridge HTTP Server configuration screen. See the Configuration chapter in the ODBC-ODBC Bridge User Guide.

  3. Check that you do not have any tracing turned on. There are multiple places tracing and logging may be turned on:

    1. Make sure that in your odbc.ini file, any lines starting with "Logging = number_greater_than_0" are commented out with # or just delete them (this is ODBC-ODBC Bridge tracing).
    2. If you are using the unixODBC Driver Manager then remove lines that look like "Trace = yes" and "TraceFile = file" or ensure Trace is set to no.
    3. Make sure you have not turned on tracing at the server end. You can check this through a web browser, go to http://server_machine:8890 and then Configuration. Logging should be set to 0. Alternatively on UNIX, examine the server odbc.ini/esoobserver.ini file or on Windows examine the registry for: HKEY_LOCAL_MACHINE SOFTWARE Easysoft ODBC-ODBC Bridge Configuration System Settings Logging.
    4. If using Windows, make sure tracing in the Driver Manager is not turned on. You can check this by going in to the ODBC Administrator and clicking on the tracing tab.

    All of the above default to tracing off or require positive action to turn tracing on.

  4. You can make the ODBC-ODBC Bridge Server start a new thread or a new process for each connection. By default, the ODBC-ODBC Bridge server starts a new thread, but if bit 3 (value 0x4) of the configurable parameter "Flags" is set, the server starts a new process, which is a lot slower. You can check Flags as above for Logging.
  5. Obtaining a license slot adds a small amount of time to a connection (much less a 1/10th of a second). However, if you are limited through your license to a set number of concurrent connections, the ODBC-ODBC Bridge Server, by default, tries 5 times at 3 second intervals to obtain a license slot before giving up. The retry attempts and pause between attempts is configurable via the RetryCount and RetryPause parameters.
  6. Check your application is not turning ODBC tracing on by calling SQLSetConnectAttr(SQL_ATTR_TRACE, SQL_OPT_TRACE_ON).

If after checking the above, you still want faster connections then try using persistent ODBC connections (e.g. odbc_pconnect in PHP ) as these hold connections open for use by a ODBC connection call with the same DSN.

Applies To

Knowledge Base Feedback

* Did this content help you?
* Please select one option based on your first choice:

(* Required Fields)