有狀態sessionbean 無狀態sessionbean

來源:互聯網
上載者:User

有狀態會話Bean(SFSB)和無狀態會話Bean(SLSB)的區別
1   無狀態   (Stateless)   
    在不同方法調用間不保留任何狀態   。
    交易處理必須在一個方法中結束   。
    通常資源佔用較少;可以被共用(因為它是無狀態的) 。
    無狀態Bean不會"專門"儲存用戶端的狀態----(需要強調“專門”是因為無狀態會話Bean也會有成員變數,有成員變數就可以儲存狀態,但它不會專門為特定的用戶端儲存狀態。)。
    ----你對ENTITY   BEAN的資料操作不會被容器維護,當其他的使用者要用ENTITY   BEAN時,裡面的資料不
會被鈍化到伺服器的磁碟上。也就是被儲存起來。

2   有狀態   (Stateful)   
    可以在不同的方法調用間保持針對各個用戶端的狀態   。
    與用戶端的聯絡必需被維持;通常開銷較大 。
    有狀態會話Bean會儲存用戶端的狀態 。
    --你對ENTITY   BEAN的資料操作會被容器維護起來,當其他的使用者要用你正在使用的ENTITY   BEAN時,裡面的資料會被鈍化到伺服器的磁碟上,例如網上的購物車。

區別的根本原因這與無狀態會話Bean和有狀態會話Bean的運行原理是相關的。對於有狀態會話Bean來說,只要有用戶端發送對有狀態會話Bean的訪問,伺服器都會建立一個會話Bean執行個體與該用戶端對應,這樣這個執行個體與這個用戶端就是一一對應的。如果用戶端在Bean執行個體中儲存了資訊,之後還可以使用。對 於無狀態會話Bean來說,伺服器端會維持一個執行個體池,建立好若干個執行個體對象供用戶端調用。當從用戶端發送建立會話Bean的請求時,並不一定會真的建立 EJB,多數情況下是從執行個體池中得到一個執行個體,用完之後重新放回執行個體池。如果下次再訪問,再從執行個體池中取出一個執行個體使用,並不一定是上次的執行個體。即使兩次 訪問使用的是同一個執行個體,在兩次訪問之間也有可能有其他的用戶端訪問了該執行個體。所以,並不能保證在多次訪問之間的資訊會被儲存。所以,無狀態會話Bean
不會專門儲存用戶端的資訊。 各自的優缺點因 為有狀態會話Bean需要儲存特定用戶端的資訊,一個用戶端對應一個執行個體,既是在當時用戶端有串連沒有訪問的情況下,也要為這個用戶端保留這個執行個體。這樣 隨著用戶端數量的增加,伺服器端需要建立的執行個體的數量也在增加,增加到一次程度對伺服器的效能就會有一定的影響。為了不對伺服器的效能產生影響,通常服務 器會進行一些最佳化。當用戶端的數量超過某個值之後,就不建立新的執行個體。雖然不建立新的執行個體,還是需要對使用者響應,這時候就採用共用執行個體的方式。會查看哪個 執行個體雖然處於串連狀態,但是沒有訪問,然後把這個執行個體的狀態儲存起來,使用這個執行個體為新的請求服務,對於原來的用戶端來說,稱為掛起。如果原來的用戶端又
發送請求了,會重新尋找一個閒置執行個體並且把已經儲存好的狀態恢複回來,這個過程稱為啟用。所以在有狀態會話Bean的訪問過程,經常會發生尋找執行個體,激 活掛起等操作,所以效率比較低。而發送對無狀態會話Bean的請求的時候,可以隨便取一個閒置執行個體為用戶端服務,所以效率比較高。有狀態會話Bean的好處是,可以儲存用戶端的狀態,所以用戶端在後續訪問的時候就可以少傳遞一些參數。而狀態會話Bean需要傳遞方法執行過程中需要的所有參數。 如何選擇

根據上面分析的有狀態會話Bean和無狀態會話Bean的優缺點。如果要頻繁的訪問,並且多次訪問之間會共用一些資訊,這時候應該使用有狀態會話Bean。對於不經常使用的功能,可以使用無狀態會話Bean。無狀態會話Bean的使用要比有狀態會話Bean的使用多。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.