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

    • 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 ...
    • Converting Oracle based MSU UNX to SSU fails with "driver could not be loaded error"

      Symptom When you launch a MSU to SSU conversion on a universe based on an Oracle ODBC connection. On WebPatform 2023.1.1 : The task ends in success When you retrieve the - Converted universe, you have an empty Data foundation On WebPlatform 2023.2 ...
    • Administration Console - Password Reset (Linux/*nix)

      Condition Impossible to log in to the 360Suite Administration Console (360Suite deployed on a Linux/*nix machine). Solution Cause The password may have been lost or the basic configuration is corrupted. Remedy 1. Open a terminal (command line). 2. If ...
    • "Invalid tag: FORMAT_DICT" error

      Symptoms After upgrading a BusinessObjects (BOBJ) environment, you may encounter the error with 360Suite feature like 360Cast or 360Bind: Unexpected exception: Failed to parse document. Invalid tag: FORMAT_DICT These features typically work with ...
    • Error : "Can't instanciate Webi Factory"

      Symptom When running WEBI jobs, the following error may be encountered: 2014-11-14 15:05:00 +0100 INFO Creating hash for CUID-ShortName/path universe link: done 2014-11-14 15:05:00 +0100 INFO Getting url 2014-11-14 15:05:00 +0100 INFO Found url ...