2010-04-08 78 views
1

我在想我的新應用程序的GlassFish平臺。GlassFish JDO和全局對象

  1. 我的應用程序env。沒有大量數據可處理,但很多用戶正在寫入/讀取相同的數據。

  2. 數據的一個非常靈活的部分每隔200毫秒由差異用戶更新。所以我想這類型的數據是隻讀存儲器,並訪問整個應用程序

我的問題:

  1. 如何使用一個全局對象在內存與GF? a。使用靜態變量對象 - 爲此,我想我需要確保GF僅在1個JVM上運行 - >如何將GF配置爲在1個jvm上運行? b。使用HttpContext - 與a相同。
  2. 我該如何堅持數據庫? a。我可以使用JDO接口嗎?
  3. 如何安排任務在未來執行(像在GAE的任務隊列)

感謝, J.S.巴赫

回答

0

如何在GF內存中使用全局對象?

我會使用二級緩存(您在JPA 2中獲得)。二級緩存實現將取決於JPA提供者。

我該如何堅持數據庫?一個。我可以使用JDO接口嗎?

我會堅持使用JPA 2

如何安排任務在未來執行

我會使用EJB 3.1的增強型定時器服務API允許比創建類似於cron的調度來觸發EJB方法(只需使用@Schedule批註註釋EJB方法):

@Stateless 
public class NewsLetterGeneratorBean implements NewsLetterGenerator { 
    @Schedule(second="0", minute="0", hour="0", dayOfMonth="1", month="*", year="*") 
    public void generateMonthlyNewsLetter() { 
     ... Code to generate the monthly news letter goes here... 
    } 
} 

以上示例取自TheServerSide上的this article

+0

本網站聲稱JPA比JDBC慢10倍(http://weblogs.java.net/blog/mkarg/archive/2010/01/03/jpa-great-damned-slow)。 我將如何使用JPA 2具有全局內存變量?任何其他簡單的選項? – bach 2010-04-08 23:21:48

+0

@bach 1)你應該更仔細地重讀這篇文章,直到最後(並且不包括在數據庫中花費的時間是荒謬的)。 2)JPA 2有一個全局緩存,只是使用它。或者根本不使用JPA,但仍然使用全局緩存(如EHCache)並手動完成所有操作。 – 2010-04-08 23:48:37