Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.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 无法连接到Red Hat上的H2文件数据库_Java_Database Connection_H2_Redhat - Fatal编程技术网

Java 无法连接到Red Hat上的H2文件数据库

Java 无法连接到Red Hat上的H2文件数据库,java,database-connection,h2,redhat,Java,Database Connection,H2,Redhat,我已经编写了一个Java应用程序,它创建了一个H2文件数据库(1.4.184)。它在Windows和Ubuntu上运行良好。 当我将它部署到Red Hat服务器时,它创建了数据库,但无法连接。它只是挂起,没有任何异常退出。 这是应用程序使用的bean配置: <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" v

我已经编写了一个Java应用程序,它创建了一个H2文件数据库(1.4.184)。它在Windows和Ubuntu上运行良好。 当我将它部署到Red Hat服务器时,它创建了数据库,但无法连接。它只是挂起,没有任何异常退出。 这是应用程序使用的bean配置:

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">  
    <property name="driverClassName"  value="org.h2.Driver"></property>  
    <property name="url" value="jdbc:h2:file:./db/h2/my_data_base"></property>
    <property name="username" value="username"></property>  
    <property name="password" value="password"></property>  
    <property name="defaultAutoCommit" value="false" />
</bean>

我起初认为配置可能有问题,但后来我也尝试了一个简单的连接示例 同样的结果是:当它应该连接时,它开始挂起。。。(在终止进程之前,它已经运行了将近一个小时)。 我还发现使用时存在一些问题:auto_server=true;但这不适用于我的情况,因为我无论如何都不使用它。 与Ubuntu相比,文件权限也没有什么不同


可能有人知道是什么导致了这个问题?

这个案例曾经发生在我身上,我解决这个问题的方法是将db锁定机制改为使用socket。所以,在你的例子中,url是这样的

jdbc:h2:file:./db/h2/my_data_base;FILE_LOCK=SOCKET

您可以在这里查看详细信息。

确定-似乎对目录有一些限制。移动到另一个,工作正常(尽管使用相同的文件权限)