問題記述: IBMR Rational Developer for System z のエンタープライズ・サービス・ツールであるコンパイル済み XML 変換 (CICSR、IMS、およびバッチ) の各ランタイムが、ボトムアップとミート・イン・ミドルのシナリオにおいて、戻りコード 280 から 303 で強制終了する可能性がある。コンバーターによって返される言語環境プログラムR メッセージが最新の状態でないか、またはテキスト「例外メッセージの取得に失敗しました」がシステム・ログまたはコンソールに表示されます。
解決策: Rational Developer for System z の COBOL コンパイル済み XML 変換では、エラー検査が拡張されて、更新されたメッセージ番号 IGZ0280S から IGZ0298S および新規メッセージ番号 IGZ0299S から IGZ0303S が出される可能性があります。APAR PK65058 用の PTF を適用します。
Web Services for CICS シナリオには、追加のマッピング・レベルおよびランタイム・レベル (2.2) のサポートがあります。このレベルで生成された成果物を使用するには、APAR PK69738 を適用した CICS TS 3.2 が必要です。
トピック『PL/I から派生した XML タイプ』で『表 6 PL/I から XML タイプへ』は誤りで、無視してください。
問題: 必要なコピーブックが解決しないと、「エンタープライズ・サービス・ツール」ウィザードはハングする。これが起きるのは、COBOL インポーター設定ページで、エラー・メッセージの言語が en_US 以外の何かに設定されている場合です。
解決策: 以下のように選択することによって、「エラー・メッセージの言語」を変更します。
「ウィンドウ」->「設定」->「インポーター」->「COBOL」->「その他の COBOL オプション (More COBOL options)」タブ
問題: ミート・イン・ミドル開発シナリオでは、「ソース・ファイルのインポート」ウィザードで、「ファイル・システム...」からインポートすることはサポートされていない。
予備手段: 必要なファイルすべてを一般プロジェクトへコピーし、「ソース・ファイルのインポート」ウィザードで、「ワークスペース...」を選択することによって、それらのファイルをインポートします。
問題: ボトムアップ開発シナリオでは、生成された古いバージョンの WSDL/XSD を、新しく生成されたコンバーターで使用すると、実行時にエラーの原因となる可能性がある。例えば、出される可能性のあるランタイム・エラー・メッセージとして、「IGZ0282S プログラム「PGMNAME」で XML からデータ構造への変換を完了できませんでした。これは、XML 文書のエレメント名がコンバーターでによって認識されなかったためです。(IGZ0282S XML to data structure conversion could not complete in program "PGMNAME" because no element names in the XML document were recognized by the converter.)」があります。
解決策: コンバーターで生成された WSDL/XSD は、必ず各コンバーターと結合されている必要があります。
COBOL タイプ | COBOLUsageValue+ COBOL ModelType プロパティー | 対応する XSD タイプ |
---|---|---|
packed-decimal, comp-3 -> packedDecimal | packedDecimal | 小数点が指定された場合: <xsd:simpleType> <xsd:restriction base="xsd:decimal"> <xsd:minInclusive value="xx.x"/> <xsd:maxInclusive value="yy.y"/> </xsd:restriction> </xsd:simpleType> または、小数点が指定されなかった場合: <xsd:simpleType> <xsd:restriction base="xsd:short"> <xsd:minInclusive value="xxx"/> <xsd:maxInclusive value="yyy"/> </xsd:restriction> </xsd:simpleType> |
問題: エンタープライズ・サービス・ツール・プロジェクトで、スキーマをインクルード、インポート、または再定義する WSDL ファイル (元はリモート・ロケーションからインポートされたもの) を対象に、「新規サービス実装の作成 (トップダウン)」シナリオ、または「既存サービス・インターフェースのマップ (ミート・イン・ミドル)」シナリオを実行すると、エラーで失敗する。
予備手段: 必要なファイルすべてをワークステーション、またはワークスペース内の一般プロジェクトへコピーし、「RMB」->「インポート」->「ソース・ファイル」を使用して、ローカルの WSDL ファイルを「Web Services for CICS プロジェクト」へインポートした後、トップダウン・シナリオを試行します。
ワークステーション COBOL コンパイラーは、コンパイル時と実行時の両方で XML PARSE ステートメントをサポートしますが、単一サービス・ウィザードで生成される COBOL プログラムは、z/OS 環境でのみ稼働するように設計されています。
問題: XML to 言語構造コンバーターが次の例外メッセージを戻す。
IGZ0291S プログラム program-name で XML からデータ構造への変換を完了できませんでした。 これは、XML エレメントのネストの最大深さを超えたためです。 文字コンテンツ character-content が含まれているエレメント element-name でエラーが発生しました。 (IGZ0291S XML to data structure conversion could not complete in program program-name because the maximum XML element nesting depth was exceeded. The error occurred at element element-name with character content character-content.)
予備手段: XML to 言語構造コンバーターは、特定の XML エレメントのネストの深さを処理できませんでした。ネスト・レベルにはオリジナル COBOL 構造を上回る許容度がありますが、その許容度を超えることがあります。スキーマにないエレメントが要求 XML 文書に存在する場合、そのエレメントのネスト・レベルが深すぎると、このような状態が生じます。
問題: 名前のないグループおよびその基本項目は、親項目が基本項目と一緒にフィルタリングされてしまうため、データ構造選択ページまたは マッピング・セッション・エディターでの選択に使用できない。
予備手段: COBOL データ構造を編集して、変換の必要なグループおよび/または基本データ項目に名前を付けてください。 COBOL グループに名前を付けると、FILLER 以外の基本項目が選択可能になります。
問題: ドライバー・プログラムやコンバーター・プログラムで生成された PROCESS ステートメントの OPT コンパイラー・オプションが JCL の コンパイル・オプションに指定されていると、TEST オプションと競合する。
予備手段: 生成された XML コンバーター・プログラムをデバッグしたい場合は、「Web サービス」ウィザードの「生成オプション (Generation options) 」ページで「コンパイラー関連設定の指定 (Specify compiler-related preferences )」グループ内の「最適化」チェック・ボックスを選択解除します。
問題: COBOL データ項目が ODO 項目か、COBOL データ項目に ODO 項目が含まれている場合は、マッピング一致アクションを行う前に その ODO オブジェクトを手動でマップしない限り、互換性のある XML 構造との「マッピング一致」アクションを実行できない。
予備手段: マッピング一致アクションを実行する前に、マッピング規則に従って ODO オブジェクトを手動でマップしてください。 (XML 文書では、COBOL ODO オブジェクト項目にマップされたエレメントは、対応する COBOL ODO サブジェクトにマップされた XML エレメントの前に出現する必要があります。)
問題: WindowsR 上の Eclipse でフォルダー名およびファイル名を入力するときに大/小文字が区別される。
予備手段: フォルダー名およびファイル名を矛盾がないように入力してください。例えば、ワークベンチでフォルダー名が MyFolder と表示されている場合、フォルダー名を必要とする入力フィールドには必ず MyFolder と入力してください。例えば myfolder と入力すると、ツールはこの入力に対して無効または存在しないフォルダー名としてフラグを立てます。
問題: XML コンバーターまたはドライバーへのポインターとして非ヌルの無効なポインターが指定されると、無限ループが発生する。
予備手段: XML コンバーターは、呼び出し元により渡されたヌル・ポインターを検出し、報告しようとします。 非ヌルの無効のポインターの場合、XML コンバーターはたぶんこれに出会うと、保護例外 (SOC4) を戻します。
エンタープライズ・サービス・ツールの単一サービス・プロジェクトで DBCS データ項目をサポートするには、要求 XML 文書と応答 XML 文書を UTF-16 または UTF-8 でエンコードする必要があります。 Web サービスのターゲット・ランタイムが CICS 用 SOAP の場合、UTF-8 または UTF-16 の XML を XML Converter Driver と交換するためのフィーチャーを構成します。Web Services for CICS ランタイムは、デフォルトとして UTF-8 の XML をクライアントと交換しますが、XML Converter Driver は、CICS と XML を UTF-16 で交換します。UNICODE が必要な場合は、XML コンバーターには現時点で UTF-16 が最も有効が選択です。いずれのランタイムの場合も、UNICODE と DBCS ホスト・コード・ページ間の変換をサポートする変換イメージを使用して、UNICODE のための z/OS サポートを構成する必要があります。
問題: 「生成」->「XML ファイル...」メニュー項目が XSD スキーマの制限を順守しない。 エンタープライズ・サービス・ツールで作成された XSD に対して XML ファイル生成 (Generate XML File) アクションを使用すると、 無効な XML ファイルの生成につながる可能性があります。
予備手段: 生成された XML ファイルを編集し、タグの内容が XSD スキーマで指定されている制限に準拠するようにします。
問題: オプションの XML ファイル (Container.xml、PlatformProperties.xml、ServicesSpecification.xml) に無効な項目があると、 バッチ・プロセッサーの実行中に NULL ポインター例外が発生することがある。
予備手段: オプションの XML ファイルの項目を正しい形式に修正します。
COBOL 入力ファイルのロケーションは、ドライブ指定で始まる絶対パス (例えば、C:\mypath\test) として 「importDirectory 」属性に指定できる。
例えば、以下のディレクトリーを持つプロジェクトがあると仮定する。
C:\workspace\account_details |
-- メイン・プロジェクト |
C:\workspace\account_details\cobol_src |
-- インポートする COBOL ソース・ファイルがあるサブディレクトリー |
C:\workspace\account_details\xsebatch_config |
-- xsebatch 用の XML 構成ファイルがあるサブディレクトリー |
ここで、cobol_src ディレクトリー内の DFH0ACTD.cbl という名前の COBOL ソース・ファイルで以下の InputOutputMessage エレメントが使用できるようになる。
<InputOutputMessage importFile="../cobol_src/DFH0ACTD.cbl"></InputOutputMessage>
または、xsebatch の呼び出し元と同じディレクトリー内に COBOL ソース・ファイルを配置することもできる。
COBOL データ名が大/小文字を区別しない場合でも、XML ファイルの指定には大/小文字の区別を正確に指定する必要がある。 例えば、COBOL データ・ソースではデータ名が MY-Data である場合、サービスが指定する XML では、nativeTypeName 属性を nativeTypeid="MY-Data" と設定する必要がある。大/小文字を区別を正確に指定しないと、データ名が見つからず、使用可能な最初のレベル 01 のデータ名がデフォルトで使用される。
表意定数 LOW-VALUE(S) および HIGH-VALUE(S) を、単一サービス・ウィザードで使用される COBOL データ構造内に指定することができる。ただし、これら表意定数のセマンティックの意味は、単一サービス・ウィザードでは無視され、これらの「エンタープライズ・サービス・ツール」単一サービス・ウィザードが生成する成果物には反映されない。
問題: エンタープライズ・サービス・ツールの単一サービス・プロジェクト名で GB18030 コード・ページの文字を使用すると、「エンタープライズ・サービス・ツール」単一サービス・ウィザードをプロジェクト内のファイルに対して実行するときにエラーが発生する。
予備手段: エンタープライズ・サービス・ツールの単一サービス・プロジェクトに名前を付けるときは、GB18030 文字を使用しないでください。
問題: 「エンタープライズ・サービス・ツール」単一サービス・ウィザードを実行した後、一時ファイル (例えば、~DF45B.tmp) がエンタープライズ・サービス・ツールの単一サービス・プロジェクト・フォルダーに残ることがある。
予備手段: 「エンタープライズ・サービス・ツール」単一サービス・ウィザードの実行後に、同じような名前のファイルがエンタープライズ・サービス・ツールの単一サービス・プロジェクトにある場合、そうしたファイルは削除してかまいません。
問題: 「エンタープライズ・サービス・ツール」単一サービス・ウィザードの実行時に、一時プロジェクト (例えば、ESTProject または ESTProjectN。N は 1、2、3....) が、WSDL 生成中に EST プロジェクト・エクスプローラー・ビューに一時的に表示されることがある。このプロジェクトを表示すると、一時的に EST プロジェクト・エクスプローラーの他のプロジェクトのフォルダーが移動する場合がある。 エラーがある場合、またはワークベンチが WSDL 生成中に閉じられた場合に、これらの一時プロジェクトが EST プロジェクト・エクスプローラーに残ることがある。
予備手段: 「エンタープライズ・サービス・ツール」単一サービス・ウィザードの実行後に、同じような名前のプロジェクトがワークスペースにある場合、これらのプロジェクトは削除してかまいません。
問題: 古いマッピング・ファイルのマイグレーション・プロセスの場合、参照されたマッピングされる側のソース・ファイルはマッピングする側のファイルと同じフォルダーになければならない。この要件が満たされないと、 マッピング・マイグレーション・ツールは以下のエラー・メッセージを出して失敗します。「Resource ......[filename].mapping is not local」
予備手段: 参照されたソース・ファイルを、マイグレーション対象のマッピング・ファイルと同じフォルダーに移動します。
問題: Web サービス・ウィザード・ページで ターゲット・フォルダー (コンバーター・フォルダー、WSDL フォルダー、または WSBIND フォルダー) の リモート・ロケーションを参照するとき、接続名が長い (例: ctfmvs08.rtp.raleigh.ibm.com) と 時間が長く掛かったり、ワークベンチがロックされることがある。
予備手段: 接続名を ctfmvs08 のような短い名前にします。
問題: 解釈変換とコンパイル済み XML 変換のデフォルト世代により生成された XML スキーマ内の Web サービス・メッセージ・ルート要素名が一致しない。 コンパイル済み XML 変換の世代デフォルトを、解釈変換ケースに一致するように変更する必要があります。これについては、以下の「予備手段」セクションに説明があります。これによってユーザーは、後に必要であれば、WSDL ファイルをリパブリッシュすることなく、また Web サービスのクライアントにおいてコード変更を行うことなく、変換タイプを解釈変換からコンパイル済み変換へ変更することが可能となります。
予備手段: コンパイル済み XML 変換の成果物を生成する場合、ウィザードを使用して、解釈 XML 変換に一致するように ルート要素名を変更することができます。 この新しい「ルート要素名」というオプションは、次の場所にあります。
「生成オプション」ページ->「WSDL および XSD」オプション・タブ->「要求および応答 XML スキーマ・プロパティーを指定」グループ内
例えば、COBOL グループ (A-B-C) は、メッセージ・ルート要素名が「a_b_c」という解釈変換成果物を生成します。 デフォルトのコンパイル済み変換成果物のルート要素名は「ABC」となります。 先に述べたように、ウィザードで「ABC」を「a_b_c」に変更して、解釈変換用に生成した WSDL に一致させることができます。
問題: z/OS では、区分データ・セット・メンバーの名前に DBCS 文字を使用できない。
予備手段: XML コンバーター・ファイルの名前を指定するときに、DBCS 文字を除外します。また、ウィザードから提示されたデフォルト・ファイル名に、DBCS 文字が含まれていないことを確認してください。