日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

无状态EJB:池化和生命周期

發布時間:2023/12/3 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 无状态EJB:池化和生命周期 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

無狀態EJB池和生命周期的摘要視圖(注釋)。 對新手有用。 。 。 。 。

EJB池:快速概述

  • EJB實例存儲在稱為EJB池的位置–這不過是內存中的緩存
  • 無狀態EJB通常按需實例化,即,當客戶端調用Bean上的方法時。
  • 但是,大多數應用程序服務器還提供了一種功能,可以對其進行配置,以便在啟動時可以使用一定數量的實例(例如,在Weblogic中)填充EJB池,這可以在weblogic-ejb-jar.xml中通過聲明以下內容進行配置:空閑池中的初始bean中的確切數字。

合并收益

  • 性能提升
  • 客戶端不需要等到實例化bean即可為請求提供服務

無狀態Bean生命周期

NON_EXISTENT –在這種情況下,bean在EJB池中尚不存在(尚未實例化)

不活動 –在這種狀態下,EJB實例已經存在于EJB池中,但沒有為客戶端請求提供服務

BUSY(忙) –調用EJB實例以服務于客戶端請求,結果,它進入BUSY狀態。

為了服務客戶端請求,將調用一個EJB實例,結果,該實例進入BUSY狀態。 EJB可以從INACTIVE或NON_EXISTENT狀態進入BUSY狀態

SLSB狀態轉換

不忙-顧名思義,池中選擇了不活動的bean來滿足客戶端調用

NON_EXISTENT變為BUSY –創建了一個新的EJB實例來滿足客戶請求

EJB可以從繁忙狀態回到不活動狀態,即,在處理了客戶端請求之后,實例又回到了池中

在某些情況下,還可以通過配置超時來破壞 EJB實例,該超時迫使應用程序服務器刪除池中在特定時間間隔內處于非活動狀態的所有EJB實例。 但是,應用服務器確實要確保EJB實例數量不低于允許的實例的最小數量(可配置屬性-上面已讀)

注意 :這樣做主要是為了節省池中的EJB所消耗的內存量,因為它們被緩存在那里。 如果有許多未使用的實例,可以將它們刪除以優化內存消耗。 容器可以按需創建新實例

客戶端在無狀態Bean上調用方法時會發生什么?

場景1 :容器實例化bean的新實例。

可能的原因是

  • 開始時, EJB池中沒有bean –在服務器啟動時,未指示App Server合并默認數量的bean
  • EJB池中的所有Bean都在忙于處理來自客戶端的請求,但是池中的Bean總數小于允許的最大實例數(配置參數)

場景2 :容器返回了bean的現有實例

可能的原因

  • 池中有一定數量的EJB實例可用,并且它們不處于BUSY狀態,即它們不參與服務客戶機請求。 容器剛剛返回一個這樣的實例
  • 池中有一定數量的EJB實例,但是它們都處于BUSY狀態,并且已經達到了池中最大允許的bean數。 客戶端應用程序必須等待,直到一個這樣的Bean變為可用并可以滿足客戶端請求為止

方案3 :客戶端請求不是服務(收到異常)

可能的原因

如果已經達到池中允許的最大數量的Bean,并且在特定時間范圍內所有BUSY Bean都不可用。

翻譯自: https://www.javacodegeeks.com/2014/05/stateless-ejbs-pooling-and-lifecycle.html

總結

以上是生活随笔為你收集整理的无状态EJB:池化和生命周期的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。