Eduardo, The version of the Datastax Cassandra JDBC driver in 1.14.0 was upgraded from 3.3.0 to 3.11.0 under NIFI-8295 [1]. According to Microsoft docs [2] this should be compatible with CosmosDB. However there were some code changes made as well, it appears that the endpoints must now be backed by a proxy that supports SNI routing [3,4]. Is your CosmosDB instance configured that way? I don't know anything about SNI and barely anything about CosmosDB so I won't be much help there, but I do plan on learning about it because those code changes may not be valid or may need to be tied to a configurable value.
A possible workaround is to replace the Cassandra NARs with 1.13.2 versions [5,6,7] and see if those work. Regards, Matt [1] https://issues.apache.org/jira/browse/NIFI-8295 [2] https://docs.microsoft.com/en-us/azure/cosmos-db/cassandra/cassandra-support [3] https://github.com/apache/nifi/pull/4946/files [4] https://docs.datastax.com/en/drivers/java/3.11/com/datastax/driver/core/SniEndPoint.html [5] https://repository.apache.org/content/repositories/releases/org/apache/nifi/nifi-cassandra-nar/1.13.2/nifi-cassandra-nar-1.13.2.nar [6] https://repository.apache.org/content/repositories/releases/org/apache/nifi/nifi-cassandra-services-api-nar/1.13.2/nifi-cassandra-services-api-nar-1.13.2.nar [7] https://repository.apache.org/content/repositories/releases/org/apache/nifi/nifi-cassandra-services-nar/1.13.2/nifi-cassandra-services-nar-1.13.2.nar On Thu, Sep 30, 2021 at 1:39 PM Eduardo Fontes <[email protected]> wrote: > > Hi all, > > I'm using CassandraSassionProvider 1.12.1 with CosmosDB Cassandra API in > Azure with no problem. > > When I tried to migrate the flow to 1.14 NiFi version, it doesn't connect. > I got this error in log: > > 2021-09-30 14:30:46,449 ERROR [Timer-Driven Process Thread-7] > o.a.n.c.s.StandardControllerServiceNode > StandardControllerServiceNode[service=CassandraSessionProvider[id=3139b034-00a6-30fc-b5bd-cee7c5e5d4c8], > name=CassandraSessionProvider, active=true] Failed to invoke > @OnEnabled method due to > com.datastax.driver.core.exceptions.NoHostAvailableException > : All host(s) tried for query failed (tried: > redacted.cassandra.cosmos.azure.com/redacted:10350 > (com.datastax.driver.core.exceptions.TransportException: [ > redacted.cassandra.cosmos.azure.com/redacted:10350] > Channel has been closed)): {} > com.datastax.driver.core.exceptions.NoHostAvailableException: > All host(s) tried for query failed (tried: > redacted.cassandra.cosmos.azure.com/redacted:10350 > (com.datastax.driver.core.exceptions.TransportException: [ > redacted.cassandra.cosmos.azure.com/redacted:10350] > Channel has been closed)) > > at > com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:270) > > at > com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:109) > > at > com.datastax.driver.core.Cluster$Manager.negotiateProtocolVersionAndConnect(Cluster.java:1813) > at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1726) > at com.datastax.driver.core.Cluster.init(Cluster.java:214) > at com.datastax.driver.core.Cluster.connectAsync(Cluster.java:387) > at com.datastax.driver.core.Cluster.connect(Cluster.java:338) > > at > org.apache.nifi.service.CassandraSessionProvider.connectToCassandra(CassandraSessionProvider.java:255) > > at > org.apache.nifi.service.CassandraSessionProvider.onEnabled(CassandraSessionProvider.java:175) > > at jdk.internal.reflect.GeneratedMethodAccessor776.invoke(Unknown Source) > > at > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.base/java.lang.reflect.Method.invoke(Method.java:566) > > at > org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotations(ReflectionUtils.java:145) > > at > org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotations(ReflectionUtils.java:133) > > at > org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotations(ReflectionUtils.java:78) > > at > org.apache.nifi.util.ReflectionUtils.invokeMethodsWithAnnotation(ReflectionUtils.java:55) > > at > org.apache.nifi.controller.service.StandardControllerServiceNode$2.run(StandardControllerServiceNode.java:456) > at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110) > > at > java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) > > at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) > > at > java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) > > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) > > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) > at java.base/java.lang.Thread.run(Thread.java:829) > 2021-09-30 14:30:46,450 ERROR [Timer-Driven Process Thread-7] > o.a.n.c.s.StandardControllerServiceNode Failed to invoke @OnEnabled > method of CassandraSessionProvider[id=3139b034-00a6-30fc-b5bd-cee7c5e5d4c8] > due to com.datastax.driver.core.exceptions.NoHostAvailableException > : All host(s) tried for query failed (tried: > redacted.cassandra.cosmos.azure.com/redacted:10350 > (com.datastax.driver.core.exceptions.TransportException: [ > redacted.cassandra.cosmos.azure.com/redacted:10350] > Channel has been closed)) > > > Someone with same problem? > > Thanks. > Eduardo Fontes
