메시지 플로우 이주

시작하기 전에

버전 6.0 브로커 도메인에 참여하기 위한 버전 5.0 조건에 대한 개념 주제를 읽으십시오.

버전 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 버전 6.0이 사용하는 방식과 다른 방식으로 구문 분석됩니다. 이러한 메시지 플로우는 버전 6.0이 호스트했을 때 계속 올바르게 작동하지만 메시지 플로우 네임스페이스 인식의 단계에 따라 네임스페이스가 인식하도록 업그레이드하는 것이 좋습니다.

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

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

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

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

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

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

  1. 버전 2.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 파일을 작성합니다.

      변경 시작BAR 파일에 메시지 플로우를 추가하면 런타임 ESQL 코드는 버전 6.0 레벨에서 생성됩니다. 이 코드는 버전 2.1 브로커와 호환되지 않습니다. BAR 파일에 버전 2.0 런타임 ESQL이 포함되도록 하려면 브로커 버전 2.1용 ESQL 컴파일 상자를 선택하십시오. 이와 같은 경우, ESQL 코드에 버전 6.0 향상 기능이 포함되지 않지만 플로우를 버전 2.1버전 6.0 브로커로 전개할 수 있습니다.변경 끝

      자세한 정보는 브로커 아카이브에 파일 추가를 참조하십시오.

  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 파일로 이주됩니다(터미널 및 노드의 등록 정보만 정의함). 제품의 버전 6.0으로 해당 이주 및 정의를 수동으로 완료하십시오. 다음 단계는 필수 프로세스의 개요를 제공합니다. 자세한 정보는 Workbench에서 사용자 정의 노드의 사용자 인터페이스 표현 작성을 참조하십시오.
    1. 사용자 정의 노드 프로젝트를 작성하고 .msgnode 파일을 메시지 플로우 프로젝트에서 새로운 사용자 정의 노드 프로젝트로 이동하십시오. 이를 수행하는 경우 연관된 등록 정보 파일이 작성됩니다.
    2. 선택사항: Eclipse 환경에서 사용자 정의 노드 개발을 완료하여 사용자 정의 노드 Eclipse 플러그인(이 노드를 구성하는 파일이 포함된 디렉토리 구조)을 작성하십시오. 이 작업에는 필요한 경우 도움말, 아이콘, 등록 정보 편집기 및 컴파일러에 대한 노드 자원 작성이 포함됩니다.
    3. 작업 목록의 오류를 확인하십시오. 예를 들면, 노드 또는 해당 터미널 이름에 공백 문자가 포함되었거나(버전 6.0에서 지원하지 않음), 플로우에 이주된 다른 플로우가 임베드되고 참조가 올바르지 않은 경우 오류가 생성될 수 있습니다. 이름을 수정하거나 서브플로우 찾기 메뉴 옵션을 사용하여 이러한 오류를 해결할 수 있습니다.
    4. 적절한 브로커 시스템에 노드(.lil 파일)에 대한 런타임 코드를 설치하십시오. 코드를 이주할 경우 사용자 정의 노드에 대한 코드를 다시 컴파일할 필요가 없습니다.
    5. 새 파일 또는 변경된 파일을 인식하도록 브로커를 정지한 후 재시작하십시오.
이주를 완료했으면, 이주 후에 수행할 수 있는 작업에 대한 정보는 버전 2.1 이주 후 작업을 참조하십시오.
관련 개념
메시지 플로우 개요
ESQL 함수
관련 태스크
메시지 플로우 네임스페이스 인식
기존의 메시지 플로우 열기
메시지 플로우 컨텐츠 정의
ESQL 개발
관련 참조
브로커 응용프로그램 개발 perspective
ESQL 편집기
내장 노드
mqsimigratemsgflows 명령
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
ac02355_