Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何允许多个用户同时连接到我的H2数据库?_Java_Sql_Database_H2 - Fatal编程技术网

Java 如何允许多个用户同时连接到我的H2数据库?

Java 如何允许多个用户同时连接到我的H2数据库?,java,sql,database,h2,Java,Sql,Database,H2,我正在使用H2进行数据库管理,这就是我想要做的: 我希望允许多个用户同时访问一个数据库。我读过一些关于“MULTI_THREADED=TRUE”、“LOCK_FILE=NO”和“AUTO_SERVER=TRUE”的文章。我还读到“LOCK_FILE=NO”可能很危险,因为它会损坏数据库。我肯定不想这样,所以我认为这是一个糟糕的方式。我还尝试在访问记录后立即关闭连接,无论是读取还是写入记录。到目前为止,一切似乎都不起作用。如果数据库已连接到应用程序的单独实例中(例如:在另一台计算机上),则应用程序

我正在使用H2进行数据库管理,这就是我想要做的:

我希望允许多个用户同时访问一个数据库。我读过一些关于“MULTI_THREADED=TRUE”、“LOCK_FILE=NO”和“AUTO_SERVER=TRUE”的文章。我还读到“LOCK_FILE=NO”可能很危险,因为它会损坏数据库。我肯定不想这样,所以我认为这是一个糟糕的方式。我还尝试在访问记录后立即关闭连接,无论是读取还是写入记录。到目前为止,一切似乎都不起作用。如果数据库已连接到应用程序的单独实例中(例如:在另一台计算机上),则应用程序不允许我读取或写入数据库。一旦我在一台计算机上完全关闭应用程序,我就能够访问数据库记录


如何允许多个用户同时连接到H2数据库而不影响数据库的安全?

看起来您在嵌入式模式下使用H2,该模式一次只允许一个数据库连接。有关详细信息,请参见文档中的


如果您需要支持多个连接,包括来自多个应用程序实例的连接,那么您需要在中启动H2,并使用适用于此模式的相应连接。

AUTO\u SERVER=TRUE允许多个连接模式。

有趣的是,您得到的第一个答案正是我所说的……不完全正确。你的回答都不是很直接或者很有帮助。所以“使用服务器模式”没有帮助…好吧,我不认为仅使用“AUTO_server=TRUE”就可以解决问题。单凭这一点就能解决问题吗?现在,我已将其设置为在查询完成后立即提交并关闭连接,因此将创建锁文件,然后将其删除。这是允许多个用户访问数据库的有效方法吗?那么,有没有一种方法可以使用“AUTO_SERVER=TRUE”来实现这一点?这会使它混合吗?如果我将Auto-Server设置为true,那么它会允许多个连接吗?(即Auto_-Server=true)允许多个并发连接到数据库。但是,我不建议这样做,因为第一个连接会启动服务器,当该连接关闭时,服务器也会关闭,因此所有远程连接都会关闭,和挂起的事务将被回滚。文档说明,在嵌入式模式下,对打开的连接数没有限制。@StefanNeuhaus,但对多个用户没有限制