버전 2.1에서 버전 6.0으로 메시지 세트를 이주하려면 mqsimigratemsgsets 명령을 사용하십시오. 버전 5.0에서 버전 6.0으로 이주할 때는 이 명령을 사용할 필요가 없습니다.
버전 2.1에서 메시지 세트 파일을 내보내고 WebSphere Message Broker 버전 6.0으로 들여오는 사이에 수동으로 메시지 세트 파일을 수정하면 오류(보고서에서 경고 및 오류 메시지 BIP0141, BIP0142를 BIP0157 및 BIP0163으로 표시)가 발생하므로 수동으로 수정하지 마십시오.
참조되지 않은 값 제한조건은 제거되며 BIP0158, BIP0159 또는 BIP0160 경고 메시지를 발행합니다.
발견된 각 .mrp 파일의 경우, 새 메시지 세트 프로젝트는 버전 2.1의 메시지 세트 이름과 레벨에서 도출된 이름으로 작성됩니다. 유틸리티는 1 이외의 모든 레벨 값의 메시지 세트 이름에 접미부를 추가하여 이를 수행합니다. 이 프로세스는 일대일 맵핑을 복원하며 이름이 부여된 하나의 메시지 세트만을 브로커가 찾을 수 있게 합니다.
예를 들면, 이름이 SWIFT이며 레벨이 1인 버전 2.1 메시지 세트는 버전 6.0에서 메시지 세트 이름이 SWIFT로 이주하는 반면, 이름이 SWIFT이며 레벨이 2인 버전 2.1 메시지 세트는 버전 6.0에서 SWIFT_2로 이주합니다.
단일 메시지 정의 .mxsd 파일이 메시지 세트와 동일한 이름을 가진 메시지 세트에서 작성되며 -part 매개변수가 있는 경우를 제외하고 디폴트(notarget) 네임스페이스에서 작성됩니다.
버전 2.1에서 모든 요소 및 복합 유형은 전역입니다. 버전 6.0에서 xsd:elements 및 xsd:complex types는 전역 또는 로컬일 수 있습니다. 버전 2.1 메시지 세트를 이주할 때, 버전 2.1에서 전역이었던 많은 요소 및 복합 유형이 위에 명시된 규칙에 따라 버전 6.0의 로컬 xsd:elements 및 xsd:complex types로 변환되었음을 알 수 있습니다.
이는 복합 유형의 올바른 컨텐츠가 유형 작성 등록 정보 규칙에 따라 메시지 세트의 오브젝트가 될 수 있음을 의미합니다. 이 경우, 대개 복합 유형은 명확한 컨텐츠로 모델화되지 않았습니다.
이로 인해 mqsimigratemsgsets 명령이 특정 요소를 전역이 아닌 로컬 요소로 올바르지 않게 설정합니다. 정의 열기를 사용하고 이주 후 이전에 발생하지 않았던 런타임 유효성 검증 오류 BIP5372E가 발생하는 경우, mqsimigratemsgsets 명령을 -g 매개변수와 함께 재실행하십시오.
버전 2.1에서 접두부가 있는 ID는 요소가 로컬임을 표시하기 위한 것입니다. 그러나 접두부가 있는 ID를 갖는 요소가 실제로 둘 이상의 복합 유형에 사용되어 전역이 되는 것이 가능합니다. 그런 경우, 전역 xsd:element는 선행 규칙에 따라 작성됩니다. 이 경우 접두부 ID를 잘못 사용하는 것이므로 BIP0195 경고 메시지도 발행되며, 중복된 전역 xsd:elements가 작성될 수 있습니다. 예를 들면, A^X 및 B^X 둘다 두 번 이상 사용되어, 이름이 X인 두 개의 전역 xsd:elements가 됩니다.
중복 작성될 경우, -pl 매개변수를 지정하여 mqsimigratemsgsets 명령을 다시 실행하십시오. 이에 따라 접두부 ID가 있는 모든 참조 요소가 로컬 xsd:elements로 작성됩니다.
스키마 모델은 이 구성으로 대처할 수 없으므로, 복합 유형에서 임베드된 단순 유형은 특수한 처리를 필요로 합니다. 임베드된 단순 유형이 무시되면, 포함되어 있는 xsd:complex 유형의 mixed 속성을 이용하여 이를 바꾸십시오.
임베드된 단순 유형은 하위 요소 간에 산재된 데이터 값을 포함한 복합 유형 요소를 모델화하기 위해 기본적으로 도입되었습니다. 이러한 각 데이터 값은 값의 위치 표시기로 역할하고 단순 유형을 제공한 임베드된 단순 유형으로 명시적으로 모델화되었습니다.
XML 스키마에서, 똑같은 것은 없습니다. 가장 근접한 것은 xsd:complexType의 혼합 속성입니다. 그러나 이것은 하위 요소 사이나 앞에 텍스트를 표시할 수 있다는 것만 나타냅니다. 텍스트의 위치나 데이터 유형에 대해서는 아무 것도 암시하지 않습니다.
이 의미를 보유하기 위해, 임베드된 단순 유형이라는 스키마 확장이 소개됩니다. 이것은 적절한 단순 유형으로 이름이 지정되지 않은 로컬 xsd:element입니다. 유형 자체는 실제 근본적인 xsd:simple 유형의 제한이며, 특수한 이름(commencing ComIbmMrm_Anon)을 갖습니다.
이 상황은 BIP0161 경고 메시지를 생성하며 스키마 모델이 이 복합 구성으로 대처할 수 없으므로 특별한 조치가 필요합니다. 복합 요소가 무시되므로 아래 1에 설명된 대로 전역 xsd:complexType을 참조하는 정상 요소의 사용으로 복합 요소의 사용을 바꾸고 혼합 속성을 이용하십시오.
그러한 복합 유형은 하위 요소는 물론 데이터 값을 포함하는 복합 XML 요소를 모델화하기 위해 기본적으로 소개되었습니다. 그러므로 그러한 복합 유형의 요소는 모두 정상 복합 요소와 같이 복합 컨텐츠를 갖지만, 기본 요소(MRM 기본 유형 정보)와 같은 값을 갖기도 합니다.
XML 스키마에서, 똑같은 것은 없습니다. 가장 근접한 것은 혼합 속성 xsd:complexType의 사용입니다. 그러나 이것은 하위 요소 사이(또는 바로 앞)에 텍스트를 표시할 수 있음을 알려줄 뿐입니다. 텍스트의 위치나 데이터 유형에 대해서는 아무 것도 암시하지 않습니다.
복합 유형을 참조한 각 요소의 복합 요소가 작성됩니다. 이것은 요소 자체가 다른 복합 유형의 구성원인 경우에만 수행됨을 참고하십시오.
MRM 기본 유형 정보는 메시지에서 활동적으로 사용되지 않을 때에만 잃게 되기 때문에 이 두 가지를 결합하면 메시지에서 그러한 복합 유형의 의미있는 사용이 보존됨을 의미합니다.
선행 절에서 설명된 상황으로 작성된 특정 데이터 유형, ComIbmMrm은 mqsimigratemsgsets 명령으로 작성된 각 메시지 정의 파일에 포함된 .wmq21.mxsd라는 XML 스키마에 정의됩니다.
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 |
날짜 템플리트가 선행 목록에 없는 경우, 날짜 템플리트가 시간 구성요소를 갖는지 여부에 따라 DATETIME은 xsd:time 또는 xsd:dateTime 중 하나로 맵핑되며 BIP0175 경고 메시지를 발행합니다. 그러나 이 맵핑은 들여오기(import) 이후에 작업 목록에 오류를 표시할 수 있습니다.
관련된 요소에 버전 2.1 디폴트 값, 최소값 포함, 최대값 포함 또는 나열 값 제한조건이 있는 경우, 이에 대한 값은 xsd:time이나 xsd:dateTime의 사전적 공백과 일치하지 않으므로 유효성 검증에 실패합니다. 이것은 편집기를 사용하여 수동으로 수정해야 합니다.
값이 완전히 지정되지 않은 디폴트 값, 최소값 포함, 최대값 포함 또는 나열 제한조건을 제공하는 모든 버전 2.1 DATETIME 유형에도 동일한 작업 목록 오류가 표시됩니다. 예를 들면, 날짜 템플리트 CCYY-MM, 나열 2003은 런타임에 2003-01로 해석되도록 버전 2.1에서 허용되었습니다. 그러나 새 모델에서 값은 단순 유형의 어휘 공백과 일치해야 하므로 -01을 포함해야 합니다.