A Microsoft platform for building enterprise-level data integration and data transformations solutions.
Configure a supported 64-bit Java runtime on every self-hosted Integration Runtime node and restart the IR service, because converting SQL Server rows into Parquet requires Java on the SHIR machine.^1^
Configure Java for Parquet serialization
A reliable documented configuration is 64-bit JDK 23:
- On every machine hosting a SHIR node, install the 64-bit JDK 23.
- Open System Properties → Advanced → Environment Variables.
- Under System variables, set:
-
JAVA_HOME= the JDK root, for example:C:\Program Files\Java\jdk-23 - Add these entries to the system
Path:-
%JAVA_HOME%\bin -
%JAVA_HOME%\bin\server
-
-
- Confirm that this file exists:
C:\Program Files\Java\jdk-23\bin\server\jvm.dll - Open
services.mscand restart the Microsoft Integration Runtime service. - Rerun the Copy activity.
ADF locates a conventional JRE through the JavaSoft registry entry first and checks the system JAVA_HOME variable for OpenJDK. The Java architecture must match the 64-bit SHIR architecture.^1^
If using OpenJDK instead, it requires SHIR 3.13 or later; JAVA_HOME must identify the OpenJDK installation containing jvm.dll and its accompanying assemblies. Restart SHIR after changing system environment variables.^1^
If the same generic JNI error remains
The supplied message does not include the Java inner exception needed to distinguish JVM startup, memory, schema, and data-conversion failures. Collect the SHIR activity logs:
- In ADF Studio, open Monitor → Pipeline runs.
- Select the failed pipeline and locate Activity runs.
- In the Error column, open the activity logs.
- Select Send logs.
- Upload the logs associated with the failed activity and retain the generated Report ID.^2^
Search the detailed log for one of these branches:
-
java.lang.OutOfMemoryErrororJava heap space: limit concurrent SHIR runs or provide more memory. If the SHIR version is earlier than3.20.7159.1, upgrade it. On a machine with sufficient RAM, the documented JVM configuration example is a system variable named_JAVA_OPTIONSwith value-Xms256m -Xmx16g; restart every SHIR node afterward.^3^ -
Cannot create JVM: JNI return code [-6]: inspect_JAVA_OPTIONSfor invalid JVM arguments. Correct it to a valid value such as the documented example above, provided the machine has more than 8 GB of memory, and restart all SHIR nodes.^3^ - Invalid or unsupported column names: map the sink columns to names without whitespace or the characters
,;{}()\n\t=.^3^ - Missing
jvm.dllor failure loading it: inspect
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment.
Current Versionmust point to a matching subkey whoseJavaHomeidentifies the installed runtime. Back up the registry before changing it. If Java configuration is correct but the DLL still cannot load, the SHIR troubleshooting guide identifies a missing Visual C++ runtime dependency as another possible condition.^2^
If none of these signatures appears, submit the Report ID to Microsoft Support together with the failed activity run ID, SHIR version, and complete inner exception.
References