Oracle WebLogic Server 12c: JMSサーバーとJMS宛先の構成

<このテキストを削除しないでください。これは、ブラウザ実行時に生成される"主要"なトピック一覧のプレースホルダです。>

目的

このチュートリアルでは、Oracle WebLogic Server 12cインスタンスでJava Message Service(JMS)サーバー、JMSキュー、JMSトピックを作成および構成する方法を説明します。

所要時間

約30分

概要

JMSサーバーは、WebLogicサーバーにJMSインフラストラクチャ機能を実装します。 宛先(キューまたはトピックのいずれか)には、JMSサーバーが構成されたWebLogicサーバー・インスタンスをターゲットとして設定できます。

このチュートリアルでは、JMSサーバー、JMSキュー、およびJMSトピックを作成し、構成します。 次に、提供されたWebアプリケーションを使用して、キューとトピックにメッセージをポストする方法を紹介します。 また、Oracle WebLogic Server 12c(12.1.1)管理コンソールを使用して、キューおよびトピックを監視する方法についても説明します。

ソフトウェア要件

ソフトウェア要件は、以下のとおりです。

前提条件

このチュートリアルを始める前に、Oracle by Example チュートリアルの『Oracle WebLogic Server 12c: Installing WebLogic Server and Creating a Domain』と『Oracle WebLogic Server 12c: Configuring Managed Servers』を完了している必要があります。

サーバーの起動

ドメインの管理サーバーと管理対象サーバーdizzy1を起動するには、次の手順を実行します。

.

ドメインの管理サーバーがまだ実行されていない場合は、これを起動します。 ターミナル・ウィンドウでドメイン・ディレクトリに移動し、次のコマンドを実行します。

$ ./startWebLogic.sh

 

ユーザー名パスワードを入力するよう指示されたら、ドメイン管理者の資格証明を入力します。

 

.

管理対象サーバーdizzy1も実行されている必要があります。 実行中でない場合、これを起動します。 別のターミナル・ウィンドウでドメイン・ディレクトリに移動してから、cdを使用してbinサブディレクトリに移動します。 次のコマンドを入力します。

$ ./startManagedWebLogic.sh dizzy1 http://host01.example.com:8001

これによって、dizzy1という名前の管理対象サーバーを起動するスクリプトが実行されます。 また、次のドメイン管理サーバーのURLが引数として指定されている点に注意してください。
http://host01.example.com:8001

注: 使用するドメイン管理サーバーのホスト名とポートを指定してください。

 

ユーザー名パスワードを入力するよう指示されたら、ドメイン管理者の資格証明を入力します。

 

JMSサーバーの構成

管理コンソールを使用してJMSサーバーを作成し、構成するには、次の手順を実行します。

.

サーバーが実行中になったら、WebLogic Serverの管理コンソールにアクセスします。 Webブラウザを開いて、次のURLを入力します。
http://<ホスト名>:<ポート>/console

このチュートリアルでは、http://host01.example.com:8001/consoleが使用されました。

注: 使用するドメイン管理サーバーのホスト名とポートを指定してください。

Welcome画面で、サーバーの起動時に入力したユーザー名パスワードを使用してログインします。

 

.

JMSサーバーの作成はドメイン構成の変更になるため、最初に構成をロックする必要があります。 Change Centerで、「Lock & Edit」ボタンをクリックします。

 

.

管理コンソールのDomain Structureで「Services」(横にある+記号をクリック)を展開します。 次に、「Messaging」を展開し、 「JMS Servers」をクリックします。

 

.

右側にSummary of JMS Serversセクションが表示されます。

JMS Servers表の上にある「New」ボタンをクリックします。

 

.

Create a New JMS Server画面でJMSサーバーのNamedizzyworldJMSServerと入力します。

Persistent Store(none)のままにします。

Next」をクリックします。

 

.

次の画面で、Targetドロップダウン・リストを使用して「dizzy1」を選択します。

次に、「Finish」をクリックします。

 

"JMS Server created successfully"というメッセージが表示されます。

注: ドメイン内でdizzy1がクラスタに含まれている場合、選択肢としてdizzy1dizzy1 (migratable)が表示されます。 JMSサーバーの宛先には1つのWebLogicサーバー・インスタンスしか設定できませんが、"migratable"オプションを選択した場合、障害発生時にクラスタ内の別のWebLogicサーバー・インスタンスに移行できます。

 

.

Change Centerパネルで、「Activate Changes」ボタンをクリックします。

 

"All changes have been activated. No restarts are necessary."というメッセージが表示されます。

 

JMSキューとJMSトピックの構成

管理コンソールを使用してJMSキューとJMSトピックを作成および構成するには、次の手順を実行します。

.

再度、構成をロックします。 Change Centerで、「Lock & Edit」ボタンをクリックします。

 

.

管理コンソールのDomain Structureで「JMS Modules」(「Services」→「Messaging」内)をクリックします。

 

.

右側にJMS Modulesセクションが表示されます。

JMS Modules表の上にある「New」ボタンをクリックします。

 

.

Create JMS System Module画面で、NamedizzyworldModuleと入力します。

また、Descriptor File NamedizzyworldModuleと入力します。

Location in Domainは空白のままにします。

Next」をクリックします。

 

.

次の画面で、dizzy1の横にあるチェック・ボックスを選択します。

Next」をクリックします。

 

注: 使用するドメインでdizzy1がクラスタに含まれていない場合、ターゲット画面の表示が異なりますが、 その場合も「dizzy1」を選択します。

 

.

次の画面で、Would you like to add resources to this JMS system module?の横にあるチェック・ボックスを選択します。

次に、「Finish」をクリックします。

 

"The JMS module was created successfully"というメッセージが表示されます。

 

.

Settings for dizzyworldModuleセクションで「Subdeployments」タブをクリックします。

 

.

Subdeployments表の上にある「New」ボタンをクリックします。

 

.

Create a New Subdeployment画面で、Subdeployment Namedizzysubmoduleと入力します。

Next」をクリックします。

 

.

次の画面で、dizzyworldJMSServerの横にあるチェック・ボックスを選択します。

次に、「Finish」をクリックします。

 

"Subdeployment created successfully"というメッセージが表示されます。

注: 前述のとおり、ドメインにクラスタが含まれない場合や別のサーバーが定義されている場合、ターゲット画面の表示は異なります。

 

.

Configuration」タブをクリックします。

 

.

Settings for dizzyworldModule画面で、Summary of Resources表の上にある「New」ボタンをクリックします。

 

.

リソース・タイプとして「Queue」ラジオ・ボタンを選択します。

Next」をクリックします。

 

.

次の画面で、NamedizzyworldQueueと入力します。

また、JNDI NamedizzyworldQueueと入力します。

TemplateNoneのままにします。

Next」をクリックします。

 

.

次の画面で、Subdeploymentsドロップダウン・リストを使用して「dizzysubmodule」を選択します。

選択すると、Targets領域が入力され、ターゲットがJMSサーバーdizzyworldJMSServerに設定されていることが分かります。

Finish」をクリックします。

 

"The JMS Queue was created successfully"というメッセージが表示されます。

 

.

再度、Settings for dizzyworldModule画面で、Summary of Resources表の上にある「New」ボタンをクリックします。

 

.

リソース・タイプとして今回は「Topic」ラジオ・ボタンを選択します。

Next」をクリックします。

 

.

次の画面で、NamedizzyworldTopicと入力します。

また、JNDI NamedizzyworldTopicと入力します。

TemplateNoneのままにします。

Next」をクリックします。

 

.

次の画面で、Subdeploymentsドロップダウン・リストを使用して「dizzysubmodule」を選択します。

選択すると、Targets領域が入力され、ターゲットがJMSサーバーdizzyworldJMSServerに設定されていることが分かります。

Finish」をクリックします。

 

"The JMS Topic was created successfully"というメッセージが表示されます。

 

.

Change Centerパネルで、「Activate Changes」ボタンをクリックします。

 

"All changes have been activated. No restarts are necessary."というメッセージが表示されます。

 

.

Domain Structureで「Environment」を展開し、「Servers」をクリックします。

Servers表で、サーバー「dizzy1」をクリックします。

 

.

Settings for dizzy1の「Configuration」タブ→「General」サブタブで、「View JNDI Tree」リンクをクリックします。

 

.

新規ブラウザ・ウィンドウ(またはタブ)にJNDIツリーが表示されます。 JNDIツリーにdizzyworldQueuedizzyworldTopicが表示されていることを確認します。

注: 使用するサーバーのJNDIツリー内のその他のエントリは、サーバーに定義されているリソースによっては表示とは大きく異なる可能性があります。

 

キューおよびトピックの表示のカスタマイズ

管理コンソールでのキューおよびトピックの表示方法をカスタマイズするには、次の手順を実行します。

.

管理コンソールのDomain Structureで「Services」→「Messaging」へ戻り、「JMS Modules」をクリックします。

JMS Modules表で「dizzyworldModule」リンクをクリックします。

 

.

Summary of Resources表で、「dizzyworldQueue」をクリックします。

 

.

Settings for dizzyworldQueueセクションで「Monitoring」タブをクリックします。

 

.

Monitoring画面で「Customize this table」をクリックします。

 

.

Chosen列から「Consumers High」と「Consumers Total」を選択し、左矢印をクリックしてAvailable列へと移動します。 これによって、表内の列数が減ります。

Apply」ボタンをクリックします。

 

.

Destinations表でキューに対して表示される列の数が少なくなっていることを確認します。

 

.

トピック表示のカスタマイズも同じ方法で実行します。 Domain Structureで「Services」から「Messaging」へ戻り、「JMS Modules」をクリックします。

JMS Modules表で「dizzyworldModule」リンクをクリックします。

Summary of Resources表で、「dizzyworldTopic」をクリックします。

Settings for dizzyworldTopicセクションで「Monitoring」タブをクリックします。

Monitoring画面で「Customize this table」をクリックします。

Available列から「Messages Total」を選択し、右矢印をクリックしてChosenに移動します。 これによって、表内の列数が増えます。

Apply」ボタンをクリックします。

 

.

Destinations表でトピックに対して表示される列の数が多くなっていることを確認します。

 

JMSキューとJMSトピックのテスト

提供されたWebアプリケーションを使用してJMSキューとJMSトピックをテストするには、以下の手順を実行します。

.

WebLogic Serverのドメインとサーバーがあるマシン上にtest_jms.zipファイルをダウンロードします。 ローカル・ドライブにファイルを解凍します。 このチュートリアルでは、/home/oracle/jmsobeディレクトリにファイルが解凍されます。 このzipファイルには、次の2つのファイルが含まれます。

  • messaging.war
    キューおよびトピックにメッセージをポストするために使用される単純なWebアプリケーション
  • deploy_testjms.py
    Webアプリケーションのデプロイに使用されるWebLogic Scripting Tool(WLST)スクリプト

 

.

新しいターミナル・ウィンドウを開き、WebLogicインストール・ディレクトリ内の/server/binディレクトリに移動します。 このチュートリアルで使用したディレクトリは、以下のディレクトリです。
/u01/app/oracle/Middleware/wlserver_12.1/server/bin

次のコマンドを使用してsetWLSEnv.shスクリプトを実行します。

$ source setWLSEnv.sh

これによってPATHおよびCLASSPATHが設定され、WLSTデプロイメント・スクリプトが実行できるようになります。

 

.

次に、messaging.warファイルのあるディレクトリに移動します。 このチュートリアルで使用したディレクトリは、/home/oracle/jmsobeです。

提供されたWLSTスクリプトdeploy_testjms.pyを実行する前に、このスクリプトを編集する必要があります。 スクリプトの1行目では、connect()コマンドが使用されています。 このコマンドの最初の引数はドメイン管理者のユーザー名であり、2番目の引数はユーザー・パスワードであり、3番目の引数はドメイン管理サーバーのホストおよびポートです。 スクリプトを実行する前に、使用するドメインに合った引数の値を指定してください。

必要な変更をスクリプトに加えたら、ファイルを保存します。

 

.

deploy_testjms.pyスクリプトを実行して、messaging.warファイル内のWebアプリケーションをデプロイし、ターゲットとしてdizzy1サーバーを設定します。 これには、次のコマンドを実行します。

$ java weblogic.WLST deploy_testjms.py

 

デプロイ処理が成功したことを示すメッセージが表示されます。

注: Context.close()に関する警告は無視してかまいません。 この警告はWLSTスクリプトを実行すると常に表示されますが、問題ではありません。

 

.

デプロイメントの成功を検証するには、管理コンソールのDomain Structureへ移動し、「Deployments」をクリックします。 Deployments表から、"Active"状態のMessagingを探します。

 

.

デプロイしたアプリケーションを使用するには、別のWebブラウザでdizzy1管理対象サーバーのホスト名とポートを入力し、最後に/messagingを付けます。

このチュートリアルで入力されたURLは、以下のURLです。
http://host01.example.com:8003/messaging

アプリケーションが表示されたら、2つのMessageフィールドの両方にテキストを入力し、フィールドの下にあるボタンをクリックします。 上のフィールドに入力されたメッセージはキューに送信され、 下のフィールドに入力されたメッセージはトピックに公開されます。

 

ボタンをクリックした後に、次の画面で「Back To Home Page」リンクをクリックするとテストを再実行できます。

キューおよびトピックに対して好きなだけメッセージをポストし、 それぞれの宛先にポストしたメッセージの個数を覚えておきます。

 

JMSキューとJMSトピックの監視

JMSキューとJMSトピックを監視するには、次の手順を実行します。

.

管理コンソールへ戻ります。 Domain Structureで「Services」から「Messaging」へ戻り、「JMS Modules」をクリックします。

JMS Modules表で「dizzyworldModule」リンクをクリックします。

 

.

Summary of Resources表で、「dizzyworldQueue」をクリックします。

 

.

Settings for dizzyworldQueueセクションで「Monitoring」タブをクリックします。

 

.

Destinations表でdizzyworldModule!dizzyworldQueueの横に表示されるエントリを確認します。 キューに送信したメッセージの数がMessages Totalに表示されます。

 

.

トピックを監視するには、Domain Structureで「Services」→「Messaging」へ戻り、「JMS Modules」をクリックします。 JMS Modules表で「dizzyworldModule」リンクをクリックします。 Summary of Resources表で、「dizzyworldTopic」をクリックします。 Settings for dizzyworldTopicセクションで「Monitoring」タブをクリックします。

Destinations表でdizzyworldModule!dizzyworldTopicの横に表示されるエントリを確認します。 トピックに公開したメッセージの数がMessages Totalに表示されます。

 

まとめ

このチュートリアルで学習した内容は、次のとおりです。

参考資料

著者

Hardware and Software Engineered to Work Together Copyright © 2011, Oracle and/or its affiliates. All rights reserved