若要在 JVM 伺服器中部署 Java™ 應用程式,您必須在目標 JVM 伺服器的 OSGi 架構中安裝該應用程式的 OSGi 軟體組。
開始之前
包含應用程式之 OSGi 軟體組的 CICS® 組合,必須部署至 zFS。目標 JVM 伺服器必須配置以執行 OSGi 架構,且在 CICS 區域中啟用。您必須使用
CICS Explorer® 連接至 CICS 區域來建立 CICS 資源。
關於這項作業
CICS 組合可以包含一個以上的 OSGi 軟體組和服務。因為 CICS 組合是部署單位,所以所有 OSGi 軟體組和服務都作為 BUNDLE 資源的一部分一起管理。OSGi 架構也管理 OSGi 軟體組和服務的生命週期,包括相依關係和版本化的管理。
最佳作法是確保包含 Java 應用程式元件的所有 OSGi 軟體組,都部署在相同的 CICS 組合中。如果 OSGi 軟體組之間有相依關係,請將它們部署在相同的 CICS 組合中。當您安裝 CICS BUNDLE 資源時,CICS 可確保解析 OSGi 軟體組之間的所有相依關係。
如果您在 OSGi 軟體組上有相依關係,而該組合含有一般程式碼庫,則最佳作法是針對該程式碼庫建立個別的 CICS 組合。在此情況下,一定要先安裝包含該程式碼庫的 CICS BUNDLE 資源。如果您先安裝 Java 應用程式,再安裝該應用程式相依的 CICS 組合,則 OSGi 架構無法解析 Java 應用程式的相依關係。
程序
- 建立 BUNDLE 資源,指定 zFS 中該組合的目錄:
- 在 CICS SM 視景中,在 CICS Explorer 功能表列中按一下,以開啟「組合定義」視圖。
- 用滑鼠右鍵按一下視圖中的任一位置,然後按一下新建,以開啟「新建組合定義」精靈。 在精靈欄位中,輸入 BUNDLE 資源的詳細資料。
- 安裝 BUNDLE 資源。 您可以安裝處於已啟用或已停用狀態的資源:
- 如果您安裝處於「已停用」狀態的資源,則 CICS 會在架構中安裝 OSGi 軟體組並解析相依關係,但不會嘗試啟動組合。
- 如果您安裝處於「已啟用」狀態的資源,則 CICS 會安裝 OSGi 軟體組並解析相依關係,然後啟動 OSGi 軟體組。如果 OSGi 軟體組包含智慧型組合啟動器,則 OSGi 架構在另一個 OSGi 軟體組第一次呼叫該組合之後,才嘗試啟動該組合。
- 選擇性的: 啟用 BUNDLE 資源可以在架構中啟動 OSGi 軟體組(如果資源還不是處於「已啟用」狀態)。
- 在 CICS Explorer 功能表列中,按一下,以開啟「組合」視圖。請檢查 BUNDLE 資源的狀態。
- 如果 BUNDLE 資源是處於「已啟用」狀態,則 CICS 可以在組合中順利安裝所有資源。
- 如果 BUNDLE 資源是處於「已停用」狀態,則 CICS 無法在組合中安裝一個以上的資源。
如果無法安裝處於已啟用狀態的 BUNDLE 資源,請檢查 BUNDLE 資源的組合組件。如果有任一組合組件的狀態為「無法使用」,則 CICS 無法建立 OSGi 軟體組。一般來說,此狀態表示 zFS 中的 CICS 組合發生問題。您必須捨棄 BUNDLE 資源,修正問題,然後重新安裝 BUNDLE 資源。
- 在 CICS Explorer 功能表列中,按一下,以開啟「OSGi 軟體組」視圖。請檢查 OSGi 架構中已安裝的 OSGi 軟體組及服務的狀態。 下表彙總各種狀態:
BUNDLEPART |
OSGIBUNDLE |
OSGISERVICE |
已啟用 |
啟動中 |
不適用 |
已啟用 |
作用中 |
作用中 |
已啟用 |
作用中 |
非作用中 |
已停用 |
已解析 |
不適用 |
已停用 |
已安裝 |
不適用 |
無法使用 |
不適用 |
不適用 |
- 如果 OSGi 軟體組是處於「啟動中」狀態,則已呼叫組合啟動器,但尚未傳回。如果 OSGi 軟體組有智慧型啟動原則,則在 OSGi 架構中呼叫該組合之前,組合會維持此狀態。
- 如果 OSGi 軟體組和 OSGi 服務作用中,則表示 Java 應用程式已就緒。
- 如果 OSGi 服務非作用中,則表示 CICS 已偵測到具有該名稱的 OSGi 服務已經存在於 OSGi 架構中。
- 如果您停用 BUNDLE 資源,OSGi 軟體組會變成「已解析」狀態。
- 如果 OSGi 軟體組處於「已安裝」狀態,則表示它未啟動或因為無法解析 OSGi 軟體組中的相依關係而無法啟動。
結果
BUNDLE 已啟用,OSGi 軟體組已順利安裝在 OSGi 架構中,且所有 OSGi 服務均在作用中。OSGi 軟體組和服務可供架構中的其他組合使用。