메시지 플로우 개발에 대한 시스템 고려사항

디폴트 스택 크기

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

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

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

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

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

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

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

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

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

z/OS에서 스택 크기 증가

z/OS의 통합기 구성요소는 런타임 코드에 최적화를 추가하는 새 XPLINKage(추가 성능 연계)를 사용하여 컴파일됩니다. 그러나 초기 스택 크기가 충분히 크지 않으면 스택 범위(extent)가 사용됩니다. 각 범위에 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, 2005 마지막 갱신 날짜: 11/08/2005
ac00340_