Introduction

  • JS7 is available with dual licensing: an Open Source License and a Commercial License.
    • The same source code and therefore the same feature functionality is available with both license models. 
    • The one exception is the operational feature of clustering the JS7 products for high availability, which is a commercially available feature for enterprise customers.
  • Customers applying for a commercial license receive both a license key from SOS and the binary code that allows clustering of JS7 products.
  • Users who intend to evaluate the JS7 high availability capabilities can apply for a trial license key by sending a mail to sales@sos-berlin.com

License Key

The license key is an X.509 certificate that is issued and signed by SOS. 

  • SOS forwards the license key to the customer.
  • The customer is responsible for applying the license key in compliance with the license terms forwarded by SOS to the customer.

License keys include information about the:

  • license owner: company name
  • license model: perpetual license, subscription license, pay-per-use license
  • license package: the number of Controller and Agent instances that are covered by the license.
  • license limit: licenses are valid starting from the date of issuing. Licenses for:
    • the perpetual license model are valid without an expiration date.
    • the subscription license model are valid for the subscription period - e.g. one year.
    • the pay-per-use license model are valid for a maximum of two years.

License keys are not subject to an open source license. Modification of license keys and the use of license keys outside of the licensee's organization is not permitted.

Trial License Key

SOS grants trial license keys to individuals and organizations that intend to evaluate the software.

  • Grant of a license key:
    • is limited to 30 days.
    • is limited to the individual or organization that has applied for the trial license key.
  • Trial license keys will become invalid on the expiration date.

Licensed Binary Code

The license key allows binary code for the clustering capabilities of JS7 products to be used.

  • The binary code for clustering is not open source - it is copyrighted by SOS. The binary code for clustering is published with a commercial license issued by SOS.
  • Users may not modify, decompile or reverse engineer the binary code for clustering.

The binary code for clustering is available in the js7-license.jar file which is available from JS7 - Download. By downloading the binary code for clustering you consent with the license terms for a commercial license of JS7.

Applying License Key and Licensed Binary Code

License Key

The following sections make use of specific terms:

  • Terms used for JOC Cockpit
    • For Linux environments JETTY_BASE points by default to: /var/sos-berlin.com/js7/joc
    • For Windows environments JETTY_BASE points by default to: C:\ProgramData\sos-berlin.com\js7\joc
    • JETTY_BASE is specified during installation.
  • Terms used for a Controller
    • For Linux environments JS7_CONTROLLER_DATA points by default to: /var/sos-berlin.com/js7/controller
    • For Windows environments JS7_CONTROLLER_DATA points by default to: C:\ProgramData\sos-berlin.com\js7\controller
    • JS7_CONTROLLER_DATA is specified during installation.
  • Terms used for a Director Agent
    • For Linux environments JS7_AGENT_DATA points by default to: /var/sos-berlin.com/js7/agent
    • For Windows environments JS7_AGENT_DATA points by default to: C:\ProgramData\sos-berlin.com\js7\agent
    • JS7_AGENT_DATA is specified during installation.

The license key ships as an X.509 certificate file (*.pem) which is added to the following directories:

  • JOC Cockpit:
    • For Linux and Windows: JETTY_BASE/resources/joc/license
    • The certificate has to be added to all JOC Cockpit cluster members.
  • Controller:
    • For Linux and Windows: JS7_CONTROLLER_DATA/config/license
    • The license key has to be applied to all Controller cluster members.
  • Director Agent:
    • For Linux and Windows: JS7_AGENT_DATA/config/license
    • The license key has to be applied to all Director Agent cluster members. It is not applied to Subagents in an Agent Cluster and not to Standalone Agents.

Licensed Binary Code

The licensed binary code is provided in the js7-license.jar file which has to be added to the following locations:

  • JOC Cockpit:
    • JETTY_BASE/lib/ext/joc
    • The js7-license.jar file has to be added for all JOC Cockpit cluster members.
  • Controller:
    • JS7_CONTROLLER_HOME/lib/user_lib
    • The js7-license.jar file has to be added for all Controller cluster members.
  • Director Agent:
    • JS7_AGENT_HOME/lib/user_lib
    • The js7-license.jar file has to be added for all Director Agent cluster members. It is not applied to Subagents in an Agent Cluster and not to Standalone Agents.

License Check

A license check is performed if a cluster of JOC Cockpit instances, Controller instances or Agent instances is operated.

Positive License Check

Related messages are available from the JOC Cockpit's ./jetty_base/logs/joc.log file and the Controller's ./logs/watchdog.log file.

  • JOC Cockpit:
    • The positive license check indicates that a valid license is available, this check works silently without further logging.
    • The GUI offers the information about the license in use when clicking the JS7 logo:



  • Controller:
    • The positive license check will log a single entry in the controller.log file on start-up of the Controller. The entry looks like this:
      • 2021-05-28T06:14:33,196 info com.sos.js7.license.controller.ClusterLicenseCheck - Product Name: js7.controller.cluster
      • Consider that the controller.log file is rotated and that the information is available from Controller start-up.
    • The license check will log two lines to the watchdog.log file on start-up of the Controller. The entries look like this:
      • Product Name: js7.controller.cluster
      • using Commercial License. Expiration Date: 2026-05-04 12:22:41
  • Director Agent:
    • The positive license check will log a single entry in the agent.log file on start-up of the Agent. The entry looks like this:
      • 2023-08-21T05:12:54,389 info com.sos.js7.license.agent.ClusterLicenseCheck - Product Name: js7.agent.cluster
      • Consider that the agent.log file is rotated and that the information is available from Agent start-up.
    • The license check will log two lines to the watchdog.log file on start-up of the Agent. The entries look like this:
      • Product Name: js7.controller.cluster
      • using Commercial License. Expiration Date: 2026-05-04 12:22:41

Negative License Checks

Logging examples for negative license checks which indicate the absence of a license: Related messages are available from the JOC Cockpit's ./jetty_base/logs/joc.log file, the Controller's ./logs/controller.log file and the Director Agent's ./logs/agent.log file.

  • The license folder cannot be found.
    • JOC Cockpit:
      • 2021-05-28T11:37:02,797 INFO main c.s.j.l.c.LicenseChecker - Could not read directory: C:\sp\devel\js7\testing\installations\joc\jetty_base\resources\joc\license
        2021-05-28T11:37:02,801 INFO main c.s.j.l.c.LicenseChecker - No license certificates found.
    • Controller:
      • 2021-05-18T08:12:31,370 info  com.sos.js7.license.controller.ClusterLicenseCheck - Product Name: JS7 Controller Cluster
        2021-05-18T08:12:31,372 info  com.sos.js7.license.check.LicenseChecker - Could not read directory: /var/sos-berlin.com/js7/controller/var/config/license
        2021-05-18T08:12:31,372 info  com.sos.js7.license.check.LicenseChecker - No license certificates found.
  • No files are present in the license folder.
    • JOC Cockpit:
      • 2021-05-28T11:04:23,651 INFO main c.s.j.l.c.LicenseChecker - No file(s) present in: C:\sp\devel\js7\testing\installations\joc\jetty_base\resources\joc\license
        2021-05-28T11:04:23,656 INFO main c.s.j.l.c.LicenseChecker - No license certificates found.
    • Controller:
      • 2021-05-18T08:17:17,412 info  com.sos.js7.license.controller.ClusterLicenseCheck - Product Name: JS7 Controller Cluster
        2021-05-18T08:17:17,429 info  com.sos.js7.license.check.LicenseChecker - No file(s) present in: /var/sos-berlin.com/js7/controller/var/config/license
        2021-05-18T08:17:17,429 info  com.sos.js7.license.check.LicenseChecker - No license certificates found.
  • Files are present in the license folder, but do not represent valid X.509 certificates.
    • JOC Cockpit:
      • 2021-05-28T11:48:07,057 INFO main c.s.j.l.c.LicenseChecker - Could not parse certificate from file: C:\sp\devel\js7\testing\installations\joc\jetty_base\resources\joc\license\test.txt
        2021-05-28T11:48:07,061 INFO main c.s.j.l.c.LicenseChecker - No certificate(s) present in: C:\sp\devel\js7\testing\installations\joc\jetty_base\resources\joc\license
        2021-05-28T11:48:07,061 INFO main c.s.j.l.c.LicenseChecker - No license certificates found.
    • Controller:
      • 2021-05-18T08:27:43,110 info  com.sos.js7.license.controller.ClusterLicenseCheck - Product Name: JS7 Controller Cluster
        2021-05-18T08:27:43,126 info  com.sos.js7.license.check.LicenseChecker - Could not parse certificate from file: C:\sp\devel\js7\testing\installations\joc\jetty_base\resources\joc\license\test.txt
        2021-05-18T08:27:43,127 info  com.sos.js7.license.check.LicenseChecker - No certificate(s) present in: C:\sp\devel\js7\testing\installations\joc\jetty_base\resources\joc\license
      • 2021-05-18T08:27:43,127 info  com.sos.js7.license.check.LicenseChecker - No license certificates found.
  • Cases of invalid certificates:
    • Certificate is not a License X.509 certificate issued by SOS.
      • JOC Cockpit:
        • 2021-05-28T11:40:01,694 INFO main c.s.j.l.c.LicenseChecker - License not a JS7 license.
          2021-05-28T11:40:01,699 INFO main c.s.j.l.c.LicenseChecker - DN: DNQ=SOS CA, CN=sp, OU=IT, O=SOS, L=Berlin, ST=Berlin, C=DE
      • Controller:
        • 2021-05-18T08:21:22,322 info  com.sos.js7.license.controller.ClusterLicenseCheck - Product Name: JS7 Controller Cluster
          2021-05-18T08:21:22,395 info  com.sos.js7.license.check.LicenseChecker - License not a JS7 license.
          2021-05-18T08:21:22,396 info  com.sos.js7.license.check.LicenseChecker - DN: DNQ=SOS CA, CN=sp, OU=IT, O=SOS, L=Berlin, ST=Berlin, C=DE
    • The validity period of the License X.509 certificate has expired.
      • JOC Cockpit:
        • 2021-05-28T11:44:38,921 INFO main c.s.j.l.c.LicenseChecker - license has expired on: Wed May 19 09:33:42 UTC 2021
          2021-05-28T11:44:38,926 INFO main c.s.j.l.c.LicenseChecker - License validity period failed.
      • Controller:
        • 2021-05-19T12:15:56,502 info  com.sos.js7.license.controller.ClusterLicenseCheck - Product Name: JS7 Controller Cluster
          2021-05-19T12:15:56,647 info  com.sos.js7.license.check.LicenseChecker - license has expired on: Wed May 19 09:33:42 GMT 2021
          2021-05-19T12:15:56,647 info  com.sos.js7.license.check.LicenseChecker - License validity period failed.

License Usage

License Counting

  • License keys do not implement technical license counting. SOS estimates there to be a risk that license counting could fail when used in restricted environments and prevent the software from running.
  • You can technically use the same license key for any number of JobScheduler instances. However, this might not comply with the commercial license terms that are agreed on for the license model that is applicable to your environment. 

License Measurement

  • SOS reserves the right to perform license measurement activities, e.g. to request that you report job executions if a pay-per-use license model is in place.
  • The license measurement procedure verifies the number of software instances and licenses in use.
  • The license measurement procedure can be performed on a regular basis depending on individual agreements for the license model that applies to your environment.

Further Resources