最終更新 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 ファイル) に記載されています。
多くの場合、エンタープライズ・サービスのインストールでは、 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)」を選択してください。
BPBeans は、拡張トランザクション処理パラダイムを使用した Java コンポーネントを構築するための新しいテクノロジーです。BPBeans の機能は以下のとおりです。
BPBeans はテクノロジー・プレビューです。つまり、デモンストレーションあるいは「proof of concept」プロジェクトに、このテクノロジーを使用することができます。実稼働環境では BPBeans は使用できません。 BPBeans は、SP4 以降を適用した Windows NT バージョン 4、または Windows 2000 上にインストールできます。このテクノロジー・プレビューには、アプリケーション・ツール、ランタイム、および資料が含まれています。これは米国英語でのみ使用可能です。
BPBeans テクノロジー・プレビューをインストールするには、エンタープライズ版サーバーの CD にあるコマンド Windows/BPB_tech_preview/BPBeansSetup.exe
を実行します。このコマンドで、アプリケーション・ツール、ランタイム、および資料がインストールされます。
以下のセクションでは、判明している障害とその回避策についての情報、およびエンタープライズ版 InfoCenter で扱われているトピックの補足情報を提供します。特に断りのない限り、障害および回避策は、サポートされているすべてのプラットフォームに適用されます。
インストール
ActiveX から EJB へのブリッジ
Business Rule Beans (BRBeans)
CORBA C++ SDK
拡張メッセージング・サポート
各国語関連
テキスト・フィールドを含むインストール・パネル上では、テキスト・フィールドまで到達すると、タブ・キーはフォーカスを次に移動しないため、次のパネルに進めなくなります。
回避策: ポインティング・デバイスを使用し、「次へ (Next)」ボタンをクリックします。
Solaris (X11 ディスプレイ) へのインストール中に、背景ウィンドウにフォーカスがあると、ユーザー選択をする小さいウィンドウが、背景にある大きなウィンドウの後ろに隠れてしまうことがあります。
回避策: Alt+Tab を押して小さいウィンドウを前面に移動してから、小さいウィンドウの上でクリックしてフォーカスします。
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 されます。
回避策: 以下のいずれかの手順を行います。
以下のエラーは、XJBInit() ストリング配列に無効なパラメーターがある場合に表示されます。
0x6002 "XJBJNI::Init() Failed to create
VM" when calling XJBInit().
C++ ロギングが使用可能になっている場合は、アクティビティー・ログに、その無効なパラメーターが表示されます。
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)」を参照してください。
ActiveX から EJB へのブリッジのサンプル・コードや資料では、WAS_HOME や Java ディレクトリーの中に、スラッシュと円記号が表示されています。Windows NT と Windows 2000 はスラッシュと円記号が混合していても対応できます。たとえば、パス C:/WebSphere/AppClient\java\jre
は正しいパスです。
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
DB2 以外のデータベースで BRBeans サンプル (ムービー・サンプルまたは簡単なサンプル) を使用する場合は、生成された Table.ddl ファイルを変更する必要があります。詳しくは、トピック「DB2 以外のデータベースで使用するための Table.ddl file の変更 」を参照してください。
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 は機能しません。
妥当性検査が指定されている場合、BRBeans の 配置中に 4 つの警告メッセージが表示されます。これらの警告は createRule に関してのものであり、 arg1 とその戻りの型がシリアライズ可能でなければならない、ということを示しています。これらの警告メッセージは無視しても差し支えありません。
BRBeans ルール管理アプリケーションのエクスポート機能を使用して作成した XML 文書からルールをインポートしている間に、XML パーサーが、その文書を構文解析できないこととルールがインポートされていないことを示すエラー・メッセージを戻します。これはルール管理アプリケーション (コマンド行ユーティリティーではない) を使用して作成された文書をインポートする際にのみ起こります。これは、ルール管理アプリケーションのエクスポート機能が、正しいヘッダー XML タグとトレーラー XML タグを、エクスポートされた XML 文書に追加しないために発生します。
回避策: 以下のいずれかを実行します。
<!DOCTYPE brb SYSTEM "brb.dtd"> <brb>
以下の行をファイルの最後に追加します。
</brb>
Merant SequeLink JDBC ドライバーに存在するバグのために、clearParameters メソッドが、準備済みのステートメントの再利用を許可するようパラメーターを適切に初期化しません。
回避策: Merant SequeLink ドライバーを何らかのデータベースと一緒に使用する際は、ステートメント・キャッシュ・サイズを 0 に設定することにより、BRBeans データ・ソース上で準備済みのステートメント・キャッシュを使用不可にします。アドバンスド版を使用する場合、ステートメント・キャッシュ・サイズのプロパティーは、データ・ソースの接続プールのプロパティーの 1 つです。アドバンスド・デベロッパー版を使用する場合、ステートメント・キャッシュ・サイズのプロパティーは、データ・ソースのプロパティーの 1 つです。
ヌル以外の値に設定された基本フォルダー属性を持つトリガー・ポイントから、従属ルールを含むルールを起動する際、NullPointerException が戻されます。
回避策: 従属ルールを含むルールを実行するトリガー・ポイントの基本フォルダー属性は設定しないでください。
Solaris プラットフォーム上で稼働する Netscape ブラウザーは、ユーザー・インターフェースからヘルプを要求した後は始動しません。
回避策: セッションに有効なロケールを設定し、アクセス・コントロールを使用不可にしてください。
有効なロケールを設定するには、以下のステップを実行してください。
locale -a
下記のコマンドを入力して、ロケールを設定します。ここで、locale には有効なロケールのいずれか 1 つを指定します。
export LANG=locale
たとえば、ロケールを米国英語に設定するには、次のように入力します。
export LANG=en_US
アクセス・コントロールを使用不可にするには、以下のコマンドを入力します。
xhost +
以下のステップを実行し、cds データベースを初期化します。このデータベースは、C++ サーバーと C++ ロケーション・サービス・デーモン somorbd によって使用されます。
cdspop
を実行し、cds データベースを初期化します。このデータベースは、SOMCBASE/data ディレクトリーにあります。
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 命名規則に従わない名前に変更します。以下は、sendBookTitle
と
receiveBookTitle
を使用した、1 つの例です。
... salesCount = 0; } public void sendBookTitle( String name ) { bookTitle = name; } public String receiveBookTitle() ...
エンタープライズ版 InfoCenter の CORBA サポート資料には、 valuetype ライブラリーは、常用の Java プリミティブ・データ型の C++ valuetype インプリメンテーションを含んでいると明記されています。これは正しくありません。
valuetype ライブラリーは、Integer、Short、Long のような java.lang パッケージの多くのプリミティブ・クラス へのサポートを提供します。これらは short、long、integer のような Java プリミティブ型 と同じではありません。InfoCenter で提供されている C++ valuetype ライブラリーのインプリメントされたメソッドのリストには、提供されるさまざまな java.lang クラス が正確に明記されています。ただし、IDL 型から CORBA 型へのマッピングのリストは無視してください。このリストは valuetype ライブラリーとは関係ありません。
java::lang::Throwable
の printStackTrace(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++ クライアント・プログラムではローカル出力ストリームとして使用できない抽象クラスです。
Byte_init メソッド create__()
は valuetype ライブラリーに存在しません。
CORBA サポート資料にあるこのメソッドについての記述は無視してください。
InfoCenter の「ユーザー独自の C++ valuetype の作成」では、以下のコマンドの訂正に注意してください。
ステップ 1 では、コマンドは以下のようになります。
rmic -idl java.util.Hashtable
ステップ 2 では、コマンドは以下のようになります。
idlc ....java/util/Hashtable.idl
拡張メッセージング・サポートを使用するには、最新レベルの MQSeries supportPac MA88 (Java 用 MQSeries クラス、および Java メッセージ・サービス用 MQSeries クラス) を www.ibm.com/software/ts/mqseries/txppacs/ma88.html からダウンロードし、インストールする必要があります。
日付が 2001 年 8 月 29 日以降の、バージョン 1.1.3 をインストールしてください。
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 を参照してください。
アドバンスド・デベロッパー版 (AEd) は、永続的なネーム・スペースを提供しないため、拡張メッセージング・サポートを AEd と一緒に使用するように構成するには、 2 次ネーミング・プロバイダーを使用する必要があります。
回避策: 以下のステップを実行し、ファイル・システム・プロバイダーを 2 次ネーミング・プロバイダーとして構成します。
注意: ファイル・システム・ネーミング・プロバイダーは、システム・プロパティー "file.separator" を区切り文字として使用します。Windows プラットフォームでは、通常 jms/mq/Destination となる名前が jms\mq\Destination となります。単一円記号は、2 つの円記号 (\\) でエスケープする必要があります。
JMSAdmin.config
ファイルを編集します。C:\temp\JNDI-Directory
ディレクトリーを作成します。
JMSAdmin.bat
を実行し、通常と同じように
ConnectionFactories および Queues/Topics を結合します。
http://localhost:9090/admin
)
MQSeriesInstallDir\java\lib\fscontext.jar;
MQSeriesInstallDir\java\lib\providerutil.jar;
MQFscontextProvider
com.sun.jndi.fscontext.RefFSContextFactory
file:/C:/temp/JNDI-Directory
接続ファクトリー:
名前: 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
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 アプリケーションは実行できません。
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 章を参照してください。
JMS オブジェクトを管理するために MQSeries supportPac MA88 と共に提供される JMSAdmin ツールでは、いくつかの構成パラメーターを指定する必要があります。 Initial Context factory プロパティーで現在サポートされている値は以下の 3 つです。
com.sun.jndi.ldap.LdapCtxFactory
(LDAP の場合)
com.sun.jndi.fscontext.RefFSContextFactory
(ファイル・システム・コンテキストの場合)
com.ibm.ejs.ns.jndi.CNInitialContextFactory
(WebSphere のネーミング・リポジトリーを処理する場合)
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 が上記のように別々の値で、一緒に動作することが可能です。
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
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
この問題は、アプリケーション・データベースと管理データベースの両方がリモートである場合には発生しません。
MQSeries Queue Manager の停止後に、アプリケーション・サーバーを停止しようとすると、サーバー・プロセスは java.exe にアクセス違反を throw します。これは、拡張メッセージング・サポートがサーバー上に構成されていて、 MQSeries JMS 宛先で listen している時に起こります。
回避策: 拡張メッセージング・サポートを使用する際は、MQSeries Queue Manager をアプリケーション・サーバーより先に停止しないでください。異常な障害によって 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
JMS Listener によって起動されたメッセージ Bean の javax.jms.ObjectMessage を受け取るとき、 JMS ObjectMessage での getObject() の呼び出しが、 ClassDefNotFound 例外を戻す場合があります。この例外は、ObjectMessage 内に含まれているアプリケーション・クラスが、エンタープライズ Bean クラス・ローダーでは見付かり、システム・クラスパスでは見付からないためロードできない場合に発生します。
回避策: オブジェクト・クラス定義を、ws.ext.dirs クラスパス内に置きます。これには、JAR ファイルを \WebSphere\AppServer\lib\ext
ディレクトリーにコピーします。
2 つの WebSphere application server を、同じ MQ JMS サブスクリプション・キューを使用して JMS トピックにサブスクライブされる JMS Listener と共に構成する場合、資料が消えたり、コンソールに次のエラー・メッセージが出ることがあります。
MQJMS1031: 内部エラーが起こりました
これは、MQSeries JMS Pub/Sub サポートが、異なるサブスクリプション・キューを使用するごとに、 1 つのサブスクライバー接続コンシューマーを必要とするためです。
回避策: TopicConnectionFactory を作成するために JMSAdmin を使用するときは、固有の BROKERCCSUBQ() サブスクリプション・キュー名を指定するか、あるいは、接頭部 (たとえば、BROKERCCSUBQ(SYSTEM.JMS.ND.CC.MySubQueues.*)
) を指定して複数キュー機能を使用します。
今回のリリースの国際化対応サービスでは
java.util.SimpleTimeZone
以外の Java 2 SDK TimeZone タイプをポートしていません。サポートされない TimeZone タイプは、サービス API メソッドに提供される際に、暗黙的にデフォルトの SimpleTimeZone にマップされます。このため、以下のような現象が発生します。
java.util.SimpleTimeZone
以外のタイプの引き数は、含まれている処理のデフォルト java.util.SimpleTimeZone
にマップされます。
java.util.SimpleTimeZone
になります。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 中国語 (繁体字)
DOS ウィンドウでコマンドを実行する際に、出力メッセージ内の一部の文字が正常に表示されません。
回避策: DOS コマンドを出力ファイルにリダイレクトし、Windows のエディターを使用して、その出力ファイルを表示します。