Changes in 4.6.0
Deployment docs are now included with the core KX Platform documentation.
The 4.6.0 release bundles will come with several new scripts:
As Flash will reach EOL at the end of 2020, the 4.6.0 and any subsequent Platform bundles will no longer include the
DeltaDashboard package containing Flex Dashboards.
Install config changes
Install config options have been updated to use inclusive terminology, see mapping table below:
Ubuntu 20 support
From 4.6.0, the KX Platform supports running on the Ubuntu 20 Operating System.
Changes have been made to use inclusive terminology:
API name change
The library used for Control LDAP integration has been replaced with KxSystems LDAP Interface
LDAP API prior to 4.6.0 have now been deprecated. It is advised that the new Search API are used as a replacement.
Deprecated LDAP functions
.pm.ldap.filteredSearch - Used to find users or groups.
.pm.ldap.getGroupUsers - Download users under a specified group.
These functions have been replaced with
A new parallel hopen, phopen, library is available in the Platform. It supports multi-homed environments and making parallel connections. This acts as an alternative to hopen where reconnection time and resilience are important.
Control host resolution
In some scenarios host resolution is not desirable as the resolution can return internal or non-addressable hosts.
This is often the case in cloud, Kubernetes and multi-homed environments. This can cause the Control cluster
to fail on startup as the resolved host does not correspond to an entry in
The host resolution can now be disabled and the host name passed from the remote process is trusted instead.
This links to the previous point but similar issues have been seen on the initial connection a process makes to Control. When processes are launched, they are provided the host name of the current leader Control process. Often this is derived by the process itself and can be un-reachable, causing processes to fail on startup.
The default behavior in 4.6.0 doesn't use this value and looks up the
failover.csv file instead. It connects to all Control
processes to find the leader and uses this for registration. This resolves issues with host resolution. The new behavior
-prcluster parameter to the process command-line and can be disabled by setting below in
Instance deletion protection
Users are now prevented from deleting a running Process Instance from Control UI.
Checks will ensure that the instance and tasks are not running before allowing a deletion.
Scheduled task execution will now only be carried out by the leader control instance. On scheduling a task the underlying in-memory tables will only be updated within the leader. On a failover event, tasks will be rescheduled within the new leader.
Housekeeping task executions are now replicated from the leader to follower instances, where previously these ran independently on each control instance schedule.
Partial file uploads will now be suffixed with
_part until completion.
On successful file upload suffix is removed and file is moved to configured destination.
Configuration to allow a process to register as a client or database with the QR framework has been moved to the
DS_QR_EXCLUDE config has been removed. By default all the same processes in the default exclude config won't register with the QR.
The dynamic routing of a routed requests within the QR, can be customized in the
routingFunc field of the
The performance of the API to delete configurations parameters has been improved, the call is 48% faster.
Processes no longer need to be started after the Control and MS processes.
Changes have been made to processes to assist with startup ordering issues. Previously, processes needed to be started after Control and the MS, and would fail if either wasn't running. In 4.6.0, this is no longer the case. If a process is started before either of these components, it will retry until it gets a connection. The retry will wait for 5 minutes for Control and 1 minute for the MS before reporting an error and shutting down.
Dynamic query manager addition and deletion
JavaStream API and appserver now receive details of active query managers on startup and also receive dynamic qm status updates (e.g. when new qm becomes available or existing qm is stopped). This allows additional query managers to be utilized during runtime and also stops repeated reconnection attempts for a query manager that has been permanently removed.
AXSTATE compression may be enabled
Setting AXSTATE_COMPRESSION=yes will compress new local repo tables. See Housekeeping
Configurable connection timeout/retry intervals
The timeouts for
hopen connections and connection retry intervals have been made configurable for a range of connections:
- processes within a Control cluster Reconnection tuning
- processes in a QR cluster QR cluster connection timeouts
- QP to QR and client to QR/QP connection timeouts
Configurable failover actions
If Control fails over to another process in the cluster, unexpected shutdown actions could be triggered for the running Platform processes if they don't connect to the new leader Control process before the timeout is passed. The timeout and unexpected shutdown actions taken on failover are configurable
Faster log rolling
The speed of log file rolling has been improved by a change from using
cat to renaming the logfile using
mv and redirecting
stderr to a new log file.
Checkpoint on export default behavior
The default behavior when a package is exported on a fresh KX Platform install has been changed to not take a new checkpoint. If an environment has been upgraded the default behavior will not be changed from what it was before the upgrade
Behavior when subscribed parameter is deleted
When a parameter/override is deleted,
.uc.republishUpdates can be used to publish the deletion to some or all processes that have subscribed using
.uc.getAndSaveAllParam. The specified processes will have their subscriptions removed and the process handles will be removed from the subscriber list for that config entity on Control.
Analytic framework tables
Can now set the override name of
DS_AF_* config parameters subscribed to for analytic framework structures, i.e.
.af.* tables, using an INSTANCE_CONFIG setting,
.af.override. If this is not present, a process will use the override matching the instance name or, if no such override exists, the DEFAULT override. The override used can be overwritten using
Tickerplant end interval
endInterval is called on all subscribers to a Tickerplant as the Tickerplant ends its current log interval.
Prior to 4.6.0 there was no strict typing of the variable
.ds.tp.EohDetails which is passed as the final (fifth) parameter of the
endInterval call. As of 4.6.0 this parameter will always be passed as type Dictionary.
.ds.tp.EohDetails dictionary will contain at least one key
eod indicating if this is and End of Day interval roll.
Manual triggering of an interval cut with a non-dictionary value will have this value added to a dictionary under the key
Any subscribers using this parameter within their definition of
endInterval should make changes were required.
Process permission changes
Permissions on all Report, Alerts and ops processes now default to
Yes to help reduce the risk of attack
HDB reload API
utils api has been provided to request a reload of a remote
.utils.hdb.reload has been deprecated and replaced with .utils.hdb.reload1.
HDB connection details are passed as before, but now the calling instance is no longer required to know/pass the
-u system call flag of the target instance to the api.
RTE process template tickerplant log replay
When connecting to a Tickerplant instance, instance Heartbeats will be disabled before attempting to replay the Tickerplant log file. Heartbeats will be enabled upon completion of log replay.
Configurable connection timeout/retry intervals for messaging
The timeouts for
hopen connections and connection retry intervals have been made configurable for messaging connections:
- MS processes in a server cluster Connection between MS processes
- messaging clients to the MS process Connection from client to MS
DS_MASTERED_PROCESS:DEFAULT and it's overrides have been removed from platform packages and replaced with
DS_LEADERCLUSTER_PROCESS:DEFAULT and overrides. These are the same entities, just renamed.
Any overrides of DS_MASTERED_PROCESS in solution packages should be changed to be overrides of DS_LEADERCLUSTER_PROCESS.
They should have the same content, just be renamed.
Can now require a minimum length of comment when transitioning or closing an Action Tracker alert.
Schema change, alertkey field
To avoid the sym file growing too large in the action tracker HDB, the alertkey field in the dxATItemCurrent table has been changed to be a string instead of a symbol.
Closed item reissues
It is now possible to configure an Action Tracker to keep the same item id if there is a reissue for a closed item.
Additional filter, "alert"
Can now filter by the alert field of the dxATItemCurrent table on the action tracker dashboard.
AT end of day
The new default end of day function (
dxATEOD1) will save closed items to the date partition in the AT HDB matching the date the item was opened. The pre-450 end of day function is still available if the previous behavior is preferred (
Changes to reopen item functionality
There is now more control over reopening action tracker items:
- Configure which closed queues can be reopened and which cannot
- Specify which queue an item is reopened to
- Specify an item is reopened to the queue it was in before it was closed
Subscribing to AT cluster
A process can become a client of the action tracker cluster by subscribing to some or all of the replicated tables on the action tracker process
Action tracker as service
The action tracker, action tracker gateway and action tracker HDB can be run as services.
Data callback changes
The Data Callback APIs
.ds.rte.addUpdCallBack used previously have now been replaced by the equivalent functions
.dm.applyCallbacks in the Messaging Server
KX Stream Java API
New configuration to allow parallel QP connections.
Decoupled QP connectivity from QR shard connectivity. Dynamic update of QR -> QP associations.
DeltaStream interface to allow for a configurable timeout period before returning to the user thread if connectivity fails on initialization or at a later point during runtime.
Added ability to close and cleanup a
DeltaStream instance within the user thread.
NFS mount monitoring
Additional configuration options have been added to the
DM_FileSystemUsageAlert configuration parameter used as part of the File System Alert.
A Boolean field
strictMatch has been added to indicate if the platform monitor should attempt a strict match of
With this value set to
true a strict comparison between
sym and file system mount point is made.
False will make use of wild cards to attempt a match.
sym has been previously defined with wild cards, these should be amended or have
strictMatch set as
Connect API are now permitted to be defined without requiring parameters.