Sun ONE Application Server 7 管理員指南 |
第 4 章
使用應用程式伺服器實例本章描述建立、刪除、配置、啟動和停止 Sun ONE Application Server 實例的方式。
本章包含以下主題:
關於應用程式伺服器實例當您安裝非隨附式版本的軟體時,Sun ONE Application Server 會建立一個稱為 server1 的應用程式伺服器實例。如果願意,您可以刪除 server1 實例並以其他名稱建立一個新實例。
如果要使用隨附式 Solaris 9 版本的軟體,您必須建立自己的伺服器實例。如需更多資訊,請參閱配置隨附式 Solaris 版本。
每個應用程式伺服器實例均有其專有的 J2EE 配置、J2EE 資源、應用程式部署區域以及伺服器配置設定。對一個應用程式伺服器實例所做的變更,不會影響其他應用程式伺服器實例。在一個管理領域內,您可以擁有多個應用程式伺服器實例。在一個領域內,所有伺服器實例使用同一個管理伺服器。如需有關網域的更多資訊,請參閱第 3 章「配置管理網域」。
對於許多使用者而言,一個應用程式伺服器實例就符合他們的需要了。不過,依據您的環境,您可能想建立一個或多個附加的應用程式伺服器實例。例如,在開發環境下,您可以使用不同的應用程式伺服器實例來測試不同的 Sun ONE Application Server 配置,或比對和測試不同的應用程式部署。由於您可以輕易地加入或刪除應用程式伺服器實例,因而可以在開發時透過這些實例建立暫時的「沙箱」區域進行試驗。
此外,對於每個應用程式伺服器實例,您也可以建立虛擬伺服器。在單一安裝的應用程式伺服器實例內,您可以為公司或個人提供領域名稱、IP 位址以及某些管理功能。對於使用者而言,看起來好像使用者有自己的 Web 伺服器,但沒有硬體和基本的伺服器維護功能。這些虛擬伺服器不擴充應用程式伺服器實例。如需關於虛擬伺服器的更多資訊,請參閱第 15 章「使用虛擬伺服器」。
在作業部署中,您可以使用虛擬伺服器代替多重應用程式伺服器實例,用於多種目的。不過,如果虛擬伺服器不符合您的需要,也可以使用多重應用程式伺服器實例。
啟動和停止應用程式伺服器實例Sun ONE Application Server 實例不會自動啟動。您啟動一個實例後,該實例將一直執行,直到您停止它。若您停止一個應用程式伺服器實例,該實例將停止接受新連線,然後等待所有未完成的連線完成。如果您的機器當機或離線,伺服器將結束,其正在處理的任何請求均可能遺失。
您可以使用下列主題中包含的幾種方法之一,啟動和停止應用程式伺服器實例︰
如果您安裝了伺服器證書,Sun ONE Application Server 在啟動之前,將提示管理員輸入鍵值資料庫密碼。如果希望能夠重新啟動非隨附式的 Sun ONE Application Server,您需要將該密碼儲存在 password.conf 檔案中。僅當您的系統受到適當保護時才能這樣做,以免洩漏該檔案和鍵值資料庫。如需關於建立和使用 password.conf 的更多資訊,請參閱「Sun ONE Application Server Administrator's Configuration File Reference」。
註
在 UNIX 上,某些 Sun ONE Application Server 安裝可能需要存取比您的作業系統依預設所允許的數目更多的記憶體和/或檔案描述元。如果您無法啟動伺服器,請使用 ulimit 指令,檢查由您的作業系統施加的資源限制。作業系統的 ulimit 線上說明手冊應該會提供更多資訊。
使用管理介面中的 [Start] 和 [Stop] 按鈕
使用管理介面啟動和停止伺服器的步驟︰
使用 start-instance 與 stop-instance 指令
使用指令行介面公用程式 asadmin,您可以經由指令提示或經由程序檔啟動和停止應用程式伺服器實例。使用 start-instance 與 stop-instance 指令
這些指令使用下列語法︰
start-instance [--user admin_user] [--password admin_password] [--host admin_host] [--port admin_port] [--local=true/false] [--domain domain_name] [--debug=true/false] [--passwordfile file_name] [--secure | -s] instance_name
stop-instance [--user admin_user] [--password admin_password] [--host admin_host] [--port admin_port] [--local=true/false] [--domain domain_name] [--passwordfile file_name] [--secure | -s] instance_name
這些指令有一個 local 選項,使用該選項,您便可啟動或停止伺服器 (無需經由管理伺服器)。如果您使用 local 選項,則無需指定 host、port、user 與 password (或 passwordfile) 選項。
如需關於這些指令語法的資訊,請使用 asadmin 輔助說明。如需關於使用 asadmin 的資訊,請參閱附錄 A「使用指令行介面」。
使用 Windows 服務 (Windows)
您可以使用 Windows 中的服務控制台,啟動伺服器。
請執行以下步驟︰
使用 startserv 和 stopserv 程序檔
若要使用 startserv 和 stopserv 程序檔,請在指令行提示處移至目錄︰
instance_dir/bin
其中,install_dir 是安裝伺服器的目錄,domain_dir 是領域目錄,而 instance_dir 是您要啟動的實例名稱。
對於 UNIX,請鍵入︰
./asadmin startserv
如果伺服器在號碼低於 1024 的連接埠上運行,請以超級使用者身份登入;否則,請以超級使用者身份或使用伺服器的使用者帳號登入。
您可以在行結尾處使用選擇性參數 -i。-i 選項可以在 inittab 模式下執行伺服器,因此,如果伺服器程序被終止或當機,inittab 將為您重新啟動伺服器。該選項也可防止伺服器將其本身放入後台程序中。
對於 Windows,請鍵入︰
startserv
若要手動停止伺服器,請在指令行提示處移至目錄︰
instance_dir/bin
其中,install_dir 是您安裝伺服器的目錄,而 instance_dir 是您要啟動的實例名稱。
對於 UNIX,請鍵入︰
./asadmin stopserv
如果使用 /etc/inittab 檔案重新啟動伺服器,您必須從 /etc/inittab 中移除啟動伺服器的行,並鍵入 kill -1 1,然後嘗試停止伺服器。否則,伺服器在停止後會自動重新啟動。
對於 Windows,請鍵入︰
stopserv
在除錯模式下啟動應用程式伺服器實例如果開發人員要對其 J2EE 應用程式除錯,可以在除錯模式下執行應用程式伺服器實例。
在除錯模式下啟動伺服器的步驟︰
除錯模式會變更 JVM 設定。[Debug Enabled] 設定為 true,並且除錯選項發生變更。如需關於 JVM 除錯選項的更多資訊,請參閱 Java 平台除錯程式選項說明文件 (位於 http://java.sun.com/products/jpda/doc/conninv.html)。
若要經由指令行介面啟動除錯模式中的應用程式伺服器實例,請使用 asadmin 公用程式的 start-instance 指令,並將 debug 選項設定為 true。如需有關指令語法的更多資訊,請參閱指令行介面的線上輔助說明。
設定終止逾時當您停止應用程式伺服器實例時,它會停止接受新連線。然後等待所有未完成的連線完成。伺服器在逾時前的等待時間可在 init.conf 檔案中配置,該檔案可在 instance_dir/config/ 中找到。依預設,該值設定為 30 秒。若要變更該值,請將以下行加入至 init.conf︰
TerminateTimeout seconds
其中,seconds 表示伺服器在逾時前將等待的秒數。
配置該值的優點是伺服器將等待更長的時間以讓連線完成。不過,由於伺服器經常開啟來自非回應用戶端的連線,因此延長終止逾時可能會延長其用於伺服器關機的時間。
自動重新啟動應用程式伺服器實例 (UNIX)您可以使用下列方法之一,重新啟動應用程式伺服器實例︰
- 在機器重新啟動時,以 /etc/rc2.d 中的常駐程式自動重新啟動實例。
- 手動重新啟動實例。請參閱啟動和停止應用程式伺服器實例和刪除應用程式伺服器實例。
本章節包含下列主題:
關於自動重新啟動
由於安裝程序檔無法編輯 /etc/rc.local 或 /etc/inittab 檔案,因而您必須使用文字編輯程式編輯這些檔案。如果您不瞭解如何編輯這些檔案,請洽詢您的系統管理員或參考系統說明文件。
通常,您無法用其中的任何一個檔案啟動已啟用 SSL 的伺服器,因為該伺服器在啟動前需要密碼。如果以純文字形式將密碼保留在檔案中,雖然您可以自動啟動啟用了 SSL 的伺服器,但建議您不要這樣做。
小心 以一般文字形式將啟動了 SSL 的伺服器密碼保留在該伺服器的 startserv 程序檔內,會造成很大的安全性風險。可以存取該檔案的任何使用者都可以存取啟動了 SSL 的伺服器密碼。以一般文字形式保留啟動了 SSL 的伺服器密碼前,請考慮安全性風險。
伺服器的 startserv 程序檔、鍵對檔案以及鍵密碼應該為超級使用者所有 (或者,如果非超級使用者安裝了伺服器,則為該使用者帳號),並且僅所有者可以讀取和寫入它們。
以 /etc/inittab 自動重新啟動 (UNIX)
若要使用 inittab 重新啟動伺服器,請將以下文字放入檔案 /etc/inittab 中的一行上︰
http:2:respawn:install_dir/path_to_domain_dir/instance_dir/bin/startserv -start -i
其中,install_dir 是安裝伺服器的目錄,path_to_domain_dir 是網域路徑,instance_dir 是伺服器的目錄。
-i 選項可防止伺服器將其自身放置在後台程序中。
您必須在停止伺服器之前移除該行,否則伺服器會自動重新啟動。
以系統 RC 程序檔自動重新啟動 (UNIX)
如果使用 /etc/rc.local 或系統上的對等檔案,請將下列行放入 /etc/rc.local 中︰
install_dir/path_to_domain_dir/instance_dir/bin/startserv
以您安裝伺服器的目錄取代 install_dir,以領域路徑取代 path_to_domain_dir,以應用程式伺服器實例的名稱取代 instance_dir。
手動重新啟動應用程式伺服器實例 (UNIX)在 UNIX 上,您可以選擇手動重新啟動伺服器實例。與停止伺服器實例然後再啟動不同,重新啟動不停止監視程式。如需關於監視程式的資訊,請參閱關於監視程式。
註
如果您透過編輯手動變更了配置檔案,則必須在重新啟動伺服器之前套用變更,方法為使用管理介面中的 [Apply Changes] 按鈕或者使用 asadmin reconfig 指令 (同時將 keepmanualchanges 選項設定為 true)。如需關於套用變更的更多資訊,請參閱將變更套用至應用程式伺服器實例。
下列主題中涵蓋三種重新啟動伺服器實例的方法︰
使用 [Restart] 按鈕重新啟動伺服器實例 (UNIX)
使用管理介面重新啟動伺服器實例的步驟︰
使用 restart-instance 指令重新啟動伺服器實例 (UNIX)
使用指令行介面公用程式 asadmin,您可以經由指令行或經由程序檔啟動和停止應用程式伺服器實例。使用指令 restart-instance。該指令使用以下語法︰
restart-instance [--user admin_user] [--password admin_password] [--host admin_host] [--port admin_port] [--local=true/false] [--domain domain_name] [--passwordfile file_name] [--secure | -s] instance_name
該指令有一個 local 選項,使用該選項,您便可重新啟動伺服器實例 (無需經由管理伺服器)。
如需關於這些指令語法的資訊,請使用 asadmin 輔助說明。如需關於使用 asadmin 的資訊,請參閱附錄 A「使用指令行介面」。
使用 restartserv 程序檔重新啟動伺服器實例 (UNIX)
若要使用 restartserv 程序檔,請在指令行提示處移至目錄︰
instance_dir/bin
其中,install_dir 是安裝伺服器的目錄,domain_dir 是領域目錄,而 instance_dir 是您要啟動的實例名稱。
類型︰
./asadmin restartserv
如果伺服器在號碼低於 1024 的連接埠上運行,請以超級使用者身份登入;否則,請以超級使用者身份或使用伺服器的使用者帳號登入。
關於監視程式監視程式 (在 UNIX 上為 appserv-wdog,在 Windows 上為 appservd-wdog.exe) 是您 Sun ONE Application Server 隨附的程式。該程式執行下列工作︰
監視程式在後台執行,無需使用者干預。您不得配置或以其他方式變更該程式。一個監視程式可針對每個應用程式伺服器實例 (包括管理伺服器) 執行。
在 UNIX 上,每個監視程式可為原始應用程式伺服器 (appservd) 程序產生一個程序,繼而該程序也會產生可接受請求的 appservd 程序。由於監視程序 ID 可以啟動伺服器,因此其顯示在 instance_dir/logs 中的 pid 日誌檔內。
加入應用程式伺服器實例使用管理介面加入應用程式伺服器實例的步驟︰
如需更多資訊,請參閱線上輔助說明。
若要藉由指令行介面加入另一個應用程式伺服器實例,請使用 asadmin 公用程式的 create-instance 指令,該指令具有下列語法︰
asadmin create-instance [--user admin_user] [--password admin_password] [--host host] [--port port] [--sysuser sys_user] [--domain domain_name] [--local=true/false] [--passwordfile file_name] [--secure | -s] --instanceport instance_port instance_name
該指令有一個 local 選項,使用該選項,您便可重新啟動伺服器實例 (無需經由管理伺服器)。sysuser 選項僅用於 UNIX。
如需關於指令語法的更多資訊,請參閱指令行介面輔助說明。如需關於使用 asadmin 的更多資訊,請參閱附錄 A「使用指令行介面」。
刪除應用程式伺服器實例您可以從您的管理領域中刪除應用程式伺服器實例。在刪除之前,請確定您不再需要該應用程式伺服器實例,因為此程序無法還原。
使用管理介面從機器中刪除應用程式伺服器實例的步驟︰
如需更多資訊,請參閱線上輔助說明。
若要使用指令行介面從機器中刪除一個應用程式伺服器實例,請使用 asadmin 公用程式的 delete-instance 指令,該指令具有下列語法︰
asadmin delete-instance [--user admin_user] [--password admin_password] [--host admin_host] [--port admin_port] [--domain domain_name] [--local=true/false] [--passwordfile file_name] [--secure | -s] instance_name
該指令有一個 local 選項,使用該選項,您便可刪除伺服器實例 (無需經由管理伺服器)。
如需有關指令語法的更多資訊,請參閱指令行介面輔助說明。如需關於使用 asadmin 的更多資訊,請參閱附錄 A「使用指令行介面」。
將變更套用至應用程式伺服器實例使用管理介面或指令行介面變更配置資訊時,不會立即套用變更,而是將變更儲存到位於 server_instance/config/backup 下的特殊檔案中。管理介面和指令行介面可顯示儲存在以上目錄下檔案中的配置值。直到您套用了所做的變更,其才會生效。套用變更也稱為重新配置伺服器。當您套用變更後,自您上次套用變更以來所作的所有配置變更均生效。請注意,重新啟動實例不會自動套用變更。
如果您已對需要套用變更的伺服器實例配置進行了變更,則會在左窗格樹檢視中的應用程式伺服器實例旁邊顯示一個黃色圖示,當您存取伺服器實例時,會在標題中以及伺服器實例的主頁面中顯示黃色圖示。
圖 4-1 警告圖示
使用管理介面套用變更至應用程式伺服器實例的步驟︰
若要藉由指令行介面重新配置應用程式伺服器實例,請使用 asadmin 公用程式的 reconfig 指令,該指令具有下列語法︰
asadmin reconfig --user admin_user [--password admin_password] [--host admin_host] [--port admin_port] [--passwordfile file_name] [--secure | -s] [--discardmanualchanges=true/false | --keepmanualchanges=true/false] instance_name
如果您已透過手動編輯手動變更了配置檔案,在重新配置期間您必須使用 keepmanualchanges=true 保留這些編輯 (該選項預設為 false)。如果您設定了 discardmanualchanges=true,便捨棄了手動進行的所有變更。設定 discardmanulchanges=false (預設) 的涵義與設定 keepmanualchanges=true 不同。將其設定為 false,反而等同於不指定 discardmanualchanges 選項。
如需有關指令語法的更多資訊,請參閱指令行介面輔助說明。如需關於使用 asadmin 的更多資訊,請參閱附錄 A「使用指令行介面」。
對於某些特性,您需要重新啟動伺服器並套用變更,以讓您的變更生效。這些特性包括配置檔案 init.conf 和 obj.conf 中設定的所有特性,以及 server.xml 中的某些特性。如需關於這些檔案的資訊,請參閱「Sun ONE Application Server Administrator's Configuration File Reference」。
如果變更需要重新啟動,伺服器將警告您,方式為在左窗格樹檢視中的伺服器實例旁邊放置一個黃色警告圖示,當您存取伺服器實例時,會在標題中以及伺服器實例的主頁面中放置黃色警告圖示。標題與頁面中的訊息可指示需要重新啟動。一旦您重新啟動了伺服器實例,黃色警告圖示將消失。
不需要重新啟動的 server.xml 設定包括以下內容︰
檢視應用程式伺服器實例狀況使用管理介面,您可以檢視一個伺服器已經啟動還是停止,以及基本的應用程式伺服器實例設定。
檢視應用程式伺服器實例狀況的步驟︰
若要藉由指令行介面檢視應用程式伺服器實例的狀態,請使用 asadmin 公用程式的 show-instance-status 指令。狀況為「正在啟動」、「已啟動」、「正在停止」或「已停止」。該指令使用以下語法︰
asadmin show-instance-status --user admin_user [--password admin_password] [--host admin_host] [--port admin_port] [--passwordfile file_name] [--secure | -s] instance_name
如需關於指令語法的更多資訊,請參閱指令行介面輔助說明。如需關於使用 asadmin 的更多資訊,請參閱附錄 A「使用指令行介面」。
配置 JVM 設定您可以為您的應用程式伺服器實例配置 Java Virtual Machine (JVM) 設定。這些設定包括您的 Java Home 位置、編譯程式選項、除錯選項以及測量程式資訊。配置這些設定的一個原因是為了提昇效能。如需有關效能的更多資訊,請參閱「Sun ONE Application Server Performance and Tuning Guide」。
本章節描述下列主題:
配置一般設定
在管理介面中配置 JVM 一般選項的步驟︰
- 在左窗格中,按一下應用程式伺服器實例名稱。
- 在右窗格中,按一下 [JVM] 標籤。
- 按一下 [General]。
- 設定 Java Home。
Java Home 是安裝 Java Developer's Kit (JDK) 的目錄路徑。Sun ONE Application Server 支援 Sun JDK 1.4.0_02 或更高版本。
- 選擇啟用除錯還是設定除錯選項。
可從 http://java.sun.com/products/jpda/doc/conninv.html#Invocation 取得除錯選項清單。
- 選擇 rmic 選項。
rmic 選項欄位顯示了在應用程式部署時傳送到 RMI 編譯程式的 rmic 選項。-keepgenerated 選項可為存根和聯繫儲存產生的來源。如需關於 rmic 指令的更多資訊,請參閱「Sun ONE Application Server Developer's Guide to Enterprise Java Beans」。
- 按一下 [Save]。
配置路徑設定
在管理介面中配置 JVM 路徑設定的步驟︰
- 在左窗格中,按一下應用程式伺服器實例名稱。
- 在右窗格中,按一下 [JVM] 標籤。
- 按一下 [Path Settings]。
- 選擇用於系統類別路徑的尾碼。
- 選擇是否忽略環境類別路徑。
如果您不忽略此類別路徑,將讀取 CLASSPATH 環境變數,並將其附加至 Sun ONE Application Server 類別路徑。CLASSPATH 環境變數於類別路徑字尾之後加入,恰在其結尾處。
對於開發環境,應該使用類別路徑。對於生產環境,應該忽略該類別路徑以防止環境變數副作用。
- 設定本端程式庫路徑的字首和字尾。
本端程式庫路徑是應用程式伺服器安裝相對路徑 (用於其本端共用程式庫)、標準 JRE 本端程式庫路徑、Shell 環境設定 (UNIX 上的 LD_LIBRARY_PATH) 以及測量程式元素中指定的任何路徑的自動建構之連結。由於該本端程式庫路徑是合成的,因此其不在伺服器配置中明確出現。
- 按一下 [Save]。
配置 JVM 選項
在管理介面中設定 JVM 指令行選項的步驟︰
如需關於特定 JVM 選項的資訊,請參閱 http://java.sun.com/docs/hotspot/VMOptions.html。
配置 JVM 測量程式
在管理介面中配置 JVM 測量程式的步驟︰
如需關於測量程式的更多資訊,請參閱「Sun ONE Application Server Developer's Guide」。
使用指令行介面配置 JVM 設定
若要使用指令行介面的 asadmin 公用程式配置 JVM 設定,請使用以下指令︰
若要從實例中取得所有屬性,請使用︰
asadmin> get server_instance.java-config.*
若要在 server1 中取得名為 classpathprefix 的屬性,請使用︰
asadmin> get server1.java-config.classpathprefix
若要在 server1 中設定稱為 classpathprefix 的屬性,請使用︰
asadmin> set server1.java-config.classpathprefix=com.sun
以上範例均假定您已經在您的環境變數中設定了使用者、密碼、主機和連接埠。如需完整的屬性清單,請參閱附錄 A「使用指令行介面」。
若要使用指令行介面的 asadmin 公用程式設定 JVM 選項,請使用以下指令︰
asadmin> create-jvm-options --user admin_user [--password admin_password] [--host host] [--port port] [--secure | -s] [--instance instance_name] [--profiler=true/false] (jvm_option_name=jvm_option_value)[:jvm_option_name=jvm_option_name]*
asadmin> delete-jvm-options --user admin_user [--password admin_password] [--host host] [--port port] [--secure | -s] [--instance instance_name] [--profiler=true/false] (jvm_option_name=jvm_option_value)[:jvm_option_name=jvm_option_name]*
注意︰您可以輸入多個 JVM 選項 (以冒號分隔)。如果測量程式使用這些選項,請將 --profiler 設定為 true。
如需有關指令語法的更多資訊,請參閱指令行介面輔助說明。如需關於使用 asadmin 的更多資訊,請參閱附錄 A「使用指令行介面」。
配置記錄設定和監視設定[Logging] 和 [Monitoring] 標籤上的設定是個別章內包含的記錄和監視設定。如需關於記錄的資訊,請參閱第 5 章「使用記錄功能」。如需關於監視和 SNMP 設定的資訊,請參閱第 6 章「監視 Sun ONE Application Server」。
變更應用程式伺服器實例進階設定應用程式伺服器實例還具有附加設定,顯示實例的語言環境 (可決定諸如字元集和語言的設定)、伺服器日誌檔路徑、已部署應用程式的目錄路徑,以及儲存鈍化 Bean 和永久性 HTTP 階段作業的階段作業儲存目錄路徑。
此外,您也可以啟用應用程式重新載入功能並輪詢重新載入的間隔時間。動態應用程式重新載入可自動檢查應用程式有無變更,如果已變更,它會自動服務於更新後的版本。一般而言,您應該在開發環境內 (而非生產環境) 啟用動態重新載入。輪詢間隔時間可指定應用程式伺服器檢查應用程式有無更新的間隔時間。
使用管理介面變更應用程式伺服器實例設定的步驟︰
若要藉由指令行介面的 asadmin 公用程式變更伺服器實例進階設定,請使用 get 和 set 指令。當您取得一個伺服器實例的所有屬性時,
若要從實例中取得所有屬性,請使用︰
asadmin get instance_name.*
例如︰
asadmin get server1.*
若要為 server1 取得稱為 logRoot 的屬性,請使用︰
asadmin get server1.logRoot
若要為 server1 設定稱為 logRoot 的屬性,請使用︰
asadmin set server1.logRoot=/space/log
以上範例均假定您已經在您的環境變數中設定了使用者、密碼、主機和連接埠。如需有關指令語法的更多資訊,請參閱指令行介面輔助說明。如需關於使用 asadmin 的更多資訊,請參閱附錄 A「使用指令行介面」。