2012-04-05 33 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