2013-03-07 52 views
1

我正在使用H2数据库进行Java Swing开发的零售POS软件。我有一个问题,在多用户环境中,连接到服务器的客户端很少。多用户数据库,如何识别客户端断开连接时

如果客户端系统异常退出并尝试再次重新连接,服务器如何识别它并重新连接。是否有任何方法可以在客户断开连接后立即进行识别。

这对我很有帮助。提前致谢。

随着亲切的问候,

I.Murugesan [email protected]

+0

所以你想让服务器识别客户端连接?为什么? – 2013-03-07 18:07:32

+0

使相同的客户端再次连接。否则,当客户端异常退出时,由于服务器不知道这一点,服务器将不允许同一客户端再次登录。 – Murugesan 2013-03-17 16:22:52

+0

H2 TCP服务器不会阻止用户同时登录多次。如果你想要这个功能,你需要自己实现它。但是我添加了一个可能有帮助的答案(见下文)。 – 2013-03-17 20:05:46

回答

0

对于每一个数据库中,有一个表INFORMATION_SCHEMA.SESSIONS。您可以使用它来列出数据库的所有打开会话。

另外,每个TCP服务器都有一个内存中的“management_db_”。一台TCP服务器可以服务多个数据库。要连接到它,您需要知道managementPassword,这是您需要使用-tcpPassword设置设置的密码。用户名是一个空字符串。另见TcpServer.initManagementDb and TcpServer.shutdown。您可以获取会话,数据库URL,用户名和连接时间(表名为sessions)。

+0

谢谢托马斯,我认为我可以解决我的问题。是否有可能将所有表全部授予? – Murugesan 2013-03-21 12:04:13

+0

您的意思是授予用户对数据库中所有表的访问权限吗?我知道的唯一捷径是[创建管理员用户](http://h2database.com/html/grammar.html#create_user)。 – 2013-03-21 19:14:53

+0

明白了。谢谢托马斯。 – Murugesan 2013-03-22 14:50:24

相关问题