수명이 긴 변수

플로우를 통과하는 단일 메시지의 수명보다 더 오래 데이터를 저장하는 것이 바람직한 경우가 있습니다. 이렇게 하는 한 가지 방법은 데이터베이스에 데이터를 저장하는 것입니다. 이는 장기 지속성 및 트랜잭션성에는 좋지만 액세스(특히 쓰기 액세스)는 느려집니다.

또는 적절한 "수명이 긴" ESQL 데이터 유형을 사용하여 일정 기간 동안 데이터의 인메모리 캐시를 제공할 수 있습니다. 이렇게 하면 지속성은 단축되고 트랜잭션성이 없어지지만 데이터베이스에서 액세스하는 것보다 액세스 속도가 빨라집니다.

수명이 긴 변수는 DECLARE 문에서 SHARED 키워드를 사용하여 작성됩니다.

Message Routing 샘플은 DECLARE문을 사용하여 공유 변수를 정의하는 방법에 대해 설명합니다. 샘플은 데이터베이스 테이블에 라우팅 정보를 저장하는 방법에 대해 설명하며 공유 변수를 사용하여 메시지 플로우의 메모리에 데이터베이스 테이블을 저장하여 성능을 개선하도록 합니다.

수명이 긴 데이터 유형은 노드를 통과하는 단일 메시지의 수명보다 수명이 깁니다. 이 표에 설명된 대로 스레드 간에 공유되며, 메시지 플로우의 수명(엄밀히 말해 메시지 플로우 구성이 변경되는 사이의 시간) 동안 존재합니다.

  범위 수명 공유
수명이 짧은 변수
스키마 및 모듈 노드 노드 내 스레드 안함
루틴 로컬 노드 루틴 내 스레드 안함
블록 로컬 노드 블록 내 스레드 안함
수명이 긴 변수
노드 공유 노드 노드의 수명 플로우의 모든 노드
플로우 공유 플로우 플로우의 수명 플로우의 모든 노드
수명이 긴 ESQL 데이터 유형의 특징은 다음과 같습니다.

플로우가 관계된 한 데이터 테이블이 '읽기 전용'인 플로우에서 이런 데이터 유형을 일반적으로 사용할 수 있습니다. 테이블 데이터가 실제로 정적이 아니더라도 플로우는 이를 변경하지 않으며, 테이블 데이터가 변경되기 전에 수천 개의 메시지가 플로우를 통과합니다.

하루의 신용 카드 트랜잭션이 들어 있는 테이블을 예로 들 수 있습니다. 매일 테이블이 작성되고 그 날의 메시지가 이에 대응하여 실행됩니다. 그런 다음, 플로우가 정지되고 테이블이 갱신되며, 다음 날의 메시지가 실행됩니다. 각각의 메시지에 대해 데이터베이스에서 데이터를 읽지 않고 테이블 데이터를 캐시할 경우 이런 플로우가 향상될 가능성이 높습니다.

이런 데이터 유형을 사용하는 다른 예로 다중 메시지의 데이터 누적 및 통합을 들 수 있습니다.

관련 개념
ESQL 노드 및 디버깅
ESQL 변수
ESQL의 사용자 정의 등록 정보
관련 참조
DECLARE문
ESQL ROW 데이터 유형
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
ak35120_