New features

  • Implemented new database manager for the ZendHQ daemon

The new database manager provides a single API for all the database operations and supports additional database types like PostgreSQL and MariaDB/MySQL.

Supported database server versions are:

  • PostgreSQL 12.20 and newer;
  • MariaDB 10.11 and newer;
  • MySQL 8.0 and newer;

The type of the database is selected using the new include= directive in the ZendHQ INI file by including the database-specific INI file.

NOTE: It is no more possible to configure the names and paths of individual SQLite database files. The database manager now uses the global database.path directive to set the path for the database directory. Existing database_path directives are obsolete and must be removed from the INI file.

If individual SQLite databases were configured to use different paths and names, then they MUST be renamed back to original names and moved to the configured database directory. Refer to the ZendHQ databases documentation for more information.

The ZendHQ daemon warns if it finds obsolete database_path directives and fails to start up with an error, if databases files are configured to be in a different directory or with a different name.

  • Added database module the zendhqctl tool

The database module can be used to test database configuration and migrate existing data from one database configuration to another.

The zendhqctl database test command tests the database connection using the current configuration (the default configuration or the one provided with the --config-file global option or the ZENDHQ_CONFIG_FILE environment variable).

The zendhqctl database migrate command migrates data from a previous database configuration to the current configuration (the default configuration or the one provided with the --config-file global option or the ZENDHQ_CONFIG_FILE environment variable).

The zendhqctl database drop command drops all the ZendHQ tables from the currently configured database (the default configuration or the one provided with the --config-file global option or the ZENDHQ_CONFIG_FILE environment).

  • Added local UNIX socket support to the zendhq_sock daemon extension

The zendhq_sock daemon extension is now listening on a local UNIX socket and provides an interface for the zendhqctl tool to interact with the daemon running on the same machine.

Local UNIX socket clients are system users and have full access to the daemon.

  • Added the --directive = command-line argument to the ZendHQ daemon

The --directive = command-line argument can be used to set or override INI file directives from the command line.

Command-line arguments are processed from the left to the right and override any INI file directives loaded with the --config-file command-line if they come later in the command line.

All the directives are now processed before the daemon is started and sending the SIGUSR1 signal to the running ZendHQ daemon properly reloads the configuration.

  • Added ZendHQ version and database connection information to the JsonRPC

The results of JsonRPC methods session.create, session.restore and session.id now contain database and version members with ZendHQ database connection details and software version information.

  • Added the zendhqd.product_description directive to the ZendHQ daemon's configuration file

This can be used to customize the product name shown in version information. The default value is ZendHQ.

Changes

  • Improved ZendHQ INI file processing

It is now possible to include additional INI files into the main ZendHQ INI file using the include= and directives.

The include= version loads all the files that match the given wildcard filter and understands * and ? wildcards. For example, include=conf.d/*.ini loads all the INI files from the conf.d directory.

The include= version loads the given file and fails if the file is not found.

  • Updated the zendhqctl tool to use the new database manager.

The access module no more has the -d, --database option and the database connection must be configured using the ZendHQ daemon's INI file. If a non-standard INI file is used, then the name of the INI file can be provided with the --config-file global option or with the ZENDHQ_CONFIG_FILE environment variable.

Bug fixes

  • Fixed PHP memory limit reporting in ZendHQ PHP extension

PHP 8.2 changed the way how INI file directives are parsed and the ZendHQ PHP extension started to report memory limits without taking the quantity suffix into account.

New API and database schema versions

  • JsonRPC session namespace API version is now 1.8.
  • ZendHQ daemon extension interface API version is now 20240919.
  • ØMQ messaging protocol API version is now 20240515.
  • Configuration database version is now 2.0.
  • User database schema version is now 2.0.
  • Z-Ray database schema version is now 2.0.
  • Monitoring database schema version is now 2.0.
  • Code Tracing database schema version is now 2.0.
  • Job Queue database schema version is now 2.0.