我有一个使用NetworkServerControl API启动Derby Network Server的程序,当我想关闭网络服务器时,我想要优雅地完成,这样就不会启动任何新事务,但是所有当前事务都被赋予了设定完成的时间。我看到API有一个shutdown命令,但它没有说明客户端连接当前正在进行的事务以及它是否只是立即终止进程。 Derby Network Server是自动处理当前事务还是新事务,还是有一种方法可以阻止新的客户端连接和事务处理?
我在考虑(这可能是完全错误的)我可以使用call setMaxThreads(0)来停止JDBC客户端连接,但是如果我这样做,我不确定正在进行的事务会发生什么。
提前致谢。
答案 0 :(得分:0)
考虑使用表锁来执行此操作。编写一个特殊程序,在所有重要表上获取表锁,然后关闭网络服务器。
答案 1 :(得分:0)
DriverManager.getConnection("jdbc:derby:MyDbTest;shutdown=true");
这将正常关闭数据库。