IBM WebSphere Application Server
エンタープライズ版 バージョン 4.1
リリース情報

最終更新 2002 年 1 月 11 日

この資料は定期的に更新されます。最新バージョンについては、www.ibm.com/software/webservers/appserv/infocenter.html にある、WebSphere Application Server InfoCenter のページを参照してください。

このリリース情報は、エンタープライズ・サービスのみを対象としています。 エンタープライズ・サービスの説明については、エンタープライズ版 InfoCenter のトピック「エンタープライズ・サービスとは何か? (What are enterprise services?)」を参照してください。

以下の製品については、それぞれの製品のリリース情報をご使用いただけます。

この資料の内容

前提条件
エンタープライズ・サービスのインストール
ビジネス・プロセス Beans (BPBeans) テクノロジー・プレビュー
障害および回避策

前提条件およびサポートされているソフトウェア

以下の Web サイト は、WebSphere Application Server に必要となる、またはそれとの併用がサポートされているソフトウェア製品をリストしています。

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

注意: エンタープライズ・サービスの今回のリリースでは、 CICS Universal Clients および CICS Transaction Gateway をサポートしていません。

エンタープライズ・サービスのインストール

インストールについての詳細な説明は、「Enterprise Services Installation Guide」(pdf ファイル) に記載されています。

バージョン 4.1 エンタープライズ・サービスにはアドバンスド版バージョン 4.0.2 が必要

多くの場合、エンタープライズ・サービスのインストールでは、 CORBA C++ クライアントの場合を除き、 J2EE ベースを提供するために、最初にアドバンスド版のサーバーまたはクライアントをインストールする必要があります。バージョン 4.1 エンタープライズ・サービスをインストールするには、ご使用のアドバンスド版のベースがバージョン 4.0.2 レベルである必要があります。このレベルは、バージョン 4.0 (または 4.0.1) に修正パック 2 を適用したものと同等です。アドバンスド版バージョン 4.0 はエンタープライズ版の出荷物に含まれています。修正パック 2 は、以下の Web ページからダウンロードできます。

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

アンインストールによってアドバンスド版とエンタープライズ・サービスの両方が除去される

WebSphere Application Server のアンインストールを行うと、アドバンスト版とエンタープライズ・サービスの両方が、システムから除去されます。エンタープライズ・サービスのみを個別にアンインストールするプログラムはありません。エンタープライズ・サービスをインストールした後でアドバンスド版修正パック 2 をアンインストールする (または「バックアウト」する) 方法はない点に注意してください。

サンプルのインストール

アドバンスド版のインストールとは異なり、エンタープライズ・サービス用のサンプル・ギャラリーは「標準 (Typical)」インストール中にはインストールされません。エンタープライズ・サービス用のサンプルをインストールするためには、「カスタム (Custom)」インストール・オプションを選択し、次に、オプションのリストから「サンプル (Samples)」を選択してください。

ビジネス・プロセス Beans (BPBeans) テクノロジー・プレビュー

BPBeans は、拡張トランザクション処理パラダイムを使用した Java コンポーネントを構築するための新しいテクノロジーです。BPBeans の機能は以下のとおりです。

BPBeans はテクノロジー・プレビューです。つまり、デモンストレーションあるいは「proof of concept」プロジェクトに、このテクノロジーを使用することができます。実稼働環境では BPBeans は使用できません。 BPBeans は、SP4 以降を適用した Windows NT バージョン 4、または Windows 2000 上にインストールできます。このテクノロジー・プレビューには、アプリケーション・ツール、ランタイム、および資料が含まれています。これは米国英語でのみ使用可能です。

BPBeans のインストール

BPBeans テクノロジー・プレビューをインストールするには、エンタープライズ版サーバーの CD にあるコマンド Windows/BPB_tech_preview/BPBeansSetup.exe を実行します。このコマンドで、アプリケーション・ツール、ランタイム、および資料がインストールされます。

障害および回避策

以下のセクションでは、判明している障害とその回避策についての情報、およびエンタープライズ版 InfoCenter で扱われているトピックの補足情報を提供します。特に断りのない限り、障害および回避策は、サポートされているすべてのプラットフォームに適用されます。

インストール
ActiveX から EJB へのブリッジ
Business Rule Beans (BRBeans)
CORBA C++ SDK
拡張メッセージング・サポート
各国語関連

インストール

障害 106140: インストール中のタブ・キーの不具合 (HP-UX/Linux/Solaris)

テキスト・フィールドを含むインストール・パネル上では、テキスト・フィールドまで到達すると、タブ・キーはフォーカスを次に移動しないため、次のパネルに進めなくなります。

回避策: ポインティング・デバイスを使用し、「次へ (Next)」ボタンをクリックします。

障害 108598: ユーザー選択ウィンドウが背景ウィンドウの後ろに隠れる (Solaris)

Solaris (X11 ディスプレイ) へのインストール中に、背景ウィンドウにフォーカスがあると、ユーザー選択をする小さいウィンドウが、背景にある大きなウィンドウの後ろに隠れてしまうことがあります。

回避策: Alt+Tab を押して小さいウィンドウを前面に移動してから、小さいウィンドウの上でクリックしてフォーカスします。

ActiveX から EJB へのブリッジ

障害 112685.RN: Visual Basic で CallByName() を使用するとエラー "440 Automation Error" をキャッチする

Visual Basic の CallByName() 関数は、 Java メソッド呼び出しを保証できない場合 (たとえば、Visual Basic が myJavaObject.create を myJavaObject.Create に変更した場合) に、 ActiveX で EJB ブリッジに対して使用されます。 Microsoft Knowledge の記事 Q194418 (http://support.microsoft.com/support/kb/articles/Q194/4/18.ASP) には、次のように記載されています。

「ActiveX サーバーのプロシージャーでエラーが発生し、そのプロシージャーがクライアントから CallByName() 関数で呼び出された場合は、発生したエラーのオリジナルのエラー番号とは関係なく、クライアントは常にエラー 440 を受け取ります。」

通常は、エラーの説明に Java スタック・トレースが組み込まれ、エラー 0x6003 として throw される Java 例外がすべて、エラーの説明に "Automation Error" という語が組み込まれた、エラー 440 として throw されます。

回避策: 以下のいずれかの手順を行います。

  1. Microsoft Knowledge Base の記事 Q202057 (http://support.microsoft.com/support/kb/articles/Q202/0/57.asp) にある置換ツール Microsoft DispInvoker を使用する。
  2. Java メソッドを名前変更するか、または Java 代理メソッド を作成して、ターゲットの Java メソッドを呼び出す。 Visual Basic キーワードではない名前を選択することによって、大文字小文字はほぼ確実に保持されます。

障害 111006.RN: 無効な XJBInit() パラメーター (Windows)

以下のエラーは、XJBInit() ストリング配列に無効なパラメーターがある場合に表示されます。

0x6002 "XJBJNI::Init() Failed to create VM" when calling XJBInit().

C++ ロギングが使用可能になっている場合は、アクティビティー・ログに、その無効なパラメーターが表示されます。

障害 111009.RN: ロギングとトレースを使用可能にする方法 (Windows)

ActiveX から EJB へのブリッジは、C++ と Java の、2 つのロギングおよびトレース・フォーマットを提供します。

C++ アクティビティー・ログ
C++ アクティビティー・ログは、JNI エラー、Java コンソールのエラー・メッセージ、および XJB 初期設定メッセージを表示します。このログは、XJBInit() エラーや、Java 環境からは発生しないまれな例外を判別するうえで非常に役立ちます。

C++ アクティビティー・ログを使用可能にするには、CORBA C++ SDK クライアントをインストールする必要があります。これをインストールすると、ActiveX から EJB へのブリッジは SDK の存在を検出し、自動的にロギングを使用可能にします。ログ設定の変更方法の詳細については、エンタープライズ版 InfoCenter の「CORBA サポート (Corba support)」> 「C++ CORBA サーバーの開発 (Developing a C++ CORBA Server)」> 「ランタイム・プロパティーの指定 (Specifying Runtime properties)」のトピックを参照してください。

デフォルトでは、ログは WAS_HOME \Enterprise\service ディレクトリーに作成されます。Active Server Pages などのサービス・プログラムの場合は、ログは C:\WINNT\SYSTEM32\service ディレクトリーに作成されます。デフォルトのログ・ディレクトリーは、環境変数  SOMCBASE  を使用してオーバーライドできます。この環境変数は、WAS_HOME \Enterprise\bin ディレクトリーにある、launchClientXJB.bat setupCmdLineXJB.bat によって設定されます。

たとえば、プロパティー・ファイルを活動化するためには、環境変数 SOMCBASE を以下のように設定します (Active Server Pages のシステム環境変数を使用しなければなりません)。

set SOMCBASE= C:\WebSphere\AppClient\Enterprise

アプリケーションを再始動すると、activitycpp.log というログ・ファイルが C:\WebSphere\AppClient\Enterprise\service ディレクトリーに作成されます。ログを表示するには、コマンド・ウィンドウを開き、ディレクトリーを 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 行目: dispGetIDsOfNames() が、FindClass メソッドを探す内部クラス (no. -102) で呼び出されました。これは DISPID (ディスパッチ ID) 60 を戻しました。
2 行目: dispInvoke() が、引き数シグニチャー "Ljava.lang.String;" を持つ、DISPID 60 に関連付けられたメソッドを起動するために、同じ内部クラス内部クラス (no. -102) 上で呼び出されました。 ("Ljava.lang.String;" は、java.lang.String を示す Java 内部の表示方法。これは javap.exe が出力する形式です。) メンバーは検出され、メンバーの定義がログに表示されました。
3 行目: FindClass() メソッドが完了し、java.lang.Integer のクラス ID -103 を戻しました。
4 行目: dispInvoke: 結果として生じるクラス java.lang.Integer を戻します。
5 行目: toHexString メソッドが dispGetIDsOfNames で検出され、DISPID 115 を戻しました。
6 行目: dispInvoke は引き数シグニチャー "S" を伴う DISPID 115 のメンバーを検出できませんでした。("S" は "short" を示す Java 内部の表示方法です。)

引き数シグニチャー (または記述子) は以下のように定義されます。

BaseType 文字 解釈
B byte 符号付きバイト
C char ユニコード文字
D double 倍精度浮動小数点値
F float 単精度浮動小数点値
I int 整数
J long 長整数
L<classname>; reference クラス <classname> のインスタンス
S short 符号付き short
Z boolean true または false
[ reference 1 つの配列次元

詳細については、Sun VM 仕様書 http://java.sun.com/docs/books/vmspec/2nd-edition/html/VMSpecTOC.doc.html の 4.3.2 章の「フィールド記述子 (Field Descriptors)」を参照してください。

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

Active Server Pages などのサービス・プログラムの実行中にこれらのメッセージを表示するには、Java の System.out OutputStream オブジェクトを以下のオブジェクトにオーバーライドします。
FileOutputStream

たとえば、VBScript で以下を行います。

'Redirect system.out to a file
' Assume that oXJB is an initialized XJB.JClassFactory object
Dim clsSystem
Dim oOS
Dim oPS
Dim oArgs
' Get the System class
Set clsSystem = oXJB.FindClass("java.lang.System")
' Create a FileOutputStream object
Set oOS = oXJB.NewInstance(oXJB.FindClass("java.io.FileOutputStream"), "c:\sysout.txt")
' Create a PrintStream object and assign to it our FileOutputStream
Set oArgs = oXJB.GetArgsContainer
oArgs.AddObject "java.io.OutputStream", oOS
Set oPS = oXJB.NewInstance(oXJB.FindClass("java.io.PrintStream"), oArgs)
' Set our System OutputStream to our file
clsSystem.setOut oPS

Business Rule Beans (BRBeans)

障害 110828.RN: DB2 以外のデータベースでの BRBeans サンプルの実行

DB2 以外のデータベースで BRBeans サンプル (ムービー・サンプルまたは簡単なサンプル) を使用する場合は、生成された Table.ddl ファイルを変更する必要があります。詳しくは、トピック「DB2 以外のデータベースで使用するための Table.ddl file の変更 」を参照してください。

障害 114312.RN: Informix バージョン 7.3.1 をサポートするための新しい BRBeans JAR ファイル

Informix バージョン 7.3.1 をサポートするために、新しい BRBeans JAR ファイル BRBeansInformix731.jar が <WAS_HOME>/Enterprise/BRBeans ディレクトリーに追加されました。 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 Beans は自身の状態をデータベースに保管することができないため、 BRBeans は機能しません。

障害 116462.RN: ejbdeploy 警告メッセージの無視

妥当性検査が指定されている場合、BRBeans の 配置中に 4 つの警告メッセージが表示されます。これらの警告は createRule に関してのものであり、 arg1 とその戻りの型がシリアライズ可能でなければならない、ということを示しています。これらの警告メッセージは無視しても差し支えありません。

障害 110956.RN: GUI ルール・エクスポーターが正しい XML 文書を作成しない

BRBeans ルール管理アプリケーションのエクスポート機能を使用して作成した XML 文書からルールをインポートしている間に、XML パーサーが、その文書を構文解析できないこととルールがインポートされていないことを示すエラー・メッセージを戻します。これはルール管理アプリケーション (コマンド行ユーティリティーではない) を使用して作成された文書をインポートする際にのみ起こります。これは、ルール管理アプリケーションのエクスポート機能が、正しいヘッダー XML タグとトレーラー XML タグを、エクスポートされた XML 文書に追加しないために発生します。

回避策: 以下のいずれかを実行します。

障害 109743.1.RN: Merant SequeLink ドライバーのバグ

Merant SequeLink JDBC ドライバーに存在するバグのために、clearParameters メソッドが、準備済みのステートメントの再利用を許可するようパラメーターを適切に初期化しません。

回避策: Merant SequeLink ドライバーを何らかのデータベースと一緒に使用する際は、ステートメント・キャッシュ・サイズを 0 に設定することにより、BRBeans データ・ソース上で準備済みのステートメント・キャッシュを使用不可にします。アドバンスド版を使用する場合、ステートメント・キャッシュ・サイズのプロパティーは、データ・ソースの接続プールのプロパティーの 1 つです。アドバンスド・デベロッパー版を使用する場合、ステートメント・キャッシュ・サイズのプロパティーは、データ・ソースのプロパティーの 1 つです。

障害 111105.RN: トリガー・ポイント基本フォルダーと従属ルール

ヌル以外の値に設定された基本フォルダー属性を持つトリガー・ポイントから、従属ルールを含むルールを起動する際、NullPointerException が戻されます。

回避策: 従属ルールを含むルールを実行するトリガー・ポイントの基本フォルダー属性は設定しないでください。

障害 111371.RN: ヘルプを要求した後に Netscape が始動しない (Solaris)

Solaris プラットフォーム上で稼働する Netscape ブラウザーは、ユーザー・インターフェースからヘルプを要求した後は始動しません。

回避策: セッションに有効なロケールを設定し、アクセス・コントロールを使用不可にしてください。

有効なロケールを設定するには、以下のステップを実行してください。

  1. 下記のコマンドを入力して、ご使用のマシンでの有効なロケールのリストを表示します。

    locale -a

  2. 下記のコマンドを入力して、ロケールを設定します。ここで、locale には有効なロケールのいずれか 1 つを指定します。

    export LANG=locale

    たとえば、ロケールを米国英語に設定するには、次のように入力します。

    export LANG=en_US

アクセス・コントロールを使用不可にするには、以下のコマンドを入力します。

xhost +

CORBA C++ SDK

障害 110529.RN: C++ SDK サーバーのセットアップ

以下のステップを実行し、cds データベースを初期化します。このデータベースは、C++ サーバーと C++ ロケーション・サービス・デーモン somorbd によって使用されます。

  1. 環境変数 SOMCBASE が指定するパスの下に、data という名前のディレクトリーを作成します。
  2. orb ユーティリティー cdspop を実行し、cds データベースを初期化します。このデータベースは、SOMCBASE/data ディレクトリーにあります。

障害 111218.RN: RMIC が getter と setter の複製を生成する

getter と setter を含む Java クラスに対して、現行バージョンの RMIC を実行し、JavaBean 命名規則に従ってその getter と setter に名前を付けると、RMIC は getter と setter の複製を生成します。

回避策: Java クラスを変更し、getter と setter を名前変更します。

たとえば、以下の 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 のための getter メソッドと setter メソッドを含んでいます。この getter と setter の名前は、JavaBeans の命名規則 get<var> と set<var> に従います。これが、RMIC の問題を引き起こします。クラス変数が private として宣言された結果、 RMIC は各変数ごとに、パブリック宣言と属性宣言を持つ IDL を生成します。

public long a;
attribute long a;

IDLC が IDL からのコードの生成に使用される際、 1 つのクラス変数に対して、2 つの getter と 2 つの setter が作成され、1 つはパブリックとなり、もう 1 つは保護されて、コードはコンパイルされません。

回避策: Java クラスの getter と setter を、JavaBean 命名規則に従わない名前に変更します。以下は、sendBookTitlereceiveBookTitle を使用した、1 つの例です。

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

障害 110688.RN: Java プリミティブ・データ型をサポートする Valuetype ライブラリーについての記述は無視する必要がある

エンタープライズ版 InfoCenter の CORBA サポート資料には、 valuetype ライブラリーは、常用の Java プリミティブ・データ型の C++ valuetype インプリメンテーションを含んでいると明記されています。これは正しくありません。

valuetype ライブラリーは、Integer、Short、Long のような java.lang パッケージの多くのプリミティブ・クラス へのサポートを提供します。これらは short、long、integer のような Java プリミティブ と同じではありません。InfoCenter で提供されている C++ valuetype ライブラリーのインプリメントされたメソッドのリストには、提供されるさまざまな java.lang クラス が正確に明記されています。ただし、IDL 型から CORBA 型へのマッピングのリストは無視してください。このリストは valuetype ライブラリーとは関係ありません。

障害 110689.RN: Valuetype ライブラリーは stream および writer の valuetype をサポートしない

java::lang::ThrowableprintStackTrace(java.io.PrintStream) メソッドと printStackTrace(java.io.PrintWriter) メソッドは、 Java から C++ ランタイムへスタック・トレースを渡すことが困難なため、valuetype ライブラリーでサポートされません。

printStackTrace メソッドへの具体的な引き数のインプリメンテーション、 java.io.PrintStream および java.io.PrintWriter は提供されていません。 valuetype ライブラリーに含まれている stream valuetype および writer valuetype (つまり、OutputStream、FilterOutputStream、 PrintStream、Writer、および PrintWriter) は、 C++ クライアント・プログラムではローカル出力ストリームとして使用できない抽象クラスです。

障害 110895.RN: Byte_init create__() メソッドが valuetype ライブラリーに存在しない

Byte_init メソッド create__() は valuetype ライブラリーに存在しません。 CORBA サポート資料にあるこのメソッドについての記述は無視してください。

障害 111225.RN:「ユーザー独自の C++ valuetypes の作成」トピック内のコマンドの訂正

InfoCenter の「ユーザー独自の C++ valuetype の作成」では、以下のコマンドの訂正に注意してください。

ステップ 1 では、コマンドは以下のようになります。

rmic -idl java.util.Hashtable

ステップ 2 では、コマンドは以下のようになります。

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

拡張メッセージング・サポート

障害 111034.RN: MQSeries supportPac MA88 の最新レベルのダウンロード

拡張メッセージング・サポートを使用するには、最新レベルの MQSeries supportPac MA88 (Java 用 MQSeries クラス、および Java メッセージ・サービス用 MQSeries クラス) を www.ibm.com/software/ts/mqseries/txppacs/ma88.html からダウンロードし、インストールする必要があります。

日付が 2001 年 8 月 29 日以降の、バージョン 1.1.3 をインストールしてください。

障害 110963.RN: カスタム・サービス・クラスパスに MQSeries JAR ファイルを組み込む必要がある

InfoCenter の資料は、MQSeries の資料と同様に、MQSeries\java ディレクトリー構造から各 WebSphere ディレクトリーに、Jar ファイルとライブラリー・ファイルをコピーすることをお勧めしています。この構成は機能しますが、保守性の点からは推奨しません。 MQSeries へのアップグレードおよびパッチが、意図したとおりには有効になりません。これらの JAR ファイルを、拡張メッセージング・サポート・サービス用の Custom Service クラスパスに組み込む方法のほうが、より適切です。組み込む MQSeries Jar ファイルは、 com.ibm.mq.jar および com.ibm.mqjms.jar です。

アドバンスド・デベロッパー版 (AEd) を使用する場合は、さらに、必要なネーミング・プロバイダー JAR ファイルを Resource Provider クラスパスに指定する必要があります。詳しくは、障害 106821.RN を参照してください。

障害 106821.RN: AEd での拡張メッセージング・サポートの構成

アドバンスド・デベロッパー版 (AEd) は、永続的なネーム・スペースを提供しないため、拡張メッセージング・サポートを AEd と一緒に使用するように構成するには、 2 次ネーミング・プロバイダーを使用する必要があります。

回避策: 以下のステップを実行し、ファイル・システム・プロバイダーを 2 次ネーミング・プロバイダーとして構成します。

注意: ファイル・システム・ネーミング・プロバイダーは、システム・プロパティー "file.separator" を区切り文字として使用します。Windows プラットフォームでは、通常 jms/mq/Destination となる名前が jms\mq\Destination となります。単一円記号は、2 つの円記号 (\\) でエスケープする必要があります。

  1. JMSAdmin.config ファイルを編集します。
  2. プロバイダーを FSContext provider に変更し、 Provider URL を変更します。
  3. C:\temp\JNDI-Directory ディレクトリーを作成します。
  4. JMSAdmin.bat を実行し、通常と同じように ConnectionFactories および Queues/Topics を結合します。
  5. 以下のように、WebSphere ネーム・スペースからファイル・システムのネーム・スペースへの外部参照を作成します。
    1. Web ブラウザーで管理コンソールを開きます。(http://localhost:9090/admin)
    2. ツリーを「リソース (Resources)」>「JMS プロバイダー (JMS Providers)」と表示します。
    3. 新規 (New)」をクリックし、以下の値を指定します。
      • サーバー・クラス・パス:

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

      • 名前: MQFscontextProvider
      • コンテキスト・ファクトリー: com.sun.jndi.fscontext.RefFSContextFactory
      • プロバイダー URL: file:/C:/temp/JNDI-Directory
    4. OK」をクリックし、プロバイダーへの変更を保管します。
  6. 作成した JMS プロバイダーを展開し、ユーザーの宛先接続ファクトリーを追加します。これらは WebSphere ネーム・スペースからファイル・システムのネーム・スペースへ、外部参照を提供します。JMSAdmin コマンドへ指定した名前と同じ名前を使用します。以下に例を示します。

    接続ファクトリー:

    名前: 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)

MQSeries が Linux SuSE バージョン 7.2 上で稼働している時は、ユーザーが始動コマンド strmqbrk -m <Queue Manager> を実行した後も、メッセージ・ブローカーの初期化は完了しません。また、このコマンドは CTRL+C を押しても中断できません。コマンド dspmqbrk を使用してメッセージ・ブローカーの状況をチェックした場合、引き続き "MQSeries message broker for queue manager <Queue Manager> starting" となります。

この障害に対する回避策は存在しません。このため、現時点では、 Linux SuSE バージョン 7.2 上で Publish/Subscribe を使用する WebSphere アプリケーションは実行できません。

障害 115709: メッセージを送信またはパブリッシュする際にエラー MQJMS1086 が throw される (HP-UX)

HP-UX 上の WebSphere で提供される JVM は、 MQSeries Queue Managers が使用するエンコード方式をサポートしません。これにより、メッセージを Queue に送信またはパブリッシュしようとした際に、 JMS クラスは エラー・コード MQJMS1086 の JMSException と、リンクされている例外タイプ UnsupportedEncodingException を throw します。

回避策: Queue Manager が使用するエンコード方式を変更します。以下のコマンドを入力して、CCSID の値を 850 または 819 に変更してください。

runmqsc
alter qmgr CCSID(850)

詳しくは、MQSeries の資料「Using Java」の第 2 章を参照してください。

障害 111014.RN: JMSAdmin ツールでの InitialContextFactory の使用

JMS オブジェクトを管理するために MQSeries supportPac MA88 と共に提供される JMSAdmin ツールでは、いくつかの構成パラメーターを指定する必要があります。 Initial Context factory プロパティーで現在サポートされている値は以下の 3 つです。

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 オブジェクトは、 Initial Context factory が上記のように別々の値で、一緒に動作することが可能です。

障害 114590: Java ライブラリー・パスに mqjbnd02 が存在しない (AIX のみ)

LIBPATH 環境変数に MQSeries Java ライブラリーへのパスが含まれていない場合、次に示す例外が throw されます。

Exception:
no mqjbnd02 (libmqjbnd02.a or .so) in java.library.path
java.lang.UnsatisfiedLinkError: no mqjbnd02 (libmqjbnd02.a or .so) in java.library.path

回避策: 以下のパスを LIBPATH 環境変数に追加してください。

/mq_install_path/java/lib

障害 114907: MQSeries Queue Manager へ接続できない (AIX)

WebSphere Application Server から MQSeries を使用している場合、 Queue Manager が実行されていても、JMS QueueConnection または WMQ MQQueueManager の作成が失敗し、WMQ Reason Code 2059 が出される場合があります。これは、WebSphere が Queue Manager へのバインディング接続を使用しており、この接続に追加の構成が必要な場合があるためです。

回避策: MQSeries V5.2 を使用している場合は、追加のスタンザを mqs.ini に加えることができます。このスタンザは、MQSeries が接続時に使用する共用メモリーに作用します (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

Queue Manager は、変更内容を有効にするためにリサイクルする必要があります。値 "11" でもアプリケーションを正常に接続させることができない場合は、その他の値で試行してください。アプリケーション (WebSphere、DB2 など) に関係するコンポーネントが多いほど、 MQSeries が使用できる共用メモリーは少なくなります。

この問題に関する最新の情報については、以下の Web サイトを参照してください。

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

この問題は、アプリケーション・データベースと管理データベースの両方がリモートである場合には発生しません。

障害 106667.RN: MQSeries Queue Manager の停止後、アプリケーション・サーバーを停止できない

MQSeries Queue Manager の停止後に、アプリケーション・サーバーを停止しようとすると、サーバー・プロセスは java.exe にアクセス違反を throw します。これは、拡張メッセージング・サポートがサーバー上に構成されていて、 MQSeries JMS 宛先で listen している時に起こります。

回避策: 拡張メッセージング・サポートを使用する際は、MQSeries Queue Manager をアプリケーション・サーバーより先に停止しないでください。異常な障害によって Queue Manager が停止した場合は、管理コンソールでアプリケーション・サーバーを強制終了してください。

障害 116061.RN: MQSeries Queue Manager を再始動できない

MQSeries Queue Manager を停止して再始動しようとすると、以下のエラーとなります。

AMQ8041: 前に接続された処理が実行中のため、Queue Manager を再始動または削除できません

回避策: MQSeries および WebSphere Application Server を再始動します。

この問題の修正は、MQSeries バージョン 5.2 CSD 3 レベルでの提供が予定されています。以下に示すアドレスの MQSeries サポート・ページで、更新を参照してください。

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

障害 106907.RN: javax.jms.ObjectMessage を受け取るときの ClassDefNotFound 例外

JMS Listener によって起動されたメッセージ Bean の javax.jms.ObjectMessage を受け取るとき、 JMS ObjectMessage での getObject() の呼び出しが、 ClassDefNotFound 例外を戻す場合があります。この例外は、ObjectMessage 内に含まれているアプリケーション・クラスが、エンタープライズ Bean クラス・ローダーでは見付かり、システム・クラスパスでは見付からないためロードできない場合に発生します。

回避策: オブジェクト・クラス定義を、ws.ext.dirs クラスパス内に置きます。これには、JAR ファイルを \WebSphere\AppServer\lib\ext ディレクトリーにコピーします。

障害 109440.RN: マルチサーバー JMS Listener トピック・サブスクライバーの障害

2 つの WebSphere application server を、同じ MQ JMS サブスクリプション・キューを使用して JMS トピックにサブスクライブされる JMS Listener と共に構成する場合、資料が消えたり、コンソールに次のエラー・メッセージが出ることがあります。

MQJMS1031: 内部エラーが起こりました

これは、MQSeries JMS Pub/Sub サポートが、異なるサブスクリプション・キューを使用するごとに、 1 つのサブスクライバー接続コンシューマーを必要とするためです。

回避策: TopicConnectionFactory を作成するために JMSAdmin を使用するときは、固有の 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 のエディターを使用して、その出力ファイルを表示します。