JADE Environment Development Ideas

What's new in the upcoming JADE release?

IMPROVED DEVELOPER EFFICIENCY. ENHANCED SECURITY. SMOOTHER INTEGRATION

The JADE 2022 release meets tomorrow’s business demands.


Start your update to JADE's latest release

Programmatic database server (jadrap) shutdown

Please provide a method which allows for a database server node to be halted and shutdown from within JADE itself. This would allow full automation of database halt in a portable fashion, enhancing the managability of JADE databases.


This was approved as an NFS in 2017 (#64713).

  • Christopher Brailsford
  • Apr 28 2022
  • Needs review
  • Attach files
  • Christopher Brailsford commented
    May 16, 2022 10:03

    Hi John,


    Our enviroment has been set up to run jadrap directly for a very long time and we do have some server-execution applications that would not behave correctly if they were run on jadrap as a service. However, looking beyond our enviroment, I believe that this feature would be of use even if jadrap was running as a service. Currently, I think that there are three ways for a running JADE database to stop itself, depending on how it was started - last application quitting in single user, createExternalProcess of net stop / sc stop (or equivalent DLL calls) for a jadrap service (which your service might not have enough permissions to do depending on its user context; this also requires you to know the Windows service name - and I don't know of any way to retrieve this consistently from inside JADE), and createExternalProcess of taskkill (or equivalent DLL calls to cause a WM_CLOSE event) for non-service jadrap. This would reduce that list to one way, which would not depend on any external EXE or DLL files, would not require elevated permissions to control services, and would not require your program to know what way the database server running it was started (and if Linux JADE were to ever come back, would not require your program to know what OS it was on).


    Our current shutdown program is used when we want to stop a database for maintenance reasons; we do not have a specific "emergency" use. We prefer that the database stops itself, as the best visibility of the running JADE applications and their state is from inside JADE - the shutdown code can ensure that all applications have had a chance to stop cleanly (and in certain circumstances, notify the user of what is about to happen) before the database server is stopped.


    Thanks,

    Chris

  • Admin
    John Richards commented
    May 11, 2022 01:42

    Hi Christopher, The JADE Plant have been reviewing this request and we have a couple of questions. What benefit would this give you over running jadrap as a service? Also would the programmatic shutdown be used in all circumstances or only in emergencies? Thanks John R.