No More Handles Error after approximate 5500 transactions
aland at deployingradius.com
Thu Apr 22 19:50:37 CEST 2021
On Apr 22, 2021, at 12:57 PM, Michael Wyatt <wyatt at us.ibm.com> wrote:
> I am migrating some radius servers from RHEL6 with freeradius 3.0.16 to
> RHEL7 with freeradius 3.0.21. Our backend database is db2 using the
> rlm_sql_db2.so driver. On the RHEL6 nodes we were using the pre-built
> RedHat RPM packages for the freeradius and the rlm_sql_db2-3.0.0.so that
> came from an old installation but I'm not certain of its origins. With
> the move the RHEL7 I tried using the RedHat RPMs with the existing
> rlm_sql_db2-3.0.0.so but that failed miserably as expected. I built the
> rlm_sql_db2-3.0.0.so from source and tried that with the pre-built RPMs
> and that also failed miserably. Now I'm running with freeradius that was
> built from source code on a RHEL7 box. Freeradius and the rlm_sql_db2.so
> driver. This combination works and packets seem to run fine, db2 tables
> are updated as expected. Devices accepted/rejected as expected.
The server and modules should be all built using the same version. And 3.0.0 is *very* old. Don't use it.
> However, when I run a load of test traffic through the radius devices I am
> getting db2 client errors after about 5500 transactions. The specific
> error message I see in the radius logs is this:
> Tue Apr 20 18:37:46 2021 : ERROR: (17291) ERROR: rlm_sql_db2:
> HY014: [IBM][CLI Driver] CLI0129E An attempt to allocate a handle failed
> because there are no more handles to allocate. SQLSTATE=HY014
That error is produced by either the underlying SQL driver, or by the SQL database. This isn't much we can do in FreeRADIUS to fix it.
FreeRADIUS works fine for millions of transactions with other databases. So we know that code works.
You might try using the rlm_sql_unixodbc driver to talk to DB2. That seems to be a lot better.
More information about the Freeradius-Users