Sun GlassFish Enterprise Server v2.1.1 版本說明

管理

本節介紹已知的管理問題以及相關的解決方案。

Enterprise Server 不會偵測與叢集活動訊號連接埠的衝突 (問題編號 1967)

說明

叢集建立時,Enterprise Server 會為其隨機指定 1026 到 45556 之間的活動訊號連接埠。對於預設叢集 (亦即 Enterprise Server 安裝所建立的預設叢集),系統會隨機選取介於 0 至 45556 之間的數字。叢集建立程序不會精確偵測是否已有其他服務使用該活動訊號連接埠。

解決方案

如果自動叢集建立配置選取了與另一服務 (已使用該連接埠) 衝突的活動訊號連接埠,請將叢集活動訊號連接埠更新為系統未使用的連接埠。

要變更叢集的活動訊號連接埠,請使用下列 asadmin 指令:

asadmin set cluster-name.heartbeat-port= newportnumber

執行 64 位元 Linux 的 NFS 伺服器停止建立網域 (問題編號 1961)

說明

在執行 64 位元 Linux 的 NFS 伺服器上,asadmin create-domain 指令在嘗試於掛載 Network File System (NFS) 的檔案系統上建立網域時可能會失敗。

解決方案

無已知解決方案。

自動重建大型記錄檔時發生效能降低情形 (6718611)

說明

自動重建大型記錄檔時,觀察到回應時間略為增加的情形。

解決方案

修改記錄程式設定中「檔案自動重建限制」和「檔案自動重建時間限制」的值,可以將效能降低情形減至最低。這些特性的值會視您的應用程式和環境而定。

無法針對 IBM MQ 部署常規 RA 資源配接卡 (問題 6605)

說明

針對 IBM Message Queue 產品部署常規 RA 配接卡失敗。server.policy 檔案授予的權限如下。


grant {
      permission java.util.logging.LoggingPermission "control";
      permission java.util.PropertyPermission "*", "read,write";
      }

解決方案

變更 server.policy 檔案中的權限,如下所示:


grant codeBase
"file:${com.sun.aas.installRoot}/lib/install/applications/adminapp/-" {
  permission java.util.logging.LoggingPermission "control";
 };

獨立實例有時會從其他實例取得檔案 (6698604)

說明

在某些情況下,系統會將安裝在 DAS 上但需與特定實例同步的檔案,真的傳送至其他實例。

解決方案

無已知解決方案。

start-cluster 指令產生的啟動訊息太詳細 (6728317)

說明

即使啟動期間失敗的元件並不重要,asadmin start-cluster 指令仍會顯示過多訊息。請參閱下列不重要元素 (與叢集中的實例有關) 失敗時產生的指令輸出範例:


./asadmin start-cluster --port 9898 cluster1
Please enter the admin user name>admin
Please enter the admin password>
The clustered instance, instance2, was successfully started.
error 0 [#|2008-07-17T14:58:16.496+0200|WARNING|sun-appserver9.1|javax.jms|
_ThreadID=10;_ThreadName=main;
_RequestID=90bbbe3a-d654-4480-b295-7e317d945a4a;|[C4003]: 
Error occurred on connection creation [localhost:37676]. - cause: 
java.net.ConnectException: Connection refused|#]


error 1 [#|2008-07-17T14:58:17.517+0200|WARNING|sun-appserver9.1|javax.jms|
_ThreadID=10;_ThreadName=main;
_RequestID=90bbbe3a-d654-4480-b295-7e317d945a4a;|[C4003]: 
Error occurred on connection creation [localhost:37676]. - cause: 
java.net.ConnectException: Connection refused|#]


error 2 [#|2008-07-17T14:58:30.596+0200|WARNING|sun-appserver9.1|
javax.enterprise.system.container.ejb|
_ThreadID=13;_ThreadName=pool-1-thread-4;TimerBean;
_RequestID=5954a044-df06-4a3e-902a-0c40b4b6cddb;
|EJB5108:Unable to initialize EJB Timer Service. 
The likely cause is the database has not been 
started or the timer database table has not been created.|#]


error 3 [#|2008-07-17T14:58:32.512+0200|WARNING|sun-appserver9.1|
javax.enterprise.resource.resourceadapter|_ThreadID=10;_ThreadName=main;
__CallFlowPool;_RequestID=90bbbe3a-d654-4480-b295-7e317d945a4a;|
RAR5005:Error in accessing XA resource with JNDI name [__CallFlowPool] for recovery|#]


The clustered instance, instance1, was successfully started.
error 0 [#|2008-07-17T14:58:21.117+0200|WARNING|sun-appserver9.1|
javax.enterprise.system.container.ejb|
_ThreadID=13;_ThreadName=pool-1-thread-4;TimerBean;
_RequestID=30827d9a-72ac-4854-b216-06494b6a9fb5;
|EJB5108:Unable to initialize EJB Timer Service. The likely cause is the database has 
not been started or the timer database table has not been created.|#]


error 1 [#|2008-07-17T14:58:23.106+0200|WARNING|sun-appserver9.1|
javax.enterprise.resource.resourceadapter|
_ThreadID=10;_ThreadName=main;__CallFlowPool;
_RequestID=b41d76fa-0203-49f7-a2ae-83bf242d3e7a;
|RAR5005:Error in accessing XA resource with JNDI name [__CallFlowPool] for recovery|#]


Command start-cluster executed successfully.

解決方案

無已知解決方案。可以略過這些 (異常) 訊息。

無法針對 IBM MQ 部署常規 RA 資源配接卡 (問題 6605)

說明

針對 IBM Message Queue 產品部署常規 RA 配接卡失敗。server.policy 檔案授予的權限如下。


grant {
      permission java.util.logging.LoggingPermission "control";
      permission java.util.PropertyPermission "*", "read,write";
      }

解決方案

變更 server.policy 檔案中的權限,如下所示:


grant codeBase
"file:${com.sun.aas.installRoot}/lib/install/applications/adminapp/-" {
  permission java.util.logging.LoggingPermission "control";
 };

如果 domain1 不存在,則 package-appclient 程序檔無法使用 (6171458)

說明

依預設,在 as-install/lib/package-appclient.xml 中,asenv.conf 指向的 domain1AS_ACC_CONFIG 變數有一個程序內定值。如果刪除 domain1 並建立新網域,則不會使用新網域名稱更新 AS_ACC_CONFIG 變數,這將導致 package-appclient 程序檔失敗。

解決方案

執行下列動作之一:

  1. 保留 domain1 的完整,並在周圍建立其他網域。

  2. 移除 domain1 並使用新網域名稱替代 as-install/lib/package-appclient.xmldomain1 的程序內定值。

如果沒有 domain1,則每次建立新網域時均必須執行此作業。

不支援同時啟動伺服器和其他 JMX 代理程式 (6200011)

說明

在伺服器上可以配置 J2SE 1.4.x、5.0 或更新的版本。啟動 JMX 代理程式是 J2SE 5.0 平台不可或缺的功能。如果您在伺服器啟動時明確設定系統特性,則會啟動此功能。

範例值包含︰


name="com.sun.management.jmxremote" value="true"
name="com.sun.management.jmxremote.port" value="9999"
name="com.sun.management.jmxremote.authenticate" value="false"
name="com.sun.management.jmxremote.ssl" value="false"

在配置 JMX 特性並啟動伺服器之後,會在 Virtual Machine 上啟動新的 jmx-connector 伺服器。這一過程的不良副作用是會對管理功能造成不利影響,並且管理主控台和指令行介面可能會產生未預期的結果。問題在於在內建 jmx-connector 伺服器和新的 jmx-connector 伺服器之間存在某些衝突。

解決方案

如果使用 jconsole (或任何其他與 JMX 相容的用戶端),請考慮重新使用在 Server 啟動時一起啟動的標準 JMX Connector Server。

伺服器啟動後,server.log 中會顯示與下行類似的文字。您可連接至其中指定的 JMXService URL,並在成功提供憑證之後執行相同的管理/配置作業,例如:


[#|2004-11-24T17:49:08.203-0800|INFO|sun-appserver-ee8.1|
javax.enterprise.system.tools.admin|_ThreadID=10;|ADM1501: 
Here is the JMXServiceURL for the JMXConnectorServer: 
[service:jmx:rmi:///jndi/rmi://hostname:8686/management/
rmi-jmx-connector]. This is where the remote administrative 
clients should connect using the JSR 160 JMX Connectors.|#]

如需更多資訊,請參閱「Sun GlassFish Enterprise Server v2.1.1 Administration Guide」

您不能使用任何 Web 服務的端點 URL 建立負載平衡器配置檔案 (6236544、6275436)

說明

在使用包含可匯出 Web 服務 URL 之 EJB 模組的應用程式來設定負載平衡器配置時,此 Web 服務的環境根目錄不包含在所產生的 loadbalancer.xml 檔案中。

解決方案

  1. 編輯 loadbalancer.xml 檔案,按照以下所示增加缺少的 Web 模組:


    <web-module context-root="context-root-name"
    disable-timeout-in-minutes="30" enabled="true"/>
  2. 使用顯示為 EJB 的 Web 服務的環境根目錄名稱替代 context-root-name 值。

.asadmintruststore 檔案未在 Enterprise Server 文件中介紹 (6315957)

說明

在 Enterprise Server 文件中未說明 .asadmintruststore 檔案。如果伺服器管理員的 home 目錄中不存在此檔案,則升級在此伺服器上代管的某些應用程式時,可能會遇到嚴重錯誤。

解決方案

叢集實例由於連接 JMS 代理程式逾時而無法啟動 (6523663)

說明

Enterprise Server 叢集實例的預設 MQ 整合模式為 LOCAL。當 Enterprise Server 的安裝位置 (PATH) 很長 (顯示為「not short」) 時,imqbrokerscv.exe 便會在叢集實例啟動時當機。此問題屬於 imqbrokersvc 中的記憶體分配問題。

解決方案

叢集實例的 JMS 服務類型必須從預設的 LOCAL 變更為 REMOTE。在此配置中,所有實例都指回 DAS 代理程式。請依照以下說明在 REMOTE 模式中配置叢集。


備註 –

當使用 REMOTE 模式時,所有實例均使用一個代理程式 (DAS),因此在 Enterprise Server 叢集啟動時,不會建立任何代理程式叢集。如需詳細資訊,請參閱 http://www.glassfishwiki.org/gfwiki/attach/OnePagersOrFunctionalSpecs/as-mq-integration-gfv2.txt 單頁短文第 4.1 節第 iii 點的「自動叢集」。上述功能將無法使用!


Procedure使用指令行

開始之前

依據您的環境修改連接埠與密碼檔案。請注意,在以下說明中,叢集名稱為 racluster,DAS 管理連接埠為 5858,DAS JMS 連接埠為 7676

  1. 修改叢集配置,將 JMS 類型變更為 REMOTE


    as-install/bin/asadmin.bat set --port 5858 --user admin --passwordfile \
    as-install/bin/password_file racluster.jms-service.type=REMOTE
  2. 建立與 DAS JMS 主機對應的 JMS 主機。


    as-install/bin/asadmin.bat create-jms-host --port 5858 --user admin --passwordfile \
    as-install/bin/password_file --target racluster --mqhost localhost --mqport 7676 \
    --mquser admin --mqpassword admin dashost
  3. 將預設 JMS 主機設定為在上一步驟中建立的 DAS JMS 主機。


    as-install/bin/asadmin.bat set --port 5858 --user admin --passwordfile \
    as-install/bin/password_file racluster.jms-service.default-jms-host=dashost

Procedure使用管理 GUI

  1. 移至 [配置] -> [cluster-name-config] -> [Java 訊息服務] -> [JMS 主機]。

  2. 按一下 [新增] 以建立新的 JMS 主機,將其命名為 dashost

  3. 輸入與 DAS 的 JMS 服務對應的配置設定,預設設定如下所示︰

    • 主機名稱:localhost

    • 連接埠︰ 7676

    • 管理使用者︰ admin

    • 密碼︰ admin

    依據您 DAS JMS 服務的需要修改上述設定。

  4. 瀏覽回 [Java 訊息服務] 標籤,然後將 JMS 服務類型變更為 REMOTE (預設為 LOCAL)。

  5. 從 [default-jms-host] 下拉式清單中選擇 [dashost]。

  6. 儲存變更,然後啟動節點代理程式或叢集。

無法在 Netscape 8.1.3、Mozilla 1.7 和 Safari 2.0.4 等瀏覽器中顯示 jmaki 圖表 (6543014)

說明

當嘗試使用某些不支援的瀏覽器顯示 [記錄統計監視] 頁面中的圖表時,可能會丟出以下錯誤︰


Error loading jmaki.widgets.jmaki.charting.line.Widget : id=form1:jmaki_chart11
Script: http://easqelx5.red.iplanet.com:4848/resources/jmaki/charting/ \
line/component.js (line:5437).
Message: area.initialize is not a function

解決方案

使用支援的瀏覽器。請參閱瀏覽器,以取得 Enterprise Server v2.1.1 支援的瀏覽器清單。

預設連接埠在每個 AS 重大發行版本中都有所變更 (6566481)

說明

預設管理連接埠在過去的三個重大 Enterprise Server 發行版本中均不相同。具體的說,7.x、8.x 和 9.x 中的預設管理連接埠分別為︰

解決方案

這不是錯誤,但也是一個值得注意的問題。預設管理連接埠只是一個建議使用的連接埠。預期未來的 Enterprise Server 發行版本將保留預設的 4848 連接埠。

在 AIX 中使用自訂主密碼執行 create-domain 指令失敗 (6628170)

說明

在 AIX 作業系統上,嘗試使用自訂主密碼建立網域失敗,同時會顯示以下錯誤:


keytool error (likely untranslated): java.lang.NullPointerException
 Enter keystore password:  New keystore password:

Procedure解決方案:(AIX) 使用自訂主密碼建立網域


備註 –

在接下來的程序中,只會提供每個步驟所需的選項。如果您需要指令的其他選項,請在指令中指定這些選項。如需有關 Enterprise Server 指令的資訊,請參閱「Sun GlassFish Enterprise Server v2.1.1 Reference Manual」


  1. 建立包含以下程式碼的 shell 程序檔:

    #!/bin/sh
    changeKeystorePass() {
      keytool -storepasswd -keystore ${KEYSTORE} -storepass ${OLD} -new ${NEW}
    }
    changeTruststorePass() {
      keytool -storepasswd -keystore ${TRUSTSTORE} -storepass ${OLD} -new ${NEW}
    }
    changeKeyPass() {
      keytool -keypasswd -alias s1as -keystore ${KEYSTORE} -storepass ${NEW} -keypass ${OLD} -new ${NEW}
    }
    changeDomainPasswordEntry() {
      keytool -storepasswd -storetype JCEKS -keystore ${DOMAINPASSWORDS} -storepass ${OLD} -new ${NEW}
    }
    deleteMasterPasswordFile() {
      if [ -f ${DOMAIN_PATH}/master-password ] ; then
        echo Deleting ${DOMAIN_PATH}/master-password
        rm -f ${DOMAIN_PATH}/master-password
      fi
    }
    DOMAIN_PATH=$1
    OLD=$2
    NEW=$3
    if [ $# != 3 ] ; then
      echo Usage: $0 domain-path old-master-pass new-master-pass
      exit 1
    fi
    echo Processing ...
    if [ ! -f ${DOMAIN_PATH}/config/domain.xml ] ; then
      echo "Domain with folder ${DOMAIN_PATH} does not exist, create it first"
      exit 2
    else
      KEYSTORE=${DOMAIN_PATH}/config/keystore.jks
      TRUSTSTORE=${DOMAIN_PATH}/config/cacerts.jks
      DOMAINPASSWORDS=${DOMAIN_PATH}/config/domain-passwords
      changeKeystorePass
      changeTruststorePass
      changeKeyPass
      changeDomainPasswordEntry
      deleteMasterPasswordFile
    fi
  2. 建立網域,並指定預設主密碼。


    aadmin create-domain {--adminport aminportno|--portbase portbase} domain-name
    Please enter the admin user name>admin-user
    Please enter the admin password>admin-user-password
    Please enter the admin password again>admin-user-password
    Please enter the master password [Enter to accept the default]:>
    Please enter the master password again [Enter to accept the default]:>

    預設主密碼為 changeit

  3. 變更剛建立之網域的主密碼。

    若要變更主密碼,請執行您在「步驟 1」中所建立的程序檔。


    script-name domain-path old-password new-password
    
  4. 啟動您在「步驟 2」中所建立的網域。


    asadmin start-domain domain-name
    

    由於網域具有自訂主密碼,所以系統會提示您輸入主密碼。

  5. 若要回應提示,請鍵入新的主密碼。

  6. 對於已配置為支援叢集的網域,請建立並啟動節點代理程式。

    1. 為您在「步驟 2」中所建立的網域建立節點代理程式。


      asadmin create-node-agent --port portno --user admin-user
      
    2. 啟動您在「步驟 a」中所建立的節點代理程式。


      asadmin start-node-agent
      

      由於網域具有自訂主密碼,所以系統會提示您輸入主密碼。

    3. 若要回應提示,請鍵入新的主密碼。

另請參閱

以下 Enterprise Server 線上手冊:

AIX:0403-027 參數清單太長 (6625591)

說明

在 AIX 作業系統上,某些與作業系統相關的作業可能會失敗,同時顯示以下錯誤:


0403-027 The parameter list is too long

與作業系統相關的作業範例,包括部署應用程式或執行應用程式用戶端容器。

這個問題的起因通常是 CLASSPATH 環境變數中的檔案路徑太長。

解決方案

使用以下解決方案之一:

Procedure(AIX) 增加指令行的最大長度

ncargs 屬性決定指令行的最大長度,其中包括環境變數。在 AIX 作業系統上,ncargs 屬性的預設值為 4 個 4 KB 區段。為確保 Enterprise Server 指令不會超過指令行的最大長度,請將此值增加至 16 個 4 KB 區段。


備註 –

變更完 ncargs 屬性的值後,不須重新啟動或更新常駐程式。


  1. 判定 ncargs 屬性的值。


    lsattr -EH -l sys0 | grep ncargs
    
  2. 如果 ncargs 屬性的值小於 16 個 4 KB 區段,請將此值增加至 16。


    chdev -l sys0 -a ncargs=16