Message Routing 샘플 실행

Message Routing 샘플 실행은 두 개의 주요 부분으로 나눌 수 있습니다.

다음 두 부분에 대해 각각 설명합니다. 이 절에서 설명한 테스트 메시지는 모두 Message Routing 샘플 메시지 플로우라는 메시지 플로우 프로젝트에 있는 테스트 메시지 디렉토리에 있습니다.

입력 테스트 메시지

이 샘플을 실행하는 데 사용된 모든 테스트 메시지는 다음 형식을 기본으로 합니다.

<SaleEnvelope>
  <Header>
    <SaleListCount>1</SaleListCount>
  </Header>
  <SaleList>
    <Invoice>
      <Initial>T</Initial>
      <Initial>D</Initial>
      <Surname>Montana</Surname>
      <Item><Code>00</Code>
        <Code>01</Code><Code>02</Code>
        <Description>Twister</Description>
        <Category>Games</Category>
        <Price>00.30</Price>
        <Quantity>01</Quantity>
      </Item>
      <Item>
        <Code>02</Code><Code>03</Code><Code>01</Code>
        <Description>The Times Newspaper</Description>
        <Category>Books and Media</Category>
        <Price>00.20</Price>
        <Quantity>01</Quantity>
      </Item>
      <Balance>00.50</Balance>
      <Currency>Sterling</Currency>
    </Invoice>
  </SaleList>
  <Trailer>
    <CompletionTime>12.00.00</CompletionTime>
  </Trailer>
</SaleEnvelope>

<Initial> 및 <Surname> 필드는 메시지 라우팅에 사용됩니다.

샘플 실행

데이터베이스 테이블에 직접 연결하여 메시지 라우트

샘플의 이 부분에서는 Routing_using_database_table 메시지 플로우를 사용합니다. 여기에는 ROUTING.DATABASE.IN1 입력 큐가 포함됩니다. 메시지 플로우는 메시지 컨텐츠를 기초로 20개의 출력 큐 중 하나로 메시지를 라우트할 수 있습니다. (ROUTING.OUT 다음에 1-19까지의 숫자가 오고 그 다음 ROUTING.DEFAULT 큐가 옵니다.) 이 샘플 부분을 실행하려면 다음을 수행하십시오.

  1. Direct_database_message1이라는 테스트 메시지 큐에 삽입 파일을 여십시오. 포트 필드에 값 2414가 포함되어 있는지 확인하십시오.
  2. 큐에 쓰기를 누르십시오. 메시지는 ROUTING.DATABASE.IN1 큐로 송신됩니다. 메시지 플로우는 메시지를 ROUTING.OUT1 큐로 라우트합니다.
  3. 메시지가 올바른 큐에 도달했는지 점검하려면 WebSphere MQ 탐색기를 사용하십시오.
    1. WebSphere MQ 탐색기를 시작하십시오.
    2. 큐 관리자 폴더를 마우스 오른쪽 단추로 누른 후 큐 관리자 표시를 선택하십시오. WBRK6_DEFAULT_QUEUE_MANAGER를 입력하십시오.
    3. 큐 관리자에서 폴더를 펼치고 를 선택하십시오. 큐 표시를 새로 고쳐 각 큐에 있는 현재 메시지 수를 표시하십시오. Windows에서 WebSphere MQ v5.3을 사용하는 경우, WebSphere MQ 탐색기를 새로 고칠 때 실제 큐 이름이 아닌 폴더를 선택해야 합니다. 그렇지 않을 경우 큐 일부만이 새로 고쳐집니다.
    4. 나머지 샘플에서 메시지가 올바른 위치에 라우트되었는지 확인하려면 WebSphere MQ 탐색기를 사용하십시오.
  4. Direct_database_message2라는 enqueue 파일을 열고 메시지를 큐에 기록하십시오.
  5. WebSphere MQ 탐색기를 새로 고치십시오. 메시지는 ROUTING.OUT19 큐에 표시되어야 합니다.

위의 모든 단계가 수행되면 샘플의 첫 번째 부분이 완료됩니다. Routing_using_database_table 메시지 플로우에 있는 ESQL을 살펴보고 라우팅 수행 방법을 참조하십시오.

데이터베이스 테이블의 메모리 내 캐시를 사용하여 메시지 라우트

이 샘플 부분에서는 Routing_using_memory_cache 메시지 플로우를 사용합니다. 여기에는 두 개의 입력 큐(ROUTING.MEMORY.IN1ROUTING.REFRESH.IN1)가 포함되며, 메시지 플로우는 메시지 컨텐츠를 기초로 20개의 큐 중 하나로 메시지를 라우트할 수 있습니다. (ROUTING.OUT 다음에 1-19까지의 숫자가 오고 그 다음에 ROUTING.DEFAULT 큐가 옵니다.) 라우팅 논리는 비캐시 버전과 동일합니다. 유일한 차이점은 데이터베이스가 공유 변수를 사용하여 메모리에 캐시되는 것입니다. 이 샘플 부분을 실행하는 단계는 다음과 같습니다.

  1. Memory_cache_message1이라는 테스트 메시지 큐에 삽입 파일을 열어 큐에 메시지를 기록하십시오.
  2. WebSphere MQ 탐색기를 새로 고치십시오. 새 메시지는 ROUTING.OUT1 큐(두 메시지 모두)에 표시되어야 합니다.
  3. Memory_cache_message2라는 테스트 메시지 큐에 삽입 파일을 열고 큐에 메시지를 기록하십시오.
  4. WebSphere MQ 탐색기를 새로 고치십시오. 새 메시지는 ROUTING.OUT19 큐(두 메시지 모두)에 표시되어야 합니다.
  5. 이제까지 플로우는 기능면에서 마지막 플로우와 정확히 동일하게 동작했지만 캐시 버전의 데이터베이스 테이블을 사용합니다. 캐시 사용의 효과를 테스트하기 위해, 메모리 내 캐시를 새로 고치는 방법을 표시하도록 데이터베이스 테이블을 수정합니다. 데이터베이스 테이블을 수정하려면 다음을 수행하십시오.

    DB2

    1. DB2 명령 창(Windows의 경우) 또는 명령 콘솔(Linux의 경우)에 다음 명령을 입력하십시오.

      db2cmd

    2. 명령 프롬프트에 db2를 입력하여 DB2 명령행을 시작하십시오.
    3. ROUTING 데이터베이스에 연결하십시오.

      DB2> connect to ROUTING user user using password

      여기서 user는 ROUTING 데이터베이스에 액세스할 권한이 있는 사용자입니다. 이 사용자는 일반적으로
      샘플 브로커를 작성하기 위해 사용된 사용자와 같습니다. password는 해당 사용자의 암호입니다.

    4. routing_table에 있는 마지막 항목을 갱신하여 ROUTING.OUT18 큐에 기록하십시오.

      DB2> update routing_table set queue_name='ROUTING.OUT18' where Variable3='Braithwaite'

    Derby

    1. ij 명령행을 시작하십시오. 아직 ij 명령행의 배치 파일을 설정하지 않았으면 Derby 데이터베이스의 컨텐츠 보기를 참조하십시오.
    2. routing_table에 있는 마지막 항목을 갱신하여 ROUTING.OUT18 큐에 기록하십시오.

      ij>update routing_table set queue_name='ROUTING.OUT18' where Variable3='Braithwaite';

  6. Memory_cache_message2라는 테스트 메시지 큐에 삽입 파일을 열고 메시지를 큐에 기록하십시오.
  7. WebSphere MQ 탐색기를 새로 고치십시오. 새 메시지는 ROUTING.OUT19 큐(총 세 개 메시지)에 표시되어야 합니다. 데이터베이스 테이블을 다시 읽지 않았으므로 메시지가 새 큐 이름으로 라우트되지 않음에 유의하십시오.
  8. 플로우가 데이터베이스를 다시 읽었는지 확인하려면 Refresh_cache_message1이라는 enqueue 파일을 열고 큐에 메시지를 기록하십시오.
  9. 3 단계를 반복하여 메시지 플로우에 테스트 메시지를 송신하십시오.
  10. WebSphere MQ 탐색기를 새로 고치십시오. 새 메시지는 ROUTING.OUT18 큐(총 한 개 메시지)에 표시되어야 합니다. 메모리에 저장된 데이터베이스 테이블이 새로 고쳐졌습니다.

데이터베이스에 있는 queue_name을 사용 가능한 다른 큐 이름 중 하나로 변경하여 5-10 단계를 반복할 수 있습니다. Refresh_cache_message1 메시지를 사용하는 대신, 메시지 플로우를 정지한 후 재시작할 수 있습니다. 이렇게 하면 캐시된 데이터베이스 테이블이 새로 고쳐집니다.

위의 모든 단계가 수행되면 샘플 실행이 완료됩니다. Routing_using_memory_cache 메시지 플로우에 있는 ESQL을 살펴 보고 공유 변수에 데이터베이스를 저장하는 방법을 참조하십시오.

결과 이해

Message Routing 샘플은 출력을 수정하지 않고도 다양한 출력 큐에 입력 테스트 메시지를 라우트합니다. 출력 메시지는 입력 테스트 메시지와 동일합니다. 두 부분에 제공되는 단계에서는 메시지가 라우트되는 위치에 대해 자세히 설명합니다. WebSphere MQ 탐색기(위 단계에서 설명한 것처럼)를 사용하여 메시지가 올바른 큐로 라우트되었는지를 점검할 수 있습니다. 또한 Message Brokers Toolkit의 일부인 큐에서 삭제 프로그램을 사용하여 큐에 있는 메시지 컨텐츠를 점검할 수도 있습니다. 큐에서 삭제 프로그램에 액세스하려면 툴킷 도구 모음에 있는 큐에서 삭제 아이콘을 누르십시오.

큐에서 삭제 프로그램 위치

기본 페이지 아이콘   샘플 홈으로 돌아가기