Sun Java System Web Server 7.0 Update 3 管理員指南

第 11 章 使用 Java 和 Web 應用程式

本章說明為虛擬伺服器編輯 Java 設定的程序。您可以從管理主控台或者 wadm 指令行工具編輯 Java 設定。本章也說明可在伺服器中配置的各種 Java 資源。

本章同時說明如何在伺服器中部署 Java Web 應用程式。

配置 Java 以與 Sun Java System Web Server 搭配使用

本節可讓您啟用 Java,並為所選配置設定 Java 主目錄變數。

Procedure為配置啟用 Java

  1. 選取配置。

    從配置清單中選取配置。按一下 [配置] 標籤以取得可用配置的清單。

  2. 按一下 [Java] > [一般] 標籤。

  3. 按一下 [啟用 Java] 核取方塊。

    開啟/關閉配置的 Java 支援。啟用 Java 允許伺服器處理 Java 應用程式。

  4. 設定 Java 主目錄。

    指定 Java SE 的位置。指定絕對路徑或伺服器的 config 目錄的相對路徑。

  5. 設定固定附加。

    指定伺服器是否僅將每個 HTTP 請求處理執行緒附加至 JVM 一次 (否則,伺服器會附加/分離每個請求上的 HTTP 請求處理執行緒)。


    備註 –

    使用 CLI

    若要為配置啟用 Java,請執行以下指令。


    wadm> enable-java --user=admin --password-file=admin.pwd --host=serverhost 
    --port=8989 --config=config1

    請參閱 CLI 參考enable-java(1)


設定 Java 類別路徑

本節可讓您為所選配置增加 JVM 類別路徑。

Procedure設定 Java 類別路徑

  1. 選取配置。

    從配置清單中選取配置。按一下 [配置] 標籤以取得可用配置的清單。

  2. 按一下 [Java] > [路徑設定] 標籤。

    編輯以下參數:

    • 忽略環境類別路徑 — 預設為啟用。

    • 類別路徑前綴 — 系統類別路徑前綴。如果要置換系統類別 (如 XML 剖析器類別),您應僅加上系統類別路徑做為前綴。請小心使用

    • 伺服器類別路徑 — 包含伺服器類別的類別路徑。唯讀清單。

    • 類別路徑後綴 — 附加至伺服器類別路徑。

    • 原生庫路徑前綴 — 作業系統原生庫路徑前綴。

    • 位元碼預處理程式類別 — 實作 com.sun.appserv.BytecodePreprocessor 之類別的完全合格名稱。執行執行階段類別設備的典型方法是透過預處理機制,由效能評測和監視工具使用類別預處理程式在 JVM 載入 Java 類別之前,將設備代碼插入 Java 類別的所需位置。為了達到這個目的,類別預處理程式會與類別載入程式配合工作。

配置 JVM

若要在管理介面中設定 JVM 指令行選項,請執行以下工作﹕

Procedure配置 JVM

  1. 選取配置。

    從配置清單中選取配置。按一下 [配置] 標籤以取得清單。

  2. 按一下 [Java] > [JVM 設定] 標籤。

    為 JVM 配置設定。

增加 JVM 選項

您可以在此處指定值,以增加/刪除指令行 JVM 選項。

按一下 [增加 JVM 選項] 按鈕,來增加 JVM 選項。

JVM 選項的一些範例如下: -Djava.security.auth.login.config=login.conf、-Djava.util.logging.manager=com.iplanet.ias.server.logging. ServerLogManager 與 -Xms128m -Xmx256m


備註 –

使用 CLI

若要透過 CLI 增加 JVM 選項,請執行以下指令。


wadm> create-jvm-options --user=admin --password-file=admin.pwd --host=serverhost 
--port=8989 --config=config1 -Dhttp.proxyHost=proxyhost.com -Dhttp.proxyPort=8080

請參閱 CLI 參考create-jvm-options(1)


增加 JVM 效能評測器

JVM 效能評測器可協助您診斷並解決 Java 應用程式中的效能問題、記憶體發生的錯誤、多執行緒問題以及系統資源使用問題,以確保您的應用程式具有最高級的穩定性和延伸性。

Procedure增加 JVM 效能評測器

  1. 選取配置。

    從配置清單中選取配置。按一下 [配置] 標籤以取得可用配置的清單。

  2. 按一下 [Java] > [JVM 設定] 標籤。

  3. 按一下 [效能評測器] 區段中的 [新增] 按鈕。

  4. 提供以下參數的值:

    • 名稱 — 提供新 JVM 效能評測器的簡稱。

    • 已啟用 — 決定是否在執行階段啟用效能評測器。

    • 類別路徑 — 為效能評測器提供有效的類別路徑。(選擇性)。

    • 原生庫路徑 — 提供有效的原生庫路徑。(選擇性)。

    • JVM 選項 — 您可以為 CLI 指定其他 JVM 選項。


    備註 –

    使用 CLI

    若要透過 CLI 增加 JVM 效能評測器,請執行以下指令。


    wadm> create-jvm-profiler --user=admin --password-file=admin.pwd 
    --host=serverhost --port=8989 --config=config1

    請參閱 CLI 參考create-jvm-profiler(1)


為伺服器啟用 Java 除錯

JVM 能夠以除錯模式啟動,並可以附加 JPDA (Java 平台除錯程式架構) 除錯程式。您啟用除錯時,會同時啟用本機和遠端除錯。

Sun Java System Web Server 的除錯功能以 JPDA 軟體為基礎。若要啟用除錯,請執行以下作業。

Procedure啟用 JVM 除錯

  1. 選取配置。

    從配置清單中選取配置。按一下 [配置] 標籤以取得可用配置的清單。

  2. 按一下 [Java] > [JVM 設定] 標籤。

  3. 選取 [Java 除錯設定] 中的 [啟用除錯] 核取方塊。

  4. 按一下 [新增] 按鈕,以提供必要的 JVM 選項。

    預設 JPDA 選項如下:


    -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7896

    如果您取代 suspend=y,則 JVM 將以暫停模式啟動,並在除錯程式與其相連接以前,一直處於暫停模式。但如果您希望在 JVM 啟動時便立即啟動除錯,該指令會非常有用。若要指定將 JVM 連接至除錯程式時使用的連接埠,請指定 address=port_number。請查閱 JPDA 文件,以取得除錯選項的清單。

部署 Java Web 應用程式

增加 Web 應用程式

您可以將 Web 應用程式部署至任何現有的虛擬伺服器。

Procedure部署 Web 應用程式

開始之前
Sun Java System Web Server 7.0

可以透過 wadm、管理主控台和其他支援的 IDE 部署 Web 應用程式。

  1. 按一下 [伺服器配置] 下的[虛擬伺服器] 標籤,以部署 Web 應用程式。

  2. 選取您需要部署 Web 應用程式的虛擬伺服器。

  3. 按一下 [Web 應用程式] 標籤 > [新增] 按鈕

  4. 指定 Web 應用程式套裝軟體。

    如果需要上傳 Web 應用程式歸檔,請按一下 [瀏覽] 按鈕並選取歸檔。您還可以選擇性地指定位於伺服器中的 Web 應用程式歸檔檔案。

  5. 指定 Web 應用程式的 URI。此為應用程式環境根目錄並與伺服器主機相關。

  6. 提供有關 Web 應用程式的簡短說明。

  7. 啟用/停用 JSP 預編譯。

    啟用此指令即可預編譯 Web 應用程式中的所有 JSP,以提昇效能。

  8. 啟用應用程式。

    當 Web 應用程式狀態設定為 [已停用] 時,您將無法請求使用該 Web 應用程式。然而,您可以隨時切換此選項,而無須將應用程式重新部署至實例。

  9. 部署應用程式。

    按一下 [部署] 按鈕可以部署 Web 應用程式。

    您可以使用指定的環境根目錄存取應用程式。例如,http://<your-server>:<port>/<URI>


    備註 –

    使用 CLI


    wadm> add-webapp --user=admin --password-file=admin.passwd --host=localhost 
     --port=8888 --config=config1 --vs=HOSTNAME --uri=/hello /home/test/hello.war

    請參閱 CLI 參考add-webapp(1)


部署 Web 應用程式目錄

您可以使用 –file-on-server 選項,將管理伺服器主機電腦上的目錄部署至配置。執行下列指令:


wadm> add-webapp --user=admin-user --password-file=admin.passwd 
--port=8989 --vs=vs1 --config=config1 --file-on-server
--uri=/mywebapp /space/tmp/mywebapp

部署時預編譯 JSP

若要在部署 Web 應用程式時預編譯 Web 應用程式中的 JSP,請如下所示使用 –precompilejsp 選項執行指令:


wadm> add-webapp --user=admin-user --password-file=admin.passwd 
--port=8989 --vs=vs1 --config=config1 --file-on-server --uri=/mywebapp
--precompilejsp mywebapp.war

配置 Servlet 容器

本節說明配置 Servlet 容器的程序。

Procedure設定 Servlet 容器

  1. 選取配置。

    從配置清單中選取配置。按一下 [配置] 標籤以取得清單。

  2. 按一下 [Java] > [Servlet 容器]。

Servlet 容器全域參數

下表說明 Servlet 容器頁面上的可用參數。

表 11–1 Servlet 容器參數

參數

說明

記錄層級

Servlet 容器的記錄詳細度。值可以為最詳細 (詳細度最高)、較詳細、詳細、資訊、警告、失敗、配置、安全性或災難 (詳細度最低)。 

動態重新載入間隔

此參數定義某個時間段,在此時間段後,伺服器會檢查部署的 Web 應用程式是否有修改。值的範圍是 1 到 60,如果應停用動態重新載入,則值為 – 1。 

匿名角色

指定給所有主體的預設或匿名角色之名稱。預設角色為 ANYONE。 

Servlet 池大小

每個 SingleThreadedServlet 要創設的 Servlet 實例數目。值的範圍從 1 到 4096。

派送程式最大深度

允許巢式請求派送的 Servlet 容器之最大深度。值的範圍可以是 0 到 2147.0483647.0。預設值為 20。 

允許交叉環境

是否允許將請求派送程式派送至其他環境。預設值為 false。 

編碼 Cookie

Servlet 容器是否編碼 Cookie 值。預設值為 true。 

顯示異常

在瀏覽器上顯示異常。此選項僅適用於開發環境。在生產環境中請確實停用此選項。 

Cookie 解碼

Servlet 容器會將 Cookie 值中的加號字元解碼為空格。 

重複使用階段作業 ID

在為該用戶端建立新階段作業時,是否重複使用任何現有的階段作業 ID 號碼。預設值為 false。 

安全階段作業 Cookie

動態/True/False。此參數可控制要在何種條件下將 JSESSIONID Cookie 標記為安全。 僅當透過安全連線 (HTTPS) 接收到請求時,才使用動態 (預設) 將 Cookie 標記為安全。 

使用 True 可一律標記為安全,使用 False 可一律不標記為安全。 

配置伺服器生命週期模組

Java 伺服器生命週期模組是 Java 類別,它們偵聽伺服器生命週期事件,以在發生伺服器事件 (如啟動或停止) 時執行特定作業。

伺服器支援在 Web 伺服器環境下執行的持續時間較短或較長的 Java 作業。這些作業在伺服器啟動時會自動初始化,並會在伺服器關機時收到通知。因此,現在您可以立刻得知諸如實例化 singleton 和 RMI 伺服器等作業。

以下是關於伺服器生命週期的簡要說明。

伺服器生命週期簡介

Procedure增加生命週期模組

  1. 選取配置。

    從配置清單選取配置。若要檢視配置清單,請按一下 [配置] 標籤。

  2. 按一下 [Java] > [生命週期模組] 標籤。

  3. 按一下 [新增] 按鈕。

    提供以下參數的值:

    • 名稱 ─ 為新生命週期模組提供有效的唯一名稱。

    • 已啟用 ─ 若要啟用此生命週期模組,請使用此選項。

    • 類別名稱 ─ 完全合格的 Java 類別名稱。類別應該實作 com.sun.appserv.server.LifecycleListener 介面。如需有關使用此介面的更多資訊,請參閱「Developer's Guide」。

    • 類別路徑 ─ 選擇性。您可以指定偵聽程式類別的類別路徑。

    • 載入順序— 大於 100。載入生命週期事件偵聽程式的順序 (依數字順序)。建議選擇大於或等於 100 的載入順序,以避免與內部生命週期模組發生衝突。

    • 載入失敗時 ─ 啟用此選項時,伺服器不會將偵聽程式類別丟出的異常視為嚴重異常,因此將繼續正常啟動。依預設停用。

    • 說明 — 提供關於生命週期模組的簡短說明。

    • 特性 — 這些特性可用來將引數傳送至 Java 生命週期模組。若要增加新的特性,請按一下 [增加特性] 按鈕,然後輸入名稱、值和說明的文字。


    注意 – 注意 –

    將從主伺服器執行緒同步呼叫各伺服器生命週期偵聽程式類別,因此必須特別謹慎,以確保偵聽程式類別不會阻斷伺服器。如果合適,偵聽程式類別會建立執行緒,但在關機/終止階段必須將其停止。


Procedure刪除生命週期模組

  1. 選取配置。

    從配置清單選取配置。若要檢視配置清單,請按一下 [配置] 標籤。

  2. 按一下 [Java] > [生命週期模組] 標籤。

  3. 選取生命週期模組,然後按一下 [刪除生命週期模組] 按鈕。


    備註 –

    使用 CLI

    以下範例描述如何透過 com.MyLifecycleModule 類別實作,為 test 配置建立名為 myLifecycleModule 的 Java 生命週期模組。


    wadm> create-lifecycle-module --user=admin --password-file=admin.pwd 
    --host=serverhost --port=8989 --config=config1 
    --class=com.sun.webserver.tests.LifecycleClass LifecycleTest

    請參閱 CLI 參考create-lifecycle-module(1)

    若要列出 Java 生命週期模組,請執行以下指令:


    wadm> list-lifecycle-modules --config=test

    請參閱 CLI 參考list-lifecycle-modules(1)

    若要為 Java 生命週期模組增加特性,請執行以下指令:


    wadm> create-lifecycle-module-userprop --user=admin --password-file=admin.pwd 
    --host=serverhost --port=8989 --config=config1 --module=LifecycleTest info=Testing

    請參閱 CLI 參考create-lifecycle-module-userprop(1)

    若要修改 Java 生命週期模組特性,請執行以下指令:


    wadm> set-lifecycle-module-prop --user=admin --password-file=admin.pwd 
    --host=serverhost --port=8989 --config=config1 --module=LifecycleTest 
    class-path=/space 

    請參閱 CLI 參考set-lifecycle-module-prop(1)


將適用於 JavaTM 平台的 Service Management Facility 整合至 Web 伺服器

適用於 Java 平台的 Service Management Facility 是 Solaris 10 的新功能之一,可為每個 Solaris 系統建立服務與服務管理所需的統一模型。

管理 Web 伺服器實例上的 Service Management Facility

下列 svcadm 指令可協助您在 Web 伺服器上管理 Service Management Facility。


備註 –

在安裝 Web 伺服器期間,您可以選擇安裝管理伺服器的服務。


您可以在建立實例時建立服務。在建立實例時,請使用下列指令建立服務:

wadm>create-instance <connect_options> --echo --no-prompt --verbose --force --config=<config_name> name --create-service (nodehost)+

使用下列指令可在現有的實例中建立服務:

wadm>create-service –config=<config-name> node host

若想了解如何透過 CLI 建立實例,請參閱create-instance(1)

Web 伺服器的服務清單

服務通常由服務清單 (即 XML 檔案) 所定義,用以說明服務以及與該服務有關聯的所有實例。您可透過 svccfg import 指令將服務清單匯入儲存庫中。使用 Service Management Facility 時,服務的所有清單檔案皆必須位於下列位置:/var/svc/manifest


備註 –

使用 delete-service 指令可刪除服務。


以下是 Web 伺服器的清單檔案範例:

<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">

<!-- Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
     Use is subject to license terms. -->

<service_bundle type='manifest' name='webserver7'>
    <service name='network/http' type='service' version='1'>
        <dependency name='filesystem' grouping='require_all' restart_on='none' type='service'>
            <service_fmri value='svc:/system/filesystem/local'/>
        </dependency>
	<instance name='admin-server' enabled='false'>
            <property_group name='start' type='method'>
                <propval name='exec' type='astring' value='/var/opt/SUWwbsvr7/admin-server/bin/startserv'/>
                <propval name='instanceRoot' type='astring' value='/var/opt/SUWwbsvr7'/>
                <propval name='timeout' type='astring' value='300'/>
            </property_group>
            <property_group name='stop' type='method'>
                <propval name='exec' type='astring' value='/var/opt/SUWwbsvr7/admin-server/bin/stopserv'/>
                <propval name='timeout' type='astring' value='300'/>
            </property_group>
            <property_group name='refresh' type='method'>
                <propval name='exec' type='astring' value='/var/opt/SUWwbsvr7/admin-server/bin/restartserv'/>
                <propval name='timeout' type='astring' value='300'/>
            </property_group>
            <property_group name='startd' type='framework'>
                <propval name='ignore_error' type='astring' value='core,signal'/>
            </property_group>
        </instance>
	<instance name='https-mycompany.com' enabled='false'>
            <property_group name='start' type='method'>
                <propval name='exec' type='astring' value='/var/opt/SUWwbsvr7/https-mycompany.com/bin/startserv'/>
                <propval name='instanceRoot' type='astring' value='/var/opt/SUWwbsvr7'/>
                <propval name='timeout' type='astring' value='300'/>
            </property_group>
            <property_group name='stop' type='method'>
                <propval name='exec' type='astring' value='/var/opt/SUWwbsvr7/https-mycompany.com/bin/stopserv'/>
                <propval name='timeout' type='astring' value='300'/>
            </property_group>
            <property_group name='refresh' type='method'>
                <propval name='exec' type='astring' value='/var/opt/SUWwbsvr7/https-mycompany.com/bin/restartserv'/>
                <propval name='timeout' type='astring' value='300'/>
            </property_group>
            <property_group name='startd' type='framework'>
                <propval name='ignore_error' type='astring' value='core,signal'/>
            </property_group>
        </instance>
        <stability value='Evolving' />
        <template>
            <common_name>
            <loctext xml:lang='C'>Sun Java System Web Server 7</loctext>
            </common_name>
        </template>
     </service>
</service_bundle>

服務記錄

服務記錄檔位於下列目錄中:/var/svc/log 。服務記錄檔項目包含有關已嘗試的動作、動作結果,以及失敗原因等資訊。這些記錄位於下列位置:/var/svc/log/network-http:admin-server.log

配置 Java 資源

Web 應用程式可以存取多種資源,例如資源管理員、資料來源 (如 SQL 資料來源)、郵件階段作業以及 URL 連線工廠。Java EE 平台透過 Java Naming and Directory Interface (JNDI) 服務向應用程式展示此類資源。

Sun Java System Web Server 允許建立與管理以下 Java EE 資源:

配置 JDBC 資源

JDBC 資料來源是一種 Java EE 資源,可以使用 Sun Java System Web Server 建立與管理。

JDBC API 是用於連線關聯式資料庫系統的 API。JDBC API 具有兩個組件﹕

JDBC 資料來源物件是採用 Java 程式設計語言的資料來源實作。從基本上來看,資料來源是儲存資料的設備。可以如大公司複雜的資料庫一樣複雜,也可以如具有列和欄的檔案一樣簡單。JDBC 資料來源是 Java EE 資源,可以透過 Sun Java System Web Server 建立與管理。

JDBC API 提供具有標準 SQL 資料庫存取介面的 Java 類別集,以確保對廣泛關聯式資料庫的統一存取權限。

透過使用 JDBC,可以將 SQL 描述傳送至任何虛擬資料庫管理系統 (DBMS)。它同時作為關聯式 DBMS 與物件 DBMS 的介面。

增加 JDBC 資源

若要透過 CLI 增加 JDBC 資源,請執行以下指令。


wadm> create-jdbc-resource --user=admin --password-file=admin.pwd --host=serverhost
--port=8989 --config=config1 --datasource-class=oracle.jdbc.pool.OracleDataSource jdbc

請參閱 CLI 參考create-jdbc-resource(1)

在上述的範例中,com.pointbase.jdbc.jdbcDataSource 代表 JDBC 驅動程式類別。

如需支援的 JDBC 驅動程式清單,請參閱 適用於 Sun Java System Web Server 的已知 JDBC 驅動程式

適用於 Sun Java System Web Server 的已知 JDBC 驅動程式

下表將提供在增加新的 JDBC 資源時,需要配置的一般 JDBC 驅動程式及其特性清單。請參閱增加新的 JDBC 資源

表 11–2 一般與 JDBC 驅動程式清單

驅動程式

類別名稱

特性

Oracle 驅動程式

oracle.jdbc.pool.OracleDataSource

  • url

  • 使用者

  • 密碼

適用於 Oracle 的 Sun Java System JDBC 驅動程式

com.sun.sql.jdbcx.oracle. OracleDataSource

  • 伺服器名稱

  • 連接埠號碼

  • 使用者

  • 密碼

  • SID

DB2 IBM 驅動程式

com.ibm.db2.jdbc.DB2DataSource

  • 伺服器名稱

  • 資料庫名稱

  • 連接埠號碼

  • 使用者

  • 密碼

  • 驅動程式類型

適用於 DB2 的 Sun Java System JDBC 驅動程式

com.sun.sql.jdbcx.db2. DB2DataSource

  • 資料庫名稱

  • 位置名稱

  • 套裝軟體名稱

  • 密碼

  • 連接埠號碼

  • 伺服器名稱

  • 使用者

MS SQLServer 驅動程式

com.ddtek.jdbcx.sqlserver. SQLServerDataSource

  • 資料庫名稱

  • 密碼

  • 使用者

  • 伺服器名稱

  • 連接埠號碼

適用於 MS 的 Sun Java System JDBC 驅動程式

com.sun.sql.jdbcx.sqlserver. SQLServerDataSource

  • 資料庫名稱

  • 密碼

  • 使用者

  • 伺服器名稱

  • 連接埠號碼

Sybase 驅動程式

com.sybase.jdbcx.SybDataSource

  • 資料庫名稱

  • 密碼

  • 連接埠號碼

  • 伺服器名稱

  • 使用者

適用於 Sybase 的 Sun Java System JDBC 驅動程式

com.sun.sql.jdbcx.sybase. SybaseDataSource

  • 資料庫名稱

  • 密碼

  • 使用者

  • 連接埠號碼

  • 伺服器名稱

MySQL 驅動程式

com.mysql.jdbc.jdbc2.optional.MysqlDataSource

  • 伺服器名稱

  • 連接埠

  • 資料庫名稱

  • 使用者

  • 密碼

Informix 驅動程式

com.informix.jdbcx.IfxDataSource

  • 連接埠號碼

  • 資料庫名稱

  • IfxIFXHOST (執行 Informix 資料庫的電腦之 IP 位址或主機名稱)

  • 伺服器名稱

  • 使用者

  • 密碼

適用於 Informix 的 Sun Java System JDBC 驅動程式

com.sun.sql.jdbcx.informix. InformixDataSource

  • 資料庫名稱

  • informixServer (您要連線的 Informix 資料庫伺服器名稱)

  • 密碼

  • 連接埠號碼

  • 伺服器名稱

PostgreSQL 驅動程式

org.postgresql.ds. PGSimpleDataSource

  • 伺服器名稱

  • 資料庫名稱

  • 連接埠號碼

  • 使用者

  • 密碼

Apache Derby 驅動程式

org.apache.derby.jdbc. EmbeddedDataSource

  • 資料庫名稱

  • 使用者

  • 密碼


備註 –

在上述清單中,所有 Sun Java System JDBC 驅動程式皆隨附於 Web 伺服器中。至於其他驅動程式,請在驅動程式供應商文件中查看這些驅動程式與類別名稱的最新版本。上述清單中所提供的資訊可能不是最新的驅動程式資訊。


管理 JDBC 資源

Procedure增加新的 JDBC 資源

  1. 選取配置。

    從配置清單中選取配置。按一下 [配置] 標籤以取得清單。

  2. 按一下 [Java] > [資源] 標籤。

  3. 按一下 [JDBC 資源] 區段下的 [新增] 按鈕。

  4. 選取驅動程式供應商。

    指定唯一 JNDI 名稱值,並從可用清單中選取 JDBC 驅動程式供應商。

  5. 提供 JDBC 資源特性。

    根據上一步選取的 JDBC 驅動程式供應商,自動寫入驅動程式的類別名稱和 JDBC 資源特性。

  6. 查閱。

    檢視摘要,然後按一下 [完成] 以建立新的 JDBC 資源。

管理 JDBC 連線池

配置 JDBC 連線池

在 Web Server 7.0 中,JDBC 連線池會透過 jdbc-resource 元素進行配置。下面列出的步驟,可以配置最簡單的連線池。在此例中,連線池使用 Oracle JDBC 驅動程式。

Procedure建立 JDBC 連線池

  1. 啟動 wadm。

  2. 建立 JDBC 資源。

    使用基本配置建立 JDBC 資源。其他屬性可用於微調連線池。請參閱線上手冊以瞭解更多屬性和範例。


    wadm> create-jdbc-resource --config=test 
    --datasourceclass=oracle.jdbc.pool.OracleDataSource jdbc/MyPool
  3. 配置供應商特有特性。

    此特性用於配置驅動程式的供應商特有特性。以下範例中的 urluserpassword 特性將增加至 JDBC 資源。


    wadm> add-jdbc-resource-userprop --config=test --jndi-name=jdbc/MyPool 
    url=jdbc:oracle:thin:@hostname:1521:MYSID user=myuser password=mypassword
  4. 啟用連線驗證。

    您可為連線池啟用連線驗證。如果使用此選項,連線在傳遞至應用程序之前會經過驗證。這可讓 Web 伺服器自動重新建立資料庫連接 (由於網路故障或資料庫伺服器當機,資料庫不可用時)。對連接進行驗證會耗用額外的時間,並且會略微降低效能。


    wadm> set-jdbc-resource-prop --config=test --jndi-name=jdbc/MyPool 
    connection-validation-table-name=test connection-validation=table
  5. 變更預設池設定。

    在此例中,讓我們變更連線的最大數目。


    wadm> set-jdbc-resource-prop --config=test --jndi-name=jdbc/MyPool 
    max-connections=100
  6. 部署配置。


    wadm> deploy-config test
  7. 提供包含 JDBC 驅動程式的 JAR 檔案。

    您需要為伺服器提供可實作驅動程式的類別。可使用的方法有兩種:

    • 將驅動程式的 JAR 檔案複製到伺服器實例程式庫目錄。這是最簡單的方法,因為實例程式庫目錄中的 JAR 檔案會自動載入並提供給伺服器。

    • 修改 JVM 的 class-path-suffix 以包含 JDBC 驅動程式的 JAR 檔案。


      wadm> set-jvm-prop  --config=test class-path-suffix=/export/home/lib/classes12.jar
  8. 在 Web 應用程式中的用法。

    • 修改 WEB-INF/web.xml


      <web-app>
      ...
        <resource-ref>
          <description>JDBC Connection Pool</description>
          <res-ref-name>jdbc/myJdbc</res-ref-name>
          <res-type>javax.sql.DataSource</res-type>
          <res-auth>Container</res-auth>
        </resource-ref>
      ...
      </web-app>
    • 修改 WEB-INF/sun-web.xml


      <sun-web-app>
      ...
        <resource-ref>
          <res-ref-name>jdbc/myJdbc</res-ref-name>
          <jndi-name>jdbc/MyPool</jndi-name>
        </resource-ref>
      ...
      </sun-web-app>
    • 使用連線池。


      Context initContext = new InitialContext();
          Context webContext = (Context)context.lookup("java:/comp/env");
      
          DataSource ds = (DataSource) webContext.lookup("jdbc/myJdbc");
          Connection dbCon = ds.getConnection();

註冊自訂資源

可以按照此工作來註冊包含實例的自訂資源。

Procedure增加自訂資源

  1. 選取配置。

    從配置清單中選取配置。按一下 [配置] 標籤以取得清單。

  2. 按一下 [Java] > [資源] 標籤。

  3. 按一下 [自訂資源] 區段中的 [新增] 按鈕。

自訂資源的特性

下表說明了可用於建立自訂資源的特性。

表 11–3 自訂資源特性

特性

說明

JNDI 名稱

為自訂資源提供唯一的 JNDI 名稱。 

已啟用

決定是否在執行階段啟用此自訂資源。 

資源類型

此資源之完全合格的類型。 

工廠類別

創設此類型資源的類別。實作 javax.naming.spi.ObjectFactory 的使用者寫入工廠類別的完全合格名稱。

說明

提供對自訂資源的簡短說明。 

特性

按一下 [增加特性] 按鈕,選擇性地提供 CLI 特性。 


備註 –

使用 CLI

若要透過 CLI 建立自訂資源,請執行以下指令:


wadm> create-custom-resource --user=admin --password-file=admin.pwd --host=serverhost 
--port=8989 --config=config1 --res-type=samples.jndi.customResource.MyBean 
--factory-class=samples.jndi.customResource.MyCustomConnectionFactory custom

請參閱 CLI 參考create-custom-resource(1)


使用外部 JNDI 資源

建立外部 JNDI 資源

此選項可讓您建立外部 Java Naming and Directory Interface (JNDI) 資源。您必須要有 NDI 資源,才能存取外部 JNDI 儲存庫中儲存的資源。

Procedure增加外部 JNDI 資源

  1. 選取配置。

    從配置清單中選取配置。按一下 [配置] 標籤以取得清單。

  2. 按一下 [Java] > [資源] 標籤。

  3. 按一下 [外部 JNDI] 區段中的 [新增] 按鈕。

外部 JNDI 資源的特性

下表說明了在增加新的外部 JNDI 資源時可以使用的特性。

表 11–4 外部 JNDI 資源特性

特性

說明

JNDI 名稱

為新的外部 JNDI 資源提供唯一名稱。 

已啟用

決定在執行階段是否啟用此外部 JNDI 資源。 

外部 JNDI 名稱

外部 JNDI 資源的名稱。 

資源類型

此資源之完全合格的類型。 

工廠類別

創設此類型資源的類別。 

說明

提供外部 JNDI 資源的簡短說明。 

特性

按一下 [增加特性] 按鈕,選擇性地提供 CLI 特性。 


備註 –

使用 CLI

若要透過 CLI 建立外部 JNDI 資源,請執行以下指令:


wadm> create-external-jndi-resource --user=admin 
--password-file=admin.pwd --host=serverhost --port=8989 --config=config1 
--res-type=org.apache.naming.resources.Resource 
--factory-class=samples.jndi.externalResource.MyExternalConnectionFactory 
--jndilookupname=index.html external-jndi

請參閱 CLI 參考create-external-jndi-resource(1)


配置郵件資源

JMS 目標是 Java EE 資源,可透過 Sun Java System Web Server 建立與管理。

許多網際網路應用程式都需要傳送電子郵件通知的功能。因此,Java EE 平台包括 JavaMail API 以及 JavaMail 服務提供者,可讓應用程式元件傳送網際網路郵件。

Procedure增加郵件資源

  1. 選取配置。

    從配置清單中選取配置。按一下 [配置] 標籤以取得清單。

  2. 按一下 [Java] > [資源] 標籤。

  3. 按一下 [郵件資源] 區段中的 [新增] 按鈕。

郵件資源的特性

下表說明了在增加新的郵件資源時可以使用的特性。

表 11–5 郵件資源特性

特性

說明

JNDI 名稱

為新的郵件資源提供唯一名稱。 

已啟用

決定在執行階段是否啟用此郵件資源。 

使用者

在郵件伺服器中註冊的有效使用者名稱。 

寄件者

伺服器傳送郵件的源電子郵件位址。 

主機

郵件伺服器的主機名稱/IP 位址。 

儲存協定

用於擷取郵件的協定。 

儲存協定類別

儲存協定的儲存服務提供者實作。實作儲存協定的類別之完全合格類別名稱。預設類別為 com.sun.mail.imap.IMAPStore

傳輸協定

用於傳送郵件的協定。 

傳輸協定類別

傳輸協定的傳輸服務提供者實作。實作傳輸協定的類別之完全合格類別名稱。預設類別為 com.sun.mail.smtp.SMTPTransport


備註 –

使用 CLI

若要建立郵件資源,請執行以下指令:


wadm> create-mail-resource --config=test --server-host=localhost 
--mail-user=nobody --from=xyz@foo.com mail/Session

請參閱 CLI 參考create-mail-resource(1)


配置 SOAP 認證提供者

容器規格的 Java 認證服務提供者介面可定義標準服務提供者介面,認證機制提供者可透過該介面與容器整合。您可以使用管理主控台增加新的 SOAP 認證提供者。

Procedure增加 SOAP 認證提供者

  1. 選取配置。

    從配置清單中選取配置。按一下 [配置] 標籤以取得清單。

  2. 按一下 [Java] > [Web 服務] 標籤。

  3. 按一下 [SOAP 認證提供者] 區段中的 [新增] 按鈕。

SOAP 認證提供者參數

下表說明了新的 SOAP 認證提供者頁面上的參數。

表 11–6 SOAP 認證提供者參數

參數

說明

名稱

輸入新 SOAP 認證提供者的簡稱。 

類別名稱

實作提供者的類別。實作 javax.security.auth.XXX 的類別之完全合格類別名稱。

請求認證來源

此屬性定義了對郵件層寄件者認證 (如使用者名稱/密碼) 或內容認證 (如要套用於請求郵件的數位簽名) 的要求。值 (認證策略) 可以是寄件者,也可以是內容。如果未指定此引數,則不需要對請求進行來源認證。 

請求認證接受者

此屬性定義了郵件收件者對其寄件者的郵件層認證之要求,如透過 XML 加密。值可以是內容前或內容後。 

回應認證來源

此屬性定義了對郵件層寄件者認證 (如使用者名稱/密碼) 或內容認證 (如要套用於回應郵件的數位簽名) 的要求。值 (認證策略) 可以是寄件者,也可以是內容。如果未指定此引數,則不需要對回應進行來源認證。 

回應認證接受者

此屬性定義了回應郵件收件者對其寄件者的郵件層認證之要求,如透過 XML 加密。 

特性

按一下 [增加特性] 按鈕,提供其他 CLI 特性。 


備註 –

使用 CLI

若要使用 CLI 增加 SOAP 認證提供者,請執行以下指令。


wadm> create-soap-auth-provider --user=admin --password-file=admin.pwd 
--host=serverhost --port=8989 --config=config1 
--class-name=javax.security.auth.soapauthprovider soap-auth

請參閱 CLI 參考create-soap-auth-provider(1)


配置階段作業複製

Web 伺服器支援階段作業複製,讓 Web 應用程式擁有高可用性。階段作業複製為實現此目的,會將 HTTP 階段作業從一個實例複製到同一叢集中的另一個伺服器實例。因此,每個 HTTP 階段作業在遠端實例上都有一個備份副本。如果發生故障而導致叢集中的一個實例不可用,該叢集仍可延續階段作業。

Sun Java System Web Server 7.0 Update1Sun Java System Web Server 7.0

上圖描述反向代理伺服器設定的四個節點之間,階段作業複製的常見方式。請注意,Web 伺服器 C 離線時,Web 伺服器 B 的階段作業資料會複製到 Web 伺服器 D。

設定階段作業複製

本節說明了為所選配置設定階段作業複製特性的步驟。

Procedure設定階段作業複製

  1. 選取配置。

    從配置清單中選取配置。按一下 [配置] 標籤以取得清單。

  2. 按一下 [Java] > [階段作業複製]。

修改階段作業複製參數

下表說明階段作業複製頁面上的可用參數。

表 11–7 階段作業複製參數

參數

說明

連接埠

管理伺服器偵聽時所針對的連接埠號碼。預設連接埠為 8888。 

已啟用

為所選配置啟用階段作業複製。 

已加密

是否在複製之前加密階段作業資料。預設值為 false。 

密碼

叢集成員複製階段作業資料時所用的密碼組 (演算法、模式、填補)。 

Getatrribute 觸發複製

呼叫 HttpSession.getAttribute 方法是否應導致備份階段作業。預設值為 true。

複製探索最大躍點

嘗試尋找階段作業備份時,應連絡實例的最大數目。值的範圍從 1 到 2147.0483647.0,或 -1 (表示無限制)。 

啟動探索逾時

實例嘗試連絡其指定的備份實例所花費的最長時間 (以秒為單位)。值的範圍為 0.001 到 3600。 

Cookie 名稱

輸入追蹤擁有階段作業的實例之 Cookie 名稱。 

管理認證範圍

基於 Java EE 的安全模型提供用於識別和認證使用者的安全性範圍。

該認證程序會透過 Java 範圍對使用者進行驗證。每個範圍都是由一組使用者、選擇性的群組對映以及用於驗證認證請求的認證邏輯組成。認證請求通過配置範圍的驗證,並建立安全性環境之後,便會將該身份識別套用於所有後續授權決定。


備註 –

Java 範圍類似於 auth-db (認證資料庫),不同的是 auth-db 由 ACL 引擎 (根據 ACL 檔案中的規則) 來使用,而 Java 範圍由 Java Servlet 存取控制規則 (在每一個 Web 應用程式的 web.xml 檔案中指定) 來使用。


一個伺服器實例可以具有任意數量的配置範圍。配置資訊位於 server.xml 檔案的 auth-realm 元素中。

下表定義了 Web Server 7.0 中支援的各種範圍類型。

表 11–8 範圍類型

範圍

說明

File

File 範圍是首次安裝 Sun Java System Web Server 時的預設範圍。該範圍的設定非常簡便,為開發人員提供了巨大的方便。

File 範圍會根據文字檔中儲存的使用者資料來認證使用者。Java 範圍類似於 auth-db (認證資料庫),不同的是 auth-db 由 ACL 引擎 (根據 ACL 檔案中的規則) 來使用,而 Java 範圍由 Java Servlet 存取控制規則 (在每一個 Web 應用程式的 web.xml 中指定) 來使用。

LDAP

LDAP 範圍可讓您使用 LDAP 資料庫,以獲得使用者安全性資訊。每項 LDAP 目錄服務都是具有唯一識別碼的屬性集合。LDAP 範圍非常適合部署生產系統。

為了針對 LDAP 範圍認證使用者,您必須在 LDAP 目錄中建立所需的使用者。您可以從管理伺服器的 [使用者與群組] 標籤執行此作業。您也可以從 LDAP 目錄產品的使用者管理主控台執行此動作。

PAM

PAM (亦稱為 Solaris) 範圍會將認證委託給 Solaris PAM 堆疊。如果使用 PAM auth-db,僅 Solaris 9 和 10 支援此範圍,並且伺服器實例必須以超級使用者身份執行。  

Certificate

Certificate 範圍支援 SSL 認證。Certificate 範圍會在 Sun Java System Web Server 的安全性環境中設定使用者身份識別,並在其中寫入用戶端憑證中的使用者資料。然後,Java EE 容器將根據每個使用者憑證中的使用者 DN 執行認證處理。該範圍會透過 X.509 憑證,以 SSL 或 TLS 用戶端認證機制來認證使用者。

Native

Native 範圍是一個特殊範圍,能為核心 ACL 型認證模型與 Java EE/Servlet 認證模型之間搭起一個橋樑。透過使用適用於 Java Web 應用程式的 Native 範圍,可以使 ACL 子系統執行認證 (而非使 Java Web 容器執行該作業),也可以使該身分可用於 Java Web 應用程式。

呼叫認證作業後,Native 範圍會將此認證委託給核心認證子系統。例如從使用者角度來看,此項作業實質上等同於 LDAP 範圍將認證委託給配置的 LDAP 伺服器。當本端範圍處理群組成員關係查詢時,也會將這些查詢授權給核心認證子系統。從 Java Web 模組和開發人員角度來看,Native 範圍與其他任何可與 Web 模組配合使用的 Java 範圍沒有絲毫差異。 

自訂

您可以為其他資料庫建立範圍,如 Oracle,以便透過使用可插接式 JAAS 登入模組並執行範圍來滿足特殊需求。 

以下小節說明了有關增加新認證範圍的步驟。

Procedure增加認證範圍

  1. 選取配置。

    選取您需要為其增加新的認證範圍的配置。按一下 [配置] 標籤,然後選取配置。

  2. 按一下 [Java] > [安全性] 標籤。

  3. 按一下 [新增認證] 按鈕。

  4. 提供範圍詳細資訊。

    • 名稱 — 輸入範圍的簡稱。此名稱用於參考範圍,例如 web.xml 中的範圍。

    • 類別 — 若要 配置自訂範圍,請輸入實作自訂範圍的完整 Java 類別名稱。不必為每個內建範圍輸入類別。

    • 類型 — 選取範圍的類型。請參閱上一節中討論的 Java 範圍類型。

    • 特性 — 增加範圍特定的特性。例如 property name="file" value="instance_dir/config/keyfile" 與 property name="jaas-context" value="fileRealm


    備註 –

    使用 CLI

    若要透過 CLI 增加認證範圍,請執行以下指令。


    wadm> create-auth-realm --user=admin --password-file=admin.pwd --host=serverhost 
    --port=8989 --config=config1 basic

    請參閱 CLI 參考資料 create-auth-realm(1)

    指定內建認證範圍類型的名稱。類型可以為 fileldappamnativecertificate