Error in connecting JDBC to dremio

Hi team,
I am trying to query offloaded data in Dremio using JDBC interface using the below attached code.

I am getting the below error while trying the same.

Connecting to database...
[main] INFO com.dremio.jdbc.Driver - Enabling Netty native memory API for Java9+
[main] INFO cdjd.com.dremio.common.config.SabotConfig - Configuration and plugin file(s) identified in 68ms.
Base Configuration:
    - jar:file:///C:/Users/rss/Downloads/dremio-jdbc-driver-24.0.0-202302100528110223-3a169b7c.jar!/sabot-default.conf

 

Intermediate Configuration and Plugin files, in order of precedence:
    - jar:file:///C:/Users/rss/Downloads/dremio-jdbc-driver-24.0.0-202302100528110223-3a169b7c.jar!/sabot-module.conf

 


[main] INFO cdjd.org.apache.arrow.memory.BaseAllocator - Debug mode disabled.
[main] INFO cdjd.org.apache.arrow.memory.DefaultAllocationManagerOption - allocation manager type not specified, using netty as the default type
[main] INFO cdjd.org.apache.arrow.memory.CheckAllocator - Using DefaultAllocationManager at memory/DefaultAllocationManagerFactory.class
[Client-1] ERROR cdjd.com.dremio.exec.rpc.RpcExceptionHandler - Exception in RPC communication.  Connection: null <--> null (user client).  Closing connection.
java.lang.UnsupportedOperationException: sun.misc.Unsafe or java.nio.DirectByteBuffer.<init>(long, int) not available
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.util.internal.PlatformDependent.directBuffer(PlatformDependent.java:495)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.buffer.NettyArrowBuf.getDirectBuffer(NettyArrowBuf.java:260)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.buffer.NettyArrowBuf.nioBuffer(NettyArrowBuf.java:238)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.buffer.NettyArrowBuf.nioBuffers(NettyArrowBuf.java:222)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.buffer.NettyArrowBuf.setBytes(NettyArrowBuf.java:382)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.buffer.MutableWrappedByteBuf.setBytes(MutableWrappedByteBuf.java:373)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.buffer.ExpandableByteBuf.setBytes(ExpandableByteBuf.java:27)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1132)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:350)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    at java.base/java.lang.Thread.run(Thread.java:833)
[Client-1] INFO cdjd.com.dremio.sabot.rpc.user.UserClient - [USER]: Channel closed null <--> null (user client)
java.sql.SQLException: Failure in connecting to Dremio: cdjd.com.dremio.exec.rpc.RpcException: HANDSHAKE_COMMUNICATION : [USER]: Channel closed null <--> null (user client)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/com.dremio.jdbc.impl.DremioExceptionMapper.map(DremioExceptionMapper.java:80)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/com.dremio.jdbc.impl.DremioConnectionImpl.<init>(DremioConnectionImpl.java:105)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/com.dremio.jdbc.impl.DremioJdbc41Factory.newConnection(DremioJdbc41Factory.java:72)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/com.dremio.jdbc.impl.DremioFactory.newConnection(DremioFactory.java:67)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.org.apache.calcite.avatica.UnregisteredDriver.connect(UnregisteredDriver.java:138)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/com.dremio.jdbc.Driver.connect(Driver.java:84)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:681)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:190)
    at jdbc.connection.main(connection.java:16)
Caused by: cdjd.com.dremio.exec.rpc.RpcException: HANDSHAKE_COMMUNICATION : [USER]: Channel closed null <--> null (user client)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.com.dremio.exec.client.DremioClient$FutureHandler.connectionFailed(DremioClient.java:825)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.com.dremio.sabot.rpc.user.QueryResultHandler$ChannelClosedHandler.connectionFailed(QueryResultHandler.java:387)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.com.dremio.exec.rpc.BasicClient$ConnectionMultiListener$HandshakeSendListener.failed(BasicClient.java:401)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.com.dremio.exec.rpc.RequestIdMap$RpcListener.setException(RequestIdMap.java:196)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.com.dremio.exec.rpc.RequestIdMap$SetExceptionProcedure.apply(RequestIdMap.java:118)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.com.dremio.exec.rpc.RequestIdMap$SetExceptionProcedure.apply(RequestIdMap.java:108)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.com.carrotsearch.hppc.IntObjectHashMap.forEach(IntObjectHashMap.java:692)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.com.dremio.exec.rpc.RequestIdMap.doNotify(RequestIdMap.java:104)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.com.dremio.exec.rpc.RequestIdMap.channelClosed(RequestIdMap.java:71)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.com.dremio.exec.rpc.RemoteConnection.channelClosed(RemoteConnection.java:208)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.com.dremio.exec.rpc.RpcBus$ChannelClosedHandler.operationComplete(RpcBus.java:216)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.com.dremio.exec.rpc.RpcBus$ChannelClosedHandler.operationComplete(RpcBus.java:202)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:578)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:552)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:491)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:616)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.util.concurrent.DefaultPromise.setSuccess0(DefaultPromise.java:605)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:104)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.channel.DefaultChannelPromise.trySuccess(DefaultChannelPromise.java:84)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.channel.AbstractChannel$CloseFuture.setClosed(AbstractChannel.java:1182)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.channel.AbstractChannel$AbstractUnsafe.doClose0(AbstractChannel.java:773)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.channel.AbstractChannel$AbstractUnsafe.close(AbstractChannel.java:749)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.channel.AbstractChannel$AbstractUnsafe.close(AbstractChannel.java:620)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.channel.DefaultChannelPipeline$HeadContext.close(DefaultChannelPipeline.java:1352)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.channel.AbstractChannelHandlerContext.invokeClose(AbstractChannelHandlerContext.java:622)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.channel.AbstractChannelHandlerContext.close(AbstractChannelHandlerContext.java:606)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.channel.AbstractChannelHandlerContext.close(AbstractChannelHandlerContext.java:472)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.com.dremio.exec.rpc.RpcExceptionHandler.exceptionCaught(RpcExceptionHandler.java:37)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:302)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:281)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:273)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.channel.DefaultChannelPipeline$HeadContext.exceptionCaught(DefaultChannelPipeline.java:1377)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:302)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:281)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.channel.DefaultChannelPipeline.fireExceptionCaught(DefaultChannelPipeline.java:907)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.handleReadException(AbstractNioByteChannel.java:125)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:177)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: cdjd.com.dremio.exec.rpc.ChannelClosedException: [USER]: Channel closed null <--> null (user client)
    at dremio.jdbc.driver@24.0.0-202302100528110223-3a169b7c/cdjd.com.dremio.exec.rpc.RpcBus$ChannelClosedHandler.operationComplete(RpcBus.java:214)
    ... 33 more

Hello,

you are using the Dremio 24 Java Driver with Java 9+ which is not supported. You can add “-Dcdjd.io.netty.tryReflectionSetAccessible=true” as a property (of your run configuration / code) as a workaround. However, the new driver is incompatible to the Dremio version used in Cumulocity IoT DataHub anyway.

The correct driver is available [here] (Index of jdbc-driver/). Please pick the one matching the Dremio version – in most cases that should be 19.3 as of writing this.

The same topic applies to the ODBC Driver publicly available. It is incompatible with the Dremio version used by DataHub. The correct version is available here: (Dremio ODBC driver for DataHub)

:
(SAG employees only) – customers please request it via support:

Thanks, Tim

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.