Apache arrow not supported on IBM AIX causing error Java.lang.NoClassDefFoundError for Apache arrow for select query against Snowflake via JDBC driver
In this article, we will provide solution to the error " Java.lang.NoClassDefFoundError for Apache arrow" when fetching data from Snowflake from SAP Business Warehouse (BW) running on IBM AIX 7.2 OS using Snowflake JDBC driver 3.14.4.
Customer environment:
Operating System :IBM AIX 7.2
Vitual machine : SAP Business Warehouse (BW) Java Server VM
Java : IBM Java 1.8
Customer hitting below error when trying to fetch data via select query from Snowflake via SAP BW using Snowflake JDBC driver 3.14.4.
n.s.c.jdbc.SnowflakeSQLException FINE <init>:104 - Snowflake exception: JDBC driver internal error: exception creating result java.lang.NoClassDefFoundError: net/snowflake/client/jdbc/internal/apache/arrow/memory/rounding/DefaultRoundingPolicy : cannot initialize class because prior initialization attempt failed at net.snowflake.client.jdbc.internal.apache.arrow.memory.RootAllocator.<init>(RootAllocator.java:40).
Customer can use this property (jdbc_query_result_format=json) in datasouce property of Application server or session property in application like
Statement = connection.createStatement();
Statement.executeQuery("ALTER SESSION SET JDBC_QUERY_RESULT_FORMAT='JSON'");
which will use result format as JSON instead of Arrow and which will avoid the above error.
Applies To
Select Query from SAP BW on AIX Operating system.