메시지 플로우 개발을 위한 시스템 고려사항

디폴트 스택 크기

메시지 플로우 스레드가 실행될 때, 이 스레드는 그와 연결된 노드의 논리에 의해 정의된 지시사항을 수행하기 위해 저장영역을 필요로 합니다. 이 저장영역은 실행 그룹의 힙(heap) 및 스택 크기에서 할당됩니다. 메시지 플로우 스레드에 할당된 디폴트 스택 크기는 사용하는 플랫폼에 따라 다릅니다.

각 메시지 플로우 스레드에 1MB의 스택 공간이 할당됩니다.

각 메시지 플로우 스레드에 8MB의 스택 공간이 할당됩니다.

각 메시지 플로우 스레드에 1MB의 스택 공간이 할당됩니다.

각 메시지 플로우 스레드에는 512KB의 하향식 스택 공간과 50KB의 상향식 스택 공간이 할당됩니다.

메시지 플로우에서 노드는 일반적으로 약 2KB의 스택 공간을 사용합니다. 따라서 일반적인 메시지 플로우는 대략 z/OS에 250개의 노드, UNIX 플랫폼에 500개의 노드, Windows에 500개의 노드를 포함시킬 수 있습니다. 이 양은 사용하는 노드의 유형과 수행하는 처리에 따라 높거나 낮을 수 있습니다.

WindowsUNIX 플랫폼에서 스택 크기 증가

MQSI_THREAD_STACK_SIZE 환경 변수를 적절한 값을 설정하여 스택 크기를 증가시킬 수 있습니다. 시스템에서 실행 중인 브로커를 재시작하면 새 값을 사용합니다.

설정한 MQSI_THREAD_STACK_SIZE의 값은 DataFlowEngine 프로세스에서 작성되는 모든 스레드에 사용됩니다. 실행 그룹에 다수의 메시지 플로우가 지정되어 있고 MQSI_THREAD_STACK_SIZE에 큰 값을 설정하면 DataFlowEngine 프로세스는 스택을 저장하는 데 많은 양의 저장영역이 필요합니다.

z/OS에서 스택 크기 증가

z/OS의 Integrator 구성요소는 런타임 코드에 최적화 기능을 추가하는 새 XPLINKage(추가 성능 연계)를 사용하여 컴파일됩니다. 그러나 초기 스택 크기가 충분히 크지 않으면 스택 범위를 사용합니다. 각 범위에서 128KB가 사용됩니다. 스택 범위를 사용할 때 XPLINK의 수행 능력이 떨어지므로 하향식 스택 크기를 충분히 크게 선택하는 것이 매우 중요합니다.

적절한 스택 크기를 판별하려면 z/OS의 구성요소 관리자가 LE(Language Environment®) 보고서 저장영역 도구를 사용하면 됩니다. 이 도구를 사용하려면 _CEE_RUNOPTS 환경 변수와 함께 RPTSTG 옵션을 사용하여 메시지 플로우를 테스트해야 합니다. 프로덕션을 위한 메시지 플로우의 개발 및 테스트 중에 이 구성요소 프로파일(브로커의 BIPBPROF)에서 이를 설정해야 합니다. 예를 들면 다음과 같습니다.
export _CEE_RUNOPTS=XPLINK\(ON\),RPTSTG(ON)
z/OS에서 구성요소 프로파일의 LE_CEE_RUNOPTS 환경 변수를 추가하거나 변경하여 스택 크기의 디폴트 값을 대체할 수 있습니다.

구성요소 프로파일 갱신 중에 구성요소를 정지하고 프로파일을 변경한 다음 BIPGEN을 전송하여 ENVFILE을 재작성하고 구성요소를 다시 시작하십시오.

예를 들면, 다음 행에서 디폴트 값 50K 및 512K를 사용자의 필요에 맞게 변경할 수 있습니다.
export _CEE_RUNOPTS=XPLINK(ON),THREADSTACK(ON,50K,15K,ANYWHERE,KEEP,512K,128K)

RPTSTG를 사용하면 응용프로그램을 실행하는 데 걸리는 시간이 증가합니다. 따라서 메시지 플로우 개발을 지원하는 데에만 사용하고 마지막 프로덕션 환경에서 사용해야 합니다. 올바른 필요 스택 크기를 판별했으면 _CEE_RUNOPTS 환경 변수에서 이 옵션을 제거해야 합니다.

주: 이전 표준 연계가 상향으로 증가하는 반면 XPLINK 스택은 가상 저장영역에서 하향으로 증가합니다. 런타임 중 하향식 스택 공간과 상향식 스택 공간 사이의 전환으로 인한 성능 영향을 방지하기 위해 가능하면 XPLINK 옵션을 사용하여 사용자 정의 확장을 컴파일해야 합니다. 메시지 플로우가 표준 연계 규정으로 컴파일된 사용자 정의 확장을 사용하는 경우 상향식 스택 크기의 적당한 값을 판별하고 설정해야 합니다.

올바른 스택 크기 판별

WebSphere Message Broker에서 중첩 또는 순환적 처리가 필요한 처리는 많은 양의 스택을 사용할 수 있습니다. 예를 들면, 다음과 같은 경우 스택 크기를 증가시켜야 할 수도 있습니다.
  • 메시지 플로우가 다수의 반복 또는 복잡한 중첩이 있는 메시지를 처리할 때.
  • 메시지 플로우가 동일한 프로시저 또는 함수를 반복적으로 호출하는 ESQL을 실행하거나 연산자(예: 연결 연산자)가 ESQL문에서 반복적으로 사용될 때.
관련 태스크
메시지 플로우 응답 시간 최적화
관련 참조
메시지 플로우
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
ac00340_