【问题标题】:Error while shutdown cassandra cluster from c# datastax driver从 c#datastax 驱动程序关闭 cassandra 集群时出错
【发布时间】:2015-04-01 11:32:46
【问题描述】:

我正在使用 Datastax C# 驱动程序从我的 C# 应用程序连接到 Cassandra 节点。我的代码工作正常,我能够检索所有数据并处理它们。但是,当我在获取记录后尝试关闭集群时,它给了我上述错误。下面是我的 Connect 方法代码。

public ISession Connect()
{
    cluster = Cluster.Builder().AddContactPoint(NodeIp).Build();       //node ip
    ISession session = cluster.Connect(ClusterName);                   //database name
    return session;
}

任何帮助将不胜感激。

【问题讨论】:

  • 此错误已在最新版本中修复
  • 刚刚发完这个问题就解决了吗?
  • 是的,我创建了一张票并将其包含在即将发布的版本中 :) datastax-oss.atlassian.net/browse/CSHARP-247 。您应该通过 Nuget 进行更新,无需解决方法即可修复
  • 哇,太好了,非常感谢队友:)

标签: c# cassandra datastax-enterprise datastax


【解决方案1】:

关闭集群时,驱动程序使用 STAThreads 不支持的WaitHandle.WaitAll()

关闭时驱动应该支持STAThreads,我创建了ticket for it

与此同时,作为一种解决方法,您可以开始一个新任务并等待它。

Task.Factory.StartNew(() => cluster.Shutdown()).Wait();

更新

此错误已在最新版本中修复。

【讨论】:

  • 谢谢,上面的查询有效,现在没有给我错误。但是你能告诉我我的集群什么时候会关闭吗?我怎么知道它已经关闭了?
  • 关机是C#驱动中的一个阻塞操作,所以当行执行时会关机(解决方法包括一个Wait())
猜你喜欢
  • 2013-07-14
  • 2014-06-11
  • 2016-10-02
  • 2016-02-27
  • 2017-01-20
  • 2014-03-27
  • 2017-08-04
  • 2022-01-04
  • 2016-07-26
相关资源
最近更新 更多