2011-06-30 32 views
1

我們使用Glassfish server 2.1和Eclipselink JPA 2.1並連接到PostgreSQL數據庫8.4.8。 問題是,在Postgres的日誌文件中,我總是看到用em.createQuery或em.createNamedQuery創建的語句的準備。 似乎沒有任何準備好的陳述被重複使用。因此表現非常糟糕。Glassfish 2.1從不重複使用Postgresql和Eclipselink的語句?

我嘗試將默認JDBC設置prepareThreshold從5設置爲1. 只改變了現在命名的未命名語句。但是他們仍然沒有被重用。

我也試過連接池的幾個設置,因爲預處理語句是依賴於連接的,但是返回到默認的org.postgresql.ds.PGSimpleDataSource和javax.sql.DataSouce。

我啓用語句緩存也是在persistence.xml:

<property name="eclipselink.jdbc.cache-statements" value="true"/>

GlassFish是否支持2.1語句緩存?如果它確實是我錯過了什麼設置?

任何提示讚賞。

+0

我們將不得不更新到Glassfish 3. –

+0

我已經有了一些這樣做的樂趣。我可以讓我們的應用程序在GF 3.1上工作,現在正致力於獲得一個完整的集羣來替代我們的GF 2.1獨立實例以及一個集羣。我經常希望我使用像你一樣的Postgres。我真的不喜歡現在被卡住的MySQL。在使用Postgres之前,它在很多方面都非常好。 無論如何,我真的喜歡GF 3.1超過2.1。沒有更多的節點代理,所以更少的內存使用量。管理集羣更容易,安裝更容易,速度比2.1還快。從JEE 5升級到6雖然有些痛苦。 – Jim

+0

我知道你在說什麼。我們仍然很難升級到GF 3.1並因此升級到JEE6。這可能是SO的一些新問題的原因。謝謝你們的快速響應。 –

回答