본문 바로가기

Tibco/BusinessEvents

BE Engine Global Variable

환경에 관련된 정보를 Global Variable로 설정하여 관리할 수 있다. 하지만 Engine별로 동적 변수를 할당하여 사용하기 위해서는 단순하게 BE Studio의 Global Variable을 설정외에 추가 구성이 필요하다.

즉, TIBCO BE 프로젝트에서 Global Variable을 정의한 경우, 실행 스크립트 또는 TIBCO Administrator의 옵션을 통해 개별 Engine별로 별도의 변수 값을 지정하여 사용할 수 있음을 의미하며, 각 배포 단계별로 지정된 동일 변수에 대한 우선 순위로 제어 가능하다. 우선순위는 다음과 같다:

1) Engine Startup시 Command-line 옵션 (우선 순위가 가장 높음)

2) Engine Startup시 지정된 Property File

3) MM Console 또는 TIBCO Administrator 

4) CDD 파일

5) TIBCO BE Studio의 Global Variable Editor(우선 순위가 가장 낮다)

: CMD에서 설정 방식은 아래를 참조 하라.

In the TRA file referenced by the --propFile or -p properties, add one or more properties whose name is the global variable name prefixed with tibco.clientVar.
When you use the --propVar option, use one of the following methods to override global variables.

예를 들어, ActiveSpaces의 SPACE는 다음과 같이 정의되어 있는 환경에서,

as-admin> show spaces

Show Spaces:

--------------------------------------------------------------------------------

    FileInfo

    FileInfo1

    FileInfo2

    IPMSOFFER

--------------------------------------------------------------------------------

두 개의 InferenceEngine을 실행 시 Engine별로 ASChanal의 Destination에 서로 다른 SPACE를 바라보도록 구성하고자 한다. 즉, 

1번 InferenceEngine은 FileInfo1이라는 SPACE를 바라보도록 구성하고,

2번 InferenceEngine은 FileInfo2라는 SPACE를 바라보도록 구성하고자 한다면, 

1) BE Studio에서 Global Variable Editor에 다음과 같이 SpaceName이라는 변수를 추가한다.

2) Channel에 ASChannel을 추가한다.

- Destination에 SpaceName에 Global Variable Editor에서 추가한 변수 이름을 준다: %%SpaceName%%

3) StarupScript에서 참조하는 be-engine.tra에 다음의 값을 추가: clientVar.변수이름

java.property.tibco.clientVar.SpaceName=%spaceName%

4) startupScript에 --propVar옵션 추가

- 1번 Startup Script : be-engine -n cdrINF-2 -c CDRProcessingCDD.cdd -u default testApp.ear --propVar spaceName=FileInfo1

- 2번 Startup Script :  be-engine -n cdrINF-2 -c CDRProcessingCDD.cdd -u default testApp.ear --propVar spaceName=FileInfo2

실제 실행 시, 

첫 번째, Inference Engine의 로그에서는 다음의 내용을

//----------------------------------------- 

2015 Apr 09 13:31:54:934 GMT +9 cdrINF-1 Info [main] - [driver.as] GetFileInfo connecting to space 'FileInfo1'

2015 Apr 09 13:31:54:935 GMT +9 cdrINF-1 Info [main] - [driver.as] GetFileInfo successfully connected to space 'FileInfo1'

//--------------------------------------------

두 번째, Inference Engine의 로그에서는 다음의 내용을 확인할 수 있다.

//--------------------------------------------

2015 Apr 09 13:31:57:614 GMT +9 cdrINF-2 Info [main] - [driver.as] GetFileInfo starting space 'FileInfo2' 

2015 Apr 09 13:31:57:623 GMT +9 cdrINF-2 Info [main] - [driver.as] GetFileInfo started space 'FileInfo2'

//--------------------------------------------


참고: TIBCO Admin으로 propVar를 등록하기 위해서는

1) {BE_HOME}/bin/be-engine.tra에  

java.property.tibco.clientVar.SpaceName=%s_name%

java.property.tibco.clientVar.MemberName=%m_name%

2) SH 파일에 --propVar m_name=filePollingPU-1

주의: TIBCO Admin으로 EAR를 배포한 경우, 실행 스크립트에 추가한, --propVar 옵션이 변경됨.