Skip to content

Sidra Integration Runtimes with OpenJDK

This document provides guidance for configuring an Integration Runtime (IR) for Sidra Data & AI Platform using OpenJDK.

Important: External Runtime Management

Integration Runtimes are external to Sidra and must be managed by the customer's IT team. This includes ensuring their availability, stable performance, and security compliance (e.g., applying Microsoft's security patches regularly).

Creating an Integration Runtime

Step 1: Provision a Virtual Machine

The first step is provisioning a virtual machine (VM) to host the Integration Runtime. Verify that the VM meets Microsoft's prerequisites.

Info

You can use an existing VM if it fulfills the necessary requirements.

Step 2: Setting up the Self-Hosted Integration Runtime (IR)

Create a Self-Hosted IR

Follow these instructions.

Configure the Self-Hosted IR

Proceed with the configuration following these steps. When installing the IR software on the VM, ensure it is installed in the path:

C:\Program Files```

Avoid using `C:\Program Files (x86)\`.

### Step 3: Prepare the VM for Sidra

#### Install Java Runtime (JRE) and OpenJDK

Sidra ingests data into `.parquet` files, which requires Java libraries. Since the IR agent does not include Java Runtime by default, manual installation is necessary.

**Important**: Oracle's JRE licensing may incur costs for production environments. To avoid this, use OpenJDK, an open-source alternative. Nevertheless, initially installing Oracle JRE is required for registry entries.

- Install [Oracle JRE](https://java.com/en/download/windows_manual.jsp) first:
  - Use the x64-bit installer for compatibility.
  - Install under `C:\Program Files\`.

- Next, install Microsoft's [OpenJDK](https://docs.microsoft.com/en-us/java/openjdk/download):
  - Use the provided `.MSI installer`.
  - During installation, ensure the `JAVA_HOME` environment variable is set.

#### Configure Registry Entries for OpenJDK

OpenJDK doesn't create registry entries by default. However, these are required for the IR agent.

- Open `regedit` and export the JRE registry key located at:
  ```
  HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft
  ```
  or
  ```
  HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\JavaSoft
  ```

- Uninstall Oracle JRE if desired.

- Open the exported `.REG` file with a text editor and replace Oracle JRE paths with OpenJDK paths:
  - Example path: `C:\Program Files\Microsoft\jdk-21.0.2.13-hotspot` (path depends on installed version).
  - Verify the correct sub-folder (either `bin\server` or `bin\client`) exists in your OpenJDK installation.

##### Example Registry File

```powershell
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment]
"CurrentVersion"="17.0"
"JavaHome"="C:\Program Files\Microsoft\jdk-21.0.2.13-hotspot"
"RuntimeLib"="C:\Program Files\Microsoft\jdk-21.0.2.13-hotspot\bin\server\jvm.dll"
  • Apply the edited registry file by double-clicking on it.

Install Visual C++ Runtime

The JVM requires Visual C++ runtime libraries (VCRUNTIME140.dll, VCRUNTIME140_1.dll). If these libraries are missing, install the Microsoft Visual C++ Redistributable.

Prevent Java OutOfMemoryError

Large data ingestion via Parquet may trigger Java heap memory errors:

java.lang.OutOfMemoryError: Java heap space

Configure Java heap memory limits by setting system-wide environment variables:

_JAVA_OPTIONS = -Xms512m -Xmx16g
JAVA_TOOL_OPTIONS = -Xms512m -Xmx16g
  • Xms sets the initial heap size, Xmx the maximum.
  • Restart the VM after setting these variables.

Verify heap memory configuration:

java -XX:+PrintFlagsFinal -version

Ensure your settings for MinHeapSize (initial) and MaxHeapSize (maximum) appear correctly in the output.

OutOfMemoryError

Info

Microsoft documentation suggests _JAVA_OPTIONS, but some sources indicate JAVA_TOOL_OPTIONS might also be required. Both have been tested successfully.

With these steps completed, your Sidra Integration Runtime using OpenJDK is properly configured and optimized for stable and efficient operation.