Kernel Engine (Engine krn)

The jobs of the kernel executor krn serve for the internal management of the application server processes. These are particularly functions for batch management, server monitoring, registry management and administration of loaded engines at runtime.

2. Channel Management

These jobs concern the server communication channel and the callback channel built on top of it, over which the server pushes messages and job calls to a client (e.g. krn.OnRegisteredJobCall, or the adm.On<Message> callback resulting from krn.SendMessageToClients). The callback mechanism is described under krn.GetChannelGUID.

3. Registered Job Call (RJC) / job-call monitoring

The RJC mechanism registers a session as a server-wide live monitor for job calls: for every call of a monitored job — across all sessions and users — the server pushes a notification over the callback channel. This is the mechanism behind the Enterprise Manager’s live event view. Internal infrastructure — for administration, diagnostics and monitoring only.

5. Registry Management

These jobs serve for registry management. Registry entries can be queried or changed.

8. Queue and Thread Monitoring

The server operates several named queues. Each queue is served by a fixed pool of threads (NumThreads) and used by one or more engines (namespaces). A job is posted into a queue and executed by one of its threads; it is addressable through the combination of ThreadID, JobNumber and Queue. The following jobs enumerate the queues, read their configuration and statistics, list the threads including their current activity, and can interrupt a running job.

9. Client Management

These jobs enumerate the clients logged on to the server and return detailed information about them.

11. Undocumented Endpoints

The following jobs are offered by the enaio® server in the krn engine but are not currently described in this documentation:

Channel management (server-to-server communication)

krn.ChannelDrop, krn.ChannelEnum, krn.ChannelGetInfo, krn.ChannelGetInfoSR, krn.ChannelMakePing, krn.ChannelOpen, krn.ChannelPingMade, krn.ChannelServerGetInfoSR, krn.ConnectionGetInfoSR, krn.CritSectGetInfoSR

Extended session management

krn.CloseSession, krn.CreateSession, krn.GetUserBySessionGUID, krn.OpenSession, krn.SessionCheckPwd, krn.SessionDropNotActive, krn.SessionGetInfoSR, krn.SessionGetSysRoles, krn.SetSessionUser

Server strings (key-value persistence on the server)

krn.SrvStrg_Clear, krn.SrvStrg_ElementDelete, krn.SrvStrg_ElementEnum, krn.SrvStrg_ElementExists, krn.SrvStrg_ElementGet, krn.SrvStrg_ElementNames, krn.SrvStrg_ElementProps, krn.SrvStrg_ElementSet, krn.SrvStrg_Load, krn.SrvStrg_Save

Prepared jobs

krn.PreparedJobDel, krn.PreparedJobEnum, krn.PreparedJobExecute, krn.PreparedJobState, krn.PreparedJobStop, krn.PreparedJobUnlock

Profiler

krn.ProfilerConfigGet, krn.ProfilerConfigSet, krn.ProfilerStart, krn.ProfilerStop

Job callbacks and asynchronous jobs

krn.AsynchJobResponse, krn.RejectJob

Database pool diagnostics

krn.DBGetJTEnum, krn.DBPoolJTEnum, krn.DBPoolRTEnum

Direct SQL access (internal diagnostics)

krn.SQLCommand, krn.SQLSelect

Logging and trace configuration

krn.ETMGetFileName, krn.ETMRereadConfig, krn.LogConfigReread

Other management

krn.AslogGeneralFlags, krn.BatchGetLastResults, krn.CheckClausesFormats, krn.CheckExpires, krn.ClearOvertimedJobs, krn.EnvironmentChanged, krn.ExecutorKernel, krn.ExplorerFind, krn.PacketToSendQueue