2014-02-28 21 views
0

我製作了一個應用程序,我正在將WAS 8.5部署爲EAR。這個應用程序作爲一個應用程序,不斷檢查DataQueue並將它找到的任何消息轉移到MQ。由於我一直在測試它,我意識到如果我啓動它,它會無限期地啓動應用程序(因爲它是一個無限循環,檢查隊列)。即使沒有循環,數據隊列的read()函數也會無限期地讀取,直到找到消息,這也導致應用程序的啓動不會結束。我認識到一個EAR(帶有WAR,JAR等)是一個預期請求(如果不是全部,大部分時間)的應用程序。所以如果它是一個無限循環,它不會結束EAR的開始。部署在WAS上工作的應用程序

也許還有另一種方式在WAS上部署此應用程序。有沒有一種方法來部署應用程序,使它像後臺進程一樣,完成我之前提到的所有功能?

回答

0

有2個解決方案,以這樣的:

  1. 使用MDB和確保您收到的消息是監聽線程。這將確保線程完全由WAS處理。

  2. 這是一篇關於在WAS中使用線程的文章:http://wpcertification.blogspot.in/2010/09/developing-multi-threaded-application.html

+0

好的,因爲我不能使用theads(項目約束),我認爲它是MDB。現在,我在ServletContextListener上使用Web項目來部署EJB Jar(EJB中有一個方法,它自動在EAR開始時執行)。如果我想部署MDB,如何讓該方法在EAR開始時自動啓動? (假設整個網絡項目不對) – Xanathos