スタートガイド
Red Hat JBoss Data Grid 6.5.1 向け
概要
パート I. JBoss Data Grid の紹介
第1章 Red Hat JBoss Data Grid
- スキーマレスなキーバリューストア – JBoss Data Grid は、固定のデータモデルを用いずに異なるオブジェクトを格納する柔軟な NoSQL データベースです。
- グリッドベースのデータストレージ – JBoss Data Grid は、複数のノードにまたがったデータのレプリケートが簡単に行えるよう設計されています。
- エラスティックスケーリング – 処理を中断せずに簡単にノードを追加および削除できます。
- 複数のアクセスプロトコル – REST、Memcached、Hot Rod、またはシンプルなマップのような API を使用して簡単にデータグリッドへアクセスできます。
1.1. サポートされる構成
1.2. コンポーネントおよびバージョン
1.3. Red Hat JBoss Data Grid の使用モード
- リモートクライアントサーバーモード
- ライブラリーモード
1.3.1. リモートクライアントサーバーモード
- データグリッドのスケーリングがより簡単です。
- クライアントアプリケーションの影響を与えずにデータグリッドをより簡単にアップグレードできます。
$JBOSS_HOME/bin/standalone.sh
$JBOSS_HOME\bin\standalone.bat
1.3.2. ライブラリーモード
- トランザクション
- リスナーおよび通知
1.4. Red Hat JBoss Data Grid の利点
JBoss Data Grid の利点
- パフォーマンス
- リモートデータストア (データベースなど) からオブジェクトにアクセスするよりも、ローカルメモリーからオブジェクトにアクセスした方が高速になります。JBoss Data Grid は速度が遅いデータソースから送信されるインメモリーオブジェクトを効率的に保存する方法を提供するため、リモートデータストアよりもパフォーマンスが高速になります。また、JBoss Data Grid はクラスター化されたキャッシュとクラスター化されていないキャッシュの両方に対して最適化を実現するため、パフォーマンスをさらに向上します。
- 一貫性
- キャッシュにデータを格納すると、固有のリスクをともないます。アクセス時にデータが古くなっている (陳腐) 可能性があります。このリスクに対応するため、JBoss Data Grid はキャッシュインバリデーションおよびエクスパレーションを使用して、キャッシュから陳腐データエントリーを削除します。さらに、JBoss Data Grid はトラザクションリカバリーやバージョン API とともに、JTA、分散 (XA)、および 2 フェーズコミットトランザクションをサポートし、保存されたバージョンを基にデータを削除または置換します。
- 巨大なヒープと高可用性
- JBoss Data Grid では、パフォーマンス向上のためにアプリケーションがデータのルックアップ処理のほとんどを大型のサーバーデータベースへ委譲する必要がありません。JBoss Data Grid は、レプリケーションや分散などの技術を導入し、現在のエンタープライズアプリケーションのほとんどに存在するボトルネックを完全に取り除きます。
例1.1 巨大なヒープと高可用性の例
16 個のブレードサーバーを持つグリッドの例として、各ノードがレプリケートされたキャッシュ専用の 2 GB のストレージ領域を持っているとします。この場合、グリッドの全データが 2 GB のデータのコピーとなります。逆に、分散グリッド (データ項目ごとに 1 つのコピーが必要であることを仮定し、ヒープ全体の容量を 2 で割る) では、メモリーがサポートする仮想ヒープに 16 GB のデータが含まれます。グリッドのどこからでも効果的にこのデータへアクセスできるようになります。サーバーに障害が発生した場合、グリッドによって損失データの新しいコピーが即座に作成され、グリッドの運用サーバーに置かれます。 - スケーラビリティー
- 分散データグリッドがレプリケートされたクラスター化キャッシュよりも優れているのは、容量とパフォーマンスの両方でデータグリッドがスケーラブルである点です。グリッド全体のスループットと容量を増やすには、ノードを JBoss Data Grid に追加します。JBoss Data Grid は、ノードの追加または削除による影響を、グリッドのすべてのノードではなくノードのサブセットに限定する、一貫したハッシュ化アルゴリズムを使用します。JBoss Data Grid ではデータが均一に分散されるため、グリッドサイズの唯一の上限はネットワーク上でのグループ通信になります。ネットワークのグループ通信は最小限で、新規ノードの発見のみに制限されています。すべてのデータアクセスパターンは、ノードによるピアツーピア接続を介した直接通信を許可するため、スケーラビリティーの更なる向上を容易にします。JBoss Data Grid のクラスターは、リアルタイムでスケールアップまたはスケールダウンすることができ、インフラストラクチャーを再起動する必要はありません。スケーリングポリシーへの変更をリアルタイムで適用できるため、非常にフレキシブルな環境を実現することができます。
- データ分散
- JBoss Data Grid は一貫したハッシュアルゴリズムを使用して、クラスターでのキーの場所を判断します。一貫したハッシュ化に関する利点には次のようなものがあります。データ分散は、永続性とフォールトトラレンスを提供するため、余分のない十分なコピーがクラスター内に確実に存在するようにします。余分なコピーは環境のスケーラビリティーを低下させます。
- コスト効果
- 速度
- 更なるメタデータやネットワークトラフィックの必要がない、決定論的なキーの場所
- 永続性
- JBoss Data Grid は、
CacheStore
インターフェースと複数の高パフォーマンス実装 (JDBC キャッシュストアやファイルシステムベースのキャッシュストアなど) を公開します。キャッシュストアを使用すると、起動時にキャッシュを事前設定し、関連データが破損しないように保持できます。また、キャッシュストアは必要時にデータをディスクへオーバーフローし、メモリー不足にならないようにします。 - 言語のバインディング
- JBoss Data Grid は、多くの一般的なプログラミング言語向けの既存クライアントを持つ Memcached プロトコルと、Hot Rod と呼ばれる最適化された JBoss Data Grid 固有のプロトコルの両方をサポートします。そのため、JBoss Data Grid は Java に限定されず、すべての主要な Web サイトやアプリケーションに使用できます。さらに、RESTful API を介して HTTP プロトコルを使用すると、リモートキャッシュにアクセスできます。
- 管理
- 数百個またはそれ以上のサーバーが存在するグリッド環境では、管理の実行は重要な機能になります。エンタープライズネットワーク管理ソフトウェアである JBoss Operations Network は、複数の JBoss Data Grid インスタンスを管理するのに最適なツールです。JBoss Operations Network の機能を使用すると、キャッシュマネージャーやキャッシュインスタンスを簡単かつ効率的に監視できます。
- リモートデータグリッド
- JBoss Data Grid は、アプリケーションサーバーアーキテクチャー全体をスケールアップしてデータグリッドをスケールアップする代わりに、アプリケーションサーバーアーキテクチャーに依存せずにデータグリッドインフラストラクチャーを独自にアップグレードできるリモートクライアントサーバーモードを提供します。さらに、データグリッドサーバーをアプリケーションサーバー以外のリソースへ割り当てることができます。また、独自にデータグリッドをアップグレードでき、データグリッド内でアプリケーションを再デプロイできます。
1.5. Red Hat JBoss Data Grid のバージョン情報
JBoss Data Grid 製品 | Infinispan バージョン |
---|---|
JBoss Data Grid 6.0.0 | Infinispan 5.1.5 |
JBoss Data Grid 6.0.1 | Infinispan 5.1.7 |
JBoss Data Grid 6.1.0 | Infinispan 5.2.4 |
JBoss Data Grid 6.2.0 | Infinispan 6.0.1 |
JBoss Data Grid 6.3.0 | Infinispan 6.1.0 |
JBoss Data Grid 6.3.1 | Infinispan 6.1.1 |
JBoss Data Grid 6.4.0 | Infinispan 6.2.0 |
JBoss Data Grid 6.4.1 | Infinispan 6.2.1 |
JBoss Data Grid 6.5.0 | Infinispan 6.3.0 |
JBoss Data Grid 6.5.1 | Infinispan 6.3.1 |
注記
1.6. Red Hat JBoss Data Grid のキャッシュアーキテクチャー

図1.1 Red Hat JBoss Data Grid のキャッシュアーキテクチャー
- 図の濃い灰色部分にあるのは、ユーザーが直接対話できない要素です。リモートクライアントサーバーモードでは、永続ストア、キャッシュ、キャッシュマネージャー、1 次キャッシュ、およびサーバーモジュールが含まれます。ライブラリーモードでは、ユーザーは永続ストアおよび 1 次キャッシュと直接対話できません。
- 図の薄い灰色部分にあるのは、ユーザーが直接対話できる要素です。リモートクライアントサーバーモードでは、アプリケーションとキャッシュクライアントが含まれます。ライブラリーモードでは、ユーザーはキャッシュ、キャッシュマネージャー、およびアプリケーションと対話できます。
JBoss Data Grid のキャッシュアーキテクチャーには以下の要素が含まれています。
- 永続ストアはオプションのコンポーネントです。データグリッドのシャットダウン後に、修復用にキャッシュされたエントリーを永久に格納します。
- 1 次キャッシュ (L1 キャッシュ) は、リモートキャッシュエントリーが最初にアクセスされた後にそれらのエントリーを格納し、同じエントリーがその後使用されるたびに不必要なリモートフェッチ操作が行われないようにします。
- キャッシュマネージャーはキャッシュインスタンスのライフサイクルを制御し、必要時にキャッシュインスタンスを格納および読み出しできます。
- キャッシュは、キーと値のエントリーを格納および読み出しするための主なコンポーネントです。
ライブラリーモードでは、アプリケーション (ユーザーコード) はキャッシュおよびキャッシュマネージャーコンポーネントと直接対話できます。この場合、アプリケーションは同じ Java 仮想マシン (JVM) にあり、Cache および Cache Manager Java API メソッドを直接呼び出せます。
1.7. Red Hat JBoss Data Grid の API
- キャッシュ
- バッチ化
- グループ化
- 永続性 (旧名 CacheStore)
- ConfigurationBuilder
- 外部化
- 通知 (通知とリスナーを処理するため、リスナー API とも呼ばれます)
- 非同期 API (リモートクライアントサーバーモードで Hot Rod クライアントを併用する場合のみ使用可能)
- REST インターフェース
- Memcached インターフェース
- Hot Rod インターフェース
- RemoteCache API
パート II. Red Hat JBoss Data Grid のダウンロードおよびインストール
第2章 Red Hat JBoss Data Grid のダウンロード
2.1. Red Hat JBoss Data Grid インストールの前提条件
2.2. Java 仮想マシン
2.3. Red Hat Enterprise Linux に OpenJDK をインストール
手順2.1 Red Hat Enterprise Linux に OpenJDK をインストール
ベースチャンネルのサブスクライブ
RHN ベースチャンネルより OpenJDK を取得します。Red Hat Enterprise Linux のインストールはデフォルトでこのチャンネルにサブスクライブされています。パッケージのインストール
yum ユーティリティを使用して OpenJDK をインストールします。$ sudo yum install java-1.6.0-openjdk-devel
OpenJDK がシステムデフォルトであることを確認
次のように、正しい JDK がシステムデフォルトとして設定されていることを確認します。- root 特権を持つユーザーとしてログインし、alternatives コマンドを実行します。
$ /usr/sbin/alternatives --config java
- OpenJDK のバージョンに応じて
/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
または/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
を選択します。 - 次のコマンドを使用して
javac
を設定します。$ /usr/sbin/alternatives --config javac
- 使用した OpenJDK のバージョンに応じて、
/usr/lib/jvm/java-1.6.0-openjdk/bin/java
または/usr/lib/jvm/java-1.7.0-openjdk/bin/java
を選択します。
2.4. JBoss Data Grid のダウンロードおよびインストール
- Red Hat カスタマーポータルから JBoss Data Grid をダウンロードします。
- ダウンロードしたファイルを検証します。
- JBoss Data Grid をインストールします。
2.4.1. Red Hat JBoss Data Grid のダウンロード
手順2.2 JBoss Data Grid のダウンロード
- カスタマーポータル (https://access.redhat.com) にログインします。
- ページ最上部にあるボタンをクリックします。
- 製品のダウンロード ページで をクリックします。
- Version: ドロップダウンメニューから適切な JBoss Data Grid バージョンを選択します。
- 表示されるリストから適切なファイルをダウンロードします。
2.4.2. Red Hat カスタマーポータルについて
- Red Hat エンタイトルメントやサポート契約の管理および維持。
- 正式サポートされたソフトウェアのダウンロード。
- 製品ドキュメントや Red Hat ナレッジベースの利用。
- グローバルサポートサービスへの連絡。
- Red Hat 製品のバグの登録。
2.4.3. チェックサムの検証
2.4.4. ダウンロードされたファイルの検証
手順2.3 ダウンロードされたファイルの検証
- Red Hat カスタマーポータルからダウンロードしたファイルにエラーがないことをポータルサイト上で検証するには、パッケージの Software Details ページに移動します。このページには、
MD5
およびSHA256
のチェックサム値が記載されています。チェックサム値を使用してファイルの整合性をチェックします。 - ターミナルウインドウを開き、ダウンロードしたファイルを引数として指定して
md5sum
またはsha256sum
コマンドを実行します。コマンドの出力として、ファイルのチェックサム値が表示されます。 - コマンドによって返されたチェックサム値と、そのファイルの Software Details ページに記載されている値を比較します。
注記
Microsoft Windows にはチェックサムツールが同梱されていません。Windows オペレーティングシステムのユーザーはサードパーティーの製品をダウンロードする必要があります。
2 つのチェックサム値が同じである場合、ファイルに変更や破損がないため、安心して使用することができます。
2.4.5. Red Hat JBoss Data Grid のインストール
適切なバージョン、プラットフォームおよびファイルタイプを見つけ、カスタマーポータルから Red Hat JBoss Data Grid をダウンロードする必要があります。
手順2.4 JBoss Data Grid のインストール
- ダウンロードした JBoss Data Grid パッケージをマシン上の希望の場所にコピーします。
- 次のコマンドを実行して、ダウンロードした JBoss Data Grid パッケージを展開します。
$ unzip JDG_PACKAGE
JDG_PACKAGE は、Red Hat カスタマーポータルからダウンロードした JBoss Data Grid 使用モードパッケージの名前に置き換えます。 - 展開したディレクトリーは $JDG_HOME とします。
2.4.6. Red Hat のドキュメントサイト
第3章 Maven リポジトリーのインストールおよび使用
3.1. Maven
重要
3.2. 必要な Maven リポジトリー
- JBoss Data Grid Maven リポジトリー
techpreview-all-repository
(https://maven.repository.redhat.com/techpreview/all/)
3.3. Maven リポジトリーのインストール
- ローカルファイルシステム上 (「ローカルファイルシステムリポジトリーのインストール」)。
- Apache Web Server 上。
- Maven リポジトリーマネージャーを使用 (「Maven リポジトリーマネージャーのインストール」)。
3.3.1. ローカルファイルシステムリポジトリーのインストール
手順3.1 ローカルファイルシステムリポジトリーのインストール (JBoss Data Grid)
カスタマーポータルへのログイン
ブラウザーでカスタマーポータルページ (https://access.redhat.com/home) に移動し、ログインします。JBoss Data Grid リポジトリーファイルのダウンロード
Red Hat カスタマーポータルからjboss-datagrid-{VERSION}-maven-repository.zip
をダウンロードします。- ローカルファイルシステムのディレクトリー (例:
$JDG_HOME/projects/maven-repositories/
) にファイルを展開します。
3.3.2. Maven リポジトリーマネージャーのインストール
- Apache Archiva: http://archiva.apache.org/
- JFrog Artifactory: http://www.jfrog.com/products.php
- Sonatype Nexus: http://nexus.sonatype.org/ (詳細は 「Nuxus を用いた JBoss Enterprise Application Platform リポジトリーのインストール」 を参照してください)
3.4. Maven レポジトリーの設定
settings.xml
ファイルを編集します。デフォルトの settings.xml ファイルは、Maven インストールの conf
ディレクトリーにあります。
.m2
サブディレクトリーにあります。Maven の設定に関する詳細はhttp://maven.apache.org/settings.html (Maven のドキュメント) を参照してください。
3.4.1. 次のステップ
パート III. JBoss Data Grid でサポートされるコンテナー
第4章 JBoss Data Grid をサポートされるコンテナーと使用
- アプリケーションによって起動された Java SE。
- スタンドアロン JBoss Data Grid サーバーとして。
- アプリケーションのライブラリーとしてバンドルされ、アプリケーションサーバーへデプロイされ、アプリケーションによって起動 (たとえば、JBoss Data Grid は Tomcat または Weblogic と使用できます)。
- OSGi ランタイム環境内 (この場合、Apache Karaf)。
4.1. JBoss EAP での JBoss Data Grid のデプロイ (ライブラリーモード)
注記
- 依存関係を
jboss-deployment-structure.xml
ファイルに追加します。 - 依存関係を
MANIFEST.MF
ファイルに追加します。 - Maven より
MANIFEST.MF
ファイルを生成します。
以下の設定を jboss-deployment-structure.xml
ファイルに追加します。
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2"> <deployment> <dependencies> <module name="org.infinispan" slot="jdg-6.5" services="export"/> </dependencies> </deployment> </jboss-deployment-structure>
注記
jboss-deployment-structure.xml
ファイルの詳細は、Red Hat JBoss Enterprise Application Platform のドキュメントを参照してください。
次のように依存関係を MANIFEST.MF
ファイルに追加します。
例4.1 MANIFEST.MF ファイルの例
Manifest-Version: 1.0 Dependencies: org.infinispan:jdg-6.5 services
- JBoss Data Grid コア
Dependencies: org.infinispan:jdg-6.5 services
- 埋め込みクエリー
Dependencies: org.infinispan:jdg-6.5 services, org.infinispan.query:jdg-6.5 services
- JDBC キャッシュストア
Dependencies: org.infinispan:jdg-6.5 services, org.infinispan.persistence.jdbc:jdg-6.5 services
- JPA キャッシュストア
Dependencies: org.infinispan:jdg-6.5 services, org.infinispan.persistence.jpa:jdg-6.5 services
- LevelDB キャッシュストア
Dependencies: org.infinispan:jdg-6.5 services, org.infinispan.persistence.leveldb:jdg-6.5 services
- CDI
Dependencies: org.infinispan:jdg-6.5 services, org.infinispan.cdi:jdg-6.5 meta-inf
MANIFEST.MF
ファイルはビルド中 (JAR または WAR プロセス中) に生成されます。MANIFEST.MF
ファイルに依存関係を追加する代わりに、以下を pom.xml
ファイルに追加し、Maven で直接依存関係を設定します。
<plugin> <artifactId>maven-war-plugin</artifactId> <version>2.4</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> <archive> <manifestEntries> <Dependencies>org.infinispan:jdg-6.5 services</Dependencies> </manifestEntries> </archive> </configuration> </plugin>
4.2. JBoss EAP での JBoss Data Grid のデプロイ (リモートクライアントサーバーモード)
注記
- 依存関係を
jboss-deployment-structure.xml
ファイルに追加します。 - 依存関係を
MANIFEST.MF
ファイルに追加します。
以下の設定を jboss-deployment-structure.xml
ファイルに追加します。
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2"> <deployment> <dependencies> <module name="org.infinispan.commons" slot="jdg-6.5" services="export"/> <module name="org.infinispan.client.hotrod" slot="jdg-6.5" services="export"/> </dependencies> </deployment> </jboss-deployment-structure>
注記
jboss-deployment-structure.xml
ファイルの詳細は、Red Hat JBoss Enterprise Application Platform のドキュメントを参照してください。
次のように依存関係を MANIFEST.MF
ファイルに追加します。
例4.2 MANIFEST.MF ファイルの例
Manifest-Version: 1.0 Dependencies: org.infinispan.commons:jdg-6.5 services, org.infinispan.client.hotrod:jdg-6.5 services
- 基本の Hot Rod クライアント
org.infinispan.commons:jdg-6.5 services, org.infinispan.client.hotrod:jdg-6.5 services
- リモートクエリー機能を持つ Hot Rod クライアント
org.infinispan.commons:jdg-6.5 services, org.infinispan.client.hotrod:jdg-6.5 services, org.infinispan.query.dsl:jdg-6.5 services, org.jboss.remoting3
4.3. JBoss Enterprise Web Server での JBoss Data Grid のデプロイ
4.4. WebLogic サーバーでの Web アプリケーションのデプロイ (ライブラリーモード)
Web アプリケーションをデプロイするための前提条件は次のとおりです。
- WebLogic Server 12c
- JBoss Data Grid のライブラリー (埋め込み) モード
手順4.1 WebLogic サーバーでの Web アプリケーションのデプロイ
Web アプリケーションの作成
Web アプリケーションを作成し、ライブラリーをWEB-INF
フォルダーに追加します。weblogic.xml デプロイメント記述子の作成
以下の要素が含まれるweblogic.xml
デプロイメント記述子を作成します。<?xml version="1.0" encoding="UTF-8"?> <weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic-web-app.xsd"> <container-descriptor> <prefer-web-inf-classes>true</prefer-web-inf-classes> </container-descriptor> </weblogic-web-app>
注記
prefer-web-inf-classes
クラスは、WEB-INF/lib
フォルダーにあるライブラリーおよびクラスが WebLogic サーバーにバンドルされたデフォルトのライブラリーよりも優先されることを示します。たとえば、WebLogic サーバーのcommons-pool.jar
ファイルのバージョンは 1.4 で、クラスローダーによって自動的にロードされますが、Hot Rod クライアントはこのライブラリーの新しいバージョンを使用します。Web アプリケーションを Web アーカイブファイルへパック
Web アプリケーションの Web アプリケーションアーカイブ (WAR) ファイルを作成し、JBoss Data Grid ライブラリーと WebLogic デプロイメント記述子ファイルがWEB-INF
フォルダーにあることを確認します。WebLogic サーバーでのアプリケーションのデプロイ
Infinispan CDI モジュールを使用して Web アプリケーションをデプロイするには、WebLogic サーバーが稼働している場合は停止し、パッチ (パッチファイルp17424706_121200_Generic.zip
) を適用した後、WebLogic サーバーを再起動します。Infinispan CDI モジュールが使用されない場合は、通常どおり Web アプリケーションをデプロイします。WebLogic サーバーへのパッチ適用に関する詳細は、Oracle の Web サイトにある『Oracle patch database』を参照してください。
4.5. WebLogic サーバーでの Web アプリケーションのデプロイ (リモートクライアントサーバーモード)
手順4.2 WebLogic サーバーでの Web アプリケーションのデプロイ
- WebLogic サーバーをインストールするには http://docs.oracle.com/cd/E24329_01/doc.1211/e24492/toc.htm を参照してください。
- リモートクライアントサーバーモードの JBoss Data Grid を設定し、キャッシュ、キャッシュコンテナー、およびエンドポイント設定を定義します。設定後、JBoss Data Grid を起動し、Hot Rod エンドポイントが設定されたポートでリッスンしていることを確認します。リモートクライアントサーバーモードの JBoss Data Grid の設定に関する詳細は、7章Red Hat JBoss Data Grid のリモートクライアントサーバーモードでの実行を参照してください。
- Web アプリケーションを作成し、Maven が使用される場合は
infinispan-remote
ライブラリーを依存関係として追加します。 - 以下の要素が含まれる
weblogic.xml
デプロイメント記述子を作成します。<?xml version="1.0" encoding="UTF-8"?> <weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic-web-app.xsd"> <container-descriptor> <prefer-web-inf-classes>true</prefer-web-inf-classes> </container-descriptor> </weblogic-web-app>
注記
prefer-web-inf-classes
クラスは、WEB-INF/lib
フォルダーにあるライブラリーおよびクラスが WebLogic サーバーにバンドルされたデフォルトのライブラリーよりも優先されることを示します。たとえば、WebLogic サーバーのcommons-pool.jar
ファイルのバージョンは 1.4 で、クラスローダーによって自動的にロードされますが、Hot Rod クライアントはこのライブラリーの新しいバージョンを使用します。 - デプロイメント記述子ファイルを
WEB-INF
フォルダーに追加します。 infinispan-remote
依存関係がpom.xml
ファイルに追加されたことを確認した後、Maven プラグインを使用して Web アーカイブを作成します。この代わりに、手動で Web アーカイブを作成し、手動でライブラリーに追加することもできます。- WebLogic サーバーでアプリケーションをデプロイし、Web アプリケーション内に埋め込まれた Hot Rod クライアントがリモート JBoss Data Grid サーバーに接続することを確認します。
4.6. Karaf (OSGi) での Red Hat JBoss Data Grid の実行
4.6.1. Karaf で Red Hat JBoss Data Grid のデプロイメントを実行 (リモートクライアントサーバー)
org/infinispan/infinispan-remote/${VERSION}
にある features
ファイルを必要とします。このファイルは OSGi の Hot Rod クライアントの依存関係をすべてリストし、さらに Karaf (バージョン 2.3.3 または 3.0) への機能のインストールを単純化します。
4.6.2. Karaf への Hot Rod クライアント機能のインストール
Red Hat JBoss Data Grid の Maven リポジトリーを設定する必要があります。
手順4.3 Karaf への Hot Rod クライアント機能のインストール
Karaf 2.3.3
Karaf 2.3.3 では次のコマンドを使用します。karaf@root> features:addUrl mvn:org.infinispan/infinispan-remote/${VERSION}/xml/features
karaf@root> features:install infinispan-remote
- 機能が正しくインストールされたことを確認します。
karaf@root> features:list //output
Karaf 3.0.0
次のコマンドを使用します。karaf@root> feature:repo-add mvn:org.infinispan/infinispan-remote/${VERSION}/xml/features
karaf@root> feature:install infinispan-remote
- 機能が正しくインストールされたことを確認します。
karaf@root> feature:list
この代わりに、-i
コマンドパラメーターを以下のように使用して、Hot Rod クライアント機能をインストールすることもできます。karaf@root()> feature:repo-add -i mvn:org.infinispan/infinispan-remote/${VERSION}/xml/features
4.6.3. Karaf での Red Hat JBoss Data Grid のインストール (ライブラリーモード)
features
ファイルを用いて同時にインストールすることもできます。
features
ファイルを使用してバンドルをインストールするには、以下を実行します。
- Karaf 内の feature リポジトリーを登録します。
- リポジトリーに含まれる機能をインストールします。
手順4.4 features
ファイルを使用したバンドルのインストール
Karaf コンソールの起動
以下のコマンドを使用して Karaf コンソールを起動します。$ cd $APACHE_KARAF_HOME/bin $ ./karaf
feature リポジトリーの登録
次のように feature リポジトリーを登録します。- Karaf 2.3.3 の場合
karaf@root()> features:addUrl mvn:org.infinispan/infinispan-embedded/${VERSION}/xml/features
karaf@root> features:install infinispan-embedded
- Karaf 3.0.0 の場合
karaf@root()> feature:repo-add mvn:org.infinispan/infinispan-embedded/${VERSION}/xml/features
karaf@root> feature:install infinispan-embedded
JBoss Data Grid が Karaf を使用してライブラリーモードで実行されます。
mvn:<groupId>/<artifactId>/<version>/xml/features
重要
重要
第5章 Apache Camel を用いた Red Hat JBoss Data Grid の実行
5.1. camel-jbossdatagrid コンポーネント
camel-jbossdatagrid
コンポーネントには、以下の機能が含まれています。
- ローカル Camel コンシューマー
キャッシュ変更通知を受け取り、処理のために送信します。同期または非同期で実行でき、レプリケートされたキャッシュまたは分散キャッシュでもサポートされます。
- ローカル Camel プロデューサー
プロデューサーはメッセージを作成し、エンドポイントへ送信します。
camel-jbossdatagrid
プロデューサーはGET
、PUT
、REMOVE
、およびCLEAR
操作を使用します。ローカルプロデューサーはレプリケートされたキャッシュまたは分散キャッシュでもサポートされます。 - リモート Camel プロデューサー
リモートクライアントサーバーモードでは、Camel プロデューサーは Hot Rod を使用してメッセージを送信できます。
- リモート Camel コンシューマー
クライアントサーバーモードでは、キャッシュ変更通知を受け取り、それを処理のために送信します。イベントは非同期で処理されます。
camel-jbossdatagrid
依存関係を pom.xml
ファイルに追加する必要があります。
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-jbossdatagrid</artifactId> <version>6.5.1.Final-redhat-1</version> <!-- use the same version as your JBoss Data Grid version --> </dependency>
注記
camel-jbossdatagrid
コンポーネントは、JBoss Data Grid に同梱されていますが、JBoss Fuse 6.1 や JBoss Fuse Service Works 6.0 ディストリビューションには含まれていません。
FileComponent
は URI では file
と呼ばれ、FileEndpoints
を作成します。
camel-jbossdatagrid
には以下の URI 形式が使用されます。
infinispan://hostname?[options]
プロデューサーはメッセージを作成し、レジストリーで設定されたローカルまたはリモートの JBoss Data Grid キャッシュへメッセージを送信できます。cacheContainer
が存在する場合、cacheContainer
インスタンスが DefaultCacheManager
または RemoteCacheManager
であるかによってキャッシュがローカルまたはリモートになります。存在しない場合は、指定のホスト名やポートを使用してリモートキャッシュへの接続を試みます。
名前 | デフォルト値 | タイプ | コンテキスト | 説明 |
---|---|---|---|---|
cacheContainer | null | CacheContainer | 共有 | レジストリーの org.infinispan.manager.CacheContainer への参照。 |
cacheName | null | 文字列 | 共有 | 使用するキャッシュ名。指定されていないと、デフォルトのキャッシュが使用されます。 |
command | PUT | 文字列 | プロデューサー | 実行する操作。現在 PUT、GET、REMOVE、および CLEAR のみが値としてサポートされています。 |
eventTypes | null | Set<String> | コンシューマー | 登録するイベントタイプ。デフォルトでは、すべてのイベントタイプをリッスンします。可能な値は org.infinispan.notifications.cachelistener.event.Event.Type で定義されます。 |
sync | true | ブール値 | コンシューマー | デフォルトでは、コンシューマーはキャッシュ操作を処理する同じスレッドによって同期的に通知を受け取ります。リモート HotRod リスナーは非同期の通知のみをサポートします。 |
clustered | false | ブール値 | コンシューマー | デフォルトでは、コンシューマーはローカルイベントのみを受信します。このオプションを使用すると、コンシューマーはクラスターの他のノードからのイベントもリッスンします。クラスター化されたリスナーに利用できるイベントは CACHE_ENTRY_CREATED 、CACHE_ENTRY_REMOVED 、および CACHE_ENTRY_MODIFIED のみです。 |
使用できる操作とヘッダー情報のリストは次のとおりです。
操作名 | コンテキスト | 説明 | 必要なヘッダー | 任意のヘッダー | 結果のヘッダー |
---|---|---|---|---|---|
CamelInfinispanOperationPut | 埋め込み/リモート | キーと値のペアをキャッシュに追加し、オプションでエクスパレーションを指定します。 | CamelInfinispanKey 、CamelInfinispanValue | CamelInfinispanLifespanTime 、CamelInfinispanLifespanTimeUnit 、CamelInfinispanMaxIdleTime 、CamelInfinispanMaxIdleTimeUnit 、CamelInfinispanIgnoreReturnValues | CamelInfinispanOperationResult |
CamelInfinispanOperationPutAsync | 非同期的にキーと値のペアをキャッシュに追加し、オプションでエクスパレーションを指定します。 | ||||
CamelInfinispanOperationPutIfAbsent | 存在しない場合にキーと値のペアをキャッシュに追加し、オプションでエクスパレーションを指定します。 | ||||
CamelInfinispanOperationPutIfAbsentAsync | 存在しない場合にキーと値のペアを非同期的にキャッシュへ追加し、オプションでエクスパレーションを指定します。 |
操作名 | コンテキスト | 説明 | 必要なヘッダー | 任意のヘッダー | 結果のヘッダー |
---|---|---|---|---|---|
CamelInfinispanOperationPutAll | 埋め込み/リモート | 複数のエントリーをキャッシュに追加します (オプションでエクスパレーションを指定します)。 | CamelInfinispanMap | CamelInfinispanLifespanTime 、CamelInfinispanLifespanTimeUnit 、 CamelInfinispanMaxIdleTime 、CamelInfinispanMaxIdleTimeUnit | |
CamelInfinispanOperationPutAllAsync | 非同期的に複数のエントリーをキャッシュに追加します (オプションでエクスパレーションを指定します)。 |
操作名 | コンテキスト | 説明 | 必要なヘッダー | 任意のヘッダー | 結果のヘッダー |
---|---|---|---|---|---|
CamelInfinispanOperationGet | 埋め込み/リモート | 特定のキーに関連する値をキャッシュから取得します。 | CamelInfinispanKey |
操作名 | コンテキスト | 説明 | 必要なヘッダー | 任意のヘッダー | 結果のヘッダー |
---|---|---|---|---|---|
CamelInfinispanOperationContainsKey | 埋め込み/リモート | キャッシュに特定のキーが含まれるかどうかを判断します。 | CamelInfinispanKey | CamelInfinispanOperationResult |
操作名 | コンテキスト | 説明 | 必要なヘッダー | 任意のヘッダー | 結果のヘッダー |
---|---|---|---|---|---|
CamelInfinispanOperationContainsValue | 埋め込み/リモート | キャッシュに特定の値が含まれるかどうかを判断します。 | CamelInfinispanKey |
操作名 | コンテキスト | 説明 | 必要なヘッダー | 任意のヘッダー | 結果のヘッダー |
---|---|---|---|---|---|
CamelInfinispanOperationRemove | 埋め込み/リモート | キャッシュからエントリーを削除します (オプションで、指定の値と一致した場合のみ削除します)。 | CamelInfinispanKey | CamelInfinispanValue | CamelInfinispanOperationResult |
CamelInfinispanOperationRemoveAsync | 非同期的にキャッシュからエントリーを削除します (オプションで、指定の値と一致した場合のみ削除します)。 |
操作名 | コンテキスト | 説明 | 必要なヘッダー | 任意のヘッダー | 結果のヘッダー |
---|---|---|---|---|---|
CamelInfinispanOperationReplace | 埋め込み/リモート | キャッシュのエントリーを条件的に置き換えます (オプションでエクスパレーションを指定します)。 | CamelInfinispanKey 、CamelInfinispanValue 、CamelInfinispanOldValue | CamelInfinispanLifespanTime 、CamelInfinispanLifespanTimeUnit 、CamelInfinispanMaxIdleTime 、CamelInfinispanMaxIdleTimeUnit 、CamelInfinispanIgnoreReturnValues | CamelInfinispanOperationResult |
CamelInfinispanOperationReplaceAsync | キャッシュのエントリーを非同期的かつ条件的に置き換えます (オプションでエクスパレーションを指定します)。 |
操作名 | コンテキスト | 説明 | 必要なヘッダー | 任意のヘッダー | 結果のヘッダー |
---|---|---|---|---|---|
CamelInfinispanOperationClear | 埋め込み/リモート | キャッシュを消去します。 |
操作名 | コンテキスト | 説明 | 必要なヘッダー | 任意のヘッダー | 結果のヘッダー |
---|---|---|---|---|---|
CamelInfinispanOperationSize | 埋め込み/リモート | キャッシュにあるエントリーの数を返します。 | CamelInfinispanOperationResult |
操作名 | コンテキスト | 説明 | 必要なヘッダー | 任意のヘッダー | 結果のヘッダー |
---|---|---|---|---|---|
CamelInfinispanOperationQuery | リモート | キャッシュでクエリーを実行します。 | CamelInfinispanQueryBuilder | CamelInfinispanOperationResult |
注記
CamelInfinispanIgnoreReturnValues
を取る操作はすべて null を結果として受け取ります。
名前 | デフォルト値 | タイプ | コンテキスト | 説明 |
---|---|---|---|---|
CamelInfinispanCacheName | null | 文字列 | 共有 | 操作またはイベントに参加しているキャッシュ。 |
CamelInfinispanMap | null | マップ | プロデューサー | CamelInfinispanOperationPutAll 操作の場合に使用されるマップ。 |
CamelInfinispanKey | null | オブジェクト | 共有 | 操作を実行するキーまたはイベントを生成するキー。 |
CamelInfinispanValue | null | オブジェクト | プロデューサー | 操作に使用する値。 |
CamelInfinispanOperationResult | null | オブジェクト | プロデューサー | 操作の結果。 |
CamelInfinispanEventType | null | 文字列 | コンシューマー |
ローカルキャッシュリスナー (非クラスター) の場合は次の値の 1 つ:
CACHE_ENTRY_ACTIVATED 、CACHE_ENTRY_PASSIVATED 、CACHE_ENTRY_VISITED 、CACHE_ENTRY_LOADED 、CACHE_ENTRY_EVICTED 、CACHE_ENTRY_CREATED 、 CACHE_ENTRY_REMOVED 、CACHE_ENTRY_MODIFIED
リモート HotRod リスナーの場合は次の値の 1 つ:
CLIENT_CACHE_ENTRY_CREATED 、CLIENT_CACHE_ENTRY_MODIFIED 、CLIENT_CACHE_ENTRY_REMOVED 、CLIENT_CACHE_FAILOVER
|
CamelInfinispanIsPre | null | ブール値 | コンシューマー | ローカルの非クラスター化リスナーが使用されると、Infinispan は各操作に対して操作の前と後に 1 つずつ 2 つのイベントを発火します。クラスター化リスナーおよびリモート HotRod リスナーの場合は、Infinispan は操作の後に 1 つのイベントのみを発火します。 |
CamelInfinispanQueryBuilder | null | InfinispanQueryBuilder | プロデューサー | InfinispanQueryBuilder のインスタンスで、キャッシュで実行されるクエリーを build() 内で定義します。 |
CamelInfinispanLifespanTime | null | long | プロデューサー | キャッシュ内の値のライフスパン時間。負の値は無限として解釈されます。 |
CamelInfinispanTimeUnit | null | 文字列 | プロデューサー | エントリーのライフスパン時間の時間単位。 |
CamelInfinispanMaxIdleTime | null | long | プロデューサー | エントリーがアイドル状態でいられる最大期間。この期間以降は期限切れと見なされます。 |
CamelInfinispanMaxIdleTimeUnit | null | 文字列 | プロデューサー | エントリーの最大アイドル時間の時間単位。 |
5.2. JBoss Data Grid での Camel を用いたルーティング
from("direct:start") .setHeader(InfinispanConstants.OPERATION, constant(InfinispanConstants.GET)) .setHeader(InfinispanConstants.KEY, constant("123")) .to("infinispan://localhost?cacheContainer=#cacheContainer");
local-camel-producer
を示しています。これは、camel-jbossdatagrid
コンポーネントを使用して、local-cache
モジュールによって作成された埋め込みキャッシュにデータを送信する Camel ルートです。
<camelContext id="local-producer" xmlns="http://camel.apache.org/schema/blueprint"> <route> <from uri="timer://local?fixedRate=true&period=5000"/> <setHeader headerName="CamelInfinispanKey"> <constant>CamelTimerCounter</constant> </setHeader> <setHeader headerName="CamelInfinispanValue"> <constant>CamelTimerCounter</constant> </setHeader> <to uri="infinispan://foo?cacheContainer=#cacheManager"/> <to uri="log:local-put?showAll=true"/> </route> </camelContext>
cacheManager
がインスタンス化される必要があります。
cacheManager
Bean は以下のようにインスタンス化できます。
<bean id="cacheManager" class="org.infinispan.manager.DefaultCacheManager" init-method="start" destroy-method="stop"> <constructor-arg type="java.lang.String" value="infinispan.xml"/> </bean>
cacheManager
Bean をインスタンス化する方法を示しています。
<bean id="cacheManager" class="org.infinispan.manager.DefaultCacheManager" init-method="start" destroy-method="stop"> <argument value="infinispan.xml" /> </bean>
注記
infinispan.xml
を使用します。このファイルはクラスパスに存在する必要があります。
5.3. リモートクエリー
RemoteCacheManager
のインスタンスである必要があります。Java および blueprint.xml で RemoteCacheManager
を使用する設定例を以下に示します。
from("direct:start") .setHeader(InfinispanConstants.OPERATION, InfinispanConstants.QUERY) .setHeader(InfinispanConstants.QUERY_BUILDER, new InfinispanQueryBuilder() { public Query build(QueryFactory<Query> queryFactory) { return queryFactory.from(User.class).having("name").like("%abc%") .toBuilder().build(); } }) .to("infinispan://localhost?cacheContainer=#cacheManager&cacheName=remote_query_cache") ;
Java RemoteCacheManagerFactory
クラス:
public class RemoteCacheManagerFactory { ConfigurationBuilder clientBuilder; public RemoteCacheManagerFactory(String hostname, int port) { clientBuilder = new ConfigurationBuilder(); clientBuilder.addServer() .host(hostname).port(port); } public RemoteCacheManager newRemoteCacheManager() { return new RemoteCacheManager(clientBuilder.build()); } }Java
InfinispanQueryExample
クラス:
public class InfinispanQueryExample { public InfinispanQueryBuilder getBuilder() { return new InfinispanQueryBuilder() { public Query build(QueryFactory<Query> queryFactory) { return queryFactory.from(User.class) .having("name") .like("%abc%") .toBuilder().build(); } } } }blueprint.xml:
<bean id=”remoteCacheManagerFactory” class=“com.jboss.datagrid.RemoteCacheManagerFactory”> <argument value=”localhost”/> <argument value="11222”/> </bean> <bean id=”cacheManager” factory-ref=”remoteCacheManagerFactory” factory-method=“newRemoteCacheManager”> </bean> <bean id="queryBuilder" class="org.example.com.InfinispanQueryExample"/> <camelContext id="route" xmlns="http://camel.apache.org/schema/blueprint"> <route> <from uri="direct:start"/> <setHeader headerName="CamelInfinispanOperation"> <constant>CamelInfinispanOperationQuery</constant> </setHeader> <setHeader headerName="CamelInfinispanQueryBuilder"> <method ref="queryBuilder" method="getBuilder"/> </setHeader> <to uri="infinispan://localhost?cacheContainer=#cacheManager&cacheName=remote_query_cache"/> </route> </camelContext>
remote_query_cache
は、データを保持するキャッシュの任意名で、クエリーの結果は CamelInfinispanOperationResult
ヘッダーとして保存されるドメインオブジェクトのリストになります。
RemoteCacheManager
はProtoStreamMarshaller
を使用するよう設定される必要があります。ProtoStreamMarshaller
はRemoteCacheManager
のシリアライズコンテキストで登録される必要があります。- ドメインオブジェクトの .proto 記述子はリモート JBoss Data Grid サーバーで登録される必要があります。
RemoteCacheManager
の設定方法の詳細は、『Red Hat JBoss Data Grid Infinispan Query Guide』 の Remote Querying
の項を参照してください。
5.4. 埋め込みキャッシュのカスタムリスナー
customListener
パラメーターを使用して登録できます。
from("infinispan://?cacheContainer=#myCustomContainer&cacheName=customCacheName&customListener=#myCustomListener") .to("mock:result");
<bean id="myCustomContainer" org.infinispan.manager.DefaultCacheManager" init-method="start" destroy-method="stop"> <argument value="infinispan.xml" /> </bean> <bean id="myCustomListener" class="org.example.com.CustomListener"/> <camelContext id="route" xmlns="http://camel.apache.org/schema/blueprint"> <route> <from uri="infinispan://?cacheContainer=#myCustomContainer&cacheName=customCacheName&customListener=#myCustomListener"/> <to uri="mock:result"/> </route> </camelContext>
myCustomListener
のインスタンスが存在する必要があります。ユーザーは org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedCustomListener
を拡張し、結果となるクラスに org.infinispan.notifications にある @Listener
アノテーションを付けることが推奨されます。
注記
5.5. リモートキャッシュのカスタムリスナー
sync=false
が存在する必要があります。例を以下に示します。
from(infinispan://?cacheContainer=#cacheManager&sync=false&customListener=#myCustomListener") .to(mock:result);
Java クラス:
public class RemoteCacheManagerFactory { ConfigurationBuilder clientBuilder; public RemoteCacheManagerFactory(String hostname, int port) { clientBuilder = new ConfigurationBuilder(); clientBuilder.addServer() .host(hostname).port(port); } public RemoteCacheManager newRemoteCacheManager() { return new RemoteCacheManager(clientBuilder.build()); } }blueprint.xml:
<bean id=”remoteCacheManagerFactory” class=“com.jboss.datagrid.RemoteCacheManagerFactory”> <argument value=”localhost”/> <argument value="11222”/> </bean> <bean id=”cacheManager” factory-ref=”remoteCacheManagerFactory” factory-method=“newRemoteCacheManager”> </bean> <bean id="myCustomListener" class="org.example.com.CustomListener"/> <camelContext id="route" xmlns="http://camel.apache.org/schema/blueprint"> <route> <from uri="infinispan://?cacheContainer=#cacheManager&sync=false&customListener=#myCustomListener"/> <to uri="mock:result"/> </route> </camelContext>
myCustomListener
のインスタンスが存在する必要があります。ユーザーは org.apache.camel.component.infinispan.remote.InfinispanRemoteCustomListener
クラスを拡張し、結果となるクラスに @ClientListener
アノテーションを付けることが推奨されます。このアノテーションは org.infinispan.client.hotrod.annotation にあります。
@ClientListener(includeCurrentState=true, filterFactoryName = "static-filter-factory", converterFactoryName = "static-converter-factory") private static class MyCustomListener extends InfinispanRemoteCustomListener { }
@NamedFactory
アノテーションが付けられたクラスを実装する必要があります。必要なメソッドを実装するスケルトンは以下のとおりです。
import org.infinispan.notifications.cachelistener.filter; @NamedFactory(name = "static-converter-factory") public static class StaticConverterFactory implements CacheEventConverterFactory { @Override public CacheEventConverter<Integer, String, CustomEvent> getConverter(Object[] params) { ... } static class StaticConverter implements CacheEventConverter<Integer, String, CustomEvent>, Serializable { @Override public CustomEvent convert(Integer key, String previousValue, Metadata previousMetadata, String value, Metadata metadata, EventType eventType) { ... } } } @NamedFactory(name = "static-filter-factory") public static class StaticCacheEventFilterFactory implements CacheEventFilterFactory { @Override public CacheEventFilter<Integer, String> getFilter(final Object[] params) { ... } static class StaticCacheEventFilter implements CacheEventFilter<Integer, String>, Serializable { @Override public boolean accept(Integer key, String previousValue, Metadata previousMetadata, String value, Metadata metadata, EventType eventType) { ... } } }
Remote Event Listeners
の項を参照してください。
注記
RemoteCacheManager
で、インスタンス化される必要があります。
5.6. Red Hat JBoss Data Grid および Red Hat JBoss Fuse
5.6.1. Red Hat JBoss Fuse 向けの camel-jbossdatagrid のインストール
camel-jbossdatagrid
を使用して Red Hat JBoss Data Grid と JBoss Fuse を実行するには、JBoss Data Grid 6.5 と JBoss Fuse 6.1 (フルインストール) の両方がインストールされている必要があります。
手順5.1 JBoss Data Grid のインストール
- JBoss Data Grid のインストールに関する情報は、パートII「Red Hat JBoss Data Grid のダウンロードおよびインストール」を参照してください。JBoss Fuse で Camel コンポーネントを実行するには、以下の JBoss Data Grid コンポーネントのみが必要になります。
- JBoss Data Grid Maven リポジトリー。
- The JBoss Data Grid Server パッケージ (Hot Rod を使用するため)。
camel-jbossdatagrid
ライブラリーは、jboss-datagrid-6.5.1-camel-library
という個別のディストリビューションから入手することもできます。
手順5.2 JBoss Fuse のインストール
Red Hat JBoss Fuse をインストールする前に、ご使用のシステムが最低の条件を満たしていることを確認してください。サポートされるプラットフォームと推奨される Java ランタイムプラットフォームについては『Red Hat JBoss Fuse Installation Guide』を参照してください。
- 700 MB の空きディスク容量
- 2 GB の RAM
JBoss Fuse フルインストールのダウンロード
Red Hat JBoss Fuse アーカイブは、Red Hat カスタマーポータルでアカウントを登録してログインした後に、ダウンロード>Red Hat JBoss Fuse
と選択すると表示される Software Downloads のページからダウンロードできます。ログインしている状態で以下を行います。- Software Downloads ページの ドロップダウンメニューで を選択します。
- Software Downloads ページの Version ドロップダウンリストで を選択します。
- Red Hat JBoss Fuse 6.1.0 ディストリビューションファイルの横にあるボタンをクリックし、ダウンロードします。
JBoss Fuse では、異なる機能セットが含まれるインストールを選択できます。JBoss Data Grid を JBoss Fuse と実行するには、フルインストールが必要になります。フルインストールには以下が含まれます。- Apache Karaf
- Apache Camel
- Apache ActiveAMQ
- Apache CXF
- Fuse 管理
- コンソール (hawtio)
- JBI コンポーネント
アーカイブの展開
Red Hat JBoss Fuse は、アーカイブシステムをシステムで展開するとインストールされます。JBoss Fuse は zip ファイルとしてパッケージ化されています。適切なアーカイブツールを使用して、Red Hat JBoss Fuse を完全なアクセス権限を持つディレクトリーで展開します。警告
パス名に空白文字が含まれるフォルダーにアーカイブファイルを展開しないでください。たとえば、C:\Documents and Settings\Greco Roman\Desktop\fusesrc.
で展開しないでください。さらに、パス名に特殊文字 #、%、^、または " が含まれるフォルダーにアーカイブファイルを展開しないでください。リモートコンソールユーザーの追加
サーバーのリモートコマンドコンソールはデフォルトユーザーには設定されていません。サーバーのコンソールへリモート接続する前に、ユーザーを設定に追加します。重要
このファイルの情報は暗号化されていないため、厳重なセキュリティーを必要とする環境には適していません。ユーザーを追加するには、以下を実行します。- テキストエディターで
InstallDir/etc/users.properties
を開きます。 - 行
#admin=admin,admin
を見つけます。この行は、パスワードがadmin
のユーザーadmin
と、ロールadmin
を指定します。 - 先頭の # を削除し、行をアンコメントします。
- 最初の
admin
をユーザーの名前に置き換えます。 - 2 つ目の
admin
をユーザーのパスワードに置き換えます。 - 最後の
admin
はそのままにし、変更を保存します。
注記
Fuse 管理コンソールにアクセスし、 Camel ルート、ActiveMQ ブローカー、Web アプリケーションなどを監視および管理するには、Red Hat JBoss Fuse の起動後にブラウザーでにアクセスします。http://localhost:8181/hawtio
Red Hat JBoss Fuse Maven リポジトリー
Maven を使用してプロジェクトをビルドするには、Mavensettings.xml
ファイルでアーティファクトの場所を指定します。次の JBoss Fuse Maven リポジトリーには Camel に必要な依存関係が含まれ、settings.xml
ファイルに追加する必要があります。https://repo.fusesource.com/nexus/content/groups/public/
JBoss Fuse リポジトリーは JBoss Data Grid リポジトリーと平行して実行されます。JBoss Data Grid には、camel-jbossdatagrid
コンポーネントに必要なすべてのアーティファクトをデプロイする Karaf 用のfeatures.xml
ファイルが含まれています。このファイルは、JBoss Fuse コンテナーディストリビューションには含まれていません。features.xml
ファイルはjboss-datagrid-6.5.1-maven-repository/org/apache/camel/camel-jbossdatagrid/${version}/
にあります。JBoss Data Grid リポジトリーに必要な他の設定はありません。JBoss Fuse のインストールや初めて使用する場合の詳細は、Red Hat カスタマーポータルの Red Hat JBoss Fuse ドキュメントを参照してください。
5.7. Red Hat JBoss Data Grid および Red Hat JBoss EAP
5.7.1. Red Hat JBoss Enterprise Application Platform への camel-jbossdatagrid のインストール
- Red Hat JBoss EAP
- Red Hat JBoss Fuse
- Red Hat JBoss Data Grid
注記
jdg.version
- Red Hat JBoss Data Grid の最新バージョンfuse.version
- Red Hat JBoss Fuse の最新バージョンinfinispan.version
- 最新バージョンの Red Hat JBoss Data Grid に含まれる Infinispan のバージョン。camel.version
- 最新バージョンの Red Hat JBoss Fuse に含まれる Apache Camel のバージョン。
camel-jbossdatagrid
のテスト済の構成に関する詳細は https://access.redhat.com/articles/115883 を参照してください。
手順5.3 JBoss Data Grid のインストール
- JBoss Data Grid のインストールに関する情報は、パートII「Red Hat JBoss Data Grid のダウンロードおよびインストール」を参照してください。JBoss EAP で Camel コンポーネントを実行するには、以下の JBoss Data Grid コンポーネントのみが必要になります。
- JBoss Data Grid Maven リポジトリー。
- The JBoss Data Grid Server パッケージ (Hot Rod クライアントを使用するため)。
camel-jbossdatagrid
ライブラリーは、jboss-datagrid-${jdg.version}-camel-library
という個別のディストリビューションから入手することもできます。
手順5.4 JBoss EAP のインストール
- Red Hat JBoss EAP をインストールする前に、ご使用のシステムが 『Red Hat JBoss EAP インストールガイド』 に記載されている最低限の要件を満たしていることを確認してください。
アーカイブの展開
Red Hat JBoss EAP は zip ファイルとしてパッケージ化されているため、アーカイブシステムをシステムで展開するとインストールされます。適切なアーカイブツールを使用して、Red Hat JBoss EAP を完全なアクセス権限を持つディレクトリーで展開します。警告
パス名に空白文字が含まれるフォルダーにアーカイブファイルを展開しないでください。たとえば、C:\Documents and Settings\Greco Roman\Desktop\JBoss
では展開しないでください。さらに、パス名に特殊文字 #、%、^、または " が含まれるフォルダーにアーカイブファイルを展開しないでください。- アーカイブが展開されると、JBoss EAP が正常にインストールされます。インストールオプションの詳細は 『Red Hat JBoss EAP インストールガイド』を参照してください。
- JBoss Data Grid がライブラリーモードで使用されている場合は 「JBoss EAP での JBoss Data Grid のデプロイ (ライブラリーモード)」 を参照し、必要な依存関係がインストールされていることを確認してください。
- JBoss Data Grid がリモートクライアントサーバーモードで使用されている場合は 「JBoss EAP での JBoss Data Grid のデプロイ (リモートクライアントサーバーモード)」 を参照し、必要な依存関係がインストールされていることを確認してください。
5.7.2. EAP を用いた Camel のデプロイ
5.7.2.1. 開発およびランタイム依存関係の追加
pom.xml
に追加する必要があります (Maven を使用する場合)。
手順5.5 Fuse からの Camel の追加
- Fuse リポジトリーが
pom.xml
に追加されていることを確認します。<repository> <id>fusesource</id> <name>FuseSource Release Repository</name> <url>https://repo.fusesource.com/nexus/content/groups/public/</url> <snapshots> <enabled>false</enabled> </snapshots> <releases> <enabled>true</enabled> </releases> </repository>
pom.xml
で Camel コンポーネントを依存関係として追加します。<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-core</artifactId> <version>${camel.version}</version> </dependency>
手順5.6 camel-jbossdatagrid のデプロイメントへの追加
- 3章Maven リポジトリーのインストールおよび使用 の手順に従って、maven リポジトリーを追加します。
pom.xml
で camel-jbossdatagrid を依存関係として追加します。<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-jbossdatagrid</artifactId> <version>${jdg.version}</version> </dependency>
- 使用している機能に応じて、残りの JBoss Data Grid の依存関係を追加します。
<!-- If Remote Camel Producer is used add the following dependency --> <dependency> <groupId>org.infinispan</groupId> <artifactId>infinispan-remote</artifactId> <version>${infinispan.version}</version> </dependency> <!-- If the Local Camel Producer or Local Camel Consumer are in use add --> <!-- the following dependency --> <dependency> <groupId>org.infinispan</groupId> <artifactId>infinispan-embedded</artifactId> <version>${infinispan.version}</version> </dependency>
5.7.2.2. 任意設定: ランタイム依存関係を JBoss EAP モジュールとして追加
注記
pom.xml
にてモジュールとして提供される依存関係の scope
を provided に設定する必要があります。例を以下に示します。
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-jbossdatagrid</artifactId> <scope>provided</scope> <version>${jdg.version}</version> </dependency>
jboss-datagrid-${jdg.version}-camel-library.zip
を Red Hat JBoss Data Grid 6.5.1 Camel Component for JBoss Fuse
からダウンロードします。
extras/
ディレクトリーにある apache-camel-${camel.version}.zip
を展開します。
user@example modules] unzip /path/to/jboss-fuse-${fuse.version}/extras/apache-camel-${camel.version}
手順5.7 JBoss Fuse からの Camel コンポーネントの追加
- $EAP_HOME/modules 以下にディレクトリーを作成します。
user@example jboss-eap-6.4]
cd modules
user@example modules]mkdir -p org/apache/camel/core
- jar を格納する
main
サブディレクトリーを作成します。user@example modules]
mkdir org/apache/camel/core/main
- camel-core jar を
apache-camel-${camel.version}.zip
から新たに作成されたmain
ディレクトリーへコピーします。user@example modules]
cp /path/to/jboss/fuse/extras/apache-camel-${camel.version}/lib/camel-core-${camel.version}.jar ./org/apache/camel/core/main/
- 以下のテキストを
org/apache/camel/core/main/module.xml
に追加し、module.xml
記述子を作成します。<?xml version="1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.1" name="org.apache.camel.core"> <resources> <resource-root path="camel-core-${camel.version}.jar"/> </resources> </module>
- 上記の手順を繰り返し、使用中の各依存関係に対してモジュールを作成します。 『Red Hat JBoss 管理および設定ガイド』に記載されているとおり、モジュールによっては他のモジュールとの依存関係がある場合があります。
手順5.8 JBoss Data Grid からの Camel コンポーネントの追加
- JDG Camel コンポーネントの
main
サブディレクトリーを作成します。user@example jboss-eap-6.4]
mkdir -p modules/org/apache/camel/main
jboss-datagrid-${jdg.version}-camel-library.zip
を展開します。camel-jbossdatagrid-${jdg.version}.jar
を新たに作成されたディレクトリーにコピーします。user@example jboss-eap-6.4]
cp jboss-datagrid-${jdg.version}-camel-library/camel-jbossdatagrid-${jdg.version}.jar modules/org/apache/camel/main/
- 以下のテキストを
org/apache/camel/main/module.xml
に追加し、module.xml
記述子を作成します。<?xml version="1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.1" name="org.apache.camel"> <resources> <resource-root path="camel-jbossdatagrid-${jdg.version}.jar"/> </resources> <dependencies> <module name="org.apache.camel.core" /> </dependencies> </module>
WEB-INF
に jboss-deployment-structure.xml
を作成し、新たに作成されたモジュールに依存関係を追加します。
<?xml version="1.0" encoding="UTF-8"?> <jboss-deployment-structure> <deployment> <dependencies> <module name="org.apache.camel" meta-inf="import"/> <!-- Add the following lines if Library mode is used --> <module name="org.infinispan" slot="jdg-6.5" /> <module name="org.jgroups" slot="jdg-6.5" /> <!-- Add the following lines if Remote Client-Server mode is used --> <module name="org.infinispan.client.hotrod" slot="jdg-6.5" /> </dependencies> </deployment> </jboss-deployment-structure>
パート IV. Red Hat JBoss Data Grid の実行
第6章 Maven を用いた Red Hat JBoss Data Grid JAR ファイルの実行
6.1. JBoss Data Grid の実行 (リモートクライアントサーバーモード)
以下の依存関係を pom.xml
ファイルに追加します。
infinispan-remote
依存関係を追加します。<dependency> <groupId>org.infinispan</groupId> <artifactId>infinispan-remote</artifactId> <version>${infinispan.version}</version> </dependency>
Remote Cache Store
が使用されているインスタンスの場合も以下のようにinfinispan-embedded
依存関係を追加します。<dependency> <groupId>org.infinispan</groupId> <artifactId>infinispan-embedded</artifactId> <version>${infinispan.version}</version> </dependency>
JSR-107
が使用されているインスタンスの場合、必ず起動時にcache-api
パッケージが使用できるようにしてください。以下のいずれかの方法で、これらのパッケージを利用可能にできます。- オプション 1: Boss EAP が使用されている場合、「JBoss EAP での JBoss Data Grid のデプロイ (リモートクライアントサーバーモード)」の説明どおりに JBoss Data Grid モジュールをこのインスタンスに追加します。javax.cache.api モジュールをアプリケーションの
jboss-deployment-structure.xml
に追加します。例を以下に示します。<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2"> <deployment> <dependencies> <module name="javax.cache.api" slot="jdg-6.5" services="export"/> </dependencies> </deployment> </jboss-deployment-structure>
- オプション 2: カスタマーポータルから
jboss-datagrid-${jdg.version}-library
ファイルをダウンロードします。ダウンロードしたアーカイブを展開します。jboss-datagrid-${jdg.version}-library/lib/cache-api-${jcache.version}.jar
ファイルを希望のアプリケーションに埋め込みます。 - オプション 3: JBoss Data Grid の Maven リポジトリーを使用できる場合は、以下のようにプロジェクトの
pom.xml
に明示的な依存関係を追加します。<dependency> <groupId>javax.cache</groupId> <artifactId>cache-api</artifactId> <version>${jcache.version}</version> </dependency>
警告
infinispan-embedded-query.jar
ファイル内に埋め込みできません。他のバージョンの Hibernate Search と Lucene が infinispan-embedded-query
として同じデプロイメントに含まれないようにしてください。含まれると、クラスパスの競合が発生する原因となり、予期せぬ動作が実行されます。
6.2. JBoss Data Grid の実行 (ライブラリーモード)
注記
以下の依存関係を pom.xml
ファイルに追加します。
infinispan-embedded
依存関係を追加します。<dependency> <groupId>org.infinispan</groupId> <artifactId>infinispan-embedded</artifactId> <version>${infinispan.version}</version> </dependency>
以下の依存関係を pom.xml
ファイルに追加します。
infinispan-embedded-query
依存関係を追加します。<dependency> <groupId>org.infinispan</groupId> <artifactId>infinispan-embedded-query</artifactId> <version>${infinispan.version}</version> </dependency>
警告
infinispan-embedded-query.jar
ファイル内に埋め込みできません。他のバージョンの Hibernate Search と Lucene が infinispan-embedded-query
として同じデプロイメントに含まれないようにしてください。含まれると、クラスパスの競合が発生する原因となり、予期せぬ動作が実行されます。
第7章 Red Hat JBoss Data Grid のリモートクライアントサーバーモードでの実行
7.1. 前提条件
- 適切なバージョンの OpenJDK がインストールされている必要があります。詳細は「Red Hat Enterprise Linux に OpenJDK をインストール」を参照してください。
- 最新バージョンの JBoss Data Grid をダウンロードし、インストールする必要があります。「Red Hat JBoss Data Grid のダウンロード」を参照してください。
7.2. Red Hat JBoss Data Grid のスタンドアロンモードでの実行
$JDG_HOME/bin/standalone.sh
$JDG_HOME/standalone/configuration/
standalone.xml
ファイルのデフォルト設定情報を使用して JBoss Data Grid を起動します。
7.3. Red Hat JBoss Data Grid のクラスターモードでの実行
$JDG_HOME/bin/clustered.sh
$JDG_HOME/standalone/configuration/
clustered.xml
ファイルのデフォルト設定情報を使用して JBoss Data Grid を起動します。
7.4. カスタム設定を用いた Red Hat JBoss Data Grid の実行
$JDG_HOME/standalone/configuration
ディレクトリーに追加します。
$JDG_HOME/bin/standalone.sh -c ${FILENAME}
$JDG_HOME/bin/clustered.sh -c ${FILENAME}
-c
は絶対パスを許可しないため、指定したファイルは $JDG_HOME/standalone/configuration
ディレクトリーにある必要があります。
-c
パラメーターを使用せずにコマンドを実行すると、JBoss Data Grid はデフォルト設定を使用します。
7.5. IP アドレスを設定して Red Hat JBoss Data Grid を実行
127.0.0.1/localhost
にバインドせずに、指定の IP アドレスへバインドする必要があります。スクリプトで -b
パラメーターを使用して IP アドレスを指定します。
$JDG_HOME/bin/standalone.sh -b ${IP_ADDRESS}
$JDG_HOME/bin/clustered.sh -b ${IP_ADDRESS}
7.6. Red Hat JBoss Data Grid の実行
$JDG_HOME/standalone/configuration
にあるstandalone.xml
ファイルを使用して JBoss Data Grid を実行するには、以下のコマンドを実行します。$JDG_HOME/bin/standalone.sh
- デフォルト以外の設定ファイルを使用して JBoss Data Grid を実行するには、
-c
の後に設定ファイル名を指定して以下のコマンドを実行します。$JDG_HOME/bin/standalone.sh -c clustered.xml
- デフォルトのクラスター化設定を使用して JBoss Data Grid を実行するには、以下のコマンドを実行します。
$JDG_HOME/bin/clustered.sh
第8章 エンドポイントのないノードとして Red Hat JBoss Data Grid を実行
8.1. エンドポイントのないノードの利点
8.2. エンドポイントのないノードの設定例
手順8.1 エンドポイントのないノードの JBoss Data Grid 設定例を検索
JBoss Data Grid ZIP ファイルの展開
JBoss Data Grid リモートクライアントサーバーモードの ZIP ファイルを展開します。このファイルの名前はjboss-datagrid-server-${version}
です。ファイル名に適切なバージョンを追加します。適切なフォルダーへ移動
展開したフォルダー内で、$JDG_HOME/docs/examples/config
フォルダーに移動します。設定例ファイルの検索
エンドポイントのないノードの設定が含まれるclustered-storage-only.xml
を見つけます。
8.3. エンドポイントのないノードの設定
datagrid
サブシステムを削除します。modcluster
を削除します。datasource
定義を削除します。mod_cluster
、Hot Rod
、およびmemcached
のsocket-bindings
を削除します。
第9章 Red Hat JBoss Data Grid のライブラリーモードでの実行
- 以降の章での前提条件として、「新しい Red Hat JBoss Data Grid プロジェクトの作成」の手順に従って新しいプロジェクトを設定します。
- 次に、埋め込みキャッシュ (詳細は 10章Red Hat JBoss Data Grid のライブラリーモードでの実行 (単一ノードの設定) を参照) またはクラスター化キャッシュ (11章Red Hat JBoss Data Grid のライブラリーモードでの実行 (マルチノードの設定) を参照) のいずれかとして JBoss Data Grid を使用します。各チュートリアルは Infinispan クイックスタートを基にしています。
- 最後に、12章Red Hat JBoss EAP での Red Hat JBoss Data Grid アプリケーションの監視 の手順に従って、JBoss Data Grid を使用して Red Hat JBoss EAP アプリケーションを監視します。
9.1. 新しい Red Hat JBoss Data Grid プロジェクトの作成
9.2. プロジェクトへの依存関係の追加
pom.xml
ファイルに以下を追加します。
<dependency> <groupId>org.infinispan</groupId> <artifactId>infinispan-embedded</artifactId> <version>$VERSION</version> </dependency>
注記
version
の値を、JBoss Data Grid に含まれるライブラリーの適切なバージョンに置き換えます。
9.3. プロジェクトへのプロファイルの追加
$HOME/.m2/settings.xml
の settings.xml
ファイルに追加します。
例9.1 プロファイルの追加
<profiles> <!-- Configure the JBoss GA Maven repository --> <profile> <id>jboss-ga-repository</id> <repositories> <repository> <id>jboss-ga-repository</id> <url>http://maven.repository.redhat.com/techpreview/all</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>jboss-ga-plugin-repository</id> <url>http://maven.repository.redhat.com/techpreview/all</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories> </profile> <!-- Configure the JBoss Early Access Maven repository --> <profile> <id>jboss-earlyaccess-repository</id> <repositories> <repository> <id>jboss-earlyaccess-repository</id> <url>http://maven.repository.redhat.com/earlyaccess/all/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>jboss-earlyaccess-plugin-repository</id> <url>http://maven.repository.redhat.com/earlyaccess/all/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories> </profile> </profiles> <!-- Add active profiles information here -->
settings.xml
ファイルに含まれていることを確認し、プロファイルを有効にします。
例9.2 プロファイルの有効化
<activeProfiles> <!-- Optionally, make the repositories active by default --> <activeProfile>jboss-ga-repository</activeProfile> <activeProfile>jboss-earlyaccess-repository</activeProfile> </activeProfiles>
client/java/
ディレクトリーの内容を、ビルドクラスパスへ追加します。
第10章 Red Hat JBoss Data Grid のライブラリーモードでの実行 (単一ノードの設定)
10.1. クイックスタートクラスでの main メソッドの作成
これらのクイックスタートは https://github.com/infinispan/infinispan-quickstart にある Infinispan クイックスタートを使用します。以下の手順は infinispan-quickstart/embedded-cache
クイックスタートを使用します。
手順10.1 クイックスタートクラスでの main メソッドの作成
Quickstart.java ファイルの作成
プロジェクトのある場所にQuickstart.java
という名前のファイルを作成します。クイックスタートクラスの追加
以下のクラスおよびメソッドをQuickstart.java
ファイルに追加します。package com.mycompany.app; import org.infinispan.manager.DefaultCacheManager import org.infinispan.Cache public class Quickstart { public static void main(String args[]) throws Exception { Cache<Object, Object> cache = new DefaultCacheManager().getCache(); } }
依存関係のコピーおよび Java クラスのコンパイル
次のコマンドを使用して、すべてのプロジェクト依存関係をディレクトリーにコピーし、プロジェクトから Java クラスをコンパイルします。$ mvn clean compile dependency:copy-dependencies -DstripVersion
main メソッドの実行
次のコマンドを用いて main メソッドを実行します。$ java -cp target/classes/:target/dependency/* com.mycompany.app.Quickstart
10.2. デフォルトキャッシュの使用
10.2.1. キャッシュのデータ追加および削除
手順10.2 キャッシュのデータ追加および削除
- エントリーを追加し、key と value を希望のキーと値に置き換えます。
cache.put("key", "value");
- キャッシュにエントリーが存在することを確認します。
assertEquals(1, cache.size()); assertTrue(cache.containsKey("key"));
- キャッシュからエントリーを削除します。
Object v = cache.remove("key");
- エントリーがキャッシュに存在しないことを確認します。
assertEquals("value", v); assertTrue(cache.isEmpty());
10.2.2. キー値の追加と置換
DefaultCacheQuickstart.java
ファイルに入力された各行が何を実行するかを定義する例になります。
手順10.3 キー値の追加と置換
value
をキーの値とするエントリーkey
を追加します。cache.put("key", "value");
手順10.4 キー値の置換
- 次のコードは、
key
およびkey2
という名前のキーを検索します。検索した 2 つのキーが見つからなかった場合、JBoss Data Grid は指定のキー名と値を持つ 2 つの新しいキーを作成します。cache.putIfAbsent("key", "newValue"); cache.putIfAbsent("key2", "value2");
- 以下のコードは、格納されたキーの値が格納したい値と同じであることを確認します。
assertEquals(cache.get("key"), "value"); assertEquals(cache.get("key2"), "value2");
関連トピック:
10.2.3. データライフの調整
DefaultCacheQuickstart.java
ファイルに入力された各行が何を実行するかを定義する例になります。
手順10.5 データライフの調整
- キーの
lifespan
値を変更します。cache.put("key", "value", 5, TimeUnit.SECONDS);
- キャッシュにキーが含まれていることを確認します。
assertTrue(cache.containsKey("key"));
- 割り当てられた
lifespan
時間が期限切れになると、キーはキャッシュから削除されます。Thread.sleep(10000); assertFalse(cache.containsKey("key"));
10.2.4. デフォルトのデータ期限
10.2.5. XML を用いた名前付きキャッシュの登録
infinispan.xml
ファイルを設定します。
infinispan.xml
ファイルは infinispan-quickstart/embedded-cache/src/main/resources
フォルダーの https://github.com/infinispan/infinispan-quickstart にあります。
第11章 Red Hat JBoss Data Grid のライブラリーモードでの実行 (マルチノードの設定)
11.1. JGroups チャネルの共有
例11.1 共有 JGroups チャネル
EmbeddedCacheManager cm = $LOCATION Cache<Object, Object> cache1 = cm.getCache("replSyncCache"); Cache<Object, Object> cache2 = cm.getCache("replAsyncCache"); Cache<Object, Object> cache3 = cm.getCache("invalidationSyncCache");
11.2. クラスターでの Red Hat JBoss Data Grid の実行
11.2.1. プロジェクトのコンパイル
$ mvn clean compile dependency:copy-dependencies -DstripVersion
11.2.2. レプリケーションモードでクラスター化されたキャッシュを実行
手順11.1 レプリケーションモードでクラスター化されたキャッシュを実行
- 次のコマンドを用いて最初のノードを立ち上げます。
$ java -cp target/classes/:target/dependency/* org.infinispan.quickstart.clusteredcache.replication.Node0
- 次のコマンドを用いて、2 つ目のノードを立ち上げます。
$ java -cp target/classes/:target/dependency/* org.infinispan.quickstart.clusteredcache.replication.Node1
両方のノードで JGroups と JBoss Data Grid が初期化されます。約 15 秒後に、キャッシュエントリーのログメッセージが最初のノードのコンソール上に表示されます。
11.2.3. ディストリビューションモードでクラスター化されたキャッシュを実行
手順11.2 ディストリビューションモードでクラスター化されたキャッシュを実行
- 次のコマンドを用いて最初のノードを立ち上げます。
$ java -cp target/classes/:target/dependency/* org.infinispan.quickstart.clusteredcache.distribution.Node0
- 次のコマンドを用いて、2 つ目のノードを立ち上げます。
$ java -cp target/classes/:target/dependency/* org.infinispan.quickstart.clusteredcache.distribution.Node1
- 次のコマンドを用いて、3 つ目のノードを立ち上げます。
$ java -cp target/classes/:target/dependency/* org.infinispan.quickstart.clusteredcache.distribution.Node2
3 つのノードで JGroups と JBoss Data Grid が初期化されます。約 15 秒後に、3 番目のノードによって追加された 10 個のエントリーが、最初のノードと 2 番目のノードに分散されたように表示されます。
11.2.4. クラスターの設定
手順11.3 クラスターの設定
- 新しいクラスターのデフォルト設定を追加します。
- ネットワークの要件に従って、デフォルトのクラスター設定をカスタマイズします。カスタマイズは宣言的 (XML を使用) またはプログラム的に行います。
- レプリケートされたデータグリッドまたは分散されたデータグリッドを設定します。
11.2.4.1. デフォルトクラスター設定の追加
例11.2 デフォルト設定
new ConfigurationBuilder() .clustering().cacheMode(CacheMode.REPL_SYNC) .build()
注記
GlobalConfigurationBuilder().clusteredDefault()
を使用して、事前設定されたクラスター対応の GlobalConfiguration
を迅速に作成します。この設定はカスタマイズ可能です。
11.2.4.2. デフォルトクラスター設定のカスタマイズ
以下の GlobalConfiguration コードを使用して、JGroups の設定に使用するファイルの名前を指定します。
new GlobalConfigurationBuilder().transport().addProperty("configurationFile", "jgroups.xml") .build()
jgroups.xml
を希望のファイル名に置き換えます。
jgroups.xml
ファイルは Infinispan-Quickstart/clustered-cache/src/main/resources/
にあります。
注記
-Djgroups.bind_addr="127.0.0.1"
を使用します。これは、すべてのノードが 1 つのマシン上にある状態でクラスターをテストする場合に特に便利です。
infinispan.xml
ファイルにある以下の XML スニペットを使用して、 Red Hat JBoss Data Grid の XML 設定を使用するよう JGroups プロパティーを設定します。
<global> <transport> <properties> <property name="configurationFile" value="jgroups.xml"/> </properties> </transport> </global>
11.2.4.3. レプリケートされたデータグリッドの設定
以下のコードスニペットを使用して、レプリケーションモードのキャッシュをプログラムを用いて設定します (同期または非同期)。
private static EmbeddedCacheManager createCacheManagerProgramatically() { return new DefaultCacheManager( new GlobalConfigurationBuilder() .transport().addProperty("configurationFile", "jgroups.xml") .build(), new ConfigurationBuilder() .clustering().cacheMode(CacheMode.REPL_SYNC) .build() ); }
infinispan.xml
ファイルを編集して次の XML コードが含まれるように、レプリケーションモードのキャッシュを宣言的に設定します (同期または非同期)。
<infinispan xsi:schemaLocation="urn:infinispan:config:6.0 http://www.infinispan.org/schemas/infinispan-config-6.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:infinispan:config:6.0"> <global> <transport> <properties> <property name="configurationFile" value="jgroups.xml"/> </properties> </transport> </global> <default> <clustering mode="replication"> <sync/> </clustering> </default> </infinispan>
private static EmbeddedCacheManager createCacheManagerFromXml() throws IOException { return new DefaultCacheManager("infinispan.xml");}
注記
org.infinispan.jmx.JmxDomainConflictException: Domain already registered org.infinispan
などのエラーが表示されることがあります。
GlobalConfiguration glob = new GlobalConfigurationBuilder() .clusteredDefault() .globalJmxStatistics() .allowDuplicateDomains(true) .enable() .build();
11.2.4.4. 分散されたデータグリッドの設定
numOwners
パラメーターによって制御され、各エントリーの「所有者」の数が示されます。
numOwners
の値を調整し、容量、永続性、および可用性のバランスが取れるように設定してください。JBoss Data Grid のトポロジーに対応する一貫性のあるハッシュによって、永続性がさらに向上されます。このようなハッシュは、さまざまなデータセンター、ラック、およびノードの全体でエントリーの「所有者」を検索します。
次のように、ディストリビューションモードのキャッシュをプログラムを用いて設定します (同期または非同期)。
new ConfigurationBuilder() .clustering() .cacheMode(CacheMode.DIST_SYNC) .hash().numOwners(2) .build()
infinispan.xml
ファイルに次の XML コードが含まれるようにし、ディストリビューションモードのキャッシュを宣言的に設定します (同期または非同期)。
<default> <clustering mode="distribution"> <sync/> <hash numOwners="2"/> </clustering> </default>
第12章 Red Hat JBoss EAP での Red Hat JBoss Data Grid アプリケーションの監視
12.1. 前提条件
- JBoss Enterprise Application Platform 6 (またはそれ以降) をインストールし、設定する必要があります。
- JBoss Operations Network 3.2.2 (またはそれ以降) をインストールし、設定する必要があります。
- JBoss Data Grid (6.3 以降) ライブラリーモードプラグインをインストールし、設定する必要があります。
12.2. Red Hat JBoss EAP での Red Hat JBoss Data Grid アプリケーションの監視
手順12.1 JBoss Enterprise Application Platform での JBoss Data Grid アプリケーションの監視
RHQ/JBoss Operations Network の設定
以下のように、RHQ/JBoss Operations Network 固有のプロパティー (org.rhq.resourceKey
) を/bin/
standalone.conf
ファイルに追加します。JAVA_OPTS="$JAVA_OPTS -Dorg.rhq.resourceKey=MyEAP"
このコマンドは、プロパティーを間接的に JBoss Enterprise Application Platform のコマンドラインに追加します。フル JDK を使用して RHQ/JBoss Operations Network が実行されていることを確認
RHQ/JBoss Operations Network エージェントが JRE ではなくフル JDK を使用して起動したことを確認してください。これは、エージェントは JDK のtools.jar
ファイルにアクセスする必要があるためです。RHQ/JBoss Operations Network エージェントが JDK を使用するよう設定するため、ご使用のオペレーティングシステムに対応する以下の手順に従います。- Linux の場合は、
RHQ_AGENT_JAVA_HOME
環境変数をエージェントのrhq-agent-env.sh
ファイルの JDK ホームディレクトリーに設定します。 - Windows の場合は、
RHQ_AGENT_JAVA_HOME
環境変数をエージェントのrhq-agent-env.bat
ファイルの JDK ホームディレクトリーに設定します。
エージェントが JBoss Enterprise Application Platform インスタンスのローカルであることを確認
JBoss Application Platform インスタンスと同じユーザーが、JBoss Application Platform インスタンスのローカルになるよう RHQ/JBoss Operations Network エージェントを実行するようにしてください。これは、Java Attach API がプロセスに接続するために必要です。リソースをエージェントインベントリーにインポート
RHQ/JBoss Operations Network がリソースを検索できるようになりました。これらのリソースはエージェントインベントリーへインポートできます。JBoss Data Grid のユーザーデプロイメントが JMX 統計による JBoss Data Grid キャッシュマネージャーまたはキャッシュの公開を有効すると、リソースは JBoss Enterprise Application Platform インスタンスの子リソースとして表示されます。
パート V. Red Hat JBoss Data Grid のクイックスタート
クイックスタート名 | コンテナー | JBoss Data Grid モード | 詳細のリンク |
---|---|---|---|
Hello World | JBoss EAP | ライブラリーモード | 13章Hello World クイックスタート |
Carmart Non-Transactional | JBoss EAP および JBoss Enterprise Web Server | ライブラリーモード | 「JBoss EAP を用いた (非トランザクション) CarMart クイックスタート」 |
Carmart Non-Transactional | JBoss EAP および JBoss Enterprise Web Server | リモートクライアントサーバーモード | 「リモートクライアントサーバーモードでの (非トランザクション) CarMart クイックスタート (JBoss EAP)」 および 「リモートクライアントサーバーモードでの (非トランザクション) CarMart クイックスタート (JBoss Enterprise Web Server)」 |
Carmart Transactional | JBoss EAP および JBoss Enterprise Web Server | ライブラリーモード | 「JBoss EAP を用いた (トランザクション) CarMart クイックスタート」 および 「JBoss Enterprise Web Server を用いた (トランザクション) CarMart クイックスタート」 |
Football Application | コンテナーなし | リモートクライアントサーバーモード | 15章Football クイックスタートエンドポイントの例 |
Rapid Stock Market | コンテナーなし | リモートクライアントサーバーモード | 16章Rapid Stock Market クイックスタート |
Cluster App | JBoss EAP | ライブラリーモード | 17章Cluster App クイックスタート |
camel-jbossdatagrid-fuse | JBoss Fuse | ライブラリーモード | 18章camel-jbossdatagrid-fuse クイックスタート |
第13章 Hello World クイックスタート
- サーブレットからアクセスする方法。
- リクエストスコープ Bean を使用して JSF からアクセスする方法。
重要
JBoss Data Grid の Hello World クイックスタートは、jboss-datagrid-{VERSION}-quickstarts/
にあります。
13.1. クイックスタートの前提条件
- Java 6.0 (Java SDK 1.6) 以上
- JBoss Enterprise Application Platform 6.x または JBoss Enterprise Web Server 2.x
- Maven 3.0 以上
- Maven リポジトリーを設定します。詳細は3章Maven リポジトリーのインストールおよび使用を参照してください。
13.2. 2 つのアプリケーションサーバーインスタンスの起動
手順13.1 最初のアプリケーションサーバーインスタンスの起動
ルートディレクトリーへ移動
コマンドラインターミナルで、JBoss サーバーディレクトリーのルートへ移動します。最初のアプリケーションサーバーを起動
ご使用のオペレーティングシステムに適した以下のコマンドを使用して、選択したアプリケーションサーバーの最初のインスタンスを起動します。- Linux の場合:
$JBOSS_HOME/bin/standalone.sh
- Windows の場合:
$JBOSS_HOME\bin\standalone.bat
手順13.2 2 番目のアプリケーションサーバーインスタンスの起動
アプリケーションサーバーのクローン
選択した JBoss Server のコピーを作成し、2 番目のインスタンスを作成します。ルートディレクトリーへ移動
コマンドラインターミナルで、JBoss サーバーディレクトリーのルートへ移動します。2 番目のアプリケーションサーバーの起動
ご使用のオペレーティングシステムに適した以下のコマンドを使用します。このコマンドは提供されるポートオフセットでサーバーを起動し、両方のサーバーインスタンスが同じホストで実行されるようにします。- Linux の場合:
$JBOSS_HOME2/bin/standalone.sh -Djboss.socket.binding.port-offset=100
- Windows の場合:
$JBOSS_HOME2\bin\standalone.bat -Djboss.socket.binding.port-offset=100
13.3. Hello World クイックスタートのビルドおよびデプロイ
手順13.3 Hello World クイックスタートのビルドおよびデプロイ
必要なディレクトリーへの移動
コマンドラインターミナルで、クイックスタートのルートディレクトリーへ移動します。最初のアプリケーションサーバーインスタンスのビルドおよびデプロイ
以下のコマンドを使用して、クイックスタートを最初のアプリケーションサーバーインスタンスにビルドおよびデプロイします。# mvn clean package jboss-as:deploy
このコマンドは、target/
jboss-helloworld-jdg.war
を稼働している最初のサーバーインスタンスにデプロイします。2 番目のアプリケーションサーバーインスタンスのビルドおよびデプロイ
以下のコマンドを使用して、クイックスタートを指定のポートを持つ 2 番目のアプリケーションサーバーインスタンスにビルドおよびデプロイします。# mvn clean package jboss-as:deploy -Djboss-as.port=10099
このコマンドは、target/
jboss-helloworld-jdg.war
を稼働している 2 番目のサーバーインスタンスにデプロイします。
13.4. 実行中のアプリケーションへのアクセス
- 最初のサーバーインスタンス: http://localhost:8080/jboss-helloworld-jdg
- 2 番目のサーバーインスタンス: http://localhost:8180/jboss-helloworld-jdg
13.5. アプリケーションでのレプリケーションのテスト
手順13.4 アプリケーションでのレプリケーションのテスト
最初のサーバーへのアクセス
最初のアプリケーションサーバーへアクセスし、キーと値を入力します。- ブラウザーのウインドウで以下の URL を指定し、最初のアプリケーションサーバーへアクセスします。
http://localhost:8080/jboss-helloworld-jdg
- キー
foo
を挿入します。 - 値
bar
を挿入します。
2 番目のサーバーへのアクセス
2 番目のアプリケーションサーバーへアクセスし、キーと値を入力します。- ブラウザーのウインドウで以下の URL を指定し、2 番目のアプリケーションサーバーへアクセスします。
http://localhost:8180/jboss-helloworld-jdg
- キー
foo
を取得します。 - キー
mykey
を挿入します。 - 値
myvalue
を挿入します。
すべてのキーおよび値の取得
最初のサーバーへアクセスし、すべてのキーを要求します。- ブラウザーのウインドウで以下の URL を指定し、最初のアプリケーションサーバーへアクセスします。
http://localhost:8080/jboss-helloworld-jdg
最後の手順の実行後、各サーバーに追加されたすべてのデータが別のサーバーにレプリケートされます。
注記
事前定義されたサーブレットと対話する場合や、キーを直接キャッシュに保存したり読み出したりする場合は、以下の URL を使用します。
http://localhost:8080/jboss-helloworld-jdg/TestServletPut
http://localhost:8180/jboss-helloworld-jdg/TestServletGet
13.6. アプリケーションの削除
手順13.5 アプリケーションの削除
アプリケーションサーバーの起動
両方のサーバーインスタンスが実行されているようにしてください。ルートディレクトリーへ移動
コマンドラインターミナルで、クイックスタートのルートディレクトリーへ移動します。アーカイブの削除
以下のコマンドを使用して両方のサーバーインスタンスからアーカイブを削除します。- 以下のとおり、最初のサーバーインスタンスからアーカイブを削除します。
mvn jboss-as:undeploy
- 以下のとおり、2 番目のサーバーインスタンスからアーカイブを削除します。
mvn jboss-as:undeploy -Djboss-as.port=10099
第14章 CarMart クイックスタート
CarMart クイックスタートは次の機能を提供します。
- 全車の一覧
- 新しい車の追加
- 車の削除
- ヒット数、保存、読み出しなど、キャッシュの統計を表示
CarMart クイックスタートは、次の JBoss Data Grid の使用モードで使用可能です。
- リモート JBoss Data Grid サーバーと通信するため Hot Rod クライアントが含まれる、リモートクライアントサーバーモード。
- すべてのライブラリーが
jar
ファイル形式でアプリケーションとバンドルされる、ライブラリーモード。
JBoss Data Grid の CarMart クイックスタートは、jboss-datagrid-{VERSION}-quickstarts/
にあります。
14.1. CarMart トランザクションクイックスタート
トランザクション CarMart クイックスタートは次の機能を提供します。
- 全車の一覧
- 新しい車の追加
- ロールバックで新しい車を追加
- 車の削除
- ヒット数、保存、読み出しなど、キャッシュの統計を表示
トランザクション CarMart クイックスタートは JBoss Data Grid のライブラリモードでのみ使用できます。トランザクション CarMart クイックスタートが Red Hat JBoss Enterprise Web Server 2.x で実行されると、JBoss Transactions からタンドアロントランザクションマネージャーが使用されます。
JBoss Data Grid のトランザクション CarMart クイックスタートは、jboss-datagrid-{VERSION}-quickstarts/carmart-tx
にあります。
14.2. CarMart とトランザクションクイックスタートの違い
- CarMart はリモートクライアントサーバーモードとライブラリーモードの両方で使用可能です。リモートクライアントサーバーモードではトランザクションが使用できないため、トランザクション CarMart はライブラリーモードでのみ使用可能です。
- また、トランザクションクイックスタートは、トランザクションロールバックがどのように発生するかを表示します。ボタンを使用してロールバックを表示します。CarMart の例には、簡単な ボタンがあります。
14.3. JBoss EAP を用いた (非トランザクション) CarMart クイックスタート
14.3.1. クイックスタートの前提条件
- Java 6.0 (Java SDK 1.6) 以上
- JBoss Enterprise Application Platform 6.x または JBoss Enterprise Web Server 2.x
- Maven 3.0 以上
- Maven リポジトリーを設定します。詳細は3章Maven リポジトリーのインストールおよび使用を参照してください。
14.3.2. CarMart クイックスタートの JBoss EAP へのビルドおよびデプロイ
この手順の前提条件は次のとおりです。
- サポートされる JBoss Data Grid ライブラリーモードの分散ファイルを取得します。
- JBoss Data Grid および JBoss Enterprise Application Platform Maven リポジトリーがインストールされ、設定されているようにしてください。詳細は 3章Maven リポジトリーのインストールおよび使用 を参照してください。
- JBoss Enterprise Application Platform 6 (またはそれ以上) または JBoss EAP 6 (またはそれ以上) を使用する JBoss サーバーを選択します。
手順14.1 CarMart の JBoss EAP へのビルドおよびデプロイ
JBoss EAP の起動
ご使用のオペレーティングシステムに適した以下のコマンドを使用して、選択したアプリケーションサーバーの最初のインスタンスを起動します。Linux の場合$JBOSS_HOME/bin/standalone.sh
Windows の場合$JBOSS_HOME\bin\standalone.bat
ルートディレクトリーへ移動
コマンドラインターミナルを開き、このクイックスタートのルートディレクトリーへ移動します。アプリケーションのビルドおよびデプロイ
以下のコマンドを実行し、Maven を使用してアプリケーションをビルドおよびデプロイします。$ mvn clean package jboss-as:deploy
ターゲット war ファイル(target/
jboss-carmart.war
) が実行中の JBoss EAP インスタンスにデプロイされます。
14.3.3. JBoss EAP での CarMart クイックスタートの表示
表示する CarMart クリックスタートがビルドおよびデプロイされている必要があります。
手順14.2 JBoss EAP での CarMart クイックスタートの表示
- アプリケーションを表示するには、ブラウザーを使用して次のリンクに移動します。
http://localhost:8080/jboss-carmart
14.3.4. JBoss EAP での CarMart クイックスタートの削除
手順14.3 JBoss EAP からアプリケーションを削除
- アプリケーションを削除するには、このクイックスタートのルートディレクトリーから次のコマンドを使用します。
$ mvn jboss-as:undeploy
14.4. JBoss Enterprise Web Server を用いた (非トランザクション) CarMart クイックスタート
14.4.1. CarMart クイックスタートの JBoss Enterprise Web Server へのビルドおよびデプロイ
この手順の前提条件は次のとおりです。
- JBoss Data Grid および JBoss Enterprise Application Platform Maven リポジトリーがインストールされ、設定されているようにしてください。詳細は 3章Maven リポジトリーのインストールおよび使用 を参照してください。
- ご使用のアプリケーションに JBoss Enterprise Web Server 2 (またはそれ以上) を選択し、インストールしてください。
手順14.4 CarMart クイックスタートのサーバーへのビルド (ライブラリーモード)
サーバーの起動
ご使用のオペレーティングシステムに適した以下のコマンドを使用して、選択したアプリケーションサーバーの最初のインスタンスを起動します。Linux の場合$JBOSS_EWS_HOME/tomcat7/bin/catalina.sh run
Windows の場合$JBOSS_EWS_HOME\tomcat7\bin\catalina.bat run
ルートディレクトリーへ移動
コマンドラインターミナルを開き、このクイックスタートのルートディレクトリーへ移動します。アプリケーションのビルドおよびデプロイ
以下のコマンドを実行し、Maven を使用してアプリケーションをビルドおよびデプロイします。$ mvn -Plibrary-tomcat clean package tomcat:deploy
ターゲット war ファイル(target/
jboss-carmart.war
) が実行中の選択したサーバーのインスタンスにデプロイされます。
14.4.2. JBoss Enterprise Web Server を用いた CarMart クイックスタートの表示
表示する CarMart クリックスタートがビルドおよびデプロイされている必要があります。
手順14.5 CarMart クイックスタートの表示
- アプリケーションを表示するには、ブラウザーを使用して次のリンクに移動します。
http://localhost:8080/jboss-carmart
14.4.3. JBoss Enterprise Web Server での CarMart クイックスタートの削除
手順14.6 JBoss Enterprise Web Server からアプリケーションを削除
- アプリケーションを削除するには、このクイックスタートのルートディレクトリーから次のコマンドを使用します。
$ mvn tomcat:undeploy -Plibrary-tomcat
14.5. リモートクライアントサーバーモードでの (非トランザクション) CarMart クイックスタート (JBoss EAP)
14.5.1. リモートクライアントサーバーモードでの CarMart クイックスタートのビルドおよびデプロイ
重要
この手順の前提条件は次のとおりです。
- サポートされる最新の JBoss Data Grid リモートクライアントサーバーモードディストリビューションファイルを Red Hat から取得します。
- JBoss Data Grid および JBoss Enterprise Application Platform Maven リポジトリーがインストールされ、設定されているようにしてください。詳細は 3章Maven リポジトリーのインストールおよび使用 を参照してください。
- 使用する JBoss サーバー (JBoss Enterprise Application Platform 6 以降) を選択します。ターミナルウインドウで、JBoss サーバーディレクトリーのルートに移動し、以下のコマンドを入力します。Linux の場合
$JBOSS_HOME/bin/standalone.sh
Windows の場合$JBOSS_HOME\bin\standalone.bat
手順14.7 リモートクライアントサーバーモードでの CarMart クイックスタートのビルドおよびデプロイ
スタンドアロンファイルの設定
$JDG_HOME/standalone/configuration/
ディレクトリーにあるstandalone.xml
ファイルに、次の設定を追加します。- infinispan サブシステムのタグ内に次の設定を追加します。
<local-cache name="carcache" start="EAGER" batching="false" statistics="true"> <eviction strategy="LIRS" max-entries="4"/> </local-cache>
注記
設定にcarcache
要素がすでに存在する場合は、提供される設定に置き換えてください。
JBoss Data Grid サーバーの起動
以下のスクリプトを実行して、JBoss Data Grid サーバーを起動します。$JDG_HOME/bin/
standalone.sh
-Djboss.socket.binding.port-offset=100JBoss サーバーの起動
次のスクリプトを実行し、アプリケーションがデプロイされる場所で JBoss サーバーインスタンスを起動します。$JBOSS_HOME/bin/
standalone.sh
任意の設定: ホストおよびポートアドレスの指定
アプリケーションはjboss-datagrid-{VERSION}-quickstarts/carmart/src/main/resources/META-INF/
datagrid.properties
ファイルの値を使用して JBoss Data Grid サーバーを見つけます。JBoss Data Grid サーバーがデフォルトのホストおよびポートの値を使用して実行されていない場合、次のようにファイルを編集し、正しいホストおよびポートの値を挿入します。datagrid.host=localhost datagrid.hotrod.port=11322
ルートディレクトリーへ移動
コマンドラインターミナルを開き、このクイックスタートのルートディレクトリーへ移動します。アプリケーションのビルドおよびデプロイ
以下のコマンドを実行し、Maven を使用してアプリケーションをビルドおよびデプロイします。$ mvn clean package jboss-as:deploy -Premote-jbossas
14.5.2. リモートクライアントサーバーモードでの CarMart クイックスタートの表示
表示する CarMart クリックスタートがビルドおよびデプロイされている必要があります。
手順14.8 リモートクライアントサーバーモードでの CarMart クイックスタートの表示
- ブラウザーウインドウで次のリンクにアクセスし、アプリケーションを表示します。
http://localhost:8080/jboss-carmart
14.5.3. リモートクライアントサーバーモードでの CarMart クイックスタートの削除
手順14.9 リモートクライアントサーバーモードでのアプリケーションの削除
- アプリケーションを削除するには、このクイックスタートのルートディレクトリーから次のコマンドを使用します。
$ mvn jboss-as:undeploy -Premote-jbossas
14.6. リモートクライアントサーバーモードでの (非トランザクション) CarMart クイックスタート (JBoss Enterprise Web Server)
14.6.1. リモートクライアントサーバーモードでの CarMart クイックスタートのビルドおよびデプロイ
重要
この手順の前提条件は次のとおりです。
- サポートされる最新の JBoss Data Grid リモートクライアントサーバーモードディストリビューションファイルを Red Hat から取得します。
- JBoss Data Grid および JBoss Enterprise Application Platform Maven リポジトリーがインストールされ、設定されているようにしてください。詳細は 3章Maven リポジトリーのインストールおよび使用 を参照してください。
server
要素を Maven のsettings.xml
ファイルに追加します。適切な Tomcat のクレデンシャルをserver
内のid
要素に追加します。<server> <id>tomcat</id> <username>admin</username> <password>admin</password> </server>
手順14.10 リモートクライアントサーバーモードでの CarMart クイックスタートのビルドおよびデプロイ
スタンドアロンファイルの設定
$JDG_HOME/standalone/configuration/
ディレクトリーにあるstandalone.xml
ファイルに、次の設定を追加します。- infinispan サブシステムのタグ内に次の設定を追加します。
<local-cache name="carcache" start="EAGER" batching="false" statistics="true"> <eviction strategy="LIRS" max-entries="4"/> </local-cache>
注記
設定にcarcache
要素がすでに存在する場合は、提供される設定に置き換えてください。
コンテナーの起動
アプリケーションがデプロイされる場所で JBoss サーバーインスタンスを起動します。Linux の場合:$JBOSS_EWS_HOME/tomcat7/bin/catalina.sh run
Windows の場合:$JBOSS_EWS_HOME\tomcat7\bin\catalina.bat run
アプリケーションのビルド
次のコマンドを実行し、関連するディレクトリーでアプリケーションをビルドします。$ mvn clean package -Premote-tomcat
アプリケーションのデプロイ
次のコマンドを実行し、関連するディレクトリーでアプリケーションをデプロイします。mvn tomcat:deploy -Premote-tomcat
14.6.2. リモートクライアントサーバーモードでの CarMart クイックスタートの表示
表示する CarMart クリックスタートがビルドおよびデプロイされている必要があります。
手順14.11 リモートクライアントサーバーモードでの CarMart クイックスタートの表示
- ブラウザーウインドウで次のリンクにアクセスし、アプリケーションを表示します。
http://localhost:8080/jboss-carmart
14.6.3. リモートクライアントサーバーモードでの CarMart クイックスタートの削除
手順14.12 リモートクライアントサーバーモードでのアプリケーションの削除
- アプリケーションを削除するには、このクイックスタートのルートディレクトリーから次のコマンドを使用します。
$ mvn tomcat:undeploy -Premote-tomcat
14.7. JBoss EAP を用いた (トランザクション) CarMart クイックスタート
CacheContainerProvider
インターフェースの JBossASCacheContainerProvider
/TomcatCacheContainerProvider
実装クラスで設定されます。
14.7.1. クイックスタートの前提条件
- Java 6.0 (Java SDK 1.6) 以上
- JBoss Enterprise Application Platform 6.x または JBoss Enterprise Web Server 2.x
- Maven 3.0 以上
- Maven リポジトリーを設定します。詳細は3章Maven リポジトリーのインストールおよび使用を参照してください。
14.7.2. トランザクション CarMart クイックスタートのビルドおよびデプロイ
CarMart クイックスタートをビルドおよびデプロイする前に以下の前提条件を満たしていることを確認してください。
- Maven の設定 (「クイックスタートの前提条件」を参照してください)
- JBoss Enterprise Application Platform の起動
- コマンドラインターミナルで、JBoss EAP サーバーディレクトリーのルートへ移動します。
- 以下のコマンドの 1 つを使用し、Web プロファイルでサーバーを起動します。Linux の場合:
$JBOSS_HOME/bin/standalone.sh
Windows の場合:%JBOSS_HOME%\bin\standalone.bat
手順14.13 トランザクションクイックスタートのビルドおよびデプロイ
- コマンドラインターミナルを開き、このクイックスタートのルートディレクトリーへ移動します。
- 以下のコマンドを入力し、アーカイブをビルドおよびデプロイします。
mvn clean package jboss-as:deploy
target/jboss-carmart-tx.war
ファイルが稼働中のサーバーインスタンスへデプロイされます。
14.7.3. トランザクション CarMart クイックスタートの表示
表示する CarMart クリックスタートがビルドおよびデプロイされている必要があります。
手順14.14 CarMart クイックスタートの表示
- アプリケーションを表示するには、ブラウザーを使用して次のリンクに移動します。
http://localhost:8080/jboss-carmart-tx
14.7.4. トランザクション CarMart クイックスタートのアンデプロイ
- コマンドラインターミナルで、クイックスタートのルートディレクトリーへ移動します。
- 次のようにアーカイブをアンデプロイします。
mvn jboss-as:undeploy
14.7.5. トランザクション CarMart クイックスタートのテスト
- JBoss EAP が実行されている場合は停止します。
- コマンドラインターミナルで、クイックスタートのルートディレクトリーへ移動します。
- 次のように、クイックスタートをビルドします。
mvn clean package
- 以下のとおり、テストを実行します。
mvn test -Puitests-jbossas -Das7home=/path/to/server
14.8. JBoss Enterprise Web Server を用いた (トランザクション) CarMart クイックスタート
library-tomcat
プロファイルのみを使用できます。
14.8.1. クイックスタートの前提条件
- Java 6.0 (Java SDK 1.6) 以上
- JBoss Enterprise Application Platform 6.x または JBoss Enterprise Web Server 2.x
- Maven 3.0 以上
- Maven リポジトリーを設定します。詳細は3章Maven リポジトリーのインストールおよび使用を参照してください。
14.8.2. トランザクション CarMart クイックスタートのビルドおよびデプロイ
CarMart クイックスタートをビルドおよびデプロイする前に以下の前提条件を満たしていることを確認してください。
- Maven の設定 (「クイックスタートの前提条件」を参照してください)
- JBoss Enterprise Web Server を設定するには、以下の行を
conf/tomcat-users.xml
ファイルに追加します。<role rolename="manager-script"/> <user username="admin" password="admin" roles="manager-script"/>
- 適切なクレデンシャルを使用して以下の設定情報を Maven の
settings.xml
ファイルに追加し、Maven を設定します。<server> <id>tomcat</id> <username>admin</username> <password>admin</password> </server>
- JBoss Enterprise Web Server を起動します。
- コマンドラインターミナルで、JBoss Enterprise Web Server ディレクトリーのルートへ移動します。
- 以下のコマンドの 1 つを使用し、Web プロファイルでサーバーを起動します。Linux の場合:
$TOMCAT_HOME/bin/catalina.sh run
Windows の場合:%TOMCAT_HOME%\bin\catalina.bat run
手順14.15 トランザクション CarMart クイックスタートのビルドおよびデプロイ
- コマンドラインターミナルで、クイックスタートのルートディレクトリーへ移動します。
- 以下のコマンドを入力し、アーカイブをビルドおよびデプロイします。
mvn -Plibrary-tomcat clean package tomcat:deploy
target/jboss-carmart-tx.war
ファイルが稼働中の JBoss Enterprise Web Server インスタンスへデプロイされます。
14.8.3. トランザクション CarMart クイックスタートの表示
表示する CarMart クリックスタートがビルドおよびデプロイされている必要があります。
手順14.16 CarMart クイックスタートの表示
- アプリケーションを表示するには、ブラウザーを使用して次のリンクに移動します。
http://localhost:8080/jboss-carmart-tx
14.8.4. トランザクション CarMart クイックスタートのアンデプロイ
- コマンドラインターミナルで、クイックスタートのルートディレクトリーへ移動します。
- 次のようにアーカイブをアンデプロイします。
mvn -Plibrary-tomcat tomcat:undeploy
14.8.5. トランザクション CarMart クイックスタートのテスト
- アーカイブをアンデプロイします (「トランザクション CarMart クイックスタートのアンデプロイ」を参照してください)
- JBoss Enterprise Web Server のサーバーが稼動している場合は停止します。
- コマンドラインターミナルで、クイックスタートのルートディレクトリーへ移動します。
- 次のように、クイックスタートをビルドします。
mvn clean package
- 以下のように、テストを実行します。
mvn test -Puitests-jbossas -Das7home=/path/to/server
第15章 Football クイックスタートエンドポイントの例
Football Manager アプリケーションの例で使用できる機能を以下に示します。
- チームの追加
- 選手の追加
- すべてのエンティティーの削除 (チームと選手)
- すべてのチームおよび選手のリスト
JBoss Data Grid の Football クイックスタートは以下の場所にあります。
jboss-datagrid-{VERSION}-quickstarts/rest-endpoint
jboss-datagrid-{VERSION}-quickstarts/hotrod-endpoint
jboss-datagrid-{VERSION}-quickstarts/memcached-endpoint
15.1. クイックスタートの前提条件
- Java 6.0 (Java SDK 1.6) 以上
- JBoss Enterprise Application Platform 6.x または JBoss Enterprise Web Server 2.x
- Maven 3.0 以上
- Maven リポジトリーを設定します。詳細は3章Maven リポジトリーのインストールおよび使用を参照してください。
15.2. Football アプリケーションのビルド
重要
この手順の前提条件は次のとおりです。
- サポートされる最新の JBoss Data Grid リモートクライアントサーバーモードディストリビューションファイルを Red Hat から取得します。
- JBoss Data Grid および JBoss Enterprise Application Platform Maven リポジトリーがインストールされ、設定されているようにしてください。詳細は 3章Maven リポジトリーのインストールおよび使用 を参照してください。
手順15.1 Football アプリケーションのビルド
設定の追加
$JDG_HOME/standalone/configuration/
にあるstandalone.xml
ファイルを編集し、データソースおよび infinispan サブシステムの定義を追加します。- データソースに対する次のサブシステム定義を追加します。
<subsystem xmlns="urn:jboss:domain:datasources:1.0"> <!-- Define this Datasource with jndi name java:jboss/datasources/ExampleDS --> <datasources> <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true"> <!-- The connection URL uses H2 Database Engine with in-memory database called test --> <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url> <!-- JDBC driver name --> <driver>h2</driver> <!-- Credentials --> <security> <user-name>sa</user-name> <password>sa</password> </security> </datasource> <!-- Define the JDBC driver called 'h2' --> <drivers> <driver name="h2" module="com.h2database.h2"> <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class> </driver> </drivers> </datasources> </subsystem>
- infinispan に対する次のサブシステム定義を追加します。
<subsystem xmlns="urn:infinispan:server:core:6.0" default-cache-container="local"> <cache-container name="local" default-cache="default" statistics="true"> <local-cache name="default" start="EAGER" statistics="true"> <locking isolation="NONE" acquire-timeout="30000" concurrency-level="1000" striping="false"/> <transaction mode="NONE"/> </local-cache> <local-cache name="memcachedCache" start="EAGER" statistics="true"> <locking isolation="NONE" acquire-timeout="30000" concurrency-level="1000" striping="false"/> <transaction mode="NONE"/> </local-cache> <local-cache name="namedCache" start="EAGER" statistics="true"/> <!-- ADD a local cache called 'teams' --> <local-cache name="teams" start="EAGER" batching="false" statistics="true"> <!-- Disable transactions for this cache --> <transaction mode="NONE" /> <!-- Define the JdbcBinaryStores to point to the ExampleDS previously defined --> <string-keyed-jdbc-store datasource="java:jboss/datasources/ExampleDS" passivation="false" preload="false" purge="false"> <!-- Define the database dialect --> <property name="databaseType">H2</property> <!-- specifies information about database table/column names and data types --> <string-keyed-table prefix="JDG"> <id-column name="id" type="VARCHAR"/> <data-column name="datum" type="BINARY"/> <timestamp-column name="version" type="BIGINT"/> </string-keyed-table> </string-keyed-jdbc-store> </local-cache> <!-- End of local cache called 'teams' definition --> </cache-container> </subsystem>
注記
Hot Rod および REST エンドポイントはteams
という名前のキャッシュを使用し、memcached エンドポイントはデフォルトでmemcachedCache
を使用します。REST セキュリティーの無効化
デフォルトでは、standalone.xml
設定ファイルはBASIC
認証で REST エンドポイントを保護します。このクイックスタートは認証を実行できないため、security-domain
およびauth-method
パラメーターを削除して REST コネクターで REST 認証を無効にする必要があります。REST 認証が無効化された設定は次のようになります。<rest-connector virtual-server="default-host" cache-container="local" />
セキュリティーに関する詳細は、 JBoss Data Grid 『Developer Guide』 のREST 認証の章を参照してください。サブモジュール設定ファイルの編集
各サブモジュール (hotrod-endpoint
、rest-endpoint
、およびmemcached-endpoint
) には設定ファイルが含まれています ($JDG_QUICKSTART/src/main/resources/
jdg.properties
にあります)。設定ファイルのデフォルト値を編集し、指定の JBoss Data Grid インストールに必要な値を設定します。ルートディレクトリーへ移動
コマンドラインターミナルを開き、このクイックスタートのルートディレクトリーへ移動します。アプリケーションのビルド
次のコマンドを使用して、サンプルアプリケーションのディレクトリーでサンプルアプリケーションをビルドします。mvn clean package
これにより、すべての依存関係を 1 つの jar ファイルにバンドルして使いやすくする、Maven のシェードプラグインが使用されます。このファイルには{PROTOCOL}-endpoint-quickstart.jar
という名前が付けられます。たとえば、REST の場合はrest-endpoint-quickstart.jar
という名前になります。JBoss Data Grid の起動
以下のスクリプトを実行して、JBoss Data Grid を実行します。$JDG_HOME/bin/standalone.sh
アプリケーションの実行
以下のコマンドを実行し、サンプルアプリケーションのディレクトリーでサンプルアプリケーションを実行します。mvn exec:java
第16章 Rapid Stock Market クイックスタート
16.1. Rapid Stock Market クイックスタートのビルドおよび実行
手順16.1 Rapid Stock Market クイックスタートのサーバー側の設定
ルートディレクトリーへ移動
コマンドラインターミナルを開き、このクイックスタートのルートディレクトリーへ移動します。- クライアントとサーバーに共通するクラスを jar ファイルにパッケージ化して、JBoss Data Grid のサーバーモジュールをビルドします。
$ mvn clean package -Pprepare-server-module
新しい jar ファイルを、サーバーモジュールに似たディレクトリー構造に置きます。 - サーバーモジュールをサーバーにインストールします。
- 準備したモジュールをサーバーへコピーします。
$ cp -r target/modules ${JDG_SERVER_HOME}/
- 以下を
modules/system/layers/base/org/infinispan/commons/main
module.xml
ファイルへ追加し、新しいモジュールをorg.infinispan.commons
モジュールの依存関係として追加します。<module name="org.infinispan.quickstart.compatibility.common"/>
- アプリケーションをビルドします。
$ mvn clean package
- 適切な設定ファイルを使用するように JBoss Data Grid を設定します。
- 互換性モードのサンプル設定ファイルを、JBoss Data Grid サーバーが見つけて使用できる場所にコピーします。
$ cp ${JDG_SERVER_HOME}/docs/examples/configs/standalone-compatibility-mode.xml ${JDG_SERVER_HOME}/standalone/configuration
rest-connector
要素からsecurity-domain
およびauth-method
属性を削除し、REST セキュリティーを無効にします。
- JBoss Data Grid サーバーを互換性モードで起動します。
$ ${JDG_SERVER_HOME}/bin/standalone.sh -c standalone-compatibility-mode.xml
手順16.2 Rapid Stock Market クイックスタートのクライアント側の設定
- 別のコマンドラインターミナルウインドウで、サーバー側アプリケーションを起動します。
$ mvn exec:java -Pclient
- クライアントアプリケーションのヘルプメニューにある手順を使用します。
第17章 Cluster App クイックスタート
- JBoss EAP クラスターがない状態で JBoss Data Grid のクラスター化キャッシュを作成および使用する方法。
- JBoss EAP クラスターが Infinispan クラスターから独立している設定。
- 1 つの JBoss EAP インスタンスは、異なる JBoss Data Grid クラスターのメンバーである JBoss Data Grid キャッシュを使用できる。
- JBoss Data Grid API を使用したキャッシュ設定のプログラミング。
- 管理アプリケーション App1Cache で行われるファイルベースの設定。
- CDI を使用したキャッシュマネージャーのインジェクト。
17.1. EAP Cluster App の前提条件
- Java 6.0 (Java SDK 1.6) 以上
- JBoss Enterprise Application Platform 6.1 以降
- Maven 3.0 以上
- Maven リポジトリーの設定。詳細は 3章Maven リポジトリーのインストールおよび使用を参照してください。
- JBoss Data Grid モジュールが JBoss EAP サーバーにインストールされている必要があります。
17.2. アプリケーションサーバーインスタンスの起動
手順17.1 スタンドアロンモードでのサーバーの設定および起動
- コピーする JBoss EAP のインスタンスを準備します。
jboss-datagrid-${version}-eap-modules-library.zip
を展開します。- モジュールをサーバーモジュールディレクトリーにコピーします。
- Linux の場合:
cp -a jboss-datagrid-${version}-eap-modules-library/modules EAP_HOME
Windows の場合:xcopy /e/i/f jboss-datagrid-${version}-eap-modules-library/modules EAP_HOME\modules
- EJB にアクセスするため、ユーザーを各サーバーに追加します。
- Linux の場合: EAP_HOME/bin/add-user.sh -a -u quickuser -p quick-123
- Windows の場合: EAP_HOME\bin\add-user.bat -a -u quickuser -p quick-123
- 準備した JBoss EAP サーバーを EAP_HOME[1-4] というラベルの 4 つディレクトリーにそれぞれコピーします。
- ノードごとに 1 つのコマンドラインターミナルを開き、JBoss EAP サーバーディレクトリーのルートに移動します。
- 以下のコマンドを実行して、4 つの JBoss EAP サーバーすべてを起動します。
- Linux の場合:
EAP_HOME1/bin/standalone.sh -Djboss.node.name=node1 EAP_HOME2/bin/standalone.sh -Djboss.node.name=node2 -Djboss.socket.binding.port-offset=100 EAP_HOME3/bin/standalone.sh -Djboss.node.name=node3 -Djboss.socket.binding.port-offset=200 -c standalone-ha.xml EAP_HOME4/bin/standalone.sh -Djboss.node.name=node4 -Djboss.socket.binding.port-offset=300 -c standalone-ha.xml
- Windows の場合:
EAP_HOME1\bin\standalone.bat -Djboss.node.name=node1 EAP_HOME2\bin\standalone.bat -Djboss.node.name=node2 -Djboss.socket.binding.port-offset=100 EAP_HOME3\bin\standalone.bat -Djboss.node.name=node3 -Djboss.socket.binding.port-offset=200 -c standalone-ha.xml EAP_HOME4\bin\standalone.bat -Djboss.node.name=node4 -Djboss.socket.binding.port-offset=300 -c standalone-ha.xml
- EJB のサーバー対サーバーの呼び出しを使用するよう、node2 (AppOne) の設定を追加します。
- Linux の場合:
EAP_HOME2/bin/jboss-cli.sh -c --controller=localhost:10099 --file=QUICKSTART_HOME/install-appOne-standalone.cli
Windows の場合:EAP_HOME2\bin\jboss-cli.bat -c --controller=localhost:10099 --file=QUICKSTART_HOME/install-appOne-standalone.cli
手順17.2 ドメインモードでのサーバーの設定および起動
- JBoss EAP のフレッシュインストールを EAP_HOME にコピーします。
jboss-datagrid-${version}-eap-modules-library.zip
を展開します。- モジュールをサーバーモジュールディレクトリーにコピーします。
- Linux の場合:
cp -a jboss-datagrid-${version}-eap-modules-library/modules EAP_HOME
- Windows の場合:
xcopy /e/i/f jboss-datagrid-${version}-eap-modules-library/modules EAP_HOME\modules
- コマンドラインターミナルを開き、JBoss EAP のルートへ移動します。
- ユーザーを追加します。
- Linux の場合:
EAP_HOME/bin/add-user.sh -a -u quickuser -p quick-123
- Windows の場合:
EAP_HOME\bin\add-user.bat -a -u quickuser -p quick-123
- 以下はドメインを起動するコマンドになります。
- Linux の場合:
EAP_HOME/bin/domain.sh
- Windows の場合:
EAP_HOME\bin\domain.bat
- クイックスタートの設定を適用します。ドメインには 4 つのノードが含まれるようになります。
- Linux の場合:
EAP_HOME/bin/jboss-cli.sh -c --file=QUICKSTART_HOME/install-domain.cli
- Windows の場合:
EAP_HOME\bin\jboss-cli.bat -c --file=QUICKSTART_HOME/install-domain.cli
17.3. アプリケーションのビルド
手順17.3 アプリケーションのビルド
- コマンドラインターミナルを開き、このクイックスタートのルートディレクトリーへ移動します。
- 以下のコマンドを実行し、アーカイブをビルドします。
mvn clean install
- アプリケーションを適切なサーバーへコピーします。
- Linux の場合:
cp adminApp/ear/target/jboss-eap-application-adminApp.ear EAP_HOME1/standalone/deployments cp appOne/ear/target/jboss-eap-application-AppOne.ear EAP_HOME2/standalone/deployments cp appTwo/ear/target/jboss-eap-application-AppTwo.ear EAP_HOME3/standalone/deployments cp appTwo/ear/target/jboss-eap-application-AppTwo.ear EAP_HOME4/standalone/deployments
- Windows の場合:
copy adminApp\ear\target\jboss-eap-application-adminApp.ear EAP_HOME1\standalone\deployments copy appOne\ear\target\jboss-eap-application-AppOne.ear EAP_HOME2\standalone\deployments copy appTwo\ear\target\jboss-eap-application-AppTwo.ear EAP_HOME3\standalone\deployments copy appTwo\ear\target\jboss-eap-application-AppTwo.ear EAP_HOME4\standalone\deployments
- ドメインモードが使用されている場合は、以下の方法でアプリケーションをデプロイします。
- Linux の場合:
EAP_HOME/bin/jboss-cli.sh -c --file=QUICKSTART_HOME/deploy-domain.cli
- Windows の場合:
EAP_HOME\bin\jboss-cli.bat -c --file=QUICKSTART_HOME/deploy-domain.cli
17.4. アプリケーションの実行
この例では、AdminServer
および AppOneServer
のいずれも JBoss EAP レベルではクラスター化されません。JBoss Data Grid インスタンスのみがアプリケーションによる設定どおりにクラスター化されます。このアプリケーションによって以下が実行されます。
AdminApp
を使用してApp1
キャッシュに値を追加し、AppOne
のサーバーインスタンスへレプリケートされることを検証します。App2
キャッシュへ値を追加した後、トランザクションをロールバックし、値がロールバック後にキャッシュへ追加されないことを確認します。
手順17.4 AdminClient アプリケーションの実行
- コマンドラインターミナルを開き、
$QUICKSTART_HOME/client/
ディレクトリーへ移動します。 - 以下のコマンドを実行します。
mvn -Dexec.mainClass=org.jboss.as.quickstarts.datagrid.eap.app.AdminClient exec:java
注記
デフォルトでは、アプリケーションはlocalhost:4447
およびlocalhost:4547
(AdminHost
およびAppOneHost
用) へアクセスしようとします。この動作を変更するには、以下のパラメーターをmvn
コマンドに追加します。-Dexec.args="AdminHost AdminPort AppOneHost AppOnePort"
- 以下のテキストがコンソールに表示されることを確認します。予期せぬ結果の場合は例外が発生します。
Add a value to App1Cache with the AdminApp and check on the same instance that the value is correct added success Check the previous added value of App1Cache by accessing the AppOne Server success Add a value to App2Cache and check on the same instance that the value is correct added success Check whether changes to a cache are rollbacked if the transaction fail The cache App2 work as expected on rollback
この例では、JBoss EAP および JBoss Data Grid キャッシュの両方がクラスター化されますが、この例の目的はクラスターはそれぞれ独立していることを実証することです。JBoss Data Grid クラスターは JBossEAP サーバーとは異なる JGroups 実装を使用できます。この例は以下を行います。
AdminApp
を使用してApp2
キャッシュへ値を追加します。AppOne
にアクセスして、EJB 呼び出しがクラスター化され、両方のAppTwo
インスタンスが使用されることを実証します。
手順17.5 AppOneClient の実行
- コマンドラインターミナルを開き、
$QUICKSTART_HOME/client/
ディレクトリーへ移動します。 - 以下のコマンドを実行します。
mvn -Dexec.mainClass=org.jboss.as.quickstarts.datagrid.eap.app.AppOneClient exec:java
- 以下のテキストがコンソールに表示されることを確認します。予期せぬ結果の場合は例外が発生します。
Add a value to App2Cache with the AdminApp Access the App2Cache from the AppOneServer by using the clustered EJB@AppTwoServer success : received the following node names for EJB invocation : [node3, node4]
17.5. アプリケーションのデバッグ
mvn dependency:sources mvn dependency:resolve -Dclassifier=javadoc
第18章 camel-jbossdatagrid-fuse クイックスタート
child1
コンテナーにある local_cache_producer
バンドルおよび child2
コンテナーにある local_cache_consumer
バンドルの 2 つのバンドルを Fuse にデプロイします。各バンドルの詳細は次のとおりです。
local_cache_producer
:「id, firstName, lastName, age」の形式を取る受信 CSV ファイルのフォルダー (/tmp/incoming) をスキャンします。ファイルが指定形式のエントリーとドロップされた場合、各エントリーが読み取られ、Person POJO に変換された後、データグリッドに保存されます。local_cache_consumer
:RESTful インターフェースを使用して POJO をクエリーできるようにし、指定のキーのデータグリッドに保存された Person POJO の JSON 表現を受け取れるようにします。
infinispan.xml
および jgroups.xml
ファイルで同じ設定が使用されるため、コンシューマーはプロデューサーによって追加されたものを抽出できます。infinispan.xml
ファイルは camel-cache
という名前の REPL
(レプリケートされた) キャッシュを定義し、コンシューマーとプロデューサーの両方がこのキャッシュと対話します。
18.1. クイックスタートの前提条件
- Java 7.0 (Java SDK 1.7) 以上
- Maven 3.0 以上
- JBoss Fuse 6.2.0 以上
- Maven リポジトリーを設定します。詳細は3章Maven リポジトリーのインストールおよび使用を参照してください。
18.2. 設定
- Red Hat カスタマーポータルより、Fuse フルインストールバイナリーをダウンロードします。
- 以下のコマンドを実行し、CSV ファイルが置かれるフォルダーへのパスをエクスポートします。
export incomingFolderPath=[Full path to the CSV folder]
- クイックスタートのルートディレクトリーで以下のコマンドを実行します。
mvn clean install -DincomingFolderPath=$incomingFolderPath
- 同じシェルで
FUSE_INSTALL_PATH
およびFUSE_BINARY_PATH
変数を設定します。export FUSE_INSTALL_PATH = [Full path to the folder where Fuse will be installed] export FUSE_BINARY_PATH = [Full path to the Fuse zip file downloaded in step 1]
- 環境変数の設定後、クイックスタートのルートディレクトリーから以下のコマンドを実行します。
./setupEverythingOnFuse.sh
- スクリプトの完了後、エラーなしで Fuse Hawtio Console へアクセスできることを確認します。このコンソールは、デフォルトでは
http://127.0.0.1:8181/hawtio/index.html#/login
で実行され、ユーザー名とパスワードは両方admin
になります。 http://127.0.0.1:8181/hawtio/index.html#/fabric/containers
の Fuse Fabric にアクセスし、child1
およびchild2
コンテナーの両方が作成されたことを確認します。両方のコンテナーは、準備ができたことを示す緑色で強調されている必要があります。
18.3. camel-jbossdatagrid-fuse クイックスタートのテスト
local_cache_producer
をテストするには、前に指定した incomingFolderPath
で CSV ファイルを作成します。以下のコマンドを実行すると、単一のエントリーを持つファイルが作成されます。
echo "1,Bill,Gates,59" > $incomingFolderPath/sample.csvプロデューサーによって正常にファイルが解析されると、ディレクトリーからファイルが削除されます。コンシューマーのテストに進みます。
local_cache_consumer
をテストするには、Web ブラウザーで http://127.0.0.1:8282/cache/get/1
に移動します。これにより、上記で指定した 1
を ID として持つエントリーのキャッシュがクエリーされます。作成された POJO の以下の JSON が返されるはずです。
{"id":1,"firstName":"Bill","lastName":"Gates","age":59}
パート VI. Red Hat JBoss Data Grid のアンインストール
第19章 Red Hat JBoss Data Grid の削除
19.1. Linux システムから Red Hat JBoss Data Grid を削除
警告
手順19.1 Linux システムから JBoss Data Grid を削除
サーバーのシャットダウン
JBoss Data Grid サーバーがシャットダウンしたことを確認します。JBoss Data Grid のホームディレクトリーへの移動
コマンドラインを使用して、$JDG_HOME
フォルダーより 1 つ上の階層へ移動します。JBoss Data Grid のホームディレクトリーの削除
ターミナルで以下のコマンドを入力し、JBoss Data Grid を削除します。$JDG_HOME
は JBoss Data Grid ホームディレクトリーの名前に置き換えます。$ rm -Rf $JDG_HOME
19.2. Windows システムから Red Hat JBoss Data Grid を削除
警告
手順19.2 Windows システムから JBoss Data Grid を削除
サーバーのシャットダウン
JBoss Data Grid サーバーがシャットダウンしたことを確認します。JBoss Data Grid のホームディレクトリーへの移動
Windows Explorer を使用して、$JDG_HOME
フォルダーが存在するディレクトリーへ移動します。JBoss Data Grid のホームディレクトリーの削除
$JDG_HOME
フォルダーを選択し、削除します。
付録A 参考資料
A.1. キーバリューペアについて
- キーは特定のデータエントリーに一意です。関連するエントリーのエントリーデータ属性から構成されます。
- バリュー (値) は、キーによって割り当てられ、キーによって識別されるデータです。
付録B Maven の設定情報
B.1. Nuxus を用いた JBoss Enterprise Application Platform リポジトリーのインストール
手順B.1 JBoss Enterprise Application Platform 6 の Maven リポジトリー ZIP アーカイブのダウンロード
- Web ブラウザーを開き、URL https://access.redhat.com/jbossnetwork/restricted/listSoftware.html?product=appplatform にアクセスします。
- リストに Application Platform 6 Maven Repository があることを確認します。
- 希望のディレクトリーにファイルを展開します。
手順B.2 Nexus Maven リポジトリーマネージャーを使用した JBoss Enterprise Application Platform 6 Maven リポジトリーの追加
- 管理者として Nexus にログインします。
- リポジトリーマネージャーの左側にある Repositories セクションを選択します。→ メニューより
- Add... ドロップダウンメニューをクリックし、Hosted Repository を選択します。
- 新しいリポジトリーの名前と ID を指定します。
- Override Local Storage Location フィールドに展開されていないリポジトリーのパスを入力します。
- リポジトリーグループでアーティファクトを使用できる必要がある場合は設定を続行します。必要がない場合はこの手順を続行しないでください。
- リポジトリーグループを選択します。
- Configure タブをクリックします。
- Available Repositories リストにある新しい JBoss Maven リポジトリーを左側の Ordered Group Repositories へドラッグします。
注記
このリストの順番により Maven アーティファクトの検索優先度が決定されます。
Nexus Maven リポジトリーマネージャーを使用してリポジトリーが設定されます。
B.2. Maven リポジトリーの設定例
example-settings.xml
という名前のサンプル Maven リポジトリーファイルを利用できます。以下は、example-settings.xml
ファイルに関連する箇所が含まれる抜粋になります。
例B.1 Maven リポジトリーの設定例
<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <proxies> <!-- proxy Specification for one proxy, to be used in connecting to the network. <proxy> <id>optional</id> <active>true</active> <protocol>http</protocol> <username>proxyuser</</username> <password>proxypass</password> <host>proxy.host.net</host> <port>80</port> <nonProxyHosts>local.net|some.host.com</nonProxyHosts> </proxy> --> </proxies> <profiles> <!-- Configure the JBoss GA Maven repository --> <profile> <id>jboss-ga-repository</id> <repositories> <repository> <id>jboss-ga-repository</id> <url>http://maven.repository.redhat.com/techpreview/all</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>jboss-ga-plugin-repository</id> <url>http://maven.repository.redhat.com/techpreview/all</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories> </profile> <!-- Configure the JBoss Early Access Maven repository --> <profile> <id>jboss-earlyaccess-repository</id> <repositories> <repository> <id>jboss-earlyaccess-repository</id> <url>http://maven.repository.redhat.com/earlyaccess/all/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>jboss-earlyaccess-plugin-repository</id> <url>http://maven.repository.redhat.com/earlyaccess/all/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories> </profile> </profiles> <activeProfiles> <!-- Optionally, make the repositories active by default --> <activeProfile>jboss-ga-repository</activeProfile> <activeProfile>jboss-earlyaccess-repository</activeProfile> </activeProfiles> </settings>
付録C 改訂履歴
改訂履歴 | ||||
---|---|---|---|---|
改訂 6.5.0-5 | Tue Oct 27 2015 | |||
| ||||
改訂 6.5.0-4 | Mon Sep 14 2015 | |||
| ||||
改訂 6.5.0-3 | Wed 8 July 2015 | |||
| ||||
改訂 6.5.0-2 | Fri 5 June 2015 | |||
| ||||
改訂 6.5.0-1 | Tue 19 May 2015 | |||
| ||||
改訂 6.5.0-0 | Thu 15 Jan 2015 | |||
|