메시지 플로우 이주

버전 2.1 제품(WebSphere MQ Event Broker, WebSphere MQ Integrator Broker 또는 WebSphere MQ Integrator)에서 작성한 메시지 플로우를 이주하여 WebSphere Message Broker 버전 6.0에서 사용할 수 있습니다.

WebSphere MQ Event Broker 버전 2.1에서 이주하는 경우 사용자 정의 플러그인 및 ESQL을 참조하는 토픽의 모든 정보는 적용되지 않습니다. 이러한 기능은 WebSphere MQ Event Broker 버전 2.1에서 사용할 수 없습니다.

WebSphere MQ Integrator Broker 버전 2.1에서 이주한 경우, XML 네임스페이스를 사용하는 XML 메시지를 처리하는 메시지 플로우를 작성하였을 수 있습니다. 버전 2.1에서, 그러한 XML 메시지는 WebSphere Message Broker에서 사용된 것과 다른 방법으로 구문 분석됩니다. 이러한 메시지 플로우는 WebSphere Message Broker가 호스트했을 때 계속 올바르게 작동하지만 메시지 플로우 네임스페이스 인식하기의 단계에 따라 네임스페이스가 인식하도록 업그레이드할 것을 권장합니다.

사용 가능한 새 노드 및 기능을 이용하도록 이주한 메시지 플로우를 변경하고자 할 수 있습니다. 예를 들어, 웹 서비스 요청을 수신하는 사용자 정의 노드를 내장 HTTPInput 노드로 바꿀 수도 있습니다.

이 릴리스의 변경사항에 대한 자세한 정보는 버전 6.0의 새로운 기능을 참조하십시오.

동일한 메시지 플로우 프로젝트에 메시지 플로우를 정의하고자 할 경우, 한 번에 둘 이상의 메시지 플로우를 이주할 수 있습니다. 일관성 있는 참조를 위해 서브플로우 및 사용자 정의 노드(서브플로우가 들어 있는 메시지 플로우의 노드임)를 이주해야 합니다.

동일한 이름을 가진 둘 이상의 메시지 플로우를 정의했거나 둘 이상의 내보내기 파일로 메시지 플로우를 내보낸 경우, 이주 작업은 경고 없이 이름이 동일한 그 다음 플로우로 기존 메시지 플로우를 대체합니다. 따라서 충돌을 방지하고 여러 번 정의된 메시지 플로우 중 최신 버전을 맨 마지막에 이주하도록 주의를 기울여야 합니다.

여러 개의 동일한 메시지 플로우 버전이 있으면, 이를 동일한 이주 디렉토리에 있는 다른 플로우의 서브플로우로 사용할 수 있으나 들여온 결과는 예측할 수 없습니다.

메시지 플로우를 이주하려면 다음을 수행하십시오.

  1. 버전 2.1을 설치 제거하기 전에, 버전 2.1 도구를 사용하여 메시지 플로우를 제어 센터에서 내보내십시오.

    이주 프로세스는 모든 참조 서브플로우가 동일한 내보내기 파일에 들어 있을 때 가장 효율적이므로 단일 메시지 플로우 프로젝트로 이주하려는 모든 메시지 플로우를 단일 내보내기 파일에 내보내십시오.

  2. 내보내기 파일을 Workbench를 실행 중인 새 시스템으로 전송하십시오. 이 파일을 저장한 디렉토리에 다른 파일이 포함되지 않는지 확인하십시오. 단일 메시지 플로우 프로젝트로 들여올 파일을 별도의 디렉토리에 저장하고 각 디렉토리를 별도로 이주하십시오. 이주 명령에서는 이 파일을 무시하기 때문에 프로젝트 디렉토리의 서브디렉토리에는 파일을 저장하지 마십시오.
  3. Workbench 세션을 활성화했으면 세션을 닫아야 합니다. Workbench가 실행 중인 경우, 이주 명령을 실행할 수 없습니다.
  4. 명령 프롬프트에서 새 프로젝트 이름과 내보내기 파일을 저장한 디렉토리를 지정하여 mqsimigratemsgflows 명령을 호출하십시오. 명령이 완료되었을 때의 결과는 다음과 같습니다.
    • 지정된 디렉토리의 내보내기 파일에 포함되어 있는 메시지 플로우를 지정된 메시지 플로우 프로젝트로 들여옵니다. 프로젝트가 이미 존재하면, 추가 메시지 플로우가 현재 컨텐츠(있을 경우)에 포함됩니다. 명령을 호출하기 전에 프로젝트가 존재하지 않으면 프로젝트가 작성됩니다. 명령이 메시지 플로우 프로젝트를 작성할 수 있게 하는 것이 좋습니다.
    • 메시지 플로우 및 서브플로우가 작성되며 해당 정의는 <flow_name>.msgflow 파일에 저장됩니다. 사용자 정의 노드가 작성되며, 해당 정의는 <node_name>.msgnode라는 파일에 저장됩니다.

      메시지 플로우 또는 노드를 들여온 다음 로컬 이름 지정 규칙을 따르기 위해 이 메시지 플로우 또는 노드 중 하나의 이름을 바꾸려면, 모든 참조의 일관성 및 무결성을 보존하기 위해 Workbench가 제공하는 기능을 사용해야 합니다. 파일 시스템 내에서 파일 이름을 바꾸지 마십시오.

    • 메시지 플로우의 임의의 노드에 ESQL이 포함되어 있으면, 이는 노드 자체로부터 추출되어 <message_flow_name>.esql이라는 ESQL 파일에 저장됩니다. 각 노드의 ESQL은 적절한 CREATE 및 END MODULE문(예: Compute, Database 또는 Filter) 사이에서 줄바꿈됩니다. ESQL 파일이 아직 존재하지 않을 경우 명령에 의해 작성됩니다.

      ESQL 편집기 환경 설정 페이지에서 ESQL 디폴트 호환 레벨을 점검하십시오. 이 옵션의 디폴트 값은 6.0이며, 이 값은 bar 파일에 메시지 플로우를 추가할 때 6.0 레벨에서 런타임 ESQL 코드가 생성되도록 합니다. 이 코드는 버전 2.1 브로커와 호환되지 않습니다. bar 파일에 버전 2.0 런타임 ESQL이 포함되도록 하려면 편집기 환경 설정을 재설정해야 합니다. 이와 같은 경우, ESQL 코드에 버전 6.0 향상 기능이 포함되지 않지만 플로우를 버전 2.1버전 6.0 브로커로 전개할 수 있습니다.

      자세한 정보는 ESQL 편집기를 참조하십시오.

  5. 명령을 호출한 디렉토리에 기록된 보고서 파일 mqsimigratemsgflows.report.txt를 점검하십시오. 명령은 다음 정보를 제공합니다.
    • 이주된 각 메시지 플로우, 서브플로우 및 사용자 정의 노드의 이름. 이 자원 중 하나가 버전 6.0과 호환되지 않는 이름을 가지고 있으면 명령은 일관성이 보장되도록 이름 및 이 이름에 대한 모든 참조를 갱신합니다. (두 번 이상 올바르지 않은 이름으로 자원을 이주할 경우 이름은 항상 동일하게 정정됩니다.)
    • 이주된 각 자원의 성공 또는 실패.
    • 찾지 못한 서브플로우 표시(해당 정의가 내보내기 파일에 포함되어 있지 않으나 하나 이상의 이주된 메시지 플로우에 포함되어 있음). 이런 경우가 발생하면, 누락된 서브플로우를 찾아 이를 적절한 프로젝트로 들여와 이 오류를 해석하십시오. 어떤 이유로 누락된 서브플로우를 검색할 수 없으면 원래 이름으로 재작성하십시오. 영향을 받는 모든 플로우는 올바르게 새 서브플로우에 링크할 수 있습니다.

      전체 내보내기 및 들여오기 프로세스를 반복할 필요가 없습니다.

    • 메시지 플로우로서 이주되어 .msgflow 파일에 저장된 자원이 사용자 정의 노드일 수 있음을 나타내는 표시. 이 경고가 발생하면, 지정된 자원이 사용자 정의 노드인지 또는 메시지 플로우인지 확인해야 합니다. 메시지 플로우이면 올바르게 이주된 것입니다. 사용자 정의 노드이면 11 단계에 요약되어 있는 조치를 완료해야 합니다.
  6. Workbench를 시작한 후 브로커 응용프로그램 개발 perspective로 전환하십시오.
  7. 이주 명령(프로젝트를 마우스 오른쪽 단추로 누른 다음 프로젝트 열기 선택)에 의해 작성되었거나 갱신된 메시지 플로우 프로젝트를 여십시오. 프로젝트가 이미 열려 있으면, 프로젝트를 마우스 오른쪽 단추로 누른 다음 새로 고침프로젝트 다시 빌드를 선택하여 네비게이터 보기에 새 컨텐츠가 반영되게 하십시오. 다시 빌드하면 메시지 플로우 프로젝트 컨텐츠의 유효성 검증도 수행됩니다.

    버전 6.0에서는 ESQL 및 맵핑이 다른 방법으로 핸들링되기 때문에 이주 프로세스에서는 일부 버전 2.1 노드를 다른 버전 6.0 노드로 바꿉니다. 다음 표에는 바뀐 노드가 나와 있습니다. 각 노드와 연관된 ESQL은 디폴트 이름을 가진 모듈로 작성되며 노드 등록 정보는 해당 모듈의 이름으로 설정됩니다.

    버전 2.1 노드 버전 6.0 노드
    Compute Compute
    Filter Filter
    Database Database
    DataDelete Database
    DataInsert Database
    DataUpdate Database
    Extract Compute
    Warehouse Database
  8. 메시지 플로우에 하나 이상의 Filter 노드가 포함되어 있으면, ESQL 파일의 각 노드에 대한 ESQL 모듈을 선택하여 RETURN문이 Boolean 값을 해석하는 올바른 표현식을 리턴하도록 하십시오.
  9. 메시지 플로우에 ESQL을 사용하는 노드와 들여온 C 헤더에서 도출된 메시지의 ESQL 참조 필드가 포함되어 있고 C 헤더를 Workbench로 들여와 메시지 모델을 다시 작성한 경우, 이 메시지를 참조하는 ESQL문을 점검해야 합니다. 버전 6.0 Workbench로 가져오면 버전 2.1 임포터로 작성된 것과는 다른 이름 지정 규칙으로 모델을 작성할 수 있으며 하나 이상의 필드 참조를 갱신해야 할 수도 있습니다.
  10. 여러 노드의 ESQL을 재사용하기 위해 ESQL 사용자 정의를 포함하는 버전 2.1 노드 중 하나의 ESQL 등록 정보를 확장한 경우, ESQL 관련 등록 정보 확장은 더 이상 지원되지 않기 때문에 이주된 버전 6.0 메시지 플로우에서 유지되지 않습니다. 타스크 보기는 각 ESQL 확장 등록 정보에 대한 오류를 표시합니다. 동일한 효과를 달성하려면, ESQL 함수를 작성한 후 각 노드의 ESQL 모듈에서 해당 함수를 호출해야 합니다.
  11. 사용자 정의 노드를 이주한 경우에는 XML 인터페이스 정의 파일만이 노드 .msgnode 파일로 이주됩니다(터미널 및 노드의 등록 정보만 정의함). 이 제품 버전으로 해당 이주 및 정의를 수동으로 완료해야 합니다. 다음 단계는 필수 프로세스의 개요를 제공합니다. 자세한 정보는 Workbench에서 사용자 정의 노드의 사용자 인터페이스 표현 작성의 내용을 참조하십시오.
    1. 사용자 정의 노드 프로젝트를 작성하고 .msgnode 파일을 메시지 플로우 프로젝트에서 새로운 사용자 정의 노드 프로젝트로 이동하십시오. 이를 수행하는 경우 연관된 등록 정보 파일이 작성됩니다.
    2. 선택사항: Eclipse 환경에서 사용자 정의 노드 개발을 완료하여 사용자 정의 노드 Eclipse 플러그인(이 노드를 구성하는 파일이 포함된 디렉토리 구조)을 작성하십시오. 이 작업에는 필요한 경우 도움말, 아이콘, 등록 정보 편집기 및 컴파일러에 대한 노드 자원 작성이 포함됩니다.
    3. 작업 목록의 오류를 확인하십시오. 예를 들어, 노드 또는 해당 터미널 이름에 공백 문자가 포함되었거나(버전 6.0에서 지원하지 않음), 플로우에 이주된 다른 플로우가 임베드되고 참조가 올바르지 않은 경우 오류가 생성될 수 있습니다. 이름을 수정하거나 서브플로우 찾기 메뉴 옵션을 사용하여 이러한 오류를 해결할 수 있습니다.
    4. 적절한 브로커 시스템에 노드(.lil 파일)에 대한 런타임 코드를 설치하십시오. 코드를 이주할 경우 사용자 정의 노드에 대한 코드를 다시 컴파일하지 않아도 됩니다.
    5. 새 파일 또는 변경된 파일을 인식하도록 브로커를 정지한 후 재시작하십시오.
관련 개념
메시지 플로우 개요
ESQL 함수
관련 작업
메시지 플로우 네임스페이스 인식하기
기존의 메시지 플로우 열기
메시지 플로우 컨텐츠 정의
ESQL 개발
관련 참조
브로커 응용프로그램 개발 perspective
ESQL 편집기
내장 노드
mqsimigratemsgflows 명령
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2005 마지막 갱신 날짜: 11/08/2005
ac02355_