Linux license activation fails with OSHI/JNA error

Linux license activation fails with OSHI/JNA error

Overview

After installing 360Suite on a Unix machine with Tomcat 10.1.x and JDK 21.x, license activation from the Admin Console failed silently. Tomcat logs showed an OSHI initialization error followed by a JNA native library extraction/load failure.

Symptoms

In the Admin Console, entering the license key code results in no visible change (license not applied).
Tomcat logs show:
  1. Initialize Spring License Manager
  2. ERROR ... Could not initialize class oshi.software.os.linux.LinuxOperatingSystem
Later logs indicate UnsatisfiedLinkError while loading a JNA temp file under the Tomcat user’s cache (e.g., /home/tomcat10/.cache/JNA/temp/...).

Observations during investigation:
  1. The Tomcat temp directory exists and is writable by the Tomcat user.
  2. The lib directory and jar ownership/permissions are correct.
  3. Behavior consistent with JNA native lib extraction to a path where execution is not allowed (common on mounts with noexec or restrictive security policies on user home/cache paths).

Cause

JNA (used transitively by OSHI) extracts native libraries to a temporary directory and then loads/executes them. On this host, the default temp location used by JNA for the Tomcat user resolved to a path that allowed write but blocked execution (or blocked library loading), causing:
  1. OSHI static initialization to fail: LinuxOperatingSystem class error.
  2. License flow to stop early (360Suite license manager initialization requires OS and hardware info).
Notes
Important policy note
Several enterprises enforce noexec on certain mounts (e.g., parts of /home, XDG cache paths, or tightened tmp policies). Per internal guidance, we do not recommend changing mount options. Instead, we redirect JNA’s temp directory to a compliant, controlled path.

Resolution

Redirect JNA’s temp directory to an executable, controlled path owned by the Tomcat user, then restart Tomcat and retry license activation.
This can be performed by adding the following option to the Tomcat Java Options (in the setenv.sh configuration file):
  1. CATALINA_OPTS="$CATALINA_OPTS -Djna.tmpdir=/path/to/jna-tmp"
With "path/to/jna-tmp" to replace with an actual path on the server.

Then restart the Tomcat service, and add the license again.
    • Related Articles

    • Offline License Update Process

      Overview This article provides instructions for renewing or activating your 360Suite license on a server that does not have an active Internet connection. If your server is offline and your license expires, you may encounter an error message ...
    • 360Suite database configuration is not set when restarting Tomcat server

      Symptoms On application startup, a warning popup appears In the Administration console, the database configuration is empty even though is was setup previously Environment 360Suite Web Platform Linux server (all) Additional symptoms : tomcat logs In ...
    • How to properly enable an Administrator key in 360Suite

      Procedure Log into the Administrator Console. Navigate to the License tab. In the Keys block, paste the license key provided. Navigate to Administrators block. This is where the BOBJ user accounts can be mapped as 360Suite administrators up to the ...
    • Audit Snapshot Fails in 360Eyes — Unsupported DB URL (jdbc:sqlanywhere)

      Symptoms When running the 360Eyes – Audit job, the job fails during DO_SPECIFIC_JOB_ACTIONS and the log displays: Could not generate snapshot : Current DB URL (jdbc:sqlanywhere:DSN=BIA_Audit_PROD) is not supported. Cause The Audit data source is ...
    • SLA Installer Fails on 64-Bit Systems When Using BOBJ 4.2 (32-Bit)

      Symptoms Issue When installing the SLA (Semantic Layer Agent) on a 64-bit Windows system that has SAP BusinessObjects 4.2 (32-bit) installed, the SLA service may fail to start. This issue is due to an architecture mismatch: the SLA installer expects ...