2012-04-05 34 views
3

我使用的是JBoss AS 7.1.1,并且我的数据库有问题 - 每次重新启动服务器时都会被擦除。下面你可以看到我的持久性文件的内容:JBoss AS 7.1.1重新启动后数据库擦除

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="1.0" 
      xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"> 
    <persistence-unit name="wyklad2"> 
     <provider>org.hibernate.ejb.HibernatePersistence</provider> 
     <jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source> 
     <properties> 
      <property name="hibernate.hbm2ddl.auto" value="update" /> 
      <property name="hibernate.show_sql" value="false" /> 
     </properties> 
    </persistence-unit> 
</persistence> 

数据源配置:

<subsystem xmlns="urn:jboss:domain:datasources:1.0"> 
      <datasources> 
       <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true"> 
        <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url> 
        <driver>h2</driver> 
        <security> 
         <user-name>sa</user-name> 
         <password>sa</password> 
        </security> 
       </datasource> 
       <drivers> 
        <driver name="h2" module="com.h2database.h2"> 
         <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class> 
        </driver> 
       </drivers> 
      </datasources> 
     </subsystem> 

我将是任何线索,这将有助于我解决这个问题,非常感谢。

+0

JBoss中的数据源配置是什么?你确定你没有使用内存数据库吗? – 2012-04-05 13:01:24

+0

其实我对JBoss没有多少经验,你能告诉我如何检查这个数据源配置吗? – user1315305 2012-04-05 13:12:12

+0

https://community.jboss.org/wiki/DataSourceConfigurationInAS7 – 2012-04-05 13:15:24

回答

10

您正在使用的数据源是内存中的h2数据库。当你的服务器停机时,这个DB不复存在。

改为切换到真实的数据库。

对于h2,语法为:jdbc:h2:~/mydb;DB_CLOSE_DELAY=-1位于〜/ mydb中的数据库。使用你喜欢的任何路径(你应该有写权限)。

+0

非常感谢,它的作品! – user1315305 2012-04-05 13:59:59