4.3. Dashboard

After a tap on the Dashboard button in the main menu this panel is shown. See Section 4.2, “Menu”.


The Dashboard section is automatically refreshed every 60 seconds.

4.3.1. Status

The head section of the Dashboard displays indicators about Community Membership status and application runtime:

Admin Web App: Dashboard - Membership

Figure 4.4. Admin Web App: Dashboard - Membership

  • Community member: The name of the community member organization. Defaults to Your Organization Name if no Member Card was imported (see Section 23.1, “Visitor Period”).

  • Membership [13]:

    • Cardholder : a community resident.

    • Visitor : a visitor of the community.

    • Exceeded : the number of users in the database exceeds the number of Member Card participants.

    • Expired : the Member Card reached end-date.

    • Visitor Expired : the visitor period expired.

    • Visitor Edition : a permanent visitor with 10 users or less in the database.

    • Invalid version : the Member Card is incompatible with this SavaPage version.

    • Invalid : the Member Card is incompatible with this community.

  • Participants : the number of community participants.

  • Valid till : expiration date of Member Card.

  • Days remaining : number of days till Member Card expires.

  • Mode : the system mode. Press the button to change the mode to Maintenance or Production.

    Admin Web App: Dashboard - System Mode

    Figure 4.5. Admin Web App: Dashboard - System Mode

    When system is in Maintenance Mode:

    • Access to all Web Apps is restricted to users with Administrator role.

    • Regular users are shown a message explaining the situation, at the Login dialog or in the authorized session.

  • Status

    • Ready to use : SavaPage can be used without impediments.

    • Setup is needed : There are one or more options that need to be set up. Press the Currency and/or Mail button to do so. See Section, “Currency Code” and Section 4.11.4, “Mail”.

      Admin Web App: Dashboard - Setup is needed

      Figure 4.6. Admin Web App: Dashboard - Setup is needed

      Access to the User Web App is denied till setup is finished. In the Admin Web App, editing of user details and adding internal users, user groups and shared accounts will not be available.

    • Not available : Database access is blocked because a batch job is in progress (database backup, user synchronization, database cleanup). To prevent that user actions requiring database access will block, resulting in long waits, access to the User Web App is temporarily denied. Users are informed after a login attempt or, when already logged in, are warned when actions requiring database access are not permitted.

    • Member Card Missing : Signals a missing Community Member Card.

  • Uptime : the time the application has been working and available.

Admin Web App: Dashboard - Users

Figure 4.7. Admin Web App: Dashboard - Users

  • Users : the number of users in the database (excluding Deleted Users) appended with the result of the latest User Home Clean.

    Cleanup is done nightly, but can be ad-hoc started by pressing the refresh button at the right of the cleanup timestamp.

    In this example there are 42 users in the database. At the time of the cleanup 32 users have used the User Web App and thereby have a User Home safepages location on disk, and in all User Homes, 1 file is unidentified, 16 documents are stored because of using SavaPage as Printer, and 3 Hold Print jobs are pending. The number of bytes of each total is displayed when moving the cursor over it, or by pressing the information button at the right.

    The number of cleaned files is communicated with a separate icon as shown below:

    Admin Web App: Dashboard - User Home Clean

    Figure 4.8. Admin Web App: Dashboard - User Home Clean

    • In this example a total of 4 documents and/or jobs are cleaned. Press the information button at the right to see details like Cleaned: 2 Users. 1 Document: 36 KB. 3 Jobs: 121 KB.

    • When Cleanup Test Mode is set, cleanable files are signaled without actually being deleted. In that case the clean icon will show a red colored marker.

Admin Web App: Dashboard - Sessions and Messages

Figure 4.9. Admin Web App: Dashboard - Sessions and Messages

  • Client sessions : the number of active User Web App and User Client sessions.

  • Recent errors : the number of errors that occurred in the Application Log during the last hour.

  • Recent warnings : the number of warnings that occurred in the Application Log during the last hour.

  • SSL valid till : when the SSL Certificate of SavaPage expires within a year, its expiration date is shown . When expiration is due within 30 days it is shown in orange. Note: SSL expiration of any reverse proxy server used by SavaPage clients is not signaled.

Admin Web App: Dashboard - OpenPGP

Figure 4.10. Admin Web App: Dashboard - OpenPGP

Admin Web App: Dashboard - Tickets
  • Tickets : Print and Copy Job totals just as in Job Tickets Web App, or zero ("0") if ticket queue is empty.

Figure 4.11. Admin Web App: Dashboard - Tickets Technical Info

Technical information about the server process can be added to, or removed from, the Dashboard by setting the value of configuration key webapp.admin.dashboard.show-tech-info to Y or N. See Section 4.11.14, “Config Editor” on how to change this value. When added, the following extra information appears:

Admin Web App: Dashboard - Technical Information

Figure 4.12. Admin Web App: Dashboard - Technical Information

  • JVM memory : Max is the maximum memory the JVM will attempt to use. Total is the total memory in the JVM (varies over time). Free is the free memory in the JVM (increases after a garbage collect).

  • HTTP sessions : the number of non-expired Web App Session id's and their client ip addresses. Due to DHCP, the number of ip's may be greater than the number of id's.

  • Open Files : The number of open file descriptors.

  • Disk Space : Disk capacity and free space.

  • Threads : An estimate of the number of active process threads.

    • The number of active (deadlocked) threads (if any) are shown in red color. See Section, “System Monitor”.

      Admin Web App: Dashboard - Deadlocked Threads (intentionally caused as example)

      Figure 4.13. Admin Web App: Dashboard - Deadlocked Threads (intentionally caused as example)

  • Connections : The number of active connections to internal services and the database.

  • Proxy Print Queue : The number of pending Proxy Print jobs in memory cache and the database. System Monitor

A System Monitor process checks SavaPage server health status every 120 seconds. This frequency is set in configuration property system.monitor.heartbeat-sec. The following situation is checked:

  • Deadlocked threads : JVM threads that are deadlocked waiting for object monitors[14] or ownable synchronizers [15]. The number of deadlocked threads is shown as Technical Info on the Dashboard. Detailed information can be found in the server.log : see Section 13.2, “Logs”.


    Deadlocked threads should not happen. When they occur, contact your SavaPage Community Representative.

4.3.2. Services

Admin Web App: Dashboard - Services

Figure 4.14. Admin Web App: Dashboard - Services

This section lists the status of services.

  • The Proxy Print indicator is read-only, and shows the CUPS connection status. When connectivity is broken, the switch shows Off, with the reason displayed at the right.

  • Core services like Mail Print must be enabled to be on the list.

  • Web Print, Internet Print and RESTful Print services are a fixed part of the list.

  • Plug-in services like Mollie and Blockchain.info Payment Gateways are part of the list if they are enabled in their property file.

With Dashboard Editor Privileges, you can turn a service On or Off by flipping the status switch. With Reader Privileges service switching is disabled.

When the SavaPage server restarts enabled core services are turned On by default. The initial state of enabled plug-in services is governed by the online setting in their property file. The on/off state of Internet Print translates to the enabled/disabled state of the reserved /internet Queue.

4.3.3. News

The News section shows the currently installed versus the latest published SavaPage version. A push on the button brings you to the Downloads and Release Notes Internet page.


The latest published SavaPage version number is cached on the server and retrieved from the Internet every 12 hours.

4.3.4. Pagometers

The Pagometers[16] counting the pages printed-out with Proxy Printers, printed-in from SavaPage Queues, and exported as PDF are displayed in a Pie-Chart. Pagometers are explained at Section, “Pagometers”.

Admin Web App: Dashboard - Pagometer

Figure 4.15. Admin Web App: Dashboard - Pagometer

A Line-Graph shows the day pagometers for the three sources over the last 30 days.

Admin Web App: Dashboard - Pagometer Trend

Figure 4.16. Admin Web App: Dashboard - Pagometer Trend

A table shows the running Total of Received PDF documents by Driverless File Transfer Print that are Valid, Repaired or Rejected, including totals for last Week and Month. See Section 14.9.1, “Processing Driverless PDF Transfer”.

Admin Web App: Dashboard - Pagometer Print-in PDF

Figure 4.17. Admin Web App: Dashboard - Pagometer Print-in PDF

4.3.5. Environmental Impact

The Environmental Impact for the Proxy Printer pagometer are displayed in a separate section. The metrics and units used are discussed at Section 16.2, “Environmental Impact”.

Admin Web App: Dashboard - Environmental Impact

Figure 4.18. Admin Web App: Dashboard - Environmental Impact

The Environmental Impact section can be hidden with configuration property in table below.

Configuration propertyDescription


Set to Y (default) or N, to show/hide the Environmental Impact section.

Table 4.1. Admin Web App Environmental Impact Configuration Properties

See Section 4.11.14, “Config Editor” on how to set these items.

4.3.6. Financial Summary

A Financial Summary of User Accounts and Bitcoin Wallet is displayed in a separate section.

Admin Web App: Dashboard - Financial Summary

Figure 4.19. Admin Web App: Dashboard - Financial Summary

The User Accounts total and statistics like Min, Max and Avg are shown as Debit or Credit amount over Count number of accounts.

When a Bitcoin Payment Gateway is enabled the Bitcoin Wallet balance (Debit) is shown in the system currency and BTC. The Total number of Bitcoin Addresses in the wallet are split into addresses that received Payments, and Open addresses waiting for payments. Note that other addresses, not created by our Bitcoin Payment Plug-in, may be part of the wallet (in our example there is one such address).

The Bitcoin Wallet hyperlink opens the Web Wallet in a new browser tab.

The Accounts summary is updated as the dashboard is (auto) refreshed. However, the Bitcoin Wallet summary is cached by SavaPage and lazy refreshed after a configurable time period (defaulting to 3600 seconds).[17] The date/time of the last refresh is shown in the Date column. Press the Refresh button to force a refresh of the cache.

4.3.7. Real-time Activity

Admin Web App: Dashboard - Real-time Activity

Figure 4.20. Admin Web App: Dashboard - Real-time Activity

Relevant system events are real-time displayed in this section. A maximum of 20 event messages remain in view, with the most recent one at the top.

System events are persisted in the rotating log file:


This file has a tab separated value (TSV) format for easy import and manipulation into spreadsheet programs. See /opt/savapage/server/lib/log4j.properties.template for more information.

[13] Community Membership is checked in a Daily Job.

[14] An object monitor is a mechanism that ensures that only one thread can be executing a given section (or sections) of code at any given time. In Java, there are two kinds of monitor regions: synchronized statements and synchronized methods.

[15] In Java, an ownable synchronizer is a synchronizer that may be exclusively owned by a thread and uses AbstractOwnableSynchronizer (or its subclass) to implement its synchronization property. ReentrantLock and ReentrantReadWriteLock are two examples of ownable synchronizers provided by the platform.

[16] In analogy with the term Odometer, the term Pagometer is introduced as an instrument to count the number of processed pages.

[17] Edit the webapp.admin.bitcoin.wallet.cache-expiry-secs configuration property with the Configuration Editor to set the number of seconds after which the cached Bitcoin Wallet summary is refreshed.