このトピックでは、マイグレーションするときに、各メッセージ定義ファイルで何をする必要があるのかについて説明します。
mqsimigratemsgsets コマンドを使用する時には、各メッセージ定義ファイルに関する以下の情報に注意する必要があります。
バージョン 2.1 からのエクスポートと WebSphere Business Integration Message Broker バージョン 5.0 の インポートの間で、手動でメッセージ・セット・ファイルを変更することを強くお勧めします。 そうしないなら結果は保証されません。 これは、レポートの中に次の警告およびエラーがあるとわかります (BIP0141、BIP0142 から BIP0157、BIP0163)
「simpleUnorderedSet」のタイプ構成は、 WebSphere Business Integration Message Broker バージョン 5.0 のモデルからドロップされる点に注意してください。 タイプ内容が「クローズ (closed)」の場合、 それは BIP0191 警告メッセージを伴って「すべて (all)」に置換されます。 それ以外の場合は、BIP0192 警告メッセージを伴って「unorderedSet」に置換されます。
「空 (empty)」のタイプ構成は、BIP0193 警告メッセージを伴って空の「シーケンス (sequence)」に置換されます。
バージョン 2.1 では、接頭部付きの ID は、エレメントが実際にはローカルであることを示すためのものでした。 しかしながら、接頭部付きの ID を持つエレメントが実際に複数の複合タイプで使用され、グローバルとなることは可能です。 その場合、グローバル・エレメントは前述の規則に従って作成されます。
これは接頭部付きの ID の誤用であるため、BIP0195 警告メッセージも出され、 グローバル・エレメントが重複して作成されることがあります。 例えば、A^X および B^X があり、両方が 複数回使用される場合、 名前 X を持つ 2 つのグローバル・エレメントが作成されます。
すべての参照されない値制約は、BIP0158、BIP0159、または BIP0160 警告メッセージを伴って廃棄されます。
.mrp ファイルが現れるたびに、 新規メッセージ・セット・プロジェクトが作成されます。 その名前は、バージョン 2.1 でのメッセージ・セット名およびレベルから派生する名前となります。 ユーティリティーはこれを行う時に、「1」以外のすべてのレベル値に対して、 メッセージ・セット名に接尾部を追加します。 このプロセスにより、1 対 1 のマッピングを復元し、 名前が付いた唯一のメッセージ・セットをブローカーが見つけることが可能になります。
例えば、名前「SWIFT」およびレベル「1」を持つバージョン 2.1 のメッセージ・セットは、 バージョン 5.0 にメッセージ・セット名「SWIFT」でマイグレーションするのに対して、 名前「SWIFT」およびレベル「2」を持つバージョン 2.1 のメッセージ・セットは、 バージョン 5.0 にメッセージ・セット名「SWIFT_2」でマイグレーションします。
-part パラメーターがなければ、 メッセージ・セットと同じ名前を持つメッセージ・セット内、 およびデフォルトの (notarget) ネームスペースに、 単一のメッセージ定義 .mxsd ファイルが作成されます。
バージョン 2.1 では、すべてのエレメントおよび複合タイプがグローバルでした。バージョン 5.0 では、エレメントおよび複合タイプは、グローバルまたはローカルとなります。バージョン 2.1 のメッセージ・セットをマイグレーションするとき、 バージョン 2.1 でグローバルであった多くのエレメントおよび複合タイプが、上記の規則にしたがって、 バージョン 5.0 のローカル・エレメントおよび複合タイプに変換されていることにお気付きになるでしょう。
これは、複合タイプの妥当な内容が、「タイプ内容 (Type composition)」のプロパティー規則に準じて、メッセージ・セット内で任意のオブジェクトになり得ることを意味しています。 一般的にこの場合、複合タイプは明示的な内容でモデル化されていません。
これによって、mqsimigratemsgsets コマンドは、 あるエレメントがグローバルではなくローカルになると誤って推論します。「オープン定義 (Open defined)」を使用し、 マイグレーション後に実行時妥当性検査エラー BIP5372E が生じることが見つかった場合、 以前にそれが生じていなかったとき、-g オプションを指定して、mqsimigratemsgsets コマンドを再実行してください。
複合タイプ内の組み込み単純タイプは、特別の処理が必要です。 なぜなら、スキーマ・モデルはこの構成を処理できないからです。 組み込み単純タイプは推奨されていないため、 包含する複合タイプの「混合 (mixed)」属性を活用することにより、 組み込み単純タイプの使用を置き換えるよう、強くお勧めします。
組み込み単純タイプは主に、 子エレメント間に散在するデータ値を含んでいる複合 XML エレメントをモデル化するために導入されました。 そうしたデータ値のそれぞれは、組み込み単純タイプにより明示的にモデル化されました。 組み込み単純タイプは、値のプレースホルダーとして働くと共に、その単純タイプも提供しました。
XML スキーマにおいて、厳密に同等のものはありません。 最も近い働きをするものは、xsd:complexType の「混合」属性の使用です。 しかしながら、これは、テキストが子エレメントの前と間 (または、間のみ) に現れるということしか指定しません。 これは、テキストの場所またはデータ・タイプについては何も指定しません。
この意味構造を保つために、組み込み単純タイプ (Embedded Simple Type) と呼ばれるスキーマの拡張が導入されました。 これは単に、適切な単純タイプの、名前が付いていないローカル・エレメントです。 そのタイプ自体は、特殊名 (ComIbmMrm_Anon で始まる) が付いた、 真の基礎となる単純タイプの制限されたものです。
この状況では BIP0161 警告メッセージが出され、特別の処理が必要です。 なぜなら、スキーマ・モデルはこの「複合」構成を処理できないからです。 複合エレメントは推奨されていないため、複合タイプを、 1 で説明されているグローバル xsd:complexType を参照する通常のエレメントに置き換えて使用し、 「混合」属性を活用するよう、強くお勧めします。
そうした複合タイプは主に、 子エレメントだけでなくデータ値も含んでいる複合 XML エレメントをモデル化するために導入されました。 それで、そうした複合タイプのエレメントは、 通常の複合エレメントのように両方の複合内容を持っていますが、 単純エレメントのように値 (MRM 基本タイプ情報) も持っています。
XML スキーマにおいて、厳密に同等のものはありません。 最も近い働きをするものは、xsd:complexType の「混合」属性の使用です。 しかし、これは、テキストが子エレメントの前と間 (または、間のみ) に現れるということしか指定しません。 これは、テキストの場所またはデータ・タイプについては何も指定しません。
複合エレメントは、複合タイプを参照するそれぞれのエレメントごとに作成されます。 これは、エレメント自体が別の複合タイプのメンバーである場合のみ行われるという点に注意してください。
これら 2 つの組み合わせにより、 メッセージ内でそうした複合タイプを意味のある仕方で使用し続けることができます。 MRM 基本タイプ情報が失われるのは、 それがメッセージ内でアクティブに使用されることが全くなかった時だけだからです。
前のセクションで説明されている状況により作成される特殊データ・タイプ (ComIbmMrm で始まる) は、 .wmq21.mxsd と呼ばれる XML スキーマで定義されます。 これは、mqsimigratemsgsets コマンドで作成される 各メッセージ定義ファイルに組み込まれます。
MRM タイプ | スキーマ・タイプ |
---|---|
BINARY | xsd:hexBinary |
BOOLEAN | xsd:boolean |
DECIMAL | xsd:decimal |
DATETIME | xsd:dateTime (以下の表も参照してください) |
FLOAT | xsd:float |
INTEGER | xsd:int |
STRING | xsd:string |
MRM DATETIME 日付テンプレート | スキーマ・タイプ |
---|---|
CCYY-MM-DDThh:mm:ss.s | xsd:dateTime |
CCYY-MM-DD | xsd:date |
CCYY-MM | xsd:gYearMonth |
CCYY | xsd:gYear |
--MM-DD | xsd:gMonthDay |
--MM | xsd:gMonth |
---DD | xsd:gDay |
Thh:mm:ss.s | xsd:time |
日付テンプレート (Date Template) が前述のリストにない場合、 日付テンプレートが時間コンポーネントだけを持っていたかどうかに基づいて、 DATETIME は、BIP0175 警告メッセージを伴って xsd:time または xsd:dateTime のいずれかにマップされます。 しかしながら、このマッピングにより、インポート後、 タスク・リストにエラーが発生することがある点に注意してください。
関係するエレメントがバージョン 2.1 の デフォルト値 (Default Value)、 最小値 (Min Inclusive)、最大値 (Max Inclusive)、または列挙 (Enumeration) 値制約も持つ場合、 それらの値は xsd:time または xsd:dateTime 用の字句スペースと一致しないため、妥当性検査が失敗します。 これらは、エディターを使用して手動で訂正する必要があります。
値が完全に指定されなかったデフォルト値 (Default Value)、 最小値 (Min Inclusive)、最大値 (Max Inclusive)、 または列挙 (Enumeration) 値制約を提供したすべてのバージョン 2.1 DATETIME タイプに対しても、同じタスク・リスト・エラーが発生します。 例えば、日付テンプレート (Date Template)「CCYY-MM」、列挙 (Enumeration)「2003」は、 バージョン 2.1 では実行時に「2003-01」として解釈されたため、許可されていました。 しかしながら、新規モデルでは、その値は単純タイプの字句スペースと一致する必要があるため、 「-01」を含む必要があります。
注意 |
商標 |
ダウンロード |
ライブラリー |
技術サポート |
フィードバック
![]() ![]() |
ad15750_ |