CICS-Java 응용 프로그램 시작 - (1) 간단한 예시 응용 프로그램 실행
입문
CICS Transaction Server forz/OS의 응용 프로그램 개발 언어는 대부분 COBOL, PL/I, Asembler 부근을 사용하지만 오래전부터 자바를 지원해 왔다.즉, CICS를 Java로 쓸 수 있는 어플리케이션입니다.EXEC CICS 명령에 해당하는 Java 클래스 라이브러리(JCICS)를 제공하기 때문에 Java 방법으로 EXEC CICS LINK나 EXEC CICS START 같은 조작을 할 수 있다.
여기서 우리는 CICS-Java 응용 프로그램의 샘플(OSGi 표준)을 실제로 이동하려고 시도할 것이다.
※ 참고로 CICS에서 JavaEE 응용 프로그램을 실행할 수도 있습니다.
참조: CICS에서 JavaEE 애플리케이션 실행
관련 문장
CICS-Java 응용 프로그램 시작 - (1) 간단한 예시 응용 프로그램 실행
CICS-Java 애플리케이션 시작 - (2) Maven을 통한 구축 관리
CICS-Java 애플리케이션 시작 - (3) Gradle 구축 관리
CICS-Java 응용 프로그램 이동 - (4) Spring Boot 응용 프로그램
CICS-Java 애플리케이션 시작 - (5) JCICSX 사용
환경 정보
개발 환경
Windows10
CICS Explorer V5.6(Beta)
운영 환경
z/OS V2.4
CICS Transaction Server for z/OS V5.6(Beta)
CICS에 대한 Java 지원 정보
CICS의 Java 지원을 구성합니다.
CICS는 OSGi에 맞는 Java 애플리케이션을 지원합니다.
Java에 설치된 CICS 응용 프로그램을 시작할 때 다음 절차를 밟아야 합니다.
런타임 준비
Java 응용 프로그램을 실행하려면 대상 CICS 영역에서 JVMSERVER라는 리소스 정의를 만들고 Java 실행 환경을 준비하십시오.
개발
개발 작업은 Eclipse 기반의 무료 도구인 CICS Explorer에서 진행됩니다.
import는 JCICS의 도서관의 자바 응용 프로그램을 제작하여 OSGi로 묶음(jar의 확장) 형식으로 포장하였다.(참고: OSGI 개요 이때 CICS 프로그램으로 식별하고자 하는 시작 논리는main 함수를 통해 실현되어야 한다.
여러 OSGi Bundle을 CICS 번들 단위로 묶습니다.
※ CICS에서도 Liberty를 실행할 수 있고, JavaEE 응용 프로그램도 CICS의 Liberty에서 실행할 수 있습니다.이런 상황에서 JavaEE 응용 프로그램은 WAR과 EAR 단위로 포장되지만, 이런 상황에서 그것들을'CICS 묶음'단위로 포장하는 것도 마찬가지다.
배치
CICS 번들을 운영 환경의 z/OS의 USS로 전송합니다.
CICS 영역의 리소스 정의에서 BUNDLE 정의를 작성하여 USS에서 전송되는 CICS 번들(Java 응용 프로그램)을 식별합니다.
CICS 영역의 리소스 정의에 PROGRAM 정의를 만들고 BUNDLE에 포함된 Java 클래스를 CICS 프로그램으로 등록합니다.
각 CICS 리소스 정의와 엔티티의 연관성은 다음과 같습니다.
사전 준비
개발 환경
다음 내용을 참조하여 Eclipse 기반 도구인 CICS Explorer를 다운로드하고 설정합니다.
참조: Downloading and starting CICS Explorer
※ 이 도구는 CICS 사용자가 무료로 사용할 수 있는 도구입니다.
호스트 연결 정의로서 대상 CICS에서 실행되는 z/OS에 대해 FTP 연결을 구성합니다.
운영 환경
실행 예제에 사용할 CICS 영역을 준비합니다.
여기서 CT56B4A1이라는 영역을 사용합니다.
JVMserver라는 리소스를 추가하여 Java 응용 프로그램을 실행합니다.
JVM 구성 파일
USS에서 JVM 구성 파일을 준비합니다.(JVMserServer의 속성은 실제로 이 USS의 파일에 지정됩니다. JVMSERVER 자원 정의는 이 JVM 구성 파일에 파일 이름을 지정합니다.)
샘플을 제공했기 때문에 복사해서 사용합니다.
/var/cicsts/cicsts56/CT56B4A1/JVMprofiles 디렉터리, 저기/usr/lpp/cicsts/cicsts56/JVMprofiles/DFHOSGI.jvmprofile(CICS 배포 디렉터리에 있는 OSGi의 예시 정의)를 복사합니다.
환경에 맞게 맞춤형으로 구성합니다.
DFHOSGI.jvmprofile 발췌JAVA_HOME=/usr/lpp/java/J8.0_64/
WORK_DIR=/var/cicsts/cicsts56/CT56B4A1/work
-Xms32M
-Xmx256M
-Xmso1M
-Xgcpolicy:gencon
-Xscmx256M
-Xshareclasses:name=cicsts%g,groupAccess,nonfatal
-Xtune:virtualized
-Dcom.ibm.tools.attach.enable=no
_BPXK_DISABLE_SHLIB=YES
SIT
위의 배치 속성 파일의 디렉토리를 SIT 매개변수 JVMSPROFILEDIR로 지정합니다.JVMPROFILEDIR=/var/cicsts/cicsts56/CT56B4A1/JVMProfiles
변경 사항을 반영하기 위해 영역을 다시 시작합니다.
JVMserver 정의
JVMSERVER 리소스 정의를 준비합니다.
제품 제공 DFH$OSGI 그룹의 JVMSERVER 정의 "DFHJVMS"를 적절한 그룹에 복사하여 설치합니다.OBJECT CHARACTERISTICS CICS RELEASE = 0730
CEDA View JVmserver( DFHJVMS )
JVmserver : DFHJVMS
Group : TAG$OSGI
DEScription : CICS JVM server to run OSGi samples
Status : Enabled Enabled | Disabled
Jvmprofile : DFHOSGI (Mixed Case)
Lerunopts : DFHAXRO
Threadlimit : 015 1-256
DEFINITION SIGNATURE
DEFinetime : 06/02/20 17:28:17
CHANGETime : 06/02/20 17:28:17
CHANGEUsrid : CICSUSER
CHANGEAGEnt : CSDApi CSDApi | CSDBatch
CHANGEAGRel : 0730
※ Jvmprofile: DFHOSGI, SIT의 JVMSPROFILEDIR 지정 디렉토리에 있는 DFHOSGI입니다.즉, jvmprofile이라는 파일이 JVM 속성 파일로 사용됩니다.
CEMT I JVMSERVER에서 Enable이면 OK.I JVMS
STATUS: RESULTS - OVERTYPE TO MODIFY
Jvm(DFHJVMS ) Ena Prf(DFHOSGI ) Ler(DFHAXRO )
Threadc(000) Threadl( 015 ) Cur(9965280)
bundle 파일 설정용 디렉터리
USS에 bundle 파일을 배치하는 디렉터리를 만듭니다.
여기에서 /var/cicsts/cicsts56/CT56B4A1/bundles/
라는 디렉터리를 만들 것입니다.
샘플 응용 프로그램 실행 확인
참조: Java samples: JCICS examples
샘플 항목 만들기
CICS Explorer 메뉴에서 창 - 설정을 선택하여 설정 창을 엽니다.
플러그인 개발 - 대상 플랫폼을 선택하고 "추가"를 누르십시오.
템플릿에서 원하는 CICS 버전을 선택합니다.여기서 CICS TS V5.6을 선택합니다.
추가된 CICS TS 5.6을 확인하고 적용합니다.
Java 원근 메뉴에서 파일 선택 - 새로 만들기 - 기타
CICS 번들 OSGi 샘플 선택
계속하다
바로 끝내다
예제 항목이 생성됩니다.
샘플 내용 확인
이 프로젝트는 가장 간단한 Hello World의 출처를 보기 위해 샘플 프로그램을 제공했다.
(com.ibm.cics.server.examples.hello 프로젝트(OSGi 번들)에 포함된 examples.hello.HelloCICSWorld.java)
HelloCICSWorld.javapackage examples.hello;
import com.ibm.cics.server.CommAreaHolder;
import com.ibm.cics.server.Task;
public class HelloCICSWorld
{
public static void main(CommAreaHolder CAH)
{
Task t = Task.getTask();
if ( t == null )
System.err.println("HelloCICSWorld example: Can't get Task");
else
t.out.println("Hello from a Java CICS application");
}
}
JCICS의com.ibm.cics.server.작업을 사용하고 있습니다.
Task.out은 터미널 출력의 PrintWriter를 의미하기 때문에 터미널에 간단한 문자열을 보내는 논리입니다.
참조: Javadoc - Task
이 프로젝트의 META-INF/MANIFESt입니다.미드필드 확인해봐.Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Hello Plug-in
Bundle-SymbolicName: com.ibm.cics.server.examples.hello
Bundle-Version: 1.0.0
Bundle-RequiredExecutionEnvironment: J2SE-1.4,
J2SE-1.5,
JavaSE-1.6
Import-Package: com.ibm.cics.server;version="[1.0.0,2.0.0)"
CICS-MainClass: examples.hello.HelloCICSWorld, examples.hello.HelloWorld
CICS-MainClass의 지정에서main 방법이 있는 클래스를 지정합니다.여기서 지정한 클래스의main 방법은 CICS 프로그램으로 식별할 수 있습니다.
com.ibm.cics.server.examples.bundle이라는 CICS 번들 항목을 확인합니다.
META-INF/cics.CICS 번들 목록 편집기에서 xml을 열면 위의 OSGi 번들을 포함할 수 있습니다.
com.ibm.cics.server.examples.hello.osgibundle를 엽니다.
여기에 지정한 jvmserver 값을 확인하십시오.실행할 JVMSERVER 정의 이름을 지정해야 합니다.미리 준비된 곳에서 만든 JVMSERVER 정의의 이름을 기반으로 수정합니다.동일한 이름의 복제 예제 정의의 경우 DFHJVMS로 간주되므로 변경할 필요가 없습니다.
CICS에 애플리케이션 배포
CICS 배포는 CICS 번들 단위로 이루어집니다.
com.ibm.cics.server.examples.bundle 항목을 마우스 오른쪽 단추로 클릭하고 번들 항목을 z/OS UNIX 파일 시스템으로 내보내려면 누르십시오
파일 시스템으로 내보낼 특정 위치를 선택한 다음
이전에 만든bundle 파일 설정을 디렉터리로 지정한 후 종료
확인 메시지
번들 파일이 USS에 배치되었습니다.
CICS에서 제공하는 DFH$OSGI 그룹의 각 리소스를 적절한 그룹으로 복사합니다.
사용자 정의 BUNDLE은 "DFH$OSGB"를 정의하고 BUNDLEDIR 값을 번들 파일이 배치된 디렉토리 /var/cicsts/cicsts56/CT56B4A1/bundles/com.ibm.cics.server.examples.bundle_1.0.0
로 바꿉니다.OVERTYPE TO MODIFY CICS RELEASE = 0730
CEDA ALter Bundle( DFH$OSGB )
Bundle : DFH$OSGB
Group : TAG$OSGI
DEScription ==> CICS bundle containing OSGi sample bundles
Status ==> Enabled Enabled | Disabled
BUndledir ==> /var/cicsts/cicsts56/CT56B4A1/bundles/com.ibm.cics.server.
(Mixed Case) ==> examples.bundle_1.0.0
==>
==>
==>
BAsescope ==>
(Mixed Case) ==>
==>
==>
==>
DEFINITION SIGNATURE
DEFinetime : 06/02/20 18:27:37
CHANGETime : 06/02/20 18:27:37
동적 관찰을 할 때의 축심점.I BUNDLE
STATUS: RESULTS - OVERTYPE TO MODIFY
Bun(DFH$OSGB) Ena Par(00003) Tar(00003)
Enabledc(00003) Bundlei(com.ibm.cics.server.exampl)
참고로 CICS Explorer에서 자원 정의를 확인하면 BUNDLE 정의뿐만 아니라 BUNDLE에 포함된 BUNDLEPARTS도 확인할 수 있습니다.
예제 실행
이번에 Hello World의 예시를 실행하기 때문에 이 예시와 관련된 자원 정의를 추가로 설치합니다.
참조: Running the Hello World example
프로그램은 "DFJ$JHE2"와 사무 정의 "JHE2"를 정의합니다.실체인 Java 프로그램은 먼저 BUNDLE로 설치됩니다.
모두 DFH$OSGI에 제공되므로 복제 후 직접 설치합니다.
참고로 DFH$JHE2의 정의를 보겠습니다.OBJECT CHARACTERISTICS CICS RELEASE = 0730
CEDA View PROGram( DFJ$JHE2 )
PROGram : DFJ$JHE2
Group : TAG$OSGI
DEScription : OSGi Hello CICS world sample program
Language : CObol | Assembler | Le370 | C | Pli
RELoad : No No | Yes
RESident : No No | Yes
USAge : Normal Normal | Transient
USElpacopy : No No | Yes
Status : Enabled Enabled | Disabled
RSl : 00 0-24 | Public
CEdf : Yes Yes | No
DAtalocation : Any Below | Any
EXECKey : Cics User | Cics
COncurrency : Required Quasirent | Threadsafe | Required
Api : Cicsapi Cicsapi | Openapi
REMOTE ATTRIBUTES
DYnamic : No No | Yes
REMOTESystem :
REMOTEName :
Transid :
EXECUtionset : Fullapi Fullapi | Dplsubset
JVM ATTRIBUTES
JVM : Yes No | Yes
JVMClass : examples.hello.HelloCICSWorld
(Mixed Case) :
:
:
:
JVMServer : DFHJVMS
JVMProfile : (Mixed Case)
JAVA PROGRAM OBJECT ATTRIBUTES
Hotpool : No No | Yes
...
이렇게 JVM: Yes, JVMClass:examples.hello.HelloCICSWorld, JVMser: DFHJVMS(BUNDLEPARTS에 설치된 클래스)를 지정합니다. ※사전 준비 중에 생성된 JVMserver 이름이 다른 경우 그에 따라 적절히 수정합니다.
이렇게 하면 자원이 다 갖추어지니 내가 실행해 보겠다.
CICS 터미널에서 JHE2 트랜잭션을 수행합니다.
Hello from a Java CICS application이라는 Java 프로그램에서 출력된 문자열을 표시합니다!
이로써 Java가 CICS 프로그램으로 실행되는지 확인합니다.
Reference
이 문제에 관하여(CICS-Java 응용 프로그램 시작 - (1) 간단한 예시 응용 프로그램 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tomotagwork/items/aac10ad84fe83d88bb5f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
개발 환경
Windows10
CICS Explorer V5.6(Beta)
운영 환경
z/OS V2.4
CICS Transaction Server for z/OS V5.6(Beta)
CICS에 대한 Java 지원 정보
CICS의 Java 지원을 구성합니다.
CICS는 OSGi에 맞는 Java 애플리케이션을 지원합니다.
Java에 설치된 CICS 응용 프로그램을 시작할 때 다음 절차를 밟아야 합니다.
런타임 준비
Java 응용 프로그램을 실행하려면 대상 CICS 영역에서 JVMSERVER라는 리소스 정의를 만들고 Java 실행 환경을 준비하십시오.
개발
개발 작업은 Eclipse 기반의 무료 도구인 CICS Explorer에서 진행됩니다.
import는 JCICS의 도서관의 자바 응용 프로그램을 제작하여 OSGi로 묶음(jar의 확장) 형식으로 포장하였다.(참고: OSGI 개요 이때 CICS 프로그램으로 식별하고자 하는 시작 논리는main 함수를 통해 실현되어야 한다.
여러 OSGi Bundle을 CICS 번들 단위로 묶습니다.
※ CICS에서도 Liberty를 실행할 수 있고, JavaEE 응용 프로그램도 CICS의 Liberty에서 실행할 수 있습니다.이런 상황에서 JavaEE 응용 프로그램은 WAR과 EAR 단위로 포장되지만, 이런 상황에서 그것들을'CICS 묶음'단위로 포장하는 것도 마찬가지다.
배치
CICS 번들을 운영 환경의 z/OS의 USS로 전송합니다.
CICS 영역의 리소스 정의에서 BUNDLE 정의를 작성하여 USS에서 전송되는 CICS 번들(Java 응용 프로그램)을 식별합니다.
CICS 영역의 리소스 정의에 PROGRAM 정의를 만들고 BUNDLE에 포함된 Java 클래스를 CICS 프로그램으로 등록합니다.
각 CICS 리소스 정의와 엔티티의 연관성은 다음과 같습니다.
사전 준비
개발 환경
다음 내용을 참조하여 Eclipse 기반 도구인 CICS Explorer를 다운로드하고 설정합니다.
참조: Downloading and starting CICS Explorer
※ 이 도구는 CICS 사용자가 무료로 사용할 수 있는 도구입니다.
호스트 연결 정의로서 대상 CICS에서 실행되는 z/OS에 대해 FTP 연결을 구성합니다.
운영 환경
실행 예제에 사용할 CICS 영역을 준비합니다.
여기서 CT56B4A1이라는 영역을 사용합니다.
JVMserver라는 리소스를 추가하여 Java 응용 프로그램을 실행합니다.
JVM 구성 파일
USS에서 JVM 구성 파일을 준비합니다.(JVMserServer의 속성은 실제로 이 USS의 파일에 지정됩니다. JVMSERVER 자원 정의는 이 JVM 구성 파일에 파일 이름을 지정합니다.)
샘플을 제공했기 때문에 복사해서 사용합니다.
/var/cicsts/cicsts56/CT56B4A1/JVMprofiles 디렉터리, 저기/usr/lpp/cicsts/cicsts56/JVMprofiles/DFHOSGI.jvmprofile(CICS 배포 디렉터리에 있는 OSGi의 예시 정의)를 복사합니다.
환경에 맞게 맞춤형으로 구성합니다.
DFHOSGI.jvmprofile 발췌JAVA_HOME=/usr/lpp/java/J8.0_64/
WORK_DIR=/var/cicsts/cicsts56/CT56B4A1/work
-Xms32M
-Xmx256M
-Xmso1M
-Xgcpolicy:gencon
-Xscmx256M
-Xshareclasses:name=cicsts%g,groupAccess,nonfatal
-Xtune:virtualized
-Dcom.ibm.tools.attach.enable=no
_BPXK_DISABLE_SHLIB=YES
SIT
위의 배치 속성 파일의 디렉토리를 SIT 매개변수 JVMSPROFILEDIR로 지정합니다.JVMPROFILEDIR=/var/cicsts/cicsts56/CT56B4A1/JVMProfiles
변경 사항을 반영하기 위해 영역을 다시 시작합니다.
JVMserver 정의
JVMSERVER 리소스 정의를 준비합니다.
제품 제공 DFH$OSGI 그룹의 JVMSERVER 정의 "DFHJVMS"를 적절한 그룹에 복사하여 설치합니다.OBJECT CHARACTERISTICS CICS RELEASE = 0730
CEDA View JVmserver( DFHJVMS )
JVmserver : DFHJVMS
Group : TAG$OSGI
DEScription : CICS JVM server to run OSGi samples
Status : Enabled Enabled | Disabled
Jvmprofile : DFHOSGI (Mixed Case)
Lerunopts : DFHAXRO
Threadlimit : 015 1-256
DEFINITION SIGNATURE
DEFinetime : 06/02/20 17:28:17
CHANGETime : 06/02/20 17:28:17
CHANGEUsrid : CICSUSER
CHANGEAGEnt : CSDApi CSDApi | CSDBatch
CHANGEAGRel : 0730
※ Jvmprofile: DFHOSGI, SIT의 JVMSPROFILEDIR 지정 디렉토리에 있는 DFHOSGI입니다.즉, jvmprofile이라는 파일이 JVM 속성 파일로 사용됩니다.
CEMT I JVMSERVER에서 Enable이면 OK.I JVMS
STATUS: RESULTS - OVERTYPE TO MODIFY
Jvm(DFHJVMS ) Ena Prf(DFHOSGI ) Ler(DFHAXRO )
Threadc(000) Threadl( 015 ) Cur(9965280)
bundle 파일 설정용 디렉터리
USS에 bundle 파일을 배치하는 디렉터리를 만듭니다.
여기에서 /var/cicsts/cicsts56/CT56B4A1/bundles/
라는 디렉터리를 만들 것입니다.
샘플 응용 프로그램 실행 확인
참조: Java samples: JCICS examples
샘플 항목 만들기
CICS Explorer 메뉴에서 창 - 설정을 선택하여 설정 창을 엽니다.
플러그인 개발 - 대상 플랫폼을 선택하고 "추가"를 누르십시오.
템플릿에서 원하는 CICS 버전을 선택합니다.여기서 CICS TS V5.6을 선택합니다.
추가된 CICS TS 5.6을 확인하고 적용합니다.
Java 원근 메뉴에서 파일 선택 - 새로 만들기 - 기타
CICS 번들 OSGi 샘플 선택
계속하다
바로 끝내다
예제 항목이 생성됩니다.
샘플 내용 확인
이 프로젝트는 가장 간단한 Hello World의 출처를 보기 위해 샘플 프로그램을 제공했다.
(com.ibm.cics.server.examples.hello 프로젝트(OSGi 번들)에 포함된 examples.hello.HelloCICSWorld.java)
HelloCICSWorld.javapackage examples.hello;
import com.ibm.cics.server.CommAreaHolder;
import com.ibm.cics.server.Task;
public class HelloCICSWorld
{
public static void main(CommAreaHolder CAH)
{
Task t = Task.getTask();
if ( t == null )
System.err.println("HelloCICSWorld example: Can't get Task");
else
t.out.println("Hello from a Java CICS application");
}
}
JCICS의com.ibm.cics.server.작업을 사용하고 있습니다.
Task.out은 터미널 출력의 PrintWriter를 의미하기 때문에 터미널에 간단한 문자열을 보내는 논리입니다.
참조: Javadoc - Task
이 프로젝트의 META-INF/MANIFESt입니다.미드필드 확인해봐.Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Hello Plug-in
Bundle-SymbolicName: com.ibm.cics.server.examples.hello
Bundle-Version: 1.0.0
Bundle-RequiredExecutionEnvironment: J2SE-1.4,
J2SE-1.5,
JavaSE-1.6
Import-Package: com.ibm.cics.server;version="[1.0.0,2.0.0)"
CICS-MainClass: examples.hello.HelloCICSWorld, examples.hello.HelloWorld
CICS-MainClass의 지정에서main 방법이 있는 클래스를 지정합니다.여기서 지정한 클래스의main 방법은 CICS 프로그램으로 식별할 수 있습니다.
com.ibm.cics.server.examples.bundle이라는 CICS 번들 항목을 확인합니다.
META-INF/cics.CICS 번들 목록 편집기에서 xml을 열면 위의 OSGi 번들을 포함할 수 있습니다.
com.ibm.cics.server.examples.hello.osgibundle를 엽니다.
여기에 지정한 jvmserver 값을 확인하십시오.실행할 JVMSERVER 정의 이름을 지정해야 합니다.미리 준비된 곳에서 만든 JVMSERVER 정의의 이름을 기반으로 수정합니다.동일한 이름의 복제 예제 정의의 경우 DFHJVMS로 간주되므로 변경할 필요가 없습니다.
CICS에 애플리케이션 배포
CICS 배포는 CICS 번들 단위로 이루어집니다.
com.ibm.cics.server.examples.bundle 항목을 마우스 오른쪽 단추로 클릭하고 번들 항목을 z/OS UNIX 파일 시스템으로 내보내려면 누르십시오
파일 시스템으로 내보낼 특정 위치를 선택한 다음
이전에 만든bundle 파일 설정을 디렉터리로 지정한 후 종료
확인 메시지
번들 파일이 USS에 배치되었습니다.
CICS에서 제공하는 DFH$OSGI 그룹의 각 리소스를 적절한 그룹으로 복사합니다.
사용자 정의 BUNDLE은 "DFH$OSGB"를 정의하고 BUNDLEDIR 값을 번들 파일이 배치된 디렉토리 /var/cicsts/cicsts56/CT56B4A1/bundles/com.ibm.cics.server.examples.bundle_1.0.0
로 바꿉니다.OVERTYPE TO MODIFY CICS RELEASE = 0730
CEDA ALter Bundle( DFH$OSGB )
Bundle : DFH$OSGB
Group : TAG$OSGI
DEScription ==> CICS bundle containing OSGi sample bundles
Status ==> Enabled Enabled | Disabled
BUndledir ==> /var/cicsts/cicsts56/CT56B4A1/bundles/com.ibm.cics.server.
(Mixed Case) ==> examples.bundle_1.0.0
==>
==>
==>
BAsescope ==>
(Mixed Case) ==>
==>
==>
==>
DEFINITION SIGNATURE
DEFinetime : 06/02/20 18:27:37
CHANGETime : 06/02/20 18:27:37
동적 관찰을 할 때의 축심점.I BUNDLE
STATUS: RESULTS - OVERTYPE TO MODIFY
Bun(DFH$OSGB) Ena Par(00003) Tar(00003)
Enabledc(00003) Bundlei(com.ibm.cics.server.exampl)
참고로 CICS Explorer에서 자원 정의를 확인하면 BUNDLE 정의뿐만 아니라 BUNDLE에 포함된 BUNDLEPARTS도 확인할 수 있습니다.
예제 실행
이번에 Hello World의 예시를 실행하기 때문에 이 예시와 관련된 자원 정의를 추가로 설치합니다.
참조: Running the Hello World example
프로그램은 "DFJ$JHE2"와 사무 정의 "JHE2"를 정의합니다.실체인 Java 프로그램은 먼저 BUNDLE로 설치됩니다.
모두 DFH$OSGI에 제공되므로 복제 후 직접 설치합니다.
참고로 DFH$JHE2의 정의를 보겠습니다.OBJECT CHARACTERISTICS CICS RELEASE = 0730
CEDA View PROGram( DFJ$JHE2 )
PROGram : DFJ$JHE2
Group : TAG$OSGI
DEScription : OSGi Hello CICS world sample program
Language : CObol | Assembler | Le370 | C | Pli
RELoad : No No | Yes
RESident : No No | Yes
USAge : Normal Normal | Transient
USElpacopy : No No | Yes
Status : Enabled Enabled | Disabled
RSl : 00 0-24 | Public
CEdf : Yes Yes | No
DAtalocation : Any Below | Any
EXECKey : Cics User | Cics
COncurrency : Required Quasirent | Threadsafe | Required
Api : Cicsapi Cicsapi | Openapi
REMOTE ATTRIBUTES
DYnamic : No No | Yes
REMOTESystem :
REMOTEName :
Transid :
EXECUtionset : Fullapi Fullapi | Dplsubset
JVM ATTRIBUTES
JVM : Yes No | Yes
JVMClass : examples.hello.HelloCICSWorld
(Mixed Case) :
:
:
:
JVMServer : DFHJVMS
JVMProfile : (Mixed Case)
JAVA PROGRAM OBJECT ATTRIBUTES
Hotpool : No No | Yes
...
이렇게 JVM: Yes, JVMClass:examples.hello.HelloCICSWorld, JVMser: DFHJVMS(BUNDLEPARTS에 설치된 클래스)를 지정합니다. ※사전 준비 중에 생성된 JVMserver 이름이 다른 경우 그에 따라 적절히 수정합니다.
이렇게 하면 자원이 다 갖추어지니 내가 실행해 보겠다.
CICS 터미널에서 JHE2 트랜잭션을 수행합니다.
Hello from a Java CICS application이라는 Java 프로그램에서 출력된 문자열을 표시합니다!
이로써 Java가 CICS 프로그램으로 실행되는지 확인합니다.
Reference
이 문제에 관하여(CICS-Java 응용 프로그램 시작 - (1) 간단한 예시 응용 프로그램 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tomotagwork/items/aac10ad84fe83d88bb5f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
개발 환경
다음 내용을 참조하여 Eclipse 기반 도구인 CICS Explorer를 다운로드하고 설정합니다.
참조: Downloading and starting CICS Explorer
※ 이 도구는 CICS 사용자가 무료로 사용할 수 있는 도구입니다.
호스트 연결 정의로서 대상 CICS에서 실행되는 z/OS에 대해 FTP 연결을 구성합니다.
운영 환경
실행 예제에 사용할 CICS 영역을 준비합니다.
여기서 CT56B4A1이라는 영역을 사용합니다.
JVMserver라는 리소스를 추가하여 Java 응용 프로그램을 실행합니다.
JVM 구성 파일
USS에서 JVM 구성 파일을 준비합니다.(JVMserServer의 속성은 실제로 이 USS의 파일에 지정됩니다. JVMSERVER 자원 정의는 이 JVM 구성 파일에 파일 이름을 지정합니다.)
샘플을 제공했기 때문에 복사해서 사용합니다.
/var/cicsts/cicsts56/CT56B4A1/JVMprofiles 디렉터리, 저기/usr/lpp/cicsts/cicsts56/JVMprofiles/DFHOSGI.jvmprofile(CICS 배포 디렉터리에 있는 OSGi의 예시 정의)를 복사합니다.
환경에 맞게 맞춤형으로 구성합니다.
DFHOSGI.jvmprofile 발췌
JAVA_HOME=/usr/lpp/java/J8.0_64/
WORK_DIR=/var/cicsts/cicsts56/CT56B4A1/work
-Xms32M
-Xmx256M
-Xmso1M
-Xgcpolicy:gencon
-Xscmx256M
-Xshareclasses:name=cicsts%g,groupAccess,nonfatal
-Xtune:virtualized
-Dcom.ibm.tools.attach.enable=no
_BPXK_DISABLE_SHLIB=YES
SIT
위의 배치 속성 파일의 디렉토리를 SIT 매개변수 JVMSPROFILEDIR로 지정합니다.
JVMPROFILEDIR=/var/cicsts/cicsts56/CT56B4A1/JVMProfiles
변경 사항을 반영하기 위해 영역을 다시 시작합니다.JVMserver 정의
JVMSERVER 리소스 정의를 준비합니다.
제품 제공 DFH$OSGI 그룹의 JVMSERVER 정의 "DFHJVMS"를 적절한 그룹에 복사하여 설치합니다.
OBJECT CHARACTERISTICS CICS RELEASE = 0730
CEDA View JVmserver( DFHJVMS )
JVmserver : DFHJVMS
Group : TAG$OSGI
DEScription : CICS JVM server to run OSGi samples
Status : Enabled Enabled | Disabled
Jvmprofile : DFHOSGI (Mixed Case)
Lerunopts : DFHAXRO
Threadlimit : 015 1-256
DEFINITION SIGNATURE
DEFinetime : 06/02/20 17:28:17
CHANGETime : 06/02/20 17:28:17
CHANGEUsrid : CICSUSER
CHANGEAGEnt : CSDApi CSDApi | CSDBatch
CHANGEAGRel : 0730
※ Jvmprofile: DFHOSGI, SIT의 JVMSPROFILEDIR 지정 디렉토리에 있는 DFHOSGI입니다.즉, jvmprofile이라는 파일이 JVM 속성 파일로 사용됩니다.CEMT I JVMSERVER에서 Enable이면 OK.
I JVMS
STATUS: RESULTS - OVERTYPE TO MODIFY
Jvm(DFHJVMS ) Ena Prf(DFHOSGI ) Ler(DFHAXRO )
Threadc(000) Threadl( 015 ) Cur(9965280)
bundle 파일 설정용 디렉터리
USS에 bundle 파일을 배치하는 디렉터리를 만듭니다.
여기에서
/var/cicsts/cicsts56/CT56B4A1/bundles/
라는 디렉터리를 만들 것입니다.샘플 응용 프로그램 실행 확인
참조: Java samples: JCICS examples
샘플 항목 만들기
CICS Explorer 메뉴에서 창 - 설정을 선택하여 설정 창을 엽니다.
플러그인 개발 - 대상 플랫폼을 선택하고 "추가"를 누르십시오.
템플릿에서 원하는 CICS 버전을 선택합니다.여기서 CICS TS V5.6을 선택합니다.
추가된 CICS TS 5.6을 확인하고 적용합니다.
Java 원근 메뉴에서 파일 선택 - 새로 만들기 - 기타
CICS 번들 OSGi 샘플 선택
계속하다
바로 끝내다
예제 항목이 생성됩니다.
샘플 내용 확인
이 프로젝트는 가장 간단한 Hello World의 출처를 보기 위해 샘플 프로그램을 제공했다.
(com.ibm.cics.server.examples.hello 프로젝트(OSGi 번들)에 포함된 examples.hello.HelloCICSWorld.java)
HelloCICSWorld.javapackage examples.hello;
import com.ibm.cics.server.CommAreaHolder;
import com.ibm.cics.server.Task;
public class HelloCICSWorld
{
public static void main(CommAreaHolder CAH)
{
Task t = Task.getTask();
if ( t == null )
System.err.println("HelloCICSWorld example: Can't get Task");
else
t.out.println("Hello from a Java CICS application");
}
}
JCICS의com.ibm.cics.server.작업을 사용하고 있습니다.
Task.out은 터미널 출력의 PrintWriter를 의미하기 때문에 터미널에 간단한 문자열을 보내는 논리입니다.
참조: Javadoc - Task
이 프로젝트의 META-INF/MANIFESt입니다.미드필드 확인해봐.Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Hello Plug-in
Bundle-SymbolicName: com.ibm.cics.server.examples.hello
Bundle-Version: 1.0.0
Bundle-RequiredExecutionEnvironment: J2SE-1.4,
J2SE-1.5,
JavaSE-1.6
Import-Package: com.ibm.cics.server;version="[1.0.0,2.0.0)"
CICS-MainClass: examples.hello.HelloCICSWorld, examples.hello.HelloWorld
CICS-MainClass의 지정에서main 방법이 있는 클래스를 지정합니다.여기서 지정한 클래스의main 방법은 CICS 프로그램으로 식별할 수 있습니다.
com.ibm.cics.server.examples.bundle이라는 CICS 번들 항목을 확인합니다.
META-INF/cics.CICS 번들 목록 편집기에서 xml을 열면 위의 OSGi 번들을 포함할 수 있습니다.
com.ibm.cics.server.examples.hello.osgibundle를 엽니다.
여기에 지정한 jvmserver 값을 확인하십시오.실행할 JVMSERVER 정의 이름을 지정해야 합니다.미리 준비된 곳에서 만든 JVMSERVER 정의의 이름을 기반으로 수정합니다.동일한 이름의 복제 예제 정의의 경우 DFHJVMS로 간주되므로 변경할 필요가 없습니다.
CICS에 애플리케이션 배포
CICS 배포는 CICS 번들 단위로 이루어집니다.
com.ibm.cics.server.examples.bundle 항목을 마우스 오른쪽 단추로 클릭하고 번들 항목을 z/OS UNIX 파일 시스템으로 내보내려면 누르십시오
파일 시스템으로 내보낼 특정 위치를 선택한 다음
이전에 만든bundle 파일 설정을 디렉터리로 지정한 후 종료
확인 메시지
번들 파일이 USS에 배치되었습니다.
CICS에서 제공하는 DFH$OSGI 그룹의 각 리소스를 적절한 그룹으로 복사합니다.
사용자 정의 BUNDLE은 "DFH$OSGB"를 정의하고 BUNDLEDIR 값을 번들 파일이 배치된 디렉토리 /var/cicsts/cicsts56/CT56B4A1/bundles/com.ibm.cics.server.examples.bundle_1.0.0
로 바꿉니다.OVERTYPE TO MODIFY CICS RELEASE = 0730
CEDA ALter Bundle( DFH$OSGB )
Bundle : DFH$OSGB
Group : TAG$OSGI
DEScription ==> CICS bundle containing OSGi sample bundles
Status ==> Enabled Enabled | Disabled
BUndledir ==> /var/cicsts/cicsts56/CT56B4A1/bundles/com.ibm.cics.server.
(Mixed Case) ==> examples.bundle_1.0.0
==>
==>
==>
BAsescope ==>
(Mixed Case) ==>
==>
==>
==>
DEFINITION SIGNATURE
DEFinetime : 06/02/20 18:27:37
CHANGETime : 06/02/20 18:27:37
동적 관찰을 할 때의 축심점.I BUNDLE
STATUS: RESULTS - OVERTYPE TO MODIFY
Bun(DFH$OSGB) Ena Par(00003) Tar(00003)
Enabledc(00003) Bundlei(com.ibm.cics.server.exampl)
참고로 CICS Explorer에서 자원 정의를 확인하면 BUNDLE 정의뿐만 아니라 BUNDLE에 포함된 BUNDLEPARTS도 확인할 수 있습니다.
예제 실행
이번에 Hello World의 예시를 실행하기 때문에 이 예시와 관련된 자원 정의를 추가로 설치합니다.
참조: Running the Hello World example
프로그램은 "DFJ$JHE2"와 사무 정의 "JHE2"를 정의합니다.실체인 Java 프로그램은 먼저 BUNDLE로 설치됩니다.
모두 DFH$OSGI에 제공되므로 복제 후 직접 설치합니다.
참고로 DFH$JHE2의 정의를 보겠습니다.OBJECT CHARACTERISTICS CICS RELEASE = 0730
CEDA View PROGram( DFJ$JHE2 )
PROGram : DFJ$JHE2
Group : TAG$OSGI
DEScription : OSGi Hello CICS world sample program
Language : CObol | Assembler | Le370 | C | Pli
RELoad : No No | Yes
RESident : No No | Yes
USAge : Normal Normal | Transient
USElpacopy : No No | Yes
Status : Enabled Enabled | Disabled
RSl : 00 0-24 | Public
CEdf : Yes Yes | No
DAtalocation : Any Below | Any
EXECKey : Cics User | Cics
COncurrency : Required Quasirent | Threadsafe | Required
Api : Cicsapi Cicsapi | Openapi
REMOTE ATTRIBUTES
DYnamic : No No | Yes
REMOTESystem :
REMOTEName :
Transid :
EXECUtionset : Fullapi Fullapi | Dplsubset
JVM ATTRIBUTES
JVM : Yes No | Yes
JVMClass : examples.hello.HelloCICSWorld
(Mixed Case) :
:
:
:
JVMServer : DFHJVMS
JVMProfile : (Mixed Case)
JAVA PROGRAM OBJECT ATTRIBUTES
Hotpool : No No | Yes
...
이렇게 JVM: Yes, JVMClass:examples.hello.HelloCICSWorld, JVMser: DFHJVMS(BUNDLEPARTS에 설치된 클래스)를 지정합니다. ※사전 준비 중에 생성된 JVMserver 이름이 다른 경우 그에 따라 적절히 수정합니다.
이렇게 하면 자원이 다 갖추어지니 내가 실행해 보겠다.
CICS 터미널에서 JHE2 트랜잭션을 수행합니다.
Hello from a Java CICS application이라는 Java 프로그램에서 출력된 문자열을 표시합니다!
이로써 Java가 CICS 프로그램으로 실행되는지 확인합니다.
Reference
이 문제에 관하여(CICS-Java 응용 프로그램 시작 - (1) 간단한 예시 응용 프로그램 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tomotagwork/items/aac10ad84fe83d88bb5f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
package examples.hello;
import com.ibm.cics.server.CommAreaHolder;
import com.ibm.cics.server.Task;
public class HelloCICSWorld
{
public static void main(CommAreaHolder CAH)
{
Task t = Task.getTask();
if ( t == null )
System.err.println("HelloCICSWorld example: Can't get Task");
else
t.out.println("Hello from a Java CICS application");
}
}
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Hello Plug-in
Bundle-SymbolicName: com.ibm.cics.server.examples.hello
Bundle-Version: 1.0.0
Bundle-RequiredExecutionEnvironment: J2SE-1.4,
J2SE-1.5,
JavaSE-1.6
Import-Package: com.ibm.cics.server;version="[1.0.0,2.0.0)"
CICS-MainClass: examples.hello.HelloCICSWorld, examples.hello.HelloWorld
OVERTYPE TO MODIFY CICS RELEASE = 0730
CEDA ALter Bundle( DFH$OSGB )
Bundle : DFH$OSGB
Group : TAG$OSGI
DEScription ==> CICS bundle containing OSGi sample bundles
Status ==> Enabled Enabled | Disabled
BUndledir ==> /var/cicsts/cicsts56/CT56B4A1/bundles/com.ibm.cics.server.
(Mixed Case) ==> examples.bundle_1.0.0
==>
==>
==>
BAsescope ==>
(Mixed Case) ==>
==>
==>
==>
DEFINITION SIGNATURE
DEFinetime : 06/02/20 18:27:37
CHANGETime : 06/02/20 18:27:37
I BUNDLE
STATUS: RESULTS - OVERTYPE TO MODIFY
Bun(DFH$OSGB) Ena Par(00003) Tar(00003)
Enabledc(00003) Bundlei(com.ibm.cics.server.exampl)
OBJECT CHARACTERISTICS CICS RELEASE = 0730
CEDA View PROGram( DFJ$JHE2 )
PROGram : DFJ$JHE2
Group : TAG$OSGI
DEScription : OSGi Hello CICS world sample program
Language : CObol | Assembler | Le370 | C | Pli
RELoad : No No | Yes
RESident : No No | Yes
USAge : Normal Normal | Transient
USElpacopy : No No | Yes
Status : Enabled Enabled | Disabled
RSl : 00 0-24 | Public
CEdf : Yes Yes | No
DAtalocation : Any Below | Any
EXECKey : Cics User | Cics
COncurrency : Required Quasirent | Threadsafe | Required
Api : Cicsapi Cicsapi | Openapi
REMOTE ATTRIBUTES
DYnamic : No No | Yes
REMOTESystem :
REMOTEName :
Transid :
EXECUtionset : Fullapi Fullapi | Dplsubset
JVM ATTRIBUTES
JVM : Yes No | Yes
JVMClass : examples.hello.HelloCICSWorld
(Mixed Case) :
:
:
:
JVMServer : DFHJVMS
JVMProfile : (Mixed Case)
JAVA PROGRAM OBJECT ATTRIBUTES
Hotpool : No No | Yes
...
Reference
이 문제에 관하여(CICS-Java 응용 프로그램 시작 - (1) 간단한 예시 응용 프로그램 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tomotagwork/items/aac10ad84fe83d88bb5f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)