编程语言
首页 > 编程语言> > 如何在Java中重新建立丢失的KDB连接

如何在Java中重新建立丢失的KDB连接

作者:互联网

在我的Java应用程序中,我正在使用以下方法建立KDB连接

private void initConnection() throws KException, IOException {
    conn = new c(host, port);
    conn.tz = TimeZone.getTimeZone(CONNECTION_TIMEZONE);
}

然后,我使用conn成功地在表中异步插入数据.

KDB服务器每周重新启动一次,当时服务器重置了连接,我收到了java.net.SocketException异常.
使用上述异常,我可以再次建立丢失的连接,但这不是一个不错的解决方案,因为我丢失了批处理等.我也不希望在插入时抛出连接异常.

相反,KDB API中是否有一个回调/侦听器/异常方法,如果服务器关闭了连接/丢失了连接,API可以提前通知Java应用程序?

解决方法:

你为什么不做一个

SELECT 1;

在您的连接上.

如果打开,它将运行.
如果关闭,则由于网络连接失败,将引发错误.

仅在计划重新启动kbd服务器时才运行此测试.

就个人而言,在计划重启kbd数据库的那一刻,我会将数据转储到sqlite数据库中进行保存,然后在重新启动的框架结束并重新建立连接后,将sqlite数据库的内容转储到kbd数据库中.

标签:kdb,q-lang,java
来源: https://codeday.me/bug/20191110/2013335.html