几个星期的运行后,corda CENM网络图服务器开始无法连接数据库

时间:2020-07-21 08:07:18

标签: corda

我们运行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 个答案:

答案 0 :(得分:0)

请测试以下选项。

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

Corda使用Hikari池创建连接池。要配置连接池,可以在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