Error Message: Invalid packet length

This error typically occurs when using an SQL-92 driver (as opposed to an SQL-89 driver) against a Progress DBMS which is not accepting SQL-92 connections.

The Progress instance may simply need to be restarted with SQL conenctions enabled on the primary broker, or a secondary SQL-92 Broker may be configured to accept ODBC connections.

The latter case can be confirmed by the occurrence of the following error message in the Progress native database log --

Server's received count 1 does not equal client(1)'s send count 16777216.

A secondary SQL broker is generally started with a second .pf file, containing at least the following parameters --

-db <DatabasePath?> Path to database. Same as that in the primary .pf file.
-H <Hostname> Hostname. Same as that in the primary .pf file.
-S <ServiceName?> Service name for this broker. Port must also be assigned in /etc/services. Both name and port must differ from those of the primary broker.
-N TCP Always, TCP. Same as that in the primary .pf file.
-Mpb <MaxServers?> Sets the maximum number of servers for this broker.
-ServerType SQL Specifies that this broker will handle SQL connections.
-m3 Specifies that this is a secondary broker.


Start this broker after the first one, with a command like (your exact command may vary) --

proserve -pf /path/to/second.pf

Any other parameters set in the primary .pf file will be inherited.

One thing you may need to override/change on a secondary SQL broker for OpenEdge 10.1B and higher is the -Ma parameter. This is typically set low for an ABL/4GL broker, but high for an SQL broker.