Applications

On this page

Applications

The Applications page

The Applications page lists every application the runtime has started: your own, and any other on the same server. It updates live. It reads BoxLang core's application registry on each load and keeps nothing between loads.

The list

ColumnMeaning
ApplicationThe this.name of the application.
Staterunning, starting (created, not started yet) or expired (its application timeout ran out and it was not used since).
UptimeTime since it started.
SessionsA count of live sessions. Lens never shows a session id or a session value.
TasksScheduled tasks of the schedulers this application started, and how many are failing.
WatchersFile watchers this application started, and how many have errors.
LoadersClass loaders of the application.

The tiles above the list add up sessions, tasks, watchers and class loaders over all applications. The list shows at most 100 applications and says so when there are more.

One application: overview, tasks, watchers and class loaders

The detail

Pick an application to see its detail. It has four tabs.

  • Overview: when it started, uptime, last access, sessions, the application timeout, the session timeout, management and storage it declared, how many keys its application scope has (never the names or the values), and the schedulers it started.
  • Tasks: the scheduled tasks of those schedulers, with the same status, schedule, next and last run, runs and failures as the Tasks page. Click a task to open it there.
  • Watchers: the file watchers the application started, with state, listener, errors in a row and paths. Start, stop and restart are on the Watchers page.
  • Class loaders: one row per class loader, with the number of paths, the classes it holds and the class names it looked up and could not find. Paths are counted and never listed.

An application has class loaders of its own only when it declares paths in javaSettings. BoxLang names them by a hash of those paths, so Lens shows javaSettings and the start of the hash. A plain application has none, and the tab says so.

Actions

BoxLang+

Restart and Remove need BoxLang+ or a trial, an admin login and a console that is not read only. On Free the page shows a BoxLang+ note, the buttons are disabled and the server answers 403. You still see every application and its detail.

ActionWhat it does
RestartShuts the application down. It runs onApplicationEnd, ends the sessions and stops the schedulers and watchers the application started. BoxLang then starts a new one on its next request.
RemoveClears an application that has expired from the list. Running requests and other applications are not affected.

BoxLang has no "stay stopped" for a web application, so there is no separate Stop. After a restart the row leaves the list and comes back with the next request to that application.

Restart asks first. The confirmation says how many sessions, scheduled tasks and watchers it ends. You must type the application name. The server checks that too, so a call without it is refused with 400.

The application that serves the console cannot be restarted from the console. Restart it from your own code or from the server.

Every action writes an audit line with the caller's address: application.restart or application.remove. Set console.actions to false to turn actions off. The buttons are then greyed out and the server refuses the calls.

Ask Lensy

With BoxLang+, Lensy reads applications with the applications tool and can restart one with appAction. That tool waits for your approval on the approval card, like every action of Lensy, and the card says what the restart ends. See AI tools.

Other servers

With the server selector (BoxLang+) the page shows the list another server saved in its health snapshot, read only and as old as the last snapshot (a minute). Actions are never run on another server.

Settings

SettingDefaultMeaning
collectors.applications.enabledtrueShows the Applications page.
console.actionstrueAllows Restart and Remove (and the other actions of the console).

Known limits

  • Core has no read only view of its application registry. Lens reads the registry map once, and only reads it, because ApplicationService.getApplication() would replace an expired entry by a new one. If a BoxLang version moves that map, the page says it cannot read the registry.
  • The tasks of an application are those of the schedulers it started. Tasks from tasks.json and global schedulers belong to no application and are on the Tasks page.
  • This page covers the applications of one runtime. It does not see other nodes unless you pick another server.