このセクションは、一般的な JMS プロバイダー用に SOAtest および Virtualize を構成するためのリファレンスを提供します。

必要な JAR ファイルの追加

以下の操作を行って、SOAtest および Virtualize のクラスパスに必要な Jar ファイル (下の表に記載) を追加します。

  1. [Parasoft] > [設定] を選択します。
  2. [Parasoft] > [システム プロパティ] ページを開きます。
  3. [Jar の追加] をクリックし、必要な Jar ファイルを選択して追加します。

JNDI 認証

JMS システム (JNDI アクセスに認証を要求するように設定された) への接続にユーザー名とパスワードが要求される場合はいつでも、次の JNDI プロパティを設定する必要があります。

Amazon Simple Queue Service (SQS)

対象

JNDI ルックアップによる JMS ConnectionFactory の構築が難しい Amazon Simple Queue Service (SQS) およびその他の JMS プロバイダー。

最低限必要な JAR

Amazon SQS java client JAR (Maven Central からダウンロード):

  • amazon-sqs-java-messaging-lib-1.1.x.jar
  • aws-java-sdk-sqs-1.12.x.jar
  • aws-java-sdk-core-1.12.x.jar
  • aws-java-sdk-sts-1.12.x.jar

WSO2 carbon-jndi JAR (WSO2 Maven リポジトリ からダウンロード):

org.wso2.carbon.jndi-<VERSION>.jar

ファクトリ クラス

org.wso2.carbon.jndi.internal.InMemoryInitialContextFactory

JMS ConnectionFactory オブジェクトの作成」を参照してください。

AWS との接続

AWS への接続には IAM ユーザー ロールを使用します。詳細については以下の Amazon のドキュメントを参照してください。

詳細

https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/getting-started.html

https://github.com/awslabs/amazon-sqs-java-messaging-lib/tree/master/src/main/java/com/amazon/sqs/javamessaging

JMS ConnectionFactory オブジェクトの作成

以下の Groovy スクリプトは、JMS ConnectionFactory オブジェクトを作成し、それをインメモリの InitialContext にバインドするために提供されています (bindConnectionFactory メソッド)。SOAtest または Virtualize の起動ごとに 1 回、このスクリプトを実行します。オブジェクトを必要とする各 .tst に対して、拡張ツール (SOAtest .tst や Virtualize .pvn のセットアップ テストなど) を使用してスクリプトを実行したり、環境に適した方法でスクリプトの実行を自動化するより洗練されたプロセスを実装したりすることができます。 

このスクリプトは、AWS との認証に 2 つの方法をサポートしています。SOAtest/Virtualize サーバーが AWS 環境内にデプロイされている場合、AWS はインスタンス プロバイダー フローを使用した認証を推奨します。また、AWS との認証には、regionaccessKeysecretKey を必要とする静的モードを使用することもできます。スクリプトで定義されている認証変数については、「Script Variables」を参照してください。

import java.util.* import javax.jms.* import javax.naming.* import com.amazon.sqs.javamessaging.* import com.amazonaws.auth.* import com.amazonaws.regions.* import com.amazonaws.services.securitytoken.* import com.amazonaws.services.securitytoken.model.* import com.amazonaws.services.sqs.* // Specify how you want to connect to AWS ("instance" or "static") provider = "instance" // Access keys for CLI, SDK, & API access // see https://console.aws.amazon.com/iam/home#/security_credentials accessKey = "" secretKey = "" region = Regions.US_WEST_1 // Multi-factor authentication // set serialNumber to null if MFA not enabled serialNumber = null tokenCode = "" // code from Google Authenticator (for example) durationSeconds = 3600 void bindConnectionFactory() { Properties env = new Properties() env.put(Context.INITIAL_CONTEXT_FACTORY, "org.wso2.carbon.jndi.internal.InMemoryInitialContextFactory") Context ctx = new InitialContext(env) SQSConnectionFactory sqsConnectionFactory = createSQSConnectionFactory() ctx.rebind("SQSConnectionFactory", sqsConnectionFactory) } SQSConnectionFactory createSQSConnectionFactory() { AWSCredentialsProvider credentialsProvider = null if (provider.equals("instance")) { credentialsProvider = new InstanceProfileCredentialsProvider(false) } else { credentialsProvider = new AWSStaticCredentialsProvider( new BasicAWSCredentials(accessKey, secretKey)) if (serialNumber != null) { credentialsProvider = getTemporaryCredentials(credentialsProvider) } } return new SQSConnectionFactory( new ProviderConfiguration(), AmazonSQSClientBuilder.standard() .withRegion(region) .withCredentials(credentialsProvider).build()) } AWSStaticCredentialsProvider getTemporaryCredentials(AWSCredentialsProvider credentialsProvider) { AWSSecurityTokenService sts_client = null try { sts_client = AWSSecurityTokenServiceClientBuilder.standard() .withRegion(region) .withCredentials(credentialsProvider).build() Credentials creds = sts_client.getSessionToken(new GetSessionTokenRequest() .withDurationSeconds(durationSeconds) .withSerialNumber(serialNumber) .withTokenCode(tokenCode)).getCredentials() return new AWSStaticCredentialsProvider( new BasicSessionCredentials( creds.getAccessKeyId(), creds.getSecretAccessKey(), creds.getSessionToken())) } finally { if (sts_client != null) { sts_client.shutdown() } } }

SQSConnectionFactory が作成され、SQSConnectionFactory という名前にバインドされます。JMS ConnectionFactory をルックアップするために、任意 のJNDI プロパティで初期コンテキストを org.wso2.carbon.jndi.internal.InMemoryInitialContextFactory に設定し、接続ファクトリを SQSConnectionFactory に設定します。

JMS ConnectionFactory は、URL に基づいて動的に作成されるのではなく、プログラムによって作成されるため、プロバイダー URL は使用されません。Virtualize Message Proxy など、一部の SOAtest および Virtualize インターフェースでは、プロバイダー URL フィールドが必要です。このような場合は、ダイアログに任意の空でない文字列を入力して、構成設定を受け入れます。

メッセージング クライアントを作成し、すでに定義されているキューの 1 つに対してメッセージを送受信することができます。また、メッセージ ID など、期待されるすべての JMS ヘッダー プロパティを確認できます。

スクリプトの変数

以下の表は、スクリプトで使用する変数の一覧です。

accessKey

secretKey

region

CLI、SDK、API にアクセスするためのアクセスキーの認証情報。
serialNumber多要素認証 (MFA) が有効な場合、デバイスを一意に識別する番号。仮想 MFA デバイスの場合、シリアル番号は、AWS セキュリティ認証情報ページに表示されているデバイスの Amazon リソース名 (ARN) です。
tokenCodeGoogle 認証システムなどの MFA デバイスから返される値。
durationSeconds一時的な MFA 認証情報の有効期間を指定する値。

コンシューマーのポーリング間隔の変更

SQS JMS クライアントのメッセージ コンシューマーは、デフォルトで20秒という長いポーリング間隔を使用します。つまり、メッセージがそれより前に表示されたとしても、キューからメッセージを受信するのに最大 20 秒かかる可能性があります。ポーリング間隔はスクリプトで変更できます。例 (Groovy):

import com.amazon.sqs.javamessaging.SQSMessageConsumerPrefetch void setMessageConsumerWaitTime() { SQSMessageConsumerPrefetch.WAIT_TIME_SECONDS = 1 }

Apache ActiveMQ

対象Apache Active MQ
最低限必要な Jaractivemq-all-<VERSION>.jar (Maven Central からダウンロード)
一般的なプロバイダー URL パターンtcp://hostname:61616
ファクトリ クラス

JNDI Initial Context ファクトリ クラス
- org.apache.activemq.jndi.ActiveMQInitialContextFactory

デフォルトの接続ファクトリ JNDI 名
- ConnectionFactory

詳細http://activemq.apache.org/jndi-support.html

Apache ActiveMQ Artemis

対象Apache ActiveMQ Artemis
最低限必要な Jar

artemis-jms-client-all-<VERSION>.jar (Maven Central からダウンロード)

一般的なプロバイダー URL パターン

tcp://hostname:61616

ファクトリ クラス

JNDI Initial Context ファクトリ クラス
- org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory

デフォルトの接続ファクトリ JNDI 名
- ConnectionFactory

詳細

https://activemq.apache.org/components/artemis/documentation/latest/using-jms.html

Apache Qpid

対象Apache Qpid
最低限必要な jar ファイル

Qpid 1.11.0 からの JMS 2.0 互換 jar (Apache からダウンロード)

  • slf4j-api と jakarta.jms-api の jar を除く、apache-qpid-jms-1.11.0/lib 内のすべての jar を追加します。
一般的なプロバイダー URL パターン

JNDI プロパティ ファイルへのパス。ファイルは空でもかまいません。空でないファイルを指定すると、それらのプロパティは [プロパティ] タブで定義されている他の JNDI プロパティとマージされます。または、Windows を使用している場合は NUL、Linux または macOS を使用している場合は /dev/null を使用できます。

例:

  • NUL
  • /dev/null
  • C:\path\to\jndi.properties
接続 URL JNDI プロパティ

connectionfactory.<JNDI_NAME> = <CONNECTION_URL> という形式を使用して、JNDI に ConnectionFactory を登録します。

例:

connectionfactory.qpidConnectionFactory=amqp://localhost:5672

詳細:

https://qpid.apache.org/releases/qpid-jms-1.11.0/docs/index.html#connection-uri

ファクトリ クラス

JNDI Initial Context ファクトリ クラス
- org.apache.qpid.jms.jndi.JmsInitialContextFactory

接続ファクトリ

先ほど connectionfactory.<JNDI_NAME> プロパティで指定した JNDI 名を使用します。

例:

qpidConnectionFactory

詳細

https://qpid.apache.org/releases/qpid-jms-1.11.0/index.html

Azure Service Bus Standard Tier

対象

Azure Service Bus Standard Tier

最低限必要な jar ファイル

Qpid 1.11.0 からの JMS 2.0 互換 jar (Apache からダウンロード)

  • slf4j-api と jakarta.jms-api の jar を除く、apache-qpid-jms-1.11.0/lib 内のすべての jar を追加します。
一般的なプロバイダー URL パターン

JNDI プロパティ ファイルへのパス。ファイルは空でもかまいません。空でないファイルを指定すると、それらのプロパティは [プロパティ] タブで定義されている他の JNDI プロパティとマージされます。または、Windows を使用している場合は NUL、Linux または macOS を使用している場合は /dev/null を使用できます。

例:

  • NUL
  • /dev/null
  • C:\path\to\jndi.properties
接続 URL JNDI プロパティ

connectionfactory.<JNDI_NAME> = <CONNECTION_URL> という形式を使用して、JNDI に ConnectionFactory を登録します。

例:

connectionfactory.SBCF=amqps://<NAMESPACE>.servicebus.windows.net:5671?jms.username=<SAS_POLICY_NAME>&jms.password=<SAS_POLICY_KEY>

ファクトリ クラス

org.apache.qpid.jms.jndi.JmsInitialContextFactory

接続ファクトリ

先ほど connectionfactory.<JNDI_NAME> プロパティで指定した JNDI 名を使用します。

例:

SBCF

ライセンスの制限

apache-qpid-jms クライアントを使用してアクセスできるのはキューのみです。トピックは、プレミアム ライセンス ティアの azure-servicebus-jms クライアントを使用して JMS 経由で利用できます。

詳細:

https://learn.microsoft.com/azure/service-bus-messaging/service-bus-premium-messaging#java-message-service-jms-support

詳細

https://learn.microsoft.com/azure/service-bus-messaging/service-bus-java-how-to-use-jms-api-amqp

Azure Service Bus Premium Tier

対象

Azure Service Bus Premium Tier

最低限必要な jar ファイル

azure-servicebus-jms-<VERSION>.jar (Maven Central からダウンロード)

Qpid 1.11.0 からの JMS 2.0 互換 jar (Apache からダウンロード)

  • slf4j-api と jakarta.jms-api の jar を除く、apache-qpid-jms-1.11.0/lib 内のすべての jar を追加します。

org.wso2.carbon.jndi-<VERSION>.jar (WSO2 Maven リポジトリ からダウンロード)

ファクトリ クラス

org.wso2.carbon.jndi.internal.InMemoryInitialContextFactory
JMS ConnectionFactory オブジェクトの作成」を参照してください。

接続ファクトリ

ServiceBusJmsConnectionFactory

JMS ConnectionFactory オブジェクトの作成」を参照してください。

ライセンスの制限

azure-servicebus-jms クライアント jar には、Azure Service Bus プレミアム ライセンス レベルが必要です。スタンダード ライセンス ティアには apache-qpid-jms クライアントを使用します。
詳細:
https://learn.microsoft.com/azure/service-bus-messaging/service-bus-premium-messaging#java-message-service-jms-support

詳細

https://github.com/Azure/azure-servicebus-jms
https://learn.microsoft.com/azure/service-bus-messaging/jms-developer-guide
https://learn.microsoft.com/azure/service-bus-messaging/how-to-use-java-message-service-20

JMS ConnectionFactory オブジェクトの作成

まず、Azure Service Bus 名前空間の「接続文字列」が必要です:
Endpoint=sb://<NAMESPACE>.servicebus.windows.net/;SharedAccessKeyName=<SAS_POLICY_NAME>;SharedAccessKey=<SAS_POLICY_KEY>

詳細: https://learn.microsoft.com/azure/connectors/connectors-create-api-servicebus?tabs=consumption#get-connection-string

以下の Groovy スクリプトは、JMS ConnectionFactory オブジェクトを作成し、それをインメモリの InitialContext にバインドするために提供されています (bindConnectionFactory メソッド)。SOAtest または Virtualize の起動ごとに 1 回、このスクリプトを実行します。オブジェクトを必要とする各 .tst に対して、拡張ツール (SOAtest .tst や Virtualize .pvn のセットアップ テストなど) を使用してスクリプトを実行したり、環境に適した方法でスクリプトの実行を自動化するより洗練されたプロセスを実装したりすることができます。 

import com.microsoft.azure.servicebus.jms.ConnectionStringBuilder import com.microsoft.azure.servicebus.jms.ServiceBusJmsConnectionFactory import com.microsoft.azure.servicebus.jms.ServiceBusJmsConnectionFactorySettings; import java.util.Properties import javax.naming.Context import javax.naming.InitialContext void bindConnectionFactory() { Properties env = new Properties() env.put(Context.INITIAL_CONTEXT_FACTORY, "org.wso2.carbon.jndi.internal.InMemoryInitialContextFactory") Context ctx = new InitialContext(env) ConnectionStringBuilder connectionStringBuilder = new ConnectionStringBuilder("Endpoint=sb://<NAMESPACE>.servicebus.windows.net/;SharedAccessKeyName=<SAS_POLICY_NAME>;SharedAccessKey=<SAS_POLICY_KEY>") ServiceBusJmsConnectionFactorySettings connectionFactorySettings = new ServiceBusJmsConnectionFactorySettings(); connectionFactorySettings.setShouldReconnect(false); ServiceBusJmsConnectionFactory sbConnectionFactory = new ServiceBusJmsConnectionFactory(connectionStringBuilder, connectionFactorySettings) ctx.rebind("ServiceBusJmsConnectionFactory", sbConnectionFactory) }

GlassFish MQ

対象GlassFish
最低限必要な jar ファイル

GlassFish 3 - <GLASSFISH_INSTALL_DIR>/glassfish/lib 配下にあります。

 - gf-client.jar

注意: gf-client.jar は、インストールした Glass-Fish 3 からの数十の他の jar を参照します。参照された jar の検索、読み込みを可能にするために、 GlassFish インストール ディレクトリから gf-client.jar を参照する必要があります。GlassFish は http://glassfish.java.net/ からダウンロードできます。

GlassFish 2 - <GLASSFISH_INSTALL_DIR>/lib 配下にあります。

 - appserv-admin.jar
 - appserv-deployment-client.jar
 - appserv-ext.jar
 - appserv-rt.jar
 - javaee.jar
 - install/applications/jmsra/imqjmsra.jar

一般的なプロバイダー URL パターンiiop://hostname:3700
ファクトリ クラス

JNDI Initial Context ファクトリ クラス
- com.sun.enterprise.naming.SerialInitContextFactory

注意: GlassFish は、"com.sun.appserv.naming.S1ASCtxFactory" と呼ばれるもう1つの JNDI Initial Context ファクトリ クラスを持っています。このクラスはパフォーマンスで劣るため、使用すべきではありません。GlassFish 2 や GlassFish 3 の両方で利用可能なクラスの代わりに、上記の SerialInitContextFactory クラスを使用してください。

注釈GlassFish クライアントや GlassFish サーバーは、相互に DNS の逆引きを行います。サーバーがクライアントのホスト名を認識しない場合は、サーバー上の hosts ファイルにクライアントのホスト名と IP アドレスを追加することができます。クライアントがサーバーのホスト名を認識しない場合は、クライアント上の hosts ファイルにサーバーのホスト名と IP アドレスを追加することができます。hosts ファイルは、通常 /etc/hosts (Unix) または %System-Root%\system32\drivers\etc\hosts (Windows) にあります。
詳細 http://glassfish.java.net/

IBM WebSphere Application Server (WAS)

対象WAS Default JMS プロバイダー。Parasoft は、WAS 7.0 以降で提供され、WAS 6.0.2 以降と相互運用が可能な、 IBM の JMS シンクライアントの使用を推奨しています。
最低限必要な JAR

<WAS_INSTALL_DIR>/runtimes 配下にあります。
 - com.ibm.ws.ejb.thinclient_7.0.0.jar
 - com.ibm.ws.orb_7.0.0.jar
 - com.ibm.ws.sib.client.thin.jms_7.0.0.jar

一般的なプロバイダー URL パターンiiop://hostname:2809/
ファクトリ クラス

JNDI Initial Context ファクトリ クラス
- com.ibm.websphere.naming.WsnInitialContextFactory

詳細WebSphere Application Server Network Deployment, バージョン 7.0 ドキュメント

WAS 7.0 以降を持っていない場合

WAS 7 インストールを使用していない (またはアクセスできない) 場合、 WAS 6.0.2 以降でも動作する IBM Client for JMS をダウンロードし、インストールします。

  1. http://www-01.ibm.com/support/docview.wss?uid=swg24012804 から JMS Client のインストーラー Jar をダウインロードします。
  2. ダウンロード ページの手順に従って、 Sun JRE 用の JMS と JNDI の両方の Jar をインストールします。クライアント Jar をインストールするコマンドは、以下のようになります。
    "java -jar sibc_oeminst-o0902.06.jar jms_jndi_sun C:\ibmjms"
    クライアント Jar は lib フォルダーは以下にインストールされます。
  3. JNDI プロパティ com.ibm.CORBA.ORBInit=com.ibm.ws.sib.client.ORB を追加します。
    • 簡単にするために、この JNDI プロパティは JRE lib フォルダーの jndi.properties ファイルでグローバルに設定できます。
    • この製品のスタンドアロン ビルドでは、 JRE lib フォルダーは <INSTALL_DIR>/plugins/com.parasoft.ptest.jdk.eclipse.core.web.<OS>.<ARCH>_<VERSION>/jdk/jre/lib にあります。
    • この JNDI プロパティは、 WAS 7 の runtimes フォルダーから Jar を使用するときには必要ありません。

IBM MQ

対象

IBM MQ JMS プロバイダー

最低限必要な jar ファイル

一般的なプロバイダー URL パターン

.bindings ファイルを含むディレクトリ パス。

例:

file:/C:/JNDI-Directory

IBM MQ JMSAdmin を実行して JNDI .bindings ファイルに JMS 管理オブジェクトを設定する詳細な例

IBM MQ Explorer を実行して JNDI .bindings ファイルに JMS 管理オブジェクトを設定する詳細な例

ファクトリ クラス

IBM MQ JNDI Initial Context ファクトリ クラス

com.sun.jndi.fscontext.RefFSContextFactory

接続ファクトリ

.bindings ファイルで定義されている ConnectionFactory 名。

JNDI を伴わない JMS メッセージング

プロパティ タブで次の設定を定義します。
Name: Value
provider:  IBM MQ
queue.manager: <QUEUE_MANAGER_NAME>
チャネルl: <CHANNEL_NAME>
ポート: <PORT> (デフォルトの IBM MQ ポートは 1414)
この構成で、 Virtualize は提供されたパラメーターを以下のように使用して接続ファクトリを作成します。

 import com.ibm.mq.jms.*; ... MQConnectionFactory cf = new MQConnectionFactory(); cf.setHostName(hostname); cf.setPort(port); cf.setQueueManager(queuemanager); cf.setChannel(channel); cf.setTransportType(JMSC.MQJMS_TP_CLIENT_MQ_TCPIP); cf.setFailIfQuiesce(JMSC.MQJMS_FIQ_YES); cf.setUseConnectionPooling(true);


 追加情報

IBM の JNDI プロバイダーはユーザーのログイン名を送信することによって、 IBM MQ サーバーで自身を認証します。これは一般的に Virtualize を起動する前にワークステーションにログインするときに提供されたユーザー名です。

MQ サーバーがユーザー名を認識しない場合、ツールは次のエラーを返します: "javax.jms.JMSSecurityException: MQJMS2013: invalid security authentication supplied for MQQueueManager".

このエラーは、 IBM MQ サーバー マシンに Windows ユーザーのアカウントを追加することで解決できます。 このアカウントは、 1)SOAtest および Virtualize を実行しているローカル マシン上のアカウントと同じユーザー名、および 2) IBM MQ Administration グループ "mqm" のメンバー、である必要があります。あるいは、 Java システム プロパティの user.name の値を変更することによって異なるユーザー名を使用します。 このシステム プロパティは、soatest/virtualize.exe -J-Duser.name=username を使用して SOAtest と Virtualize を起動することで構成できます。ここで、username は使用するユーザー名です。 soatest/virtualize.exe -J-Duser.name= を経由して、ユーザー名を空にした一部の構成も動作します。user.name プロパティに SYSTEM を使用することも、いくつかの構成で動作します。 

Extension Tool を使って Sun の Java API の java.lang.System.setProperty() メソッドを呼び出すことで、テスト スイートの実行中に Java システム プロパティを変更することもできます。

詳細

https://www.ibm.com/docs/ibm-mq/

JBoss JMS

対象Boss JMS: 次の jar ファイルのリストは JBoss 5.0 に基づいています。
最低限必要な jar ファイル

<JBOSS_INSTALL_DIR>/client 配下にあります。
 - jboss-javaee.jar
 - jnp-client.jar
 - jboss-logging-spi.jar
 - jboss-messaging-client.jar
 - jboss-aop-client.jar
 - jboss-remoting.jar
 - jboss-common-core.jar
 - trove.jar
 - javassist.jar
 - jboss-mdr.jar
 - concurrent.jar
 - log4j.jar
 - jboss-serialization.jar

一般的なプロバイダー URL パターンhostname
ファクトリ クラス

JNDI Initial Context ファクトリ クラス
- org.jnp.interfaces.NamingContextFactory

Open Message Queue (OpenMQ)

注意: OpenMQ はそれ自身で実行することも、 "Glassfish MQ" と呼ばれる Glassfish App Server の一部として実行することも可能です。Glassfish から OpenMQ を使用している場合は、 GlassFish セクションを参照してください。

対象OpenMQ Server
最低限必要な jar ファイル

<OPENMQ_INSTALL_DIR>/mq/lib 配下にあります。
- fscontext.jar
- imq.jar
- jms.jar

一般的なプロバイダー URL パターンhostname
ファクトリ クラス

JNDI Initial Context ファクトリ クラス
- com.sun.jndi.fscontext.RefFSContextFactory

詳細http://mq.java.net

Oracle Advanced Queuing (AQ)

対象Oracle Advanced Queuing (AQ)
最低限必要な jar ファイル

Oracle Database に含まれる以下の Jar:
- server/rdbms/jlib/aqapi.jar 
- server/jdbc/lib/ojdbc6.jar

または

Oracle Weblogic Server に含まれる以下の Jar:
- server/lib/aqapi.jar 
- server/lib/ojdbc6.jar

プロバイダー URLこのフィールドは空のままにします。
JNDI 初期コンテキスト ファクトリ クラスoracle.jms.AQjmsInitialContextFactory
接続ファクトリ JNDI 名

以下のいずれか:
- QueueConnectionFactory
- TopicConnectionFactory
- ConnectionFactory
- XAQueueConnectionFactory
- XATopicConnectionFactory
- XAConnectionFactory

必須 JNDI プロパティ

java.naming.security.principal=<USERNAME>  
java.naming.security.credentials=<PASSWORD> 
db_url=jdbc:oracle:thin:@host:port:dbName

キュー/トピック名

キュー名の前に Queues/ を付加し、トピック名の前に Topics/ を負荷します。例:
Queue: Queues/<QUEUE_NAME> 
Topic: Topics/<TOPIC_NAME>

追加情報10g などの古いバージョンの Oracle データベースに含まれる aqapi.jar には初期コンテキスト ファクトリ クラスがない可能性があります。Oracle 11g 以降の jar を使用してください。最新の Oracle Database Express Edition (XE) は、oracle.com からダウンロードできます。
Oracle Database Express Edition 11g Release 2
詳細Interoperating with Oracle AQ JMS

Oracle BEA WebLogic

対象Oracle BEA WebLogic
必要最低限なJAR (シンクライアント) *

<WEBLOGIC_HOME>/wlserver_x/server/lib 配下にあります。
- wljmsclient.jar 
 - wlclient.jar

注意: 追加の Jar が必要となる可能性があります。多くの Jar を検索して追加する必要から解放されるので、フルクライアントの使用を推奨します。

必要最低限な JAR (フルクライアント) *"Creating a wlfullclient5.jar for JDK 1.5 client applications" の手順に記載のように、単一の wlfullclient5.jar をビルドします。
一般的なプロバイダー URL パターン

シンクライアント:
iiop://hostname:7001

フルクライアント:
t3://hostname:7001

ファクトリ クラス

JNDI Initial Context ファクトリ クラス:
- weblogic.jndi.WLInitialContextFactory

詳細http://docs.oracle.com/cd/E12840_01/wls/docs103/client/jarbuilder.html

Progress Sonic MQ/ESB

対象Progress Sonic MQ/ESB
最低限必要な jar ファイル

<SONIC_INSTALL_DIR>/MQ7.x/lib 配下にあります。
- mfcontext.jar 
- broker.jar
- sonic_Client.jar

注意: SonicMQ の broker.jar と TIBCO の tibcojms.jar を一緒に使用することはできません。

一般的なプロバイダー URL パターンtcp://hostname:2506
ファクトリ クラス

JNDI Initial Context ファクトリ クラス
- com.sonicsw.jndi.mfcontext.MFContextFactory

詳細SonicMQ Application Programming Guide の Appendix A (Using the Sonic JNDI SPI) を参照してください。その他の関連するセクションについても言及しています。

RabbitMQ

対象RabbitMQ
最低限必要な jar ファイル

Maven's Central Repository からクライアント ライブラリをダウンロードしてください。

rabbitmq-jms-<VERSION>.jar

.bindings ファイルの例#This file is used by the JNDI FSContext.
#Wed Jan 31 15:36:15 PST 2018
ConnectionFactory/FactoryName=com.rabbitmq.jms.admin.RMQObjectFactory
ConnectionFactory/ClassName=javax.jms.ConnectionFactory
ConnectionFactory/RefAddr/0/Type=name
ConnectionFactory/RefAddr/0/Encoding=String
ConnectionFactory/RefAddr/0/Content=jms/ConnectionFactory
ConnectionFactory/RefAddr/1/Type=type
ConnectionFactory/RefAddr/1/Encoding=String
ConnectionFactory/RefAddr/1/Content=javax.jms.ConnectionFactory
ConnectionFactory/RefAddr/2/Type=factory
ConnectionFactory/RefAddr/2/Encoding=String
ConnectionFactory/RefAddr/2/Content=com.rabbitmq.jms.admin.RMQObjectFactory
ConnectionFactory/RefAddr/3/Type=host
ConnectionFactory/RefAddr/3/Encoding=String
ConnectionFactory/RefAddr/3/Content=host.company.com
ConnectionFactory/RefAddr/4/Type=port
ConnectionFactory/RefAddr/4/Encoding=String
ConnectionFactory/RefAddr/4/Content=5672
一般的なプロバイダー URL パターン

.bindings ファイルを含むディレクトリ パス。

file://C:/JNDI/rabbitMQ/

初期コンテキストcom.sun.jndi.fscontext.RefFSContextFactory
接続ファクトリ

JNDI Initial Context ファクトリ クラス
- ConnectionFactory

Solace JMS

対象Solace JMS
最低限必要な jar ファイルcommons-lang-<VERSION>.jar
sol-common-<VERSION>.jar
sol-jcsmp-<VERSION>.jar
sol-jms-<VERSION>.jar
一般的なプロバイダー URL パターンsmf://<HOST>:<PORT>
ファクトリ クラス

JNDI Initial Context ファクトリ クラス
 - com.solacesystems.jndi.SolJNDIInitialContextFactory
デフォルト名はありません。接続ファクトリをルックアップするには特定の JNDI 名が必要です。

接続ファクトリのルックアップにアクセスするために追加の JNDI プロパティ Solace_JMS_VPN=myvpn を設定する必要があります。デフォルトの VPN 名はありません。

Sun Java System Message Queue (Sun MQ)

対象Sun MQ Server
最低限必要な jar ファイル

<SUN_MQ_INSTALL_DIR>/Sun/MessageQueue/mq/lib 配下にあります。
- fscontext.jar
- imq.jar
- jms.jar

一般的なプロバイダー URL パターンhostname
ファクトリ クラス

JNDI Initial Context ファクトリ クラス
- com.sun.jndi.fscontext.RefFSContextFactory

詳細Sun Java System Message Queue Administration 3.x/4.x Guide の Quick-Start Tutorial セクションを参照してください。このドキュメントは http://docs.sun.com/app/docs/prod/message?l=en#hic からダウンロードできます。ドキュメント内で、 [Software] > [Application & Integration Services] > [Message Queue] に移動します。

TIBCO EMS

対象TIBCO EMS
最低限必要な JAR

<TIBCO_INSTALL_DIR>/ems/clients/java 配下にあります。
- tibjms.jar
- tibcrypt.jar (SSL に必要)

注意: SonicMQ の broker.jar と TIBCO の tibcojms.jar を一緒に使用することはできません。

一般的なプロバイダー URL パターンtcp://hostname:7222
hostname (if using default port numbers)
ファクトリ クラス

JNDI Initial Context ファクトリ クラス
- com.tibco.tibjms.naming.TibjmsInitialContextFactory

SSL の構成

次の JNDI プロパティを構成する必要があります。
- com.tibco.tibjms.naming.security_protocol=ssl
- com.tibco.tibjms.naming.ssl_enable_verify_host=false
- com.tibco.tibjms.naming.ssl_enable_verify_hostname=false

双方向 SSL では、次の追加プロパティも構成する必要があります。
- com.tibco.tibjms.naming.ssl_identity=<PATH_TO_CLIENT_KEYSTORE>
 - com.tibco.tibjms.naming.ssl_password=<KEYSTORE_PASSWORD>
 - com.tibco.tibjms.naming.ssl_trusted_certs=<PATH_TO_TRUSTED_CERTIFICATE> 
 - com.tibco.tibjms.naming.ssl_vendor=j2se
 - com.tibco.tibjms.naming.ssl_auth_only=true/false

追加情報

Tibco EMS への接続にユーザー名とパスワードが必要なときはいつでも、次の JNDI プロパティを構成する必要があります。
- java.naming.security.principal=<USERNAME> 
 - java.naming.security.credentials=<PASSWORD>

詳細TIBCO Enterprise Message Service ユーザーズ ガイドの section 9: Developing an EMS Client Application > Programmer Checklist を参照してください。


Sun JMS

SOAtest と Virtualize は Sun JNDI 実装をバンドルしています。Sun JNDI 実装 は、 com.sun.jndi.fscontext.RefFSContextFactory を使用して、ローカル ハード ドライブ上のディレクトリおよびファイルに初期コンテキストとして JNDI バインディングを、およびユーザー定義のプロバイダー URL (ディレクトリ ) C:\JNDIRoot などを格納しています。

Sun 実装を使用しているとき、 fscontext が正常に ConnectionFactory および Queue か Topic オブジェクトをルックアップできるような .binding ファイルで C:\JNDIRoot ディレクトリに データ投入することが必要です。Parasoft は SOAtest/Virtualize インストール ディレクトリ (/examples/jms/JndiFileProviderTest.java) に .binding ファイルを作成するサンプルを保持しています。

その他の JMS プロバイダー

その他の JMS プロバイダーの場合、ご使用のシステムと通信する JMS クライアントを構成する方法についてはベンダーのガイドを参照してください。