1

我在各种平台(例如 OS X 和 Linux Centos)上使用 MonetDB 和一个闪亮的应用程序。

总是很难断开数据库,所以目前我的方法是在不断开数据库的情况下终止闪亮的应用程序。

这意味着闪亮的应用程序在访问数据之前会尝试通过以下方式停止任何“旧”进程:

monetdb.server.stop(pid)

从命令的来源我了解到它基本上会杀死与pid提供的相关的进程(这意味着运行应用程序的用户必须有权访问该kill函数)。

有时这可以正常工作,但有时当我尝试再次启动 MonetDB 时,我得到

!FATAL: GDKlockHome: Database lock '.gdk_lock' denied

Warning in socketConnection(host = host, port = port, blocking = TRUE, open = "r+b",  :
  localhost:50000 cannot be opened
Error in socketConnection(host = host, port = port, blocking = TRUE, open = "r+b",  : 
  cannot open the connection

有没有办法避免这个错误(我在闪亮时使用它时不强制断开数据库)?

4

1 回答 1

2

MonetDB 确实需要几秒钟才能关闭。如果同时在同一dbfarm目录上启动新进程,您将收到!FATAL: GDKlockHome: Database lock '.gdk_lock' denied错误消息。我正在考虑waitmonetdb.server.stop.

因此,与此同时,在服务器再次启动之前稍等片刻是个好主意。否则,请考虑使用monetdbd来管理您的 MonetDB 服务器。

于 2015-03-22T07:34:58.177 回答