EJB 非同步方法設定

請利用這個頁面來修改用來支援 Enterprise JavaBeans 非同步方法之工作管理員的設定。

如果要檢視這個管理主控台頁面,請按一下伺服器 > 伺服器類型 > WebSphere 應用程式伺服器 > server_name > EJB 儲存器設定 > EJB 非同步方法呼叫設定

「使用內部工作管理員實例」和「使用自訂工作管理員實例」選項互斥。

利用這個工作管理員來執行非同步方法

指定預設工作管理員實例。

產品提供一個內部工作管理員實例來支援 EJB 非同步方法。 內部工作管理員實例是預先為基本 EJB 非同步方法功能而配置,它提供有限的配置設定。

按一下這個按鈕,指定您要利用內部工作管理員實例,來管理您的非同步方法呼叫。 選取這個選項,會排除「使用自訂工作管理員實例」選項。

「使用內部工作管理員實例」選項是預設值。 另外,您也可以使用自訂的工作管理員實例。

使用自訂工作管理員實例

指定自訂工作管理員實例。

您可以定義一個自訂工作管理員實例,來提供更進階的 EJB 非同步方法配置。

選取這個選項可讓您使用以環境最佳方式來定義和配置的工作管理員實例。

選取這個選項,會排除「使用內部工作管理員實例」選項。

執行緒數目上限

指定用來執行非同步 EJB 方法的執行緒數目上限。 預設值是 5。

工作要求佇列大小

指定工作要求佇列的大小。工作要求佇列是一個緩衝區,可保留所要求的非同步方法,直到執行緒可以執行那些方法為止。 預設值是 0,表示起始大小在執行緒數目上下限的中間。

執行緒數目上限與工作要求佇列大小屬性的總和,就是可容許的進行中方法要求總數。

比方說,如果執行緒數目上限設為 5 個執行緒,工作要求佇列大小設為 50,可容許的進行中方法要求總數就是 55。

預設值是 0,表示由執行時期環境來管理佇列大小。 執行時期目前使用 20 或 maxThreads (兩者中取其大者)。

工作要求佇列填滿動作

請指定當執行緒儲存區已用盡且工作要求佇列已滿時,所要採取的動作。預設值是 BLOCK。

如果設為 FAIL,就會發生異常狀況,而不等待執行緒或佇列位置可供使用。

開發期間您可能會想利用這個選項,來協助識別長時間執行之非同步方法所造成的錯誤。您可能也會想利用它來協助判斷應配置的執行緒數目與佇列大小。

如果設為 BLOCK,要求執行非同步方法的執行緒會等待可用的執行緒或佇列位置。

工作管理員 JNDI 名稱

指定在名稱空間中,用來查閱自訂工作管理員的「Java 命名和目錄介面 (JNDI)」名稱。

遠端未來物件期間

指定伺服器保留每一次「發動並傳回結果」非同步方法呼叫之未來物件的時間量。 如果應用程式未在指定期間內擷取結果,伺服器會清除該次方法呼叫的結果,以防止記憶體洩漏和可能的 OutOfMemory 異常狀況。 您可以指定 0,永不清除物件;不過,指定零值代表未來物件永不逾時,如此將無從杜絕撰寫不正確而可能導致所提的 OutOfMemory 異常狀況的程式。 預設值是 86400 秒(24 小時)。

避免困難 避免困難: 如果您對未來物件呼叫 get() 或 get(time) 方法,可能會降低效能,因為在完成工作或過了指定時間之前,都可能發生封鎖。因此,為了避免 get(..) 方法發生封鎖,請呼叫 isDone() 方法,以立即傳回。 然後等 isDone() 方法傳回 true 之後,再呼叫 get() 方法。gotcha
支援的配置 支援的配置: 這個值只適用於利用遠端商業介面來呼叫 Enterprise Bean 的用戶端,本端商業介面或無介面視圖不使用這個值。 非同步工作完成之後,伺服器會設定伺服器端未來物件的指定期間警示。 啟動警示之後,伺服器會將未來物件的所有相關聯資源釋出,使用戶端無法再使用。 如果用戶端在未來物件上呼叫 get() 方法時,尚在期間的時間量之內,就會取消警示,並釋出未來物件的所有相關聯資源。sptcfg


檔名: uejb_ejbAsynch_settings.html