When developing software on NetKernel, it is essential to have access to a local running NetKernel instance on which you can hot-deploy modules from your application. This gives you access to the embedded "backend fulcrum" web application (normally available on http://localhost:1060) with its various development, testing, monitoring and diagnosis tools.
It also gives you access to the NetKernel server console log, which provides a lot of information on the health and integrity of your NetKernel - based system, if you know how what to look out for and how to interpret the information.
This page collates and describes some of the most common and not-so-common examples of NetKernel console log messages and errors to help you understand what they mean and advice on how to go about fixing them.
During its bootstrap sequence, NetKernel progressivily loads modules according to their Run Level, starting from Run Level 1 which is reserved for core system modules. By default, all application - level modules have a Run Level = 7 and are loaded together.
The NetKernel ModuleManager endpoint is responsible for the co-ordination of loading and commissioning every module. If there is something wrong with a module definition, a NetKernel module - related class will report an error which will be visible in the console.log.
Look out particularly for console log messages prefixed by W (warn) or E (error).
As well as watching the system log in a realtime system console, you can also use the NetKernel Logs View page of the Backend Fulcrum (but you have to keep hitting Refresh to get an update).
When you are writing or modifying a module.xml file of a Standard Module, it is really important to watch the NetKernel console log to spot any problems.
Some of the error messages related to module initialisation are fairly easy to figure out, whilst some of them do not give you much to go on.
MapperOverlay The endpoint class loading a subtree of the module.xml that has found an issue. So we know the problem is somewhere within a Mapper Overlay definition.
[/config/endpoint] A relative xpath expression to the location of the directly affected endpoint: the 1st <endpoint> child node of the <config> element.
[/config/endpoint/...,varargs Tells us that an <active> grammar tag cannot contain a identifiet element (with a more detailed xpath expression to the exact location of the incorrect tag).
[/config/endpoint...tags Tells us that an <active> grammar tag must contain a identifier tag.
This time, the ModuleManager is able to commission my fixed module without further problems.
This indicates that the NetKernel instance cannot find a declaration for a space called urn:com:ten60:netkernel:nkp2:loadbalance in any of the modules loaded in the system.
In this case, I need to use the Apposite Package Manager to download and install the NKP2-LoadBalancer module into my system.
If you look in the NK instance backend fulcrum, you will see a warning that the Enterprise license has expired. Unfortunately the console log does not report an expired license notification. There is a webhook available in the Backend Control Panel to setup to receive such warnings, but that is intended for use in a production environment.