使用 WebSphere 最佳化本端配接器 (WOLA) API,將外部位址空間連接至 Liberty 伺服器,並呼叫本端 Stateless Session Bean。
開始之前
如果要將 Enterprise Bean 識別為最佳化本端配接器呼叫的潛在目標,您的 Enterprise JavaBean (EJB) 應用程式必須將 com.ibm.websphere.ola.ExecuteLocalBusiness 介面當成本端商業介面來實作。此介面位於
wlp/dev/api/ibm/com.ibm.websphere.appserver.api.zosLocalAdapters_1.0.0.jar 檔。
如果程式是在「客戶資訊控制系統 (CICS)」之下執行,在 CICS 與 Liberty 伺服器之間建立連線之前,最佳化本端配接器的「作業相關使用者結束程式 (TRUE)」必須先啟動。如需相關資訊,請參閱CICS 的 Liberty 伺服器交易:BBOC、BBO$ 和 BBO#。
Liberty 伺服器在發出登錄要求的相同 z/OS® 映像檔上必須處於作用中。請確定現行位址空間已登錄,並且已使用「登錄 API」連結至目標最佳化本端配接器群組。如需登錄外部位址空間的相關資訊,請參閱使用最佳化本端配接器,向本端 Liberty 伺服器登錄外部位址空間。
關於這項作業
這種呼叫 Stateless Session Bean 的方法,可提供更大的彈性,如果您在呼叫之前,不知道回應區域的長度上限,就適合使用這種方法。當已知回應區域的長度時,如需簡化的 Bean 呼叫方法,請參閱
使用 Liberty 的「呼叫 API」,從外部位址空間呼叫 Enterprise Bean。
程序
- 從用戶端位址空間中的原生語言應用程式,呼叫「取得連線 API」(BBOA1CNG),以便傳遞您在呼叫「登錄 API」(BBOA1REG) 時所使用的登錄名稱。 這項呼叫會傳回連線控點,在未來所有的 API 呼叫中都需要使用這個控點。
- 從用戶端位址空間中的原生語言應用程式,呼叫「傳送要求 API」(BBOA1SRQ)。針對 requestservicename 參數,指定您想呼叫之 Enterprise Bean 的「Java 命名和目錄介面 (JNDI)」本端商業介面路徑名稱。請使用廣域 JNDI 名稱空間中的 JNDI 名稱。 接著,Liberty 伺服器會針對 EJB 應用程式實作的本端商業介面,呼叫執行方法。
如果您將「傳送要求 API」的 async 參數設為 0,API 會傳回回應長度和回覆值。之後您可以直接呼叫「取得訊息資料 API」。
如果您將「傳送要求 API」的 async 參數設為 1,控制權會傳回給用戶端應用程式,讓您可以呼叫「接收回應長度 API」。
- 如果您呼叫「傳送要求 API」時,將 async 參數設為 1,請呼叫「接收回應長度 API」(BBOA1RCL),並將 async 參數設為 0 或 1。 用戶端應用程式會使用「接收回應長度 API」所傳回的回應長度,以確定其區域大小足以保留回應資料。
如果您將「接收回應長度 API」的 async 參數設為 0,API 會封鎖執行緒,直到收到回應為止。
如果您將「接收回應長度 API」的 async 參數設為 1,不論是否收到回應,API 都會立即傳回。
- 呼叫「取得訊息資料 API」(BBOA1GET),以便將回應資料複製到用戶端應用程式的緩衝區。
- 用戶端應用程式可以繼續使用相同的連線控點來傳送要求和接收訊息資料,直到它傳送完所有要求,並準備好釋放連線為止。如果要釋放連線,應用程式會呼叫「釋放連線 API」(BBOA1CNR)。 連線控點必須先釋放,才能保留在「取得連線 API」呼叫上供再次使用。