标題:ejb3中的@Schedule中的persistent屬性的深入探索 1 實驗環境: 應用伺服器:glassfish4.0 資料庫伺服器: MYSQL Target Server Version : 50614 開發工具: netbeans8.0 2 我思考的問題:當我開發好了一個@Schedule定時任務之後,我開始思考這樣一種場景,如果我的應用伺服器(glassfish4)是叢集,那麼我的定時任務會怎麼執行,因為在你釋出一個項目到glassfish叢集中,每一台jvm中都會運作相同的程式。那定時器也必然存在多份。那麼我的定時器元件會在同一時間點執行多次嗎(執行在多個jvm中)? 如果不會,是什麼機制控制定時器的統一性,如果會,那麼我們又改怎麼解決呢? 3 在編寫一個定時器任務時,代碼如下:

把該ejbtimer_mysql.sql放到資料中執行,然後配置一個資料庫連接配接池,我這裡就直接修改預設的資料連接配接池__TimerPool。
建表語句是在test庫中執行的,這樣配置之後你的ejb定時器使用的就是你自定義的資料庫了。然後重新啟動glassfish伺服器,并把你定時器任務程式釋出到glassfish上去。若果釋出中提示EJB__TIMER__TBL表找不到,那你應該是忘記執行建表sql了。好了當我定時應用程式啟動後: 這是我的代碼程式:
控制台輸出結果如下: