這篇文章將為大家詳細講解有關WebLogic中怎么通過數據庫配置Session共享,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名與空間、雅安服務器托管、營銷軟件、網站建設、成武網站維護、網站推廣。
1. 配置準備
1) 要配置JDBC的方式復制Session,主要為下面三個步驟
(1)在數據庫中創建表
(2)創建對數據庫具有讀/寫權限的連接池
(3)在weblogic.xml部署描述符中配置會話持久性
2) 配置會話的持久性的示例如下:
<session-descriptor> <persistent-store-type>jdbc</persistent-store-type> <persistent-store-pool>MySQL</persistent-store-pool> <persistent-store-table>wl_servlet_sessions</persistent-store-table> </session-descriptor>
可選參數如下。
① memory--禁用持久性會話存儲。
② replicated--與memory 相同,但會話數據將在集群服務器之間復制。
③ replicated_if_clustered--如果Web應用程序部署在集群服務器上,則按有效的persistentstore-type 復制;否則按默認值memory復制。
④ sync-replication-across-cluster--復制將在集群內同步發生。
⑤ async-replication-across-cluster--復制將在集群內異步發生。
3) JDBC持久性表配置必須存在名為WL_SERVLET_SESSIONS,且具有讀/寫訪問權限的數據庫表,見下表。
列標題 | 列數據類型 |
WL_ID | 可變寬度,最多100 個字符 |
WL_CONTEXT_PATH | |
WL_IS_NEW | numeric,20 位 |
WL_ACCESS_TIME | numeric,20 位 |
WL_SESSION_VALUES | BLOB,非常大 |
WL_IS_VALID | char,1 個字符 |
WL_CREATE_TIME | numeric,20 位 |
在映射到會話持久性連接池的數據庫中,需要配置一個名為WL_SERVLET_ SESSIONS的表,該表將包含所有活動會話對象的值。指定有權訪問此表的用戶,需要對該表具有讀/寫/插入/刪除訪問權限才能有效地管理對象。該表需具有以下8列內容。
WL_ID--會話ID,與WL_CONTEXT_PATH一起用做數據庫主鍵。可變寬度字母數字數據類型,最多100個字符。
WL_CONTEXT_PATH--上下文,此列與WL_ID一起用做主鍵。可變寬度字母數字數據類型,最多100個字符。
WL_IS_NEW--只要Servlet引擎將會話分類為"新"狀態,此值就為True。含一個字符的列。
WL_CREATE_TIME--最初創建會話的時間。Numeric 數據類型列,20位。
WL_IS_VALID--Servlet可以訪問會話時,該值為True。用于并發訪問。含一個字符的列。
WL_SESSION_VALUES--實際會話數據。BLOB列。
WL_ACCESS_TIME--上次訪問會話的時間。Numeric數據類型列,20位。
WL_MAX_INACTIVE_INTERVAL--從客戶端請求到會話失效之間的時間(秒)。負時間值表明會話永不超時。Integer 數據類型列。
2. 創建保存Session的數據庫和數據表
這里我們選擇使用MySQL數據庫
創建weblogic數據庫,并在weblogic下創建wl_servlet_sessions表
create database weblogic; SET FOREIGN_KEY_CHECKS=0; --關閉外鍵約束 -- ---------------------------- -- Table structure for `wl_servlet_sessions` -- ---------------------------- DROP TABLE IF EXISTS `wl_servlet_sessions`; CREATE TABLE `wl_servlet_sessions` ( `wl_id` varchar(100) NOT NULL DEFAULT '', `wl_context_path` varchar(100) NOT NULL DEFAULT '', `wl_is_new` varchar(2) DEFAULT NULL, `wl_create_time` bigint(20) DEFAULT NULL, `wl_is_valid` varchar(2) DEFAULT NULL, `wl_session_values` blob, `wl_access_time` bigint(20) DEFAULT NULL, `wl_max_inactive_interval` bigint(20) DEFAULT NULL, PRIMARY KEY (`wl_id`,`wl_context_path`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
創建weblogic用戶,并賦予對weblogic數據庫中所有表的所有權限,賬號密碼為weblogic,該賬戶可以從任何主機連接服務器
grant all on weblogic.* to 'weblogic'@'%' identified by 'weblogic';
如下圖,受管服務器app1和app2,同屬于一個集群中,關于負載均衡的集群配置,可以參考之前的文章。











<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd"> <weblogic-web-app> <session-descriptor> <persistent-store-type>jdbc</persistent-store-type> <persistent-store-pool>MYSQL</persistent-store-pool> <persistent-store-table>wl_servlet_sessions</persistent-store-table> </session-descriptor> </weblogic-web-app>

我們看一下數據庫,已經將Session信息寫入到數據庫中,這樣就做到了共享Session了。

關于WebLogic中怎么通過數據庫配置Session共享就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
文章名稱:WebLogic中怎么通過數據庫配置Session共享
文章起源:http://www.yijiale78.com/article4/gddgie.html
成都網站建設公司_創新互聯,為您提供搜索引擎優化、軟件開發、小程序開發、移動網站建設、云服務器、營銷型網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯