ArpeTeradata — Licensing
ArpeTeradata is a proprietary Arpeio driver. It validates an Arpeio licence when a database is initialised, and again at every connection, before the logon. This page covers supplying your licence: where to put it and how to check it. To obtain a licence, contact sales@arpe.io or see https://www.arpe.io.
The same licence mechanism and the shared ARPEIO_ADBC_* environment variables
are used by every driver in the family, so one licence setup carries across
them. The installer puts your licence next to the driver for you
(--license / -License).
Where the driver looks for a licence
At AdbcDatabaseInit the driver resolves a licence from the following sources, in
order. The first source that is present wins:
arpeio.adbc.license: ADBC database option, the licence blob inline.arpeio.adbc.license_file: ADBC database option, path to a.licfile.ARPEIO_ADBC_LICENCE: environment variable, the licence blob inline.ARPEIO_ADBC_LICENCE_FILE: environment variable, path to a.licfile.arpeio_adbc.lic: a file placed next to the driver library (libarpeteradata_adbc_driver-linux-x64.so/arpeteradata_adbc_driver-win-x64.dll).
Note the British spelling
LICENCEin the environment-variable names.
If none of these yields a valid licence, AdbcDatabaseInit fails with
UNAUTHORIZED (INVALID_ARGUMENT for a malformed licence or a missing licence
file). The message names an ARROW_LIC_* code; see
Troubleshooting. The same check runs again at every
AdbcConnectionInit, before any network I/O. A licence that expires, or a
licence file removed while the process runs, therefore stops new connections.
The licence is an ECDSA P-256 / SHA-256 signed token. It must name
ArpeTeradata, or the whole driver family.
Supplying it yourself
As an ADBC option (keeps it out of the environment):
import adbc_driver_manager.dbapi as dbapi
conn = dbapi.connect(driver="arpeteradata", db_kwargs={
"adbc.arpeteradata.server": "td.example.com",
"adbc.arpeteradata.username": "alice",
"adbc.arpeteradata.password": "<pw>",
"arpeio.adbc.license_file": "/etc/arpeio/arpeio_adbc.lic",
})
As an environment variable (one setting for every Arpeio driver in the process):
export ARPEIO_ADBC_LICENCE_FILE=/etc/arpeio/arpeio_adbc.lic
# or the blob inline:
export ARPEIO_ADBC_LICENCE="$(cat /etc/arpeio/arpeio_adbc.lic)"
A file next to the library. Drop arpeio_adbc.lic in the same directory as
the loaded .so/.dll (source #5). No option or environment variable is then
needed at runtime.
Checking the licence state
Read the current state with the read-only arpeio.adbc.license.status
database option (via GetOption). It never fails and never opens a connection:
<state>;code=<ARROW_LIC_*>;tier=<tier>;expires=<epoch>
The value reports the state (valid, grace, expired, none or invalid),
the result code, the licence tier, and the expiry as a Unix epoch.
A licence past its expiry date but still inside its grace period keeps working.
The driver prints a warning to standard error once, at AdbcDatabaseInit, with
the expiry date and the days left. Once the grace period ends, connections
fail.
Troubleshooting
ArpeTeradata licence check failed [ARROW_LIC_…]: … (source: …). None of the
five sources above yielded a valid licence, or the licence has expired or does
not cover ArpeTeradata (the message then lists the drivers it covers).
- Confirm the file exists and is readable at the path you configured.
- If you rely on the file-next-to-the-library fallback, confirm
arpeio_adbc.licreally sits in the same directory as the loaded.so/.dll. It must be the loaded copy; a stale copy elsewhere on the path won't count. - Check expiry and tier via
arpeio.adbc.license.status. - Contact sales@arpe.io for a renewal or a licence covering additional drivers.
AdbcDatabaseInit has not succeeded on this database. A connection was
opened on a database whose initialisation failed, usually the licence check.
Fix the first error.
See also
- Connection: the licence options in the full option reference
- Troubleshooting: the licence error in context