溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

WebLogic中怎么通過數(shù)據(jù)庫配置Session共享

發(fā)布時(shí)間:2021-08-07 16:48:16 來源:億速云 閱讀:191 作者:Leah 欄目:數(shù)據(jù)庫

這篇文章將為大家詳細(xì)講解有關(guān)WebLogic中怎么通過數(shù)據(jù)庫配置Session共享,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

     1. 配置準(zhǔn)備

1) 要配置JDBC的方式復(fù)制Session,主要為下面三個(gè)步驟

(1)在數(shù)據(jù)庫中創(chuàng)建表

(2)創(chuàng)建對(duì)數(shù)據(jù)庫具有讀/寫權(quán)限的連接池

(3)在weblogic.xml部署描述符中配置會(huì)話持久性

2) 配置會(huì)話的持久性的示例如下:

<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>

可選參數(shù)如下。

① memory--禁用持久性會(huì)話存儲(chǔ)。

② replicated--與memory 相同,但會(huì)話數(shù)據(jù)將在集群服務(wù)器之間復(fù)制。

③ replicated_if_clustered--如果Web應(yīng)用程序部署在集群服務(wù)器上,則按有效的persistentstore-type 復(fù)制;否則按默認(rèn)值memory復(fù)制。

④ sync-replication-across-cluster--復(fù)制將在集群內(nèi)同步發(fā)生。

⑤ async-replication-across-cluster--復(fù)制將在集群內(nèi)異步發(fā)生。

3) JDBC持久性表配置必須存在名為WL_SERVLET_SESSIONS,且具有讀/寫訪問權(quán)限的數(shù)據(jù)庫表,見下表。

列標(biāo)題

列數(shù)據(jù)類型

WL_ID

可變寬度,最多100 個(gè)字符

WL_CONTEXT_PATH


WL_IS_NEW

numeric,20 位

WL_ACCESS_TIME

numeric,20 位

WL_SESSION_VALUES

BLOB,非常大

WL_IS_VALID

char,1 個(gè)字符

WL_CREATE_TIME

numeric,20 位

在映射到會(huì)話持久性連接池的數(shù)據(jù)庫中,需要配置一個(gè)名為WL_SERVLET_ SESSIONS的表,該表將包含所有活動(dòng)會(huì)話對(duì)象的值。指定有權(quán)訪問此表的用戶,需要對(duì)該表具有讀/寫/插入/刪除訪問權(quán)限才能有效地管理對(duì)象。該表需具有以下8列內(nèi)容。

WL_ID--會(huì)話ID,與WL_CONTEXT_PATH一起用做數(shù)據(jù)庫主鍵。可變寬度字母數(shù)字?jǐn)?shù)據(jù)類型,最多100個(gè)字符。

WL_CONTEXT_PATH--上下文,此列與WL_ID一起用做主鍵??勺儗挾茸帜笖?shù)字?jǐn)?shù)據(jù)類型,最多100個(gè)字符。

WL_IS_NEW--只要Servlet引擎將會(huì)話分類為"新"狀態(tài),此值就為True。含一個(gè)字符的列。

WL_CREATE_TIME--最初創(chuàng)建會(huì)話的時(shí)間。Numeric 數(shù)據(jù)類型列,20位。

WL_IS_VALID--Servlet可以訪問會(huì)話時(shí),該值為True。用于并發(fā)訪問。含一個(gè)字符的列。

WL_SESSION_VALUES--實(shí)際會(huì)話數(shù)據(jù)。BLOB列。

WL_ACCESS_TIME--上次訪問會(huì)話的時(shí)間。Numeric數(shù)據(jù)類型列,20位。

WL_MAX_INACTIVE_INTERVAL--從客戶端請(qǐng)求到會(huì)話失效之間的時(shí)間(秒)。負(fù)時(shí)間值表明會(huì)話永不超時(shí)。Integer 數(shù)據(jù)類型列。

     2. 創(chuàng)建保存Session的數(shù)據(jù)庫和數(shù)據(jù)表

這里我們選擇使用MySQL數(shù)據(jù)庫

創(chuàng)建weblogic數(shù)據(jù)庫,并在weblogic下創(chuàng)建wl_servlet_sessions表

create database weblogic;
SET FOREIGN_KEY_CHECKS=0;  --關(guān)閉外鍵約束
 
-- ----------------------------
-- 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;

3. 創(chuàng)建數(shù)據(jù)庫連接賬戶

創(chuàng)建weblogic用戶,并賦予對(duì)weblogic數(shù)據(jù)庫中所有表的所有權(quán)限,賬號(hào)密碼為weblogic,該賬戶可以從任何主機(jī)連接服務(wù)器

grant all on weblogic.* to 'weblogic'@'%' identified by 'weblogic';

4. 配置weblogic集群服務(wù)器

如下圖,受管服務(wù)器app1和app2,同屬于一個(gè)集群中,關(guān)于負(fù)載均衡的集群配置,可以參考之前的文章。

WebLogic中怎么通過數(shù)據(jù)庫配置Session共享

5. 配置JDBC數(shù)據(jù)源

WebLogic中怎么通過數(shù)據(jù)庫配置Session共享

WebLogic中怎么通過數(shù)據(jù)庫配置Session共享

WebLogic中怎么通過數(shù)據(jù)庫配置Session共享

WebLogic中怎么通過數(shù)據(jù)庫配置Session共享

WebLogic中怎么通過數(shù)據(jù)庫配置Session共享

WebLogic中怎么通過數(shù)據(jù)庫配置Session共享

WebLogic中怎么通過數(shù)據(jù)庫配置Session共享

WebLogic中怎么通過數(shù)據(jù)庫配置Session共享

WebLogic中怎么通過數(shù)據(jù)庫配置Session共享

WebLogic中怎么通過數(shù)據(jù)庫配置Session共享

6. 配置web項(xiàng)目的weblogic.xml文件

<!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>

7. 部署項(xiàng)目啟動(dòng)后訪問

WebLogic中怎么通過數(shù)據(jù)庫配置Session共享

8. 查看數(shù)據(jù)庫進(jìn)行驗(yàn)證

我們看一下數(shù)據(jù)庫,已經(jīng)將Session信息寫入到數(shù)據(jù)庫中,這樣就做到了共享Session了。

WebLogic中怎么通過數(shù)據(jù)庫配置Session共享

關(guān)于WebLogic中怎么通過數(shù)據(jù)庫配置Session共享就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI