2012-05-25 52 views
2

我的GlassFish Web應用程序出現問題: 我在我的glassfish應用程序上使用了持久性提供程序和EJB facedes。 Mysql連接被配置爲JDBC資源。 問題是當我在本地更新數據庫時(使用mysql promt或其他客戶端),glassfish服務器仍然「看到」舊值。我意識到在glassfis服務器和Msyql數據庫之間可能存在某種類型的緩存。我很確定有一些參數可以修改,但是經過相當長時間的搜索後,我似乎無法找到它。任何人都可以指導我到有問題的地區? MySQL的JDBC驅動器? web.xml中?連接池?從本地用戶和glassfish併發連接到Mysql數據庫

一些技術細節: 數據庫:MySQL 5.1中 服務器:Glassfish的3.1 服務器連接到與root用戶名 分貝我將EclipseLink作爲GlassFish應用 配置持久性提供者(太陽resources.xml中):

<jdbc-connection-pool allow-non-component-callers="false" associate-with-thread="false" connection-creation-retry-attempts="0" connection-creation-retry-interval-in-seconds="10" connection-leak-reclaim="false" connection-leak-timeout-in-seconds="0" connection-validation-method="auto-commit" datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" fail-all-connections="false" idle-timeout-in-seconds="300" is-connection-validation-required="false" is-isolation-level-guaranteed="true" lazy-connection-association="false" lazy-connection-enlistment="false" match-connections="false" max-connection-usage-count="0" max-pool-size="32" max-wait-time-in-millis="60000" name="mysql_drivingschool_rootPool" non-transactional-connections="false" pool-resize-quantity="2" res-type="javax.sql.DataSource" statement-timeout-in-seconds="-1" steady-pool-size="8" validate-atmost-once-period-in-seconds="0" wrap-jdbc-objects="false"> 
    <property name="serverName" value="localhost"/> 
    <property name="portNumber" value="3306"/> 
    <property name="databaseName" value="drivingschool"/> 
    <property name="User" value="*****"/> 
    <property name="Password" value="****"/> 
    <property name="URL" value="jdbc:mysql://localhost:3306/******"/> 
    <property name="driverClass" value="com.mysql.jdbc.Driver"/> 
</jdbc-connection-pool> 

回答

1

JPA使用雙層緩存機制。第一級緩存是當前的PersistenceContext。 Level-2緩存在不同的上下文中共享。

您可以控制緩存行爲。它依賴於您正在使用的JPA實現。由於您使用的是EclipseLink,請參閱this introduction。但是,這會降低應用程序的性能。

重新啓動應用程序(不是服務器)是我們如果需要手動更新數據庫所做的。如果在生產狀態下更頻繁地發生,則應直接從數據庫中獲取相關數據。

+0

非常感謝你!我真的失去了這個......在指出了正確的位置之後,我馬上找到了持久性XML中所需的標籤。順便說一句 - 如果有人需要它,解決方案將 <共享緩存模式> NONE放在持久性XML中 – Vova

+0

好聽,它的工作原理! –