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

Reply via email to