バージョン 2.1 からのメッセージ・セットのマイグレーション

メッセージ・セットをバージョン 2.1からバージョン 6.0にマイグレーションするには、mqsimigratemsgsets コマンドを使用します。バージョン 5.0 からバージョン 6.0にマイグレーションするときには、このコマンドを使用する必要はありません。

mqsimigratemsgsets コマンドの条件

バージョン 2.1 からのエクスポートとWebSphere Message Broker バージョン 6.0のインポートの間で、手動でメッセージ・セット・ファイルを変更しないでください。 これにより、レポート BIP0141BIP0142 から BIP0157、 および BIP0163 の警告およびエラー・メッセージで示されているエラーが発生するからです。

それぞれの新規メッセージ定義ファイル .mxsd は注釈付き XML スキーマ・モデルであり、メッセージ・セット内のそれぞれの作成物は新規モデル内に再作成され、その既存のプロパティーが保存されますが、以下の例外があります。
  • WebSphere Message Broker バージョン 6.0 モデル内の名前 は、 バージョン 2.1 モデルの ID です。 バージョン 2.1 の接頭部は、そのエレメントがローカルであることを示す方法であったため、オブジェクトが接頭部付きの ID を持つエレメントである場合、その接頭部は除去されます。
  • ラベル簡略説明詳細説明、およびヒストリーは、WebSphere Message Broker バージョン 6.0 用の 1 つの文書プロパティーにマージされます。
  • それぞれの複合タイプは、WebSphere Message Broker バージョン 6.0 では、xsd:complexType および関連した xsd:group となります。
    この方法で作成された xsd:complexType は、ローカルまたはグローバルになります。デフォルトはローカルですが、以下の条件のいずれかに当てはまる場合はグローバルになります。
    • 複合タイプが参照されない
    • 複合タイプに バージョン 2.1 MRM 基本タイプがある
    • 複合タイプが複数のエレメントにより参照される
    • メッセージが複合タイプを基にしている
    • -g パラメーターが指定されている
    この方法で作成された xsd:group は、ローカルまたはグローバルになります。デフォルトはローカルですが、以下の条件のいずれかに当てはまる場合はグローバルになります。
    • 複合タイプが別の複合タイプ内に直接組み込まれている。
    • 複合タイプにバージョン 2.1 MRM 基本タイプがある
    • 複合タイプには、「simpleUnorderedSet」のバージョン 2.1 タイプ構成、および「クローズ」のバージョン 2.1 タイプ内容がある。
    simpleUnorderedSet」のタイプ構成は、WebSphere Message Broker バージョン 6.0のモデルから除去されます。
    • タイプ内容が「クローズ」の場合、BIP0191 警告メッセージが出されて、それは構成「すべて」に置換されます。
    • それ以外の場合は、BIP0192 警告メッセージが出されて、構成「unorderedSet」に置換されます。
    • 」のタイプ構成は、BIP0193 警告メッセージが出されて空の「シーケンス」に置換されます。

  • 1 と等しくない minOccurs または maxOccurs を持つ組み込みメッセージは、BIP0162 警告メッセージを伴って出現を 1 に訂正します。
  • 各エレメントは、xsd:element になります。この方法で作成された xsd:element は、指定された順序で適用される以下の基準に従って、ローカルまたはグローバルになります。
    1. エレメントが参照されない場合はグローバルになります。
    2. エレメントが接頭部付きの ID を持ち、ちょうど 1 つの複合タイプのメンバーである場合は、ローカルになります。
    3. エレメントが接頭部付きの ID を持ち、-pl パラメーターを指定する場合は、ローカルになります。
    4. エレメントがバージョン 2.1 MRM 基本タイプを持つ複合タイプの場合は、ローカルになります。
    5. エレメントが複数の複合タイプのメンバーである場合は、グローバルになります。
    6. -g パラメーターが指定されている場合は、グローバルになります。
    7. それ以外の場合、エレメントはローカルです。
    この方法で作成された xsd:element のタイプは、以下のとおりです。
  • エレメントに属するすべての値制約は、以下のように処理されます。
    • デフォルト制約は、xsd:element の「デフォルト」属性を設定します。
    • ヌル許可制約は、xsd:element の「ヌル可能」属性を設定します。
    • 日付テンプレート制約は、xsd:elementxsd:simpleType を変更します。(MRM 単純タイプからスキーマ単純タイプへのマッピングを参照してください。)
    • その他すべては、xsd:facets を適用することにより、 xsd:elementxsd:simpleType を制限します。

    すべての参照されない値制約は、BIP0158BIP0159、または BIP0160 警告メッセージを伴って廃棄されます。

    正しくない xsd:facet が作成される結果となるすべての値制約はマイグレーションされず、BIP0165 警告メッセージが表示されます。
    注: タイプ STRING のエレメントのみについては、値制約 MinInclusive および MaxInclusive が、文書化目的の隠れた注釈として代わりにインポートされます。これは、等価の xsd:facet がないためです。
  • エレメント修飾子は一度だけ BIP0167 警告メッセージを伴って廃棄されます。
  • 各メッセージは、メッセージおよび 関連したグローバル xsd:element になります。
  • エレメント修飾子を使用したメッセージは、BIP0166 警告メッセージを伴ってその修飾を廃棄します。
  • バージョン 2.1 で冗長であった幾つかの物理形式のプロパティーは、新規モデルでは除去されています。 これらのプロパティーがデフォルトではない値で現れた場合、BIP0164 (または他のさらに特定的な) 警告メッセージが出されます。
  • TDS メッセージ・セット・レベルのプロパティー「世紀ウィンドウ」のデフォルト値は、バージョン 2.1 では常時 53 に設定されていました。 メッセージング標準 SWIFT ではこれは誤りであるため、SWIFT のデフォルトのみ、80 に変更されています。これは、インポートされたモデルで反映されます。

mqsimigratemsgsets コマンドの作成対象

.mrp ファイルが現れるたびに、新規メッセージ・セット・プロジェクトが作成されます。その名前は、バージョン 2.1 でのメッセージ・セット名およびレベルから派生する名前となります。ユーティリティーはこれを行う時に、1 以外のすべてのレベル値に対して、メッセージ・セット名に接尾部を追加します。このプロセスにより、1 対 1 のマッピングを復元し、名前が付いた唯一のメッセージ・セットをブローカーが見つけることが可能になります。

例えば、名前 SWIFT およびレベル 1 を持つバージョン 2.1 のメッセージ・セットは、バージョン 6.0にメッセージ・セット名 SWIFT でマイグレーションするのに対して、 名前 SWIFT およびレベル 2 を持つバージョン 2.1 のメッセージ・セットは、バージョン 6.0に SWIFT_2 でマイグレーションします。

メッセージ・セット・フォルダーおよび関連した messageSet.mset ファイルが 新規プロジェクト内に作成されます。 メッセージ・セットの内容において、以下のポイントが適用されます。
  • メッセージ・セット・フォルダー名は、新規プロジェクトと同じである。
  • メッセージ・セット ID は、バージョン 2.1 の元のメッセージ・セットの ID である。
  • メッセージ・セットは、ネーム・スペースをサポートしない指定をして作成される。
  • すべての物理形式レイヤーは、新規メッセージ・セットに再作成される。
  • すべての COBOL 言語バインディング・レイヤーは、BIP0174 警告メッセージで廃棄される。
  • すべての C 言語バインディング・レイヤーは、BIP0173 警告メッセージで廃棄される。
  • すべてのファイナライズ状態は、BIP0170 警告メッセージで廃棄される。
  • すべての基本情報は、BIP0172 警告メッセージで廃棄される。
  • すべてのフリーズ・タイム・スタンプは、BIP0169 警告メッセージで廃棄される。 バージョン 2.1 エクスポート操作がメッセージ・セットをフリーズするため、このメッセージは常時受け取るという点に注意してください。
.mrp ファイルに出現するメッセージ・カテゴリーごとに、 新規 .category ファイルが作成されます。注:
  • 各トランザクションは、トランザクション内のすべてのメッセージを含む同等のメッセージ・カテゴリーに置換される。
  • 各トランザクション・カテゴリーは、トランザクション・カテゴリーにより参照されるすべてのトランザクション内のすべてのメッセージを含む同等のメッセージ・カテゴリーに置換される。

-part パラメーターがなければ、メッセージ・セットと同じ名前を持つメッセージ・セット内、およびデフォルトの (notarget) ネーム・スペースに、単一のメッセージ定義 .mxsd ファイルが作成されます。

-part が指定されている場合、以下の場合に複数の .mxsd ファイルが作成されます。
  • ファイル内のメッセージ、エレメント、および複合タイプの数が 1000 を超え、 かつ、
  • .mrp ファイルが完全に排反するサブセットに分割できる。

バージョン 2.1 では、すべてのエレメントおよび複合タイプがグローバルです。バージョン 6.0 では、xsd:elements および xsd:complex types は、グローバルまたはローカルとなります。バージョン 2.1 のメッセージ・セットを マイグレーションするとき、バージョン 2.1 でグローバルであった多くのエレメントおよび複合タイプ が、上記の規則に従って、 バージョン 6.0のローカル xsd:elements および xsd:complex types に変換されていることに気付かれるでしょう。

この動作をオーバーライドする場合がある 2 つの理由があります。
  • すべてのオブジェクトがグローバルである、バージョン 2.1 のメッセージ・セットの編成を望む。 -g パラメーターを指定する場合、この編成は実際的である限り保存されます。
  • 複合タイプ「タイプ内容」と値「オープン定義」を利用する。

これは、複合タイプの妥当な内容が、「タイプ構成」のプロパティー規則に準じて、メッセージ・セット内で任意のオブジェクトになり得ることを意味しています。一般的にこの場合、複合タイプは明示的な内容でモデル化されていません。

これにより、mqsimigratemsgsets コマンドは、 誤って、あるエレメントをグローバルではなくローカルにする可能性があります。 「オープン定義」を使用し、マイグレーション後に実行時妥当性検査エラー BIP5372E が生じることが見つかった (以前には生じていなかった) 場合、-g パラメーターを指定して、mqsimigratemsgsets コマンドを再実行します。

接頭部付きの ID

バージョン 2.1 では、接頭部付きの ID は、エレメントがローカルであることを示すためのものでした。しかしながら、接頭部付きの ID を持つエレメントが実際に複数の複合タイプで使用され、グローバルとなることは可能です。その場合、グローバル xsd:element は前述の規則に従って作成されます。これは接頭部付きの ID の誤用であるため、BIP0195 警告メッセージも出され、 グローバル xsd:elements が重複して作成されることがあります。 例えば、A^X および B^X があり、両方が 複数回使用される場合、 名前 X を持つ 2 つのグローバル xsd:elements が作成されます。

重複して作成される場合は、-pl パラメーターを指定した mqsimigratemsgsets コマンドをもう一度実行します。これによって、接頭部付きの ID を持つすべての参照エレメントが、強制的にローカル xsd:elements として作成されます。

組み込み単純タイプ

複合タイプ内の組み込み単純タイプは、特別の処理が必要です。 なぜなら、スキーマ・モデルはこの構成を処理できないからです。組み込み単純タイプは推奨されていないため、xsd:complex タイプを含んだ混合属性を利用することにより、それらを置き換えてください。

組み込み単純タイプは主に、 子エレメント間に散在するデータ値を含んでいる複合 XML エレメントをモデル化するために導入されました。そうしたデータ値のそれぞれは、組み込み単純タイプにより明示的にモデル化されました。 組み込み単純タイプは、値のプレースホルダーとして働くと共に、その単純タイプも提供しました。

XML スキーマにおいて、厳密に同等のものはありません。 最も近い働きをするものは、xsd:complexType の混合属性です。 しかしながら、これは、テキストが子エレメントの前またはその間に現れるということしか指定しません。 これは、テキストの場所またはデータ・タイプについては何も指定しません。

この意味構造を保つために、組み込み単純タイプと呼ばれるスキーマの拡張が導入されました。これは適切な単純タイプの、名前が付いていないローカル xsd:element です。 そのタイプ自体は、特殊名 (ComIbmMrm_Anon で始まる) が付いた、 真の基礎となる xsd:simple type の制限されたものです。

MRM 基本タイプを持つ複合タイプ

この状況では BIP0161 警告メッセージが出され、特別の処理が必要です。 なぜなら、スキーマ・モデルはこの複合構成を処理できないからです。複合エレメントは推奨されないため、複合エレメントを使用する代わりに、 1 で説明されているグローバル xsd:complexType を参照する通常のエレメントに置き換えて、 混合属性を活用してください。

そうした複合タイプは主に、 子エレメントだけでなくデータ値も含んでいる複合 XML エレメントをモデル化するために導入されました。 それで、そうした複合タイプのエレメントは、 通常の複合エレメントのように両方の複合内容を持っていますが、 単純エレメントのように値 (MRM 基本タイプ情報) も持っています。

XML スキーマにおいて、厳密に同等のものはありません。 最も近い働きをするものは、xsd:complexType の混合属性の使用です。しかし、これは、テキストが子エレメントの前と間 (または、間のみ) に現れるということしか指定しません。 これは、テキストの場所またはデータ・タイプについては何も指定しません。

XML スキーマには厳密に同等のものがないため、以下のステップがなされました。
  1. グローバル xsd:complexType およびグローバル xsd:group は、通常の仕方で作成されます。xsd:complexType には混合属性セットが追加されており、その内容は、 グローバル xsd:group への参照のみとなっています。 これは、複合内容をモデル化しますが、MRM 基本タイプ情報を失います。
  2. 特定のスキーマ拡張である、複合エレメントが導入されています。これは、複合エレメントと単純エレメントが融合したものです。 それは、無名の複合タイプを持つエレメントとしてスキーマ条件にインプリメントされています。 そのタイプの内容は以下のとおりです。
    • ふさわしい単純タイプのローカル xsd:element (MRM 基本タイプ情報をモデル化するためのもの)。単純タイプは、特殊名 (ComIbmMrm_BaseValue で始まる) が付いた、真の基礎となる xsd:simple type の制限されたものです。
    • 上記の 1 で作成されたグローバル xsd:group へのグループ参照。

複合エレメントは、複合タイプを参照するそれぞれのエレメントごとに作成されます。これは、エレメント自体が別の複合タイプのメンバーである場合のみ行われるという点に注意してください。

これら 2 つの組み合わせにより、 メッセージ内でそうした複合タイプを意味のある仕方で使用し続けることができます。 MRM 基本タイプ情報が失われるのは、 それがメッセージ内でアクティブに使用されることが全くなかった時だけだからです。

前のセクションで説明されている状況により作成される特殊データ・タイプ (ComIbmMrm で始まる) は、.wmq21.mxsd と呼ばれる XML スキーマで定義されます。 これは、mqsimigratemsgsets コマンドで作成される各メッセージ定義ファイルに組み込まれます。

MRM 単純タイプからスキーマ単純タイプへのマッピング

単純タイプのマッピングは以下の通りです。
MRM タイプ スキーマ・タイプ
BINARY xsd:hexBinary
BOOLEAN xsd:boolean
DECIMAL xsd:decimal
DATETIME xsd:dateTime (以下の表を参照してください)
FLOAT xsd:float
INTEGER xsd:int
STRING xsd:string
DATETIME タイプにおいて、単純タイプのマッピングは、日付テンプレート値制約の働きにより、以下のように変更される可能性があります。
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デフォルト値最小値 (この値を含む)最大値 (この値を含む)、または列挙 値制約も持つ場合、それらの値は xsd:time または xsd:dateTime 用の字句スペースと一致しないため、妥当性検査が失敗します。これらは、エディターを使用して手動で訂正する必要があります。

値が完全に指定されなかったデフォルト値最小値 (この値を含む)最大値 (この値を含む)、または列挙 制約を提供したすべての バージョン 2.1 DATETIME タイプに対しても、同じタスク・リスト・エラーが発生します。例えば、日付テンプレート CCYY-MM、列挙 2003 は、バージョン 2.1 では実行時に 2003-01 として解釈されたため、許可されていました。しかしながら、新規モデルでは、その値は単純タイプの字句スペースと一致する必要があるため、 -01 を含む必要があります。

特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2006 最終更新: 08/21/2006
ad15750_