연계 특성 파일
연계 특성 파일은 원격 프로그램을 호출하는 방법에 대한 세부사항을 제공하기 위해 Java™ 런타임 시 사용되는 텍스트 파일입니다.
- callLink 요소 type 특성의 값은 remoteCall 또는 ejbCall이고
- callLink 요소 remoteBind 특성의 값은 runtime입니다.
연계 특성 파일은 직접 작성할 수 있지만 이전에 설명한 설정에 추가로 사용자가 genProperties 빌드 디스크립터 옵션을 GLOBAL 또는 PROGRAM으로 설정하여 Java 프로그램 또는 랩퍼를 생성하는 경우 EGL이 파일을 생성합니다.
런타임 시 연계 특성 파일 식별 방법
- Java 프로그램이 cso.linkageOptions.LO Java 런타임 특성을 확인합니다.
여기서 LO는 생성에 사용되는 연계 옵션 파트의
이름입니다. 해당 특성이 없으면 EGL 런타임 코드가 LO.properties라는
연계 특성 파일을 찾습니다. 여기서도 LO는 생성에
사용되는 연계 옵션 파트의 이름입니다.
이 경우 EGL 런타임 코드가 연계 특성 파일을 찾지만 해당 파일을 찾을 수 없으면 해당 파일을 사용해야 하는 첫 번째 call문에서 오류가 발생합니다. 결과에 대한 세부사항은 예외 처리를 참조하십시오.
- Java 랩퍼가
프로그램 오브젝트 변수 callOptions에서 CSOCallOptions 유형의
연계 특성 파일의 이름을 저장합니다. 파일의 생성된 이름은 LO.properties입니다.
여기서 LO는 생성에 사용되는 연계 옵션 파트의 이름입니다.
이 경우 JVM(Java Virtual Machine)이 연계 특성 파일을 찾지만 해당 파일을 찾을 수 없으면 프로그램 오브젝트에 CSOException 유형의 예외가 발생합니다.
연계 특성 파일 배치
연계 특성 파일은 해당 파일을 사용하는 Java 프로그램과 동일한 프로젝트에 있어야 합니다. 해당 파일이 애플리케이션의 최상위 레벨 디렉토리에 있는 경우에는 cso.linkageOptions.LO Java 런타임 특성을 파일 이름(경로 정보 제외)으로 설정하십시오. 해당 파일이 애플리케이션의 최상위 레벨 디렉토리 아래에 있는 경우에는 애플리케이션이 Windows 플랫폼에서 실행 중인 경우에도 최상위 레벨 디렉토리에서 시작하고 각 레벨에 대해 슬래시(/)를 포함하는 경로를 사용하십시오.
J2EE 프로젝트를 개발하는 경우 최상위 레벨 디렉토리는 모듈이 상주하는 프로젝트의 appClientModule, ejbModule 또는 WebContent 디렉토리에 해당합니다. Java 프로젝트를 개발하는 경우에는 최상위 레벨 디렉토리가 프로젝트 디렉토리입니다.
연계 특성 파일의 형식
런타임 중에 사용된 것처럼 연계 특성 파일은 사용자가 배치하는 생성된 Java 프로그램 또는 랩퍼로부터의 각 호출을 처리할 일련의 항목을 포함하고 있습니다.
- remoteBind 특성은 반드시 runtime이어야 하며 무시됩니다.
- 생성 시 로컬 호출에 대한 연계를 설정해야 하므로 type 특성은 localCall일 수 없습니다.
cso.serverLinkage 항목
cso.serverLinkage.programName.property=value
- programName
- 대부분의 경우 호출된 프로그램의 이름입니다. 호출된 프로그램이
EGL에 의해 생성되는 경우 사용자가 지정하는 이름은 프로그램 파트에
고유한 alias 특성의 값이 아니라 프로그램 파트의 이름입니다.
call문에 linkageKey 특성이 포함되면 특별한 경우가 적용됩니다. 예제 call문은 다음과 같습니다.
call "MyProgram01" {linkageKey = "MyProgram02"};이 상황에서 연계 특성 파일의 programName 규정자를 linkageKey 값(이 경우 MyProgram02)으로 설정하십시오.
- property
- Java 프로그램에 적합한 특성입니다(remoteBind 및 pgmName 특성 제외). 세부사항은 callLink 요소를 참조하십시오. alias가 아니라 alias 특성에 대한 externalName을 사용하십시오.
- value
- 지정된 특성에 대해 유효한 값입니다.
cso.serverLinkage.Xyz.type=remoteCall
cso.serverLinkage.Xyz.remoteComType=TCPIP
cso.serverLinkage.Xyz.remotePgmType=EGL
cso.serverLinkage.Xyz.externalName=xxx
cso.serverLinkage.Xyz.package=xxx
cso.serverLinkage.Xyz.conversionTable=xxx
cso.serverLinkage.Xyz.location=xxx
cso.serverLinkage.Xyz.serverID=xxx
cso.serverLinkage.Xyz.parmForm=COMMDATA
cso.serverLinkage.Xyz.providerURL=xxx
cso.serverLinkage.Xyz.luwControl=CLIENT
리터럴 값 TCPIP, EGL 등은 대소문자를 구분하지 않으므로 올바른 데이터의 예입니다.
cso.application 항목
몇몇 호출된 프로그램을 참조하는 일련의 cso.serverLinkage 항목을 작성하려면 해당 항목 앞에 cso.application 유형의 항목을 하나 이상 추가하십시오. 이 경우 목적은 단일 애플리케이션 이름을 여러 프로그램 이름과 일치시키는 것입니다. 후속 cso.serverLinkage 항목에서는 programName 대신 애플리케이션 이름을 사용합니다. 그런 다음 Java 런타임 시 해당 cso.serverLinkage 항목이 몇몇 프로그램에 대한 호출을 처리합니다.
cso.application.wildProgramName=appName
- wildProgramName
- 올바른 이름, 별표 또는 별표가 뒤따라오는 올바른 이름의 시작 부분입니다.
별표는 하나 이상의 문자와 동등한 와일드카드이며 이름 세트를 식별하는
방법을 제공합니다. 두 가지 특별한 경우가 적용됩니다.
- linkageKey 특성이 call문에 있으면 wildProgramName에 대해 테스트되는 값이 linkageKey 특성의 값입니다.
- linkageKey 특성이 call문에 없고 호출된 프로그램이 EGL에 의해 생성되는 경우에는 프로그램 파트에 대한 alias 특성의 값이 아니라 wildProgramName에 대해 테스트되는 값이 프로그램 파트의 이름입니다.
- appName
- EGL 이름 지정 규칙을 준수하는 일련의 문자입니다. appName의 값은 후속 cso.serverLinkage 항목에서 사용됩니다.
cso.application.Xyz*=myApp
cso.serverLinkage.myApp.type=remoteCall
cso.serverLinkage.myApp.remoteComType=TCPIP
cso.serverLinkage.myApp.remotePgmType=EGL
cso.serverLinkage.myApp.externalName=xxx
cso.serverLinkage.myApp.package=xxx
cso.serverLinkage.myApp.conversionTable=xxx
cso.serverLinkage.myApp.location=xxx
cso.serverLinkage.myApp.serverID=xxx
cso.serverLinkage.myApp.parmForm=COMMDATA
cso.serverLinkage.myApp.luwControl=CLIENT
cso.application.Abc=myApp
cso.application.Def=myApp
cso.application.Xyz=myApp
cso.serverLinkage.myApp.type=remoteCall
cso.serverLinkage.myApp.remoteComType=TCPIP
cso.serverLinkage.myApp.remotePgmType=EGL
cso.serverLinkage.myApp.externalName=xxx
cso.serverLinkage.myApp.package=xxx
cso.serverLinkage.myApp.conversionTable=xxx
cso.serverLinkage.myApp.location=xxx
cso.serverLinkage.myApp.serverID=xxx
cso.serverLinkage.myApp.parmForm=COMMDATA
cso.serverLinkage.myApp.luwControl=CLIENT
하나의 프로그램에 대해 여러 cso.application 항목이 유효한 경우 EGL은 적용되는 첫 번째 항목을 사용합니다.
EGL 언어 참조서의 "이름 지정 규칙" 및 "예외 처리" 주제에서 자세한 정보를 찾을 수 있습니다.