JNI ( Java Native Interface) 라이브러리 구성

바인딩 전송을 사용하여 큐 매니저에 연결하거나 클라이언트 전송을 사용하여 큐 매니저에 연결하고 ' Java 이외의 언어로 작성된 채널 종료 프로그램을 사용하는 IBM® MQ classes for JMS 애플리케이션은 ' Java 네이티브 인터페이스(JNI) 라이브러리에 액세스할 수 있는 환경에서 실행해야 합니다.

시작하기 전에

WebSphere® Application Server 환경 사용에 대한 자세한 정보는 기본 라이브러리 정보로 IBM MQ 메시징 제공자 구성을 참조하십시오.

이 태스크 정보

이 환경을 설정하려면 IBM MQ classes for JMS 애플리케이션을 시작하기 전에 JVM ( Java Virtual Machine ) 이 mqjbnd 라이브러리를 로드할 수 있도록 환경의 라이브러리 경로를 구성해야 합니다.

IBM MQ 는 두 개의 JNI ( Java Native Interface) 라이브러리를 제공합니다.
mqjbnd
이 라이브러리는 바인딩 전송을 사용하여 큐 관리자에 연결하는 애플리케이션에서 사용합니다. IBM MQ classes for JMS 와 큐 관리자 간의 인터페이스를 제공합니다. IBM MQ 9.4 와 함께 설치된 mqjbnd 라이브러리를 사용하여 IBM MQ 9.4 (또는 이전) 큐 관리자에 연결할 수 있습니다.
mqjexitstub02
mqjexitstub02 라이브러리는 애플리케이션이 클라이언트 전송을 사용하여 큐 관리자에 연결하고 Java이외의 언어로 작성된 채널 엑시트 프로그램을 사용할 때 IBM MQ classes for JMS 에 의해 로드됩니다.

특정 플랫폼에서 IBM MQ 는 이러한 JNI 라이브러리의 32비트및 64비트버전을 설치합니다. 각 플랫폼에 대한 라이브러리의 위치는 표 1에 표시되어 있습니다.

표 1. 각 플랫폼에 대한 IBM MQ classes for JMS 라이브러리의 위치
플랫폼 IBM MQ classes for JMS 라이브러리를 포함하는 디렉토리
[AIX]AIX®
[Linux]Linux®
(POWER, x86-64 및 s390x 플랫폼)

MQ_INSTALLATION_PATH/java/lib (32비트라이브러리)
MQ_INSTALLATION_PATH/java/lib64 (64비트라이브러리)
[Windows]Windows
MQ_INSTALLATION_PATH\java\lib (32비트라이브러리)
MQ_INSTALLATION_PATH\java\lib64 (64비트라이브러리)
[z/OS]z/OS®
MQ_INSTALLATION_PATH/java/lib
(31비트및 64비트라이브러리)

MQ_INSTALLATION_PATH은(는) IBM MQ이(가) 설치된 상위 레벨 디렉토리를 나타냅니다.

[z/OS]메모: ~에z/OS , 31비트 또는 64비트를 사용할 수 있습니다.Java Virtual Machine (JVM). 사용할 JNI 라이브러리를 지정할 필요는 없습니다.IBM MQ classes for JMS 로드할 JNI 라이브러리를 스스로 결정할 수 있습니다.

프로시저

  1. 다음 두 가지 방법으로 수행할 수 있는 JVM의 java.library.path 특성을 구성하십시오.
    • 다음 예에 표시된 대로 JVM 인수를 지정합니다.
      -Djava.library.path=path_to_library_directory
      [Linux]예를 들어, 기본 위치 설치의 경우 Linux 에서 64비트 JVM을 지정합니다:
      -Djava.library.path=/opt/mqm/java/lib64
    • JVM이 자체 java.library.path을(를) 설정하도록 쉘의 환경을 구성합니다. 이 경로는 플랫폼 및 IBM MQ를 설치한 위치에 따라 다릅니다. 예를 들어, 64비트 JVM및 기본 IBM MQ 설치 위치의 경우 다음 설정을 사용할 수 있습니다.
      [AIX]
      export LIBPATH=/usr/mqm/java/lib64:$LIBPATH
      [Linux]
      export LD_LIBRARY_PATH=/opt/mqm/java/lib64:$LD_LIBRARY_PATH
      [Windows]
      set PATH=C:\Program Files\IBM\MQ\java\lib64;%PATH%
    환경이 올바르게 구성되지 않은 경우 표시되는 예외 스택의 예는 다음과 같습니다.
    Caused by: com.ibm.mq.jmqi.local.LocalMQ$4: CC=2;RC=2495;
    AMQ8598: Failed to load the WebSphere MQ native JNI library: 'mqjbnd'.
        at com.ibm.mq.jmqi.local.LocalMQ.loadLib(LocalMQ.java:1268)
        at com.ibm.mq.jmqi.local.LocalMQ$1.run(LocalMQ.java:309)
        at java.security.AccessController.doPrivileged(AccessController.java:400)
        at com.ibm.mq.jmqi.local.LocalMQ.initialise_inner(LocalMQ.java:259)
        at com.ibm.mq.jmqi.local.LocalMQ.initialise(LocalMQ.java:221)
        at com.ibm.mq.jmqi.local.LocalMQ.<init>(LocalMQ.java:1350)
        at com.ibm.mq.jmqi.local.LocalServer.<init>(LocalServer.java:230)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:86)       
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:58)       
        at java.lang.reflect.Constructor.newInstance(Constructor.java:542)
        at com.ibm.mq.jmqi.JmqiEnvironment.getInstance(JmqiEnvironment.java:706)
        at com.ibm.mq.jmqi.JmqiEnvironment.getMQI(JmqiEnvironment.java:640)
        at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createV7ProviderConnection(WMQConnectionFactory.java:8437)       
        ... 7 more
    Caused by: java.lang.UnsatisfiedLinkError: mqjbnd (Not found in java.library.path)
        at java.lang.ClassLoader.loadLibraryWithPath(ClassLoader.java:1235)
        at java.lang.ClassLoader.loadLibraryWithClassLoader(ClassLoader.java:1205)
        at java.lang.System.loadLibrary(System.java:534)
        at com.ibm.mq.jmqi.local.LocalMQ.loadLib(LocalMQ.java:1240)
        ... 20 more
  2. 32비트또는 64비트환경이 설정된 후 다음 명령을 사용하여 IBM MQ classes for JMS 애플리케이션을 시작하십시오.
    java application-name
    여기서 application-name 은 실행할 IBM MQ classes for JMS 애플리케이션의 이름입니다.
    다음과 같은 경우 IBM MQ 이유 코드 2495 (MQRC_MODULE_NOT_FOUND) 를 포함하는 예외가 IBM MQ classes for JMS 에 의해 전달됩니다.
    • 32비트 Java runtime environment 가 64비트 Java Native Library를 로드할 수 없으므로 IBM MQ classes for JMS 애플리케이션이 32비트 Java runtime environment에서 실행되고 64비트환경이 IBM MQ classes for JMS에 대해 설정되었습니다.
    • 64비트 Java runtime environment 가 32비트 Java Native Library를 로드할 수 없으므로 IBM MQ classes for JMS 애플리케이션이 64비트 Java runtime environment에서 실행되고 32비트환경이 IBM MQ classes for JMS에 대해 설정되었습니다.