簡體   English   中英

Glassfish - 從32位到64位操作系統的Java EE應用程序,不完整的數據庫查詢?

[英]Glassfish - Java EE application from 32bit to 64bit OS, incomplete DB queries?

我面臨着從32位系統遷移到64位系統的非常非常奇怪的問題。 我有2個環境:

  • 開發 - Windows XP 32位
  • 生產 - Windows 2008服務器R2 64位

在這兩個系統上我都使用jdk7u1 32bit,Glassfish 3.1.1 Web Profile和默認的JPA(eclipselink)。 在制作時,我有Oracle數據庫11g版本11.2.0.1.0 32位。 在Glassfish中,我使用來自Oracle的適當驅動程序(ojdbc6.jar)。 我還有Java EE應用程序,它從數據庫視圖加載產品列表並向用戶顯示,沒什么特別的。

當我將應用程序部署到開發計算機並連接到生產數據庫時,一切正常,我可以看到所有記錄。 但是,當我部署到生產envirnoment命名查詢時,只返回幾條記錄。 沒有錯誤,警告等。應用程序的行為就像沒有更多的記錄,但事實並非如此。 在兩台機器上,連接屬性完全相同。 當我從兩台計算機連接SQL Developer時,我可以看到所有記錄。

我完全不知道發生了什么。 唯一的區別是操作系統,但這不應該產生問題,因為JDK是相同的。 我對嗎?

也許你有緩存問題。 我記得Toplink(EclipseLink的基礎)默認情況下緩存機制為ON 所以如果這是場景:

  1. 如果您已從Machine A創建/修改了記錄,則這些修改不會反映在Machine B因為它們沒有更新其緩存。
  2. 如果您在Glassfish(EclipseLink)之外創建/修改了記錄,則這些記錄不會在Machine AMachine B的EclipeLink中更新。

您可以驗證它是否直接在數據庫上更改記錄並驗證它是否反映在兩台計算機上,如果未反映更改,則表明存在緩存問題,您可以根據以下文檔對其進行配置:

http://wiki.eclipse.org/Introduction_to_Cache_%28ELUG%29

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM