【问题标题】:corda CENM networkmap server start failing to connect database after a few week run运行几周后,corda CENM 网络地图服务器开始无法连接数据库
【发布时间】:2020-07-21 08:07:18
【问题描述】:

我们运行CENM(1.2并使用helm模板在k8s集群上运行)构建自己的私有网络并继续运行CENM网络地图服务器几周,然后启动新节点开始失败。

经过进一步调查,似乎 http://nmap:10000/network-map 的请求超时会导致问题。

在nmap服务器的日志中,当我们用curl访问上面的url时,我们发现了以下输出。

[NMServer] - Error while handling socket client message com.r3.enm.servicesapi.networkmap.handlers.LatestUnsignedNetworkParametersRetrievalMessage@760c53ea: HikariPool-1 - Connection is not available, request timed out after 30000ms.

netstat显示至少有3个从网络地图服务器运行的容器建立到数据库的连接,我也可以使用CLI直接连接数据库。

所以我认为这既不是数据库饱和也不是网络配置问题。

有人知道为什么会这样吗?我认为重启可能会解决问题,但想知道根本原因......

问候,

【问题讨论】:

  • 嗨,您能否为我们提供更多附加信息 1. 网络地图和其他 CENM 组件(身份管理器等)的完整日志,2. 发生错误时集群上的节点,包括一个与连接问题 3.完整的 Kubernetes 日志在问题的粗略时间窗口 4.有关网络拓扑/组成网络的主机的信息

标签: corda


【解决方案1】:

请测试以下选项。

由于是 HikariCP(连接池)组件引发了错误,因此如果增加网络映射配置中的池大小可能会有所帮助,则值得一看 - 见下文)

Corda 使用 Hikari Pool 来创建连接池。要配置连接池,可以在 dataSourceProperties 部分中设置任何自定义属性。

dataSourceProperties = {
    dataSourceClassName = "org.postgresql.ds.PGSimpleDataSource"
    ...
    maximumPoolSize = 10
    connectionTimeout = 50000
}

是否进行了健康检查以验证该 postgres 数据库上有足够的资源,即基本诊断检查?

另一个从网络地图服务记录更多信息的选项是运行 TRACE 日志记录:

来自https://docs.corda.net/docs/cenm/1.2/troubleshooting-common-issues.html

启用调试/跟踪日志记录

每个服务都可以通过启动时传递的命令行标志配置为以更深的日志级别运行:

java -DdefaultLogLevel=TRACE -DconsoleLogLevel=TRACE -jar <enm-service-jar>.jar --config-fi

【讨论】:

  • 谢谢,我已经添加了日志配置,如果再有事情,我会在这里发帖
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-12
  • 2019-11-14
  • 2019-05-06
  • 1970-01-01
  • 1970-01-01
  • 2017-04-07
  • 2019-02-24
相关资源
最近更新 更多