바인딩 전송을 사용하여 큐 매니저에 연결하거나 클라이언트 전송을 사용하여 큐 매니저에 연결하고 ' Java 이외의 언어로 작성된 채널 종료 프로그램을 사용하는 IBM® MQ classes for JMS 애플리케이션은 ' Java 네이티브 인터페이스(JNI) 라이브러리에 액세스할 수 있는 환경에서 실행해야 합니다.
이 태스크 정보
이 환경을 설정하려면 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® Linux® (POWER, x86-64 및 s390x 플랫폼)
|
MQ_INSTALLATION_PATH/java/lib (32비트라이브러리) MQ_INSTALLATION_PATH/java/lib64 (64비트라이브러리)
|
Windows |
MQ_INSTALLATION_PATH\java\lib (32비트라이브러리) MQ_INSTALLATION_PATH\java\lib64 (64비트라이브러리)
|
z/OS® |
MQ_INSTALLATION_PATH/java/lib (31비트및 64비트라이브러리)
|
MQ_INSTALLATION_PATH은(는) IBM MQ이(가) 설치된 상위 레벨 디렉토리를 나타냅니다.
메모: ~에
z/OS , 31비트 또는 64비트를 사용할 수 있습니다.
Java Virtual Machine (JVM). 사용할 JNI 라이브러리를 지정할 필요는 없습니다.
IBM MQ classes for JMS 로드할 JNI 라이브러리를 스스로 결정할 수 있습니다.
프로시저
- 다음 두 가지 방법으로 수행할 수 있는 JVM의 java.library.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
- 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에 대해 설정되었습니다.