IBM WebSphere Application Server
Enterprise Edition Version 4.1
版次注意事項

前次更新 01/11/2002

這份文件會定期更新。 如果需要最新的版本,請檢視在 www.ibm.com/software/webservers/appserv/infocenter.html 的 WebSphere Application Server InfoCenter 網頁。

這些版次注意事項只適用於企業服務。 如果需要企業服務的說明,請參閱 Enterprise Edition InfoCenter 所提供的什麼是企業服務?這個主題。

下列產品有個別的版次注意事項:

這份文件的內容

必備項目
安裝企業服務
商業程序 Bean (BPBeans) 技術預覽
問題和解決方案

必備項目和支援的軟體

下列網站會列出 WebSphere Application Server 所需要或支援使用的軟體產品。

www.ibm.com/software/webservers/appserv/doc/latest/prereq.html

請注意:這個版次的企業服務不支援 CICS Universal Client 和交易閘道。

安裝企業服務

您可以在 Enterprise Services Installation Guide (pdf) 中,找到完整的安裝指示。

第 4.1 版企業服務需要 Advanced Edition Version 4.0.2

企業服務的大部分安裝架構(除了 CORBA C++ 從屬站)都會要求您先安裝 Advanced Edition 伺服器或從屬站,以提供 J2EE 基本程式。 如果要安裝第 4.1 版企業服務,您的 Advanced Edition 基礎層次必須是第 4.0.2 版。 這個層次相當於第 4.0 版(或第 4.0.1 版)加上 FixPack 2。您的 Enterprise Edition 包裝盒裡已有 Advanced Edition Version 4.0。 您可以從下列網頁中下載 FixPack 2:

http://www.ibm.com/support/manager.wss?rs=180&rt=0&org=SW&doc=4001038

解除安裝會同時移除 Advanced Edition 和企業服務

當您執行 WebSphere Application Server 的解除安裝時,會從系統中移除 Advanced Edition 和企業服務。 企業服務沒有個別的解除安裝程式。 請注意,在安裝企業服務之後,就沒有任何方法可解除安裝(或取消)Advanced Edition FixPack 2。

安裝範例

企業服務的範例展示區和 Advanced Edition 安裝架構不同,在「一般」安裝作業期間不會安裝它。 如果要安裝企業服務的範例,請選取「自訂」安裝選項,再從選項清單中選取「範例」。

商業程序 Bean (BPBeans) 技術預覽

BPBeans 是一項新的技術,用來建置使用延伸交易處理參照範例的 Java 元件。 BPBeans 可以執行下列動作:

BPBeans 是一項技術預覽。這表示您可以利用這項技術來示範或提供專案的「概念證明」。 您不能在生產環境中使用 BPBeans。 您可以將 BPBeans 安裝在 Windows NT 第 4 版(含 SP4 或更新的版本)或 Windows 2000 中。 這項技術預覽包括應用程式工具、執行時期和文件。 它只有美式英文版。

安裝 BPBeans

如果要安裝 BPBeans 技術預覽,請執行 Enterprise Edition Server CD 中的 Windows/BPB_tech_preview/BPBeansSetup.exe 指令。 這個指令會安裝應用程式工具、執行時期和文件。

問題和解決方案

下列各節提供已知問題和解決方案的相關資訊,以及 Enterprise Edition InfoCenter 中的主題的補充資訊。 除非另有說明,否則,這些問題和解決方案適用於所有支援的平台。

安裝
ActiveX 至 EJB 橋接
商業規則 Bean (BRBeans)
CORBA C++ SDK
延伸傳訊支援
國家語言問題

安裝

問題 106140:在安裝期間,Tab 鍵失敗 (HP-UX/Linux/Solaris)

在含有文字欄位的安裝畫面中,在到達文字欄位之後,Tab 鍵無法繼續向前移動焦點,因而您會無法進入下一個畫面。

解決方案:請利用指標裝置按下一步按鈕。

問題 108598:使用者選項視窗消失在背景視窗之後 (Solaris)

在 Solaris 中安裝期間(X11 顯示畫面),當背景視窗取得焦點時,您用來選擇的小視窗可能會隱藏在較大的背景視窗後面。

解決方案:請按 Alt+Tab 鍵,將小視窗呼叫到前景中,再按一下小視窗,使它取得焦點。

ActiveX 至 EJB 橋接

問題 112685.RN 在 Visual Basic 中使用 CallByName() 時,捕捉到錯誤「440 自動化錯誤」

當 Java 方法呼叫案例無法獲得保證(如 Visual Basic 將 myJavaObject.create 改成 myJavaObject.Create)時,會在 ActiveX 至 EJB 橋接中使用 Visual Basic 中的 CallByName() 函數。 如 Microsoft Knowledge Base 的第 Q194418 篇文章所說明(網址:http://support.microsoft.com/support/kb/articles/Q194/4/18.ASP):

「當在 ActiveX 伺服器的程序中產生錯誤,而程序是從屬站利用 CallByName() 函數所呼叫的,這時不論原來產生的錯誤碼為何,從屬站永遠會得到錯誤 440。」

在正常情況下,會擲出成為 0x6003 錯誤且將 Java 堆疊追蹤內嵌在錯誤說明中的所有 Java 異常狀況,都會擲出成錯誤 440,且錯誤說明中會內嵌「自動化錯誤」等文字。

解決方案:請完成下列步驟之一:

  1. 利用 Microsoft Knowledge Base 的第 Q202057 篇文章所提供的置換專用 Microsoft DispInvoker 工具,網址如下:http://support.microsoft.com/support/kb/articles/Q202/0/57.asp
  2. 重新命名 Java 方法,或建立 Java 代理方法來呼叫目標的 Java 方法。 如果選取不是 Visual Basic 關鍵字的名稱,大小寫字體很可能會保留下來。

問題 111006.RN:無效的 XJBInit() 參數 (Windows)

如果 XJBInit() 字串陣列中有任何無效的參數,可能會出現下列錯誤:

0x6002 當呼叫 XJBInit() 時,"XJBJNI::Init() 無法建立 VM"。

如果您已啟用 C++ 日誌記載,活動日誌會顯示出無效的參數。

問題 111009.RN:如何啟用日誌記載和追蹤 (Windows)

ActiveX 至 EJB 橋接提供兩個日誌記載和追蹤格式:C++ 和 Java。

C++ 活動日誌
C++ 活動日誌會顯示 JNI 錯誤、Java 主控台錯誤訊息和 XJB 起始設定訊息。 這個日誌最適合用來判斷 XJBInit() 錯誤及任何不是來自 Java 環境的特殊異常狀況。

如果要啟用 C++ 活動日誌,您必須安裝 CORBA C++ SDK 從屬站。 安裝好之後,ActiveX 至 EJB 橋接會偵測到 SDK 的存在,且會自動啟用日誌記載。 如果需要如何修改日誌設定的詳細資料,請參閱 Enterprise Edition InfoCenter 中的「Corba 支援 > 開發 C++ CORBA 伺服器 > 指定執行時期內容」主題。

依預設,日誌是建立在 WAS_HOME\Enterprise\service 目錄中。 如果是「作用中伺服器頁面」這類服務程式,日誌是建立在 C:\WINNT\SYSTEM32\service 目錄中。 您可以利用 SOMCBASE 環境變數來置換預設日誌目錄,它是利用 WAS_HOME\Enterprise\bin 目錄中的 launchClientXJB.batsetupCmdLineXJB.bat 來設定的。

比方說,如果要啟動內容檔,請依照下列方式來設定 SOMCBASE 環境變數(您必須使用「作用中伺服器頁面」的系統環境變數):

set SOMCBASE= C:\WebSphere\AppClient\Enterprise

應用程式重新啟動之後,會在 C:\WebSphere\AppClient\Enterprise\service 目錄中建立名稱為 activitycpp.log 的日誌檔。 如果要檢視日誌,請開啟一個指令視窗,將目錄切換至 C:\WebSphere\AppClient\Enterprise\service,再輸入下列指令:

launchClientXJB showlogcpp activitycpp.log

如果在安裝好 C++ SDK 之後要停用日誌記載,請重新命名 WAS_HOME\Enterprise\bin 目錄中的 SOMRSBSM.DLL 檔。 請注意,重新命名這個 DLL 會使 C++ SDK 成為無法使用。

Java 追蹤日誌
Java 追蹤日誌會顯示可用來進行方法呼叫、類別查閱和引數強制等問題之除錯的資訊。 由於橋接的 Java 部分會鏡映 COM IDispatch 介面的功能,追蹤日誌中的資訊類似於 IDispatch 介面所預期提供的資訊。 如果要瞭解追蹤日誌,您必須有 IDispatch 的基本瞭解。

如果要啟用使用者日誌記載,請新增下列參數到 XJBInit()inputstringarray 中:

"-DtraceString=com.ibm.ws.client.xjb.*=event=enabled"
"-DtraceFile=C:\MyTrace.txt"

比方說,如果您有下列 Visual Basic 程式碼的問題:

Dim oInt as Object
Dim strHexValue as String
Set oInt = oXJB.FindClass("java.lang.Integer")
strHexValue = oInt.toHexString(24579)

失敗那一行所產生的追蹤會有類似下列內容:

[01.07.31 11:17:13:815 CDT] 6b2d2635 JDispatch  E dispGetIDsOfNames: Retrieving DISPID
          from Method or Field.
          ClassID:-102|ObjectID:0|Name:FindClass|Result DISPID:60
[01.07.31 11:17:13:875 CDT] 6b2d2635 JDispatch  E dispInvoke: Retrieving Member from DISPID
          and Arg Types.
          ClassID:-102|ObjectID:0|DISPID:60|Arg Sig:Ljava.lang.String;|Found Member:public
          static java.lang.Class com.ibm.ws.client.xjb.JClassFactory.FindClass(java.lang.String)
          throws java.lang.Exception
[01.07.31 11:17:13:946 CDT] 6b2d2635 JClassFactory E FindClass complete.
          ClassName:java.lang.Integer|ClassID:-103
[01.07.31 11:17:13:946 CDT] 6b2d2635 JDispatch  E dispInvoke: Method.invoke() Succeeded. Result:
          class java.lang.Integer
[01.07.31 11:17:13:956 CDT] 6b2d2635 JDispatch  E dispGetIDsOfNames: Retrieving DISPID
          from Method or Field.
          ClassID:-103|ObjectID:0|Name:toHexString|Result DISPID:115
[01.07.31 11:17:13:986 CDT] 6b2d2635 JDispatch  E dispInvoke: Retrieving Member from DISPID
          and Arg Types.
          ClassID:-103|ObjectID:0|DISPID:115|Arg Sig:S|Found Member:NOT FOUND

以下是上述追蹤的說明:

第 1 行: 呼叫內部類別(號碼 -102)的 dispGetIDsOfNames(),尋找 FindClass 方法。它會傳回 DISPID(分派 ID)60。
第 2 行: 呼叫相同內部類別(號碼 -102)的 dispInvoke() 方法,以 "Ljava.lang.String;" 這個引數簽章(java.lang.String 在 Java 內部的說法。 這是 javap.exe 所將輸出的格式)來嘗試和呼叫 DISPID 60 的相關方法。 找到成員,它的日誌會定義顯示在日誌中。
第 3 行: 完成 FindClass() 方法,傳回 java.lang.Integer 的 ClassID -103
第 4 行: dispInvoke:傳回結果類別 java.lang.Integer
第 5 行: 在 dispGetIDsOfNames 中找到 toHexString 方法,並傳回 DISPID 115。
第 6 行: 不過,dispInvoke 找不到引數簽章為 "S" 的 DISPID 115("S" 是 "short" 在 Java 內部的說法)。

引數簽章(或描述子)定義如下:

BaseType Character 類型 說明
B byte 含正負號位元組
C char Unicode 字元
D double 倍精準度浮點數值
F float 單精準度浮點數值
I int 整數
J long 長整數
L<classname>; reference <classname> 類別的實例
S short 含正負號短整數
Z boolean truefalse
[ reference 一個陣列維度

如果需要詳細資料,請參閱 Sun VM 規格:http://java.sun.com/docs/books/vmspec/2nd-edition/html/VMSpecTOC.doc.html 的第 4.3.2 章「欄位描述子」。

問題 111010.RN:兩個方向的路徑斜線 (Windows)

在 ActiveX 至 EJB 橋接的範例程式碼和文件中,WAS_HOME 和 Java 目錄都會同時顯示正斜線和反斜線。 Windows NT 和 Windows 2000 兩者都可以處理混合的斜線。 比方說,C:/WebSphere/AppClient\java\jre 路徑是正確的。

問題 111011.RN:如何檢視 Java System.out 訊息 (Windows)

ActiveX 至 EJB 橋接沒有主控台可用來檢視 Java System.out 訊息。 如果要在執行獨立式從屬站程式(如 Visual Basic)時檢視這些訊息,請將輸出重新導向到檔案中。 比方說,利用下列指令來啟動您的從屬站應用程式:

launchClientXJB.bat MyProgram.exe > output.txt

如果要在執行「作用中伺服器頁面」這類「服務」程式時檢視這些訊息,請將 Java 的 System.out OutputStream 物件置換為 FileOutputStream。 比方說,在 VBScript 中,您會執行下列動作:

'將 system.out 重新導向到檔案中
' 假設 oXJB 是起始設定的 XJB.JClassFactory 物件
Dim clsSystem
Dim oOS
Dim oPS
Dim oArgs
' 取得 System 類別
Set clsSystem = oXJB.FindClass("java.lang.System")
' 建立 FileOutputStream 物件
Set oOS = oXJB.NewInstance(oXJB.FindClass("java.io.FileOutputStream"), "c:\sysout.txt")
' 建立 PrintStream 物件,將我們的 FileOutputStream 指派給它
Set oArgs = oXJB.GetArgsContainer
oArgs.AddObject "java.io.OutputStream", oOS
Set oPS = oXJB.NewInstance(oXJB.FindClass("java.io.PrintStream"), oArgs)
' 將我們的 System OutputStream 設定給我們的檔案
clsSystem.setOut oPS

商業規則 Bean (BRBeans)

問題 110828.RN:以非 DB2 資料庫執行 BRBeans 範例

如果在 BRBeans 範例(Movie 範例或 Simple 範例)中使用 DB2 以外的資料庫,您必須修改產生的 Table.ddl 檔。 如果需要詳細資料,請參閱修改 Table.ddl 檔以使用非 DB2 資料庫主題。

問題 114312.RN:支援 Informix 第 7.3.1 版的新 BRBeans Jar 檔

已在 <WAS_HOME>/Enterprise/BRBeans 目錄中新增名稱為 BRBeansInformix731.jar 的新 BRBeans Jar 檔來支援 Informix 第 7.3.1 版。 如果您要在存取 Informix 7.3.1 資料庫的伺服器中執行 BRBeans,您必須使用這個 Jar 檔。 如果是 Informix 第 9.2.1 版,請繼續使用 BRBeansInformix.jar 檔。

如果要在 Informix 第 7.3.1 版中執行 BRBeans,您也必須找到 Informix 錯誤號碼 153465 的修正套件。 這是 Informix JDBC 驅動程式的修正套件,適用於驅動程式的第 2.21 版及更新的版本。 如果沒有這個修正套件,BRBeans Enterprise Bean 就無法將它們的狀態儲存在資料庫中,BRBeans 也會無法運作。

問題 116462.RN:請忽略 ejbdeploy 警告訊息

如果指定驗證的話,在 BRBeans 部署期間,會出現四則警告訊息。 這些都是 createRule 的警告,指出 arg1 和傳回類型都必須是可序列化的。 您可以忽略這些警告訊息。

問題 110956.RN:GUI 規則匯出器不會產生正確的 XML 文件

當從 XML 文件中匯入您利用 BRBeans 規則管理應用程式的匯出功能來建立的規則時,XML 剖析器會傳回指出無法剖析文件及沒有匯入規則的錯誤訊息。 只有在匯入利用規則管理應用程式(不是指令行公用程式)建立的文件時,才會發生這個情況。 發生這個情況,是因為規則管理應用程式的匯出功能不會在匯出的 XML 文件中加上正確的標題和標尾 XML 標示。

解決方案:請執行下列動作之一:

問題 109743.1.RN:Merant SequeLink 驅動程式中的錯誤

由於 Merant SequeLink JDBC 驅動程式中的錯誤,clearParameters 方法不會適當重設參數來容許重複使用備妥陳述式。

解決方案:當在任何資料庫中使用 Merant SequeLink 驅動程式時,請將陳述式快取記憶體大小設為 0,以停用 BRBeans 資料來源的備妥陳述式快取。 如果使用 Advanced Edition,陳述式快取記憶體大小內容就是資料來源的「連線儲存池」內容之一。 如果使用 Advanced Developer Edition,陳述式快取記憶體大小內容就是資料來源內容之一。

問題 111105.RN:觸發點基本資料夾和相依規則

當您觸發有相依規則的規則時,會從「基本資料夾」屬性設為非空值的觸發點傳回 NullPointerException。

解決方案:任何發動規則有相依規則的觸發點都不要設定基本資料夾屬性。

問題 111371.RN:在要求說明之後,不會啟動 Netscape (Solaris)

從在 Solaris 平台中執行的使用者介面要求說明之後,不會啟動 Netscape 瀏覽器。

解決方案:請設定階段作業的有效語言環境,並停用存取控制。

如果要設定有效的語言環境,請完成下列步驟:

  1. 輸入下列指令來顯示機器的有效語言環境清單:

    locale -a

  2. 如果要設定語言環境,請輸入下列指令,其中的 locale 是有效的語言環境之一:

    export LANG=locale

    比方說,如果要將語言環境設為美國英文,請輸入:

    export LANG=en_US

如果要停用存取控制,請輸入下列指令:

xhost +

CORBA C++ SDK

問題 110529.RN:C++ SDK 伺服器設定

請完成下列步驟來起始設定 C++ 伺服器和 C++ 位置服務常駐程式 sommorbd 所用的 cds 資料庫:

  1. 在 SOMCBASE 環境變數所指定的路徑之下,建立名稱為 data 的目錄。
  2. 執行 orb 公用程式 cdspop 來起始設定在 SOMCBASE/data 目錄中的 cds 資料庫。

問題 111218.RN:RMIC 會產生重複的取得元和設定元

如果您針對含有取得元和設定元的 Java 類別來執行 RMIC 的現行版本, 且這些取得元和設定元都是根據 JavaBean 命名慣例來命名的, RMIC 就會產生重複的取得元和設定元。

解決方案:請修改 Java 類別來重新命名取得元和設定元。

比方說,看看下面 Java 類別 "Book" 中的程式碼片段:

public class Book implements Serializable
{
private String BookTitle = null;
private double price = 0.0;
private int salesCount;
public Book()
{
salesCount = 0;
}
public void setBookTitle( String name )
{
bookTitle = name;
}
public String getBookTitle()
{
return( bookTitle );
}
...

上述程式碼含有 BookTitle 的取得元和設定元。 取得元和設定元遵循 JavaBeans 命名慣例:get<var> 和 set<var>。 這會造成 RMIC 的問題。 類別變數宣告為 private 的情況會使 RMIC 產生每個變數都有 public 和 attribute 宣告的 IDL,例如:

public long a;
attribute long a;

當利用 IDLC 從 IDL 產生程式碼時,會為每個類別變數建立兩個取得元和兩個設定元,一個是公開的,另一個是受保護的,且不會編譯程式碼。

解決方案:請將 Java 類別中的取得元和設定元重新命名成不符合 JavaBean 命名慣例的名稱。 以下是使用 sendBookTitlereceiveBookTitle 的一種可能:

...
salesCount = 0;
}
public void sendBookTitle( String name )
{
bookTitle = name;
}
public String receiveBookTitle()
...

問題 110688.RN:請忽略支援 Java 初始資料類型之值類型庫的參照

Enterprise Edition InfoCenter 中的 CORBA 支援文件指出,在值類型庫中,含有常用的 Java 初始資料類型的 C++ 值類型實作。 這是不正確的。

值類型庫支援 java.lang 套件中的許多初始類別,如 Integer、Short 和 Long。 這些並不等於 Java 初始類型,如 short、long 和 integer 等。 InfoCenter 中提供的 C++ 值類型庫實作的方法清單正確說明了所提供的各種 java.lang 類別; 不過,您應該忽略從 IDL 類型至 CORBA 類型的對映清單,因為這份清單與值類型庫無關。

問題 110689.RN:值類型庫不支援串流和寫出器值類型

在值類型庫中不支援 java::lang::ThrowableprintStackTrace(java.io.PrintStream)printStackTrace(java.io.PrintWriter) 方法,是因為將堆疊追蹤從 Java 傳遞至 C++ 執行時期有困難。

沒有提供 printStackTrace 方法 java.io.PrintStreamjava.io.PrintWriter 的具體引數實作。 值類型庫所包含的串流和寫出器值類型(也就是 OutputStream、FilterOutputStream、PrintStream、Writer 和 PrintWriter)是無法作為 C++ 從屬站程式中之本端輸出串流的抽象類別。

問題 110895.RN:值類型庫中沒有 Byte_init create__() 方法

值類型庫中沒有 Byte_init 方法 create__()。 請忽略 CORBA 支援文件中任何引述這個方法之處。

問題 111225.RN:「建立自己的 C++ 值類型」主題中之指令的更正

在 InfoCenter 標題為「建立自己的 C++ 值類型」的文章中,請注意下列指令的更正:

在第 1 步驟中,指令應該是:

rmic -idl java.util.Hashtable

在第 2 步驟中,指令應該是:

idlc .... java/util/Hashtable.idl

延伸傳訊支援

問題 111034.RN:下載最新的 MQSeries supportPac MA88 層次

如果要使用延伸傳訊支援,請下載和安裝 MQSeries SupportPac MA88 的最新層次:MQSeries Classes for Java 和 MQSeries Classes for Java 訊息服務: www.ibm.com/software/ts/mqseries/txppacs/ma88.html

請安裝第 1.1.3 版,日期為 08/29/01 或以後。

問題 110963.RN:請將 MQSeries Jar 檔併入「自訂服務」類別路徑中

InfoCenter 文件及 MQSeries 文件都建議您將 MQSeries\java 目錄結構中的 Jar 檔和程式庫檔複製到各 WebSphere 目錄中。 當這項配置能夠運作時,為了可用性,不建議您這麼做。 MQSeries 的升級版和修正套件不會如預期般生效。 比較適當的方法是將這些 Jar 檔併入延伸傳訊支援服務的「自訂服務」類別路徑。 要併入的 MQSeries Jar 檔有 com.ibm.mq.jarcom.ibm.mqjms.jar

如果您是使用 Advanced Developer Edition (AEd),您也必須在「資源提供者」類別路徑中指定任何所需的命名提供者 Jar 檔。 請參閱問題 106821.RN,以取得詳細資訊。

問題 106821.RN:使用 AEd 配置延伸傳訊支援

由於 Advanced Edition for Developers (AEd) 不提供持續性名稱空間,因此,當使用 AEd 配置延伸傳訊支援時,您必須使用第二個命名提供者。

解決方案:請完成下列步驟,將檔案系統提供者配置成第二個命名提供者:

附註:檔案系統命名提供者會使用系統內容 "file.separator" 作為分隔字元。 在 Windows 平台中,請注意,通常連結成 jms/mq/Destination 的名稱會連結成 jms\mq\Destination 名稱。 您可能需要用兩個反斜線 (\\) 來跳出單一反斜線 (\)。

  1. 編輯 JMSAdmin.config 檔。
  2. 將提供者改成 FSContext 提供者,再變更提供者 URL
  3. 建立目錄 C:\temp\JNDI-Directory
  4. 執行 JMSAdmin.bat,依照正常方式來連結 ConnectionFactories 和 Queues/Topics。
  5. 依照下列方式,在 WebSphere 名稱空間中建立一個檔案系統名稱空間的外部參照:
    1. 在 Web 瀏覽器中開啟管理主控台 (http://localhost:9090/admin)。
    2. 瀏覽樹狀結構,找出資源 > JMS 提供者
    3. 按一下新建,再指定下列值:
      • 伺服器類別路徑:

        MQSeriesInstallDir\java\lib\fscontext.jar;
        MQSeriesInstallDir\java\lib\providerutil.jar;

      • 名稱:MQFscontextProvider
      • 環境定義 Factory:com.sun.jndi.fscontext.RefFSContextFactory
      • 提供者 URL:file:/C:/temp/JNDI-Directory
    4. 按一下確定來儲存提供者的變更。
  6. 展開您建立的 JMS 提供者,新增您的目的地連線 Factory。 這些會提供從 WebSphere 名稱空間到檔案系統名稱空間的參照。 請利用您指定給 JMSAdmin 指令的相同名稱。 例如:

    連線 Factory

    名稱:ConnectionFactory
    JNDI 名稱:Sample/JMS/ConnectionFactory
    JNDI 外部名稱 (Windows):Sample\JMS\ConnectionFactory
    JNDI 外部名稱 (Unix):Sample/JMS/ConnectionFactory

    目的地

    名稱:Q1
    JNDI 名稱:Sample/JMS/Q1
    JNDI 外部名稱 (Windows):Sample\JMS\Q1
    JNDI 外部名稱 (Unix):Sample/JMS/Q1

  7. 儲存您的配置。
  8. 請重新啟動應用程式伺服器。

問題 116467.RN:訊息分配管理程式不會起始設定(Linux SuSE 第 7.2 版)

當您在 Linux SuSE 第 7.2 版中執行 MQSeries 時,在您發出啟動指令:strmqbrk -m <Queue Manager> 之後,無法完成訊息分配管理程式起始設定,您不能按下 CTRL+C 來中斷指令。如果您利用 dspmqbrk 指令來檢查訊分配管理程式的狀態,結果仍是「佇列管理程式 <Queue Manager> 的 MQSeries 訊息分配管理程式正在啟動中。」

沒有解決方案,因此,您目前無法執行在 Linux SuSE 第 7.2 版中使用發佈/訂閱的 WebSphere 應用程式。

問題 115709:當傳送或發佈訊息時,會擲出錯誤 MQJMS1086 (HP-UX)

HP-UX 中的 WebSphere 所提供的 JVM 不支援 MQSeries 佇列管理程式所用的編碼。 當您試圖傳送或發佈訊息到佇列時,這會使 JMS 類別擲出錯誤碼為 MQJMS1086 的 JMSException 及 UnsupportedEncodingException 類型的鏈結異常狀況。

解決方案:請變更佇列管理程式所用的編碼。 請輸入下列指令來變更 CCSID 值 850 或 819:

runmqsc
alter qmgr CCSID(850)

如果需要詳細資訊,請參閱 MQSeries 書籍「使用 Java」一書的第 2 章。

問題 111014.RN:請以 JMSAdmin 工具使用 InitialContextFactory

MQSeries SupportPac MA88 所提供用來管理 JMS 物件的 JMSAdmin 工具需要您指定若干配置參數。 起始環境定義 Factory 內容目前有三個支援的值:

WebSphere Application Server 已更換了 com.ibm.ejs.ns.jndi.CNInitialContextFactory,因此,您應該改用 com.ibm.websphere.naming.WsnInitialContextFactory。 如果要讓 JMSAdmin 使用 WebSphere 命名儲存庫,它仍需要使用 com.ibm.ejs.ns.jndi.CNInitialContextFactory。 WebSphere Application Server 和所管理的 JMS 物件可用這些不同的起始環境定義 Factory 值來共同運作。

問題 114590:Java 程式庫路徑中沒有 mqjbnd02 (限 AIX)

如果 LIBPATH 環境變數沒有包含 MQSeries Java 程式庫的路徑,就會擲出下列異常狀況:

異常狀況:
java.library.path 中沒有 mqjbnd02(libmqjbnd02.a 或 .so)
java.lang.UnsatisfiedLinkError:java.library.path 中沒有 mqjbnd02(libmqjbnd02.a 或 .so)

解決方案:請新增下列路徑到 LIBPATH 環境變數中:

/mq_install_path/java/lib

問題 114907:無法連接至 MQSeries 佇列管理程式 (AIX)

當從 Websphere Application Server 內使用 MQSeries 時,建立 JMS QueueConnection 或 WMQ MQQueueManager 可能會失敗,WMQ 原因碼為 2059,即使佇列管理程式正在執行中也是如此。 這是因為 WebSphere 使用的佇列管理程式連結連線可能需要一些額外配置。

解決方案:如果您是使用 MQSeries 第 5.2 版,另外還有一個段落可新增到會影響 MQSeries 在連接時所用的共用記憶體部分的 mqs.ini 中(mqs.ini 檔通常可在 /var/mqm 目錄中找到)。 參數是 "IPCCBaseAddress",它是就個別佇列管理程式為基礎來設定的。 依預設,這個參數的值會設為 "8",但建議採用的值是 "11"(這個參數所能使用的值有 "4"、"5"、"8"、"9"、"10"、"11" 或 "12")。

以下是 mqs.ini 檔中改變了的 QueueManager 段落的範例:

QueueManager:
Name=MQJavaTest
Prefix=/var/mqm
IPCCBaseAddress=11

佇列管理程式必須重新循環,變更才會生效。 如果 "11" 不容許應用程式正常連接,請嘗試其他值。 應用程式(WebSphere、DB2...等)中涉及越多元件,MQSeries 所能使用的共用記憶體越少。

請造訪下列網站,以取得這個問題最新的相關資訊:

http://www.ibm.com/software/ts/mqseries/support/summary/javasupp.html

當應用程式資料庫和管理資料庫都在遠端時,就不會發生這個問題。

問題 106667.RN:在 MQSeries 佇列管理程式停止之後,無法停止應用程式伺服器

當在 MQSeries 佇列管理程式停止作業之後,在試圖停止應用程式伺服器時,伺服器程序會擲出 java.exe 中的存取違規。 當在伺服器中配置了延伸傳訊支援,且利用它在 MQSeries JMS 目的地進行接聽,就會發生這個情況。

解決方案:當使用延伸傳訊支援時,在停止應用程式伺服器之前,請勿停止 MQSeries 佇列管理程式。 如果異常失敗造成佇列管理程式停止作業,請在管理主控台中執行應用程式伺服器的強制停止。

問題 116061.RN:無法重新啟動 MQSeries 佇列管理程式

試圖停止和重新啟動 MQSeries 佇列管理程式會發生下列錯誤:

AMQ8041:無法重新啟動或刪除佇列管理程式,因為先前所連接的程序仍在執行中。

解決方案:請重新啟動 MQSeries 和 WebSphere Application Server。

MQSeries 第 5.2 版 CSD 3 層次已排定要提供這個問題的修正套件。 請造訪 MQSeries 支援頁面,以取得更新項目:

http://www.ibm.com/software/ts/mqseries

問題 106907.RN:當收到 javax.jms.ObjectMessage 時,會發生 ClassDefNotFound 異常狀況

當在 JMS 接聽器所驅動的訊息 Bean 中接收 javax.jms.ObjectMessage 時,JMS ObjectMessage 的 getObject() 呼叫有時會傳回 ClassDefNotFound 異常狀況。 當 ObjectMessage 內所包含的應用程式類別是在 Enterprise Bean 類別載入器中找到,而不是在系統類別路徑中找到,因而無法載入時,就會發生這個異常狀況。

解決方案:請將 jar 檔複製到 \WebSphere\AppServer\lib\ext 目錄中,以將物件類別定義放在 ws.ext.dirs 類別路徑內。

問題 109440.RN:多伺服器的 JMS 接聽器主題訂戶作業失敗

如果您以利用相同 MQ JMS 訂閱佇列來訂閱 JMS 主題的 JMS 接聽器配置兩個 WebSphere Application Server,您可能會間歇地遺失發佈資訊或在主控台中出現下列錯誤訊息:

MQJMS1031:發生內部錯誤

發生這個情況,是因為 MQSeries JMS 發佈/訂閱支援需要每個 JVM 訂戶連線使用者都要使用不同的訂閱佇列。

解決方案:當您使用 JMSAdmin 來建立 TopicConnectionFactory 時,請指定唯一的 BROKERCCSUBQ() 訂閱佇列名稱, 或指定字首來使用多重佇列機能;例如,BROKERCCSUBQ(SYSTEM.JMS.ND.CC.MySubQueues.*)

國際化服務

問題 110993.RN:處理不支援的 TimeZone 類型

在這個版次中,國際化服務不支援 java.util.SimpleTimeZone 以外的 Java 2 SDK TimeZone 類型。 當提供不受支援的 TimeZone 類型給服務 API 方法時,這個類型會無聲地對映至預設的 SimpleTimeZone。 這會有下列結果:

國家語言問題

問題 114777:無法開啟非英文的 Readme(限 HP-UX)

在 HP-UX 第 11.11 版中,只有 Netscape 的英文語言環境版本是預設應用程式。因此,當您安裝好非英文的 WebSphere Application Server 之後,會無法開啟 README 檔。

解決方案:請從指令提示中,輸入下列指令來開啟 README:

netscape [WAS_HOME]/Enterprise/readme/xx_XX/readme.htm

其中 xx_XX 是下列項目之一:

de_DE 德文
en_US 英文
es_ES 西班牙文
fr_FR 法文
it_IT 義大利文
ja_JP 日文
ko_KR 韓文
pt_BR 巴西葡萄牙文
zh_CN 簡體中文
zh_TW 繁體中文

問題 111350.RN:DOS 視窗中的字元毀損 (Windows)

當在 DOS 視窗中執行指令時,輸出訊息中會有毀損的字元。

解決方案:請將 DOS 指令重新導向至輸出檔,再利用 Windows 撰寫編輯器來檢視輸出檔。