벤더 클래스에 대한 OSGi 번들 단편 작성

애플리케이션이 JRE와 함께 제공되는 IBM 또는 벤더 클래스를 사용하는 경우 OSGi 프레임워크에서 클래스를 사용할 수 있도록 OSGi 번들 단편을 작성해야 합니다.

이 태스크 정보

CICS® TS 5.1부터 OSGi 프레임워크에는 JRE에서 로드될 수 있는 클래스를 제어하는 보다 엄격한 규칙이 있습니다.

OSGi 프레임워크는 애플리케이션에서 요구하는 대로 접두부 java가 포함된 모든 패키지를 로드합니다. 애플리케이션이 JRE와 함께 제공되는 IBM 또는 벤더 패키지(예: com.ibm.misc)를 사용하는 경우 OSGi 프레임워크에서 이러한 클래스를 사용할 수 있도록 미들웨어 OSGi 번들을 작성해야 합니다. 그렇지 않은 경우 AJ05 코드 및 java.lang.ClassNotFoundException 오류로 이상 종료된 트랜잭션이 JVM 서버 로그 및 CICS 시스템 로그에 기록됩니다.

JCICS 클래스가 자동으로 OSGi 프레임워크에서 사용 가능하게 되므로 CICS Java 클래스의 경우 이러한 단계를 완료할 필요가 없습니다.

프로시저

  1. 애플리케이션에 필요한 각 IBM 또는 벤더 패키지에 대해 패키지를 내보낼 OSGi 번들 단편을 작성하십시오. 다음 예제는 OSGi 번들 단편의 Manifest에 포함될 수 있는 항목을 표시합니다.
    Manifest-Version: 1.0
    Bundle-ManifestVersion: 2
    Bundle-Name: Extension
    Bundle-SymbolicName: com.ibm.example.extension
    Bundle-Version: 1.0.0
    Bundle-Vendor: IBM
    Fragment-Host: system.bundle; extension:=framework
    Export-Package: com.ibm.misc
    Bundle-RequiredExecutionEnvironment: JavaSE-1.6

    Fragment-Host는 OSGi 번들 단편이 OSGi 프레임워크의 시스템 번들을 확장함을 지정합니다. Export-Package는 내보내는 패키지를 나열합니다. 이 예제에서는 com.ibm.misc로 시작하는 패키지를 내보냅니다. Eclipse를 사용하는 경우 플래그 지정된 오류를 무시하십시오.

  2. 애플리케이션을 변경하여 적절한 OSGi 번들 Manifest에 내보낸 패키지에 대한 가져오기를 추가하십시오. IBM 또는 벤더 패키지의 클래스가 필요한 각 OSGi 번들은 Manifest에 패키지를 선언해야 합니다.
  3. OSGi 번들 단편에 대한 CICS 번들 프로젝트를 작성하십시오. 단편의 라이프사이클을 함께 관리할지 여부에 따라 프로젝트에 하나 또는 다수의 OSGi 번들 단편을 포함할 수 있습니다. 관리자가 CICS의 라이프사이클을 별도로 관리할 수 있도록 미들웨어 번들을 애플리케이션에서 분리하는 것이 가장 좋습니다.

결과

패키지를 JRE에서 내보내는 하나 이상의 OSGi 번들 단편이 포함된 CICS 번들 프로젝트를 작성했습니다. 배치된 경우 이 미들웨어 번들은 애플리케이션이 CICS TS 5.1 JVM 서버에서 실행될 수 있도록 합니다.

다음에 수행할 작업

애플리케이션 및 미들웨어 번들을 배치하십시오. 대상 JVM 서버에 대한 JVM 프로파일이 OSGI_BUNDLES 옵션에 미들웨어 번들을 지정하는지 확인해야 합니다.