Red Hat JBoss Data Grid 6 スタートガイド JBoss Data Grid 6 の入門ガイド エディッション 1 Misha Husnain Ali Gemma Sheldon David Le Sage Misty Stanley-Jones B Long Red Hat JBoss Data Grid 6 スタートガイド JBoss Data Grid 6 の入門ガイド エディッション 1 Misha Husnain Ali Red Hat Engineering Co ntent Services mhusnain@redhat.co m David Le Sage Red Hat Engineering Co ntent Services dlesage@redhat.co m B Lo ng Red Hat Engineering Co ntent Services belo ng@redhat.co m Gemma Sheldo n Red Hat Engineering Co ntent Services gsheldo n@redhat.co m Misty Stanley-Jo nes misty@redhat.co m 法律上の通知 Copyright © 2014 Red Hat, Inc. T his document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux ® is the registered trademark of Linus T orvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates. XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and other countries. Node.js ® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project. T he OpenStack ® Word Mark and OpenStack Logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community. All other trademarks are the property of their respective owners. 概要 本ガイドでは JBoss Data Grid 6 における初歩的な概念や操作について説明します。 目次 目次 .前書き . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5. . . . . . . . . . 1. 本書の表記規則 5 1.1. 書体の表記規則 5 1.2. 引用文の表記規則 6 1.3. 注記および警告 7 2. サポート、およびフィードバックのお願い 7 2.1. サポートが必要ですか? 7 2.2. フィードバックをお願いします 8 . . .1章 第 . . . .JBoss . . . . . . Data . . . . . .Grid . . . . .6. .の紹介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9. . . . . . . . . . 1.1. JBoss Data Grid について 9 1.2. JBoss Data Grid の使用モード 9 1.3. JBoss Data Grid の利点 9 1.4. JBoss Data Grid のバージョン情報 11 1.5. JBoss Data Grid のキャッシュアーキテクチャー 11 1.6. JBoss Data Grid の API 12 . . .2章 第 . . . .JBoss . . . . . . Data . . . . . .Grid . . . . .の要件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13 ........... 2.1. JBoss Data Grid の前提条件 13 2.2. Java Virtual Machines (JVM) 13 2.2.1. Java 仮想マシン 13 2.2.2. Red Hat Enterprise Linux への OpenJDK のインストール 13 . . .3章 第 . . . JBoss . . . . . . . Data . . . . . .Grid . . . . .のダウンロードおよびインストール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 ............ 3.1. JBoss Data Grid のダウンロード 14 3.2. Red Hat カスタマーポータルについて 14 3.3. チェックサムの検証 14 3.4. ダウンロードされたファイルの検証 14 3.5. JBoss Data Grid のインストール 15 3.6. Red Hat のドキュメントサイト 15 . . .4.章 第 . . .Maven . . . . . . .リポジトリのインストールおよび使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 ............ 4.1. Maven について 16 4.2. Maven のダウンロード 16 4.3. JBoss Data Grid の Maven リポジトリについて 16 4.4. Maven リポジトリのインストール 16 4.4.1. Maven リポジトリのインストールオプション 16 4.4.2. ローカルファイルシステムリポジトリのインストール 16 4.4.3. Apache Web Sever のインストール 17 4.4.4. Maven リポジトリマネージャーのインストール 17 4.5. Maven レポジトリの設定 17 4.5.1. Maven リポジトリの設定 17 4.5.2. Maven リポジトリリンクの設定 17 4.5.3. Maven リポジトリの設定例 18 . . .5章 第 . . . .新規 . . . . JBoss . . . . . . . Data . . . . . .Grid . . . . .プロジェクトの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 ............ 5.1. プロジェクトへの依存関係の追加 20 5.2. プロジェクトへのプロファイルの追加 20 5.3. JBoss Data Grid の実行 22 . . .6章 第 . . . .埋め込みキャッシュとして . . . . . . . . . . . . . . . . . . . . . . . . . .JBoss . . . . . . .Data . . . . . Grid . . . . . を実行する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23 ........... 6.1. クイックスタートファイルの場所 23 6.2. クイックスタートクラスにおける main メソッドの作成 23 1 Red Hat JBoss D ata Grid 6 スタートガイド 6.3. 新しい RemoteCacheManager の作成 6.4. デフォルトキャッシュの使用 6.4.1. キャッシュのデータ追加および削除 6.4.2. キー値の追加と置換 6.4.3. データライフの調整 6.4.4. デフォルトのデータ期限 6.5. 名前付きキャッシュの使用 6.5.1. 名前付きキャッシュの使用 6.5.2. プログラムを用いた名前付きキャッシュの登録 6.5.3. 設定ファイルのロード 6.5.4. XML を用いた名前付きキャッシュの登録 24 24 24 24 25 25 25 26 26 26 26 . . .7章 第 . . . .埋め込みデータグリッドとして . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . JBoss . . . . . . .Data . . . . . .Grid . . . . .を使用する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 ............ 7.1. クイックスタートファイルの場所 28 7.2. 埋め込みデータグリッドとして JBoss Data Grid を実行する 28 7.3. JGroups チャネルの共有 28 7.4. クラスターにおける JBoss Data Grid の実行 28 7.4.1. プロジェクトのコンパイル 28 7.4.2. レプリケーションモードでクラスター化されたキャッシュを実行する 29 7.4.3. ディストリビューションモードでクラスター化されたキャッシュの実行 29 7.4.4. クラスターの設定 30 7.4.4.1. クラスターの設定 30 7.4.4.2. デフォルトクラスター設定の追加 30 7.4.4.3. デフォルトクラスター設定のカスタマイズ 30 7.4.4.4. レプリケートされたデータグリッドの設定 31 7.4.4.5. 分散されたデータグリッドの設定 32 . . .8章 第 . . . .エンドポイントのないノードとして . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . JBoss . . . . . . . Data . . . . . .Grid . . . . .を実行する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 ............ 8.1. エンドポイントについて 34 8.2. エンドポイントのないノードの利点 34 8.3. エンドポイントのないノードの設定例 34 8.4. エンドポイントのないノードの設定 34 . . .9章 第 . . . .JBoss . . . . . . Data . . . . . .Grid . . . . .の . . .CarMart . . . . . . . . .クイックスタート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36 ........... 9.1. CarMart クイックスタートについて 36 9.2. CarMart トランザクションクイックスタートについて 36 9.3. CarMart とトランザクションクイックスタートの違い 37 9.4. JBoss Application Server を用いた CarMart クイックスタート 37 9.4.1. CarMart クイックスタートを JBoss Application Server へビルドする 37 9.4.2. CarMart クイックスタートを JBoss Application Server へデプロイする 38 9.4.3. CarMart クイックスタートを JBoss Application Server からアンデプロイする 38 9.5. T omcat を用いた CarMart クイックスタート 39 9.5.1. CarMart クイックスタートの T omcat へのビルド 39 9.5.2. CarMart クイックスタートの T omcat へのデプロイ 39 9.5.3. T omcat の CarMart クイックスタートのアンデプロイ 40 9.6. リモートクライアントサーバーモードの CarMart クイックスタート 40 9.6.1. リモートクライアントサーバーモードでの CarMart クイックスタートのビルド 40 9.6.2. リモートクライアントサーバーモードでの CarMart クイックスタートのデプロイ 42 9.6.3. リモートクライアントサーバーモードでの CarMart クイックスタートのアンデプロイ 43 . . .10章 第 . . . . .Football . . . . . . . . .クイックスタートエンドポイントの例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. .4. . . . . . . . . . 10.1. Football クイックスタートエンドポイントの例について 44 10.2. Football アプリケーションのビルド 44 . . .11章 第 . . . . .JBoss . . . . . . .Data . . . . . Grid . . . . . の削除 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. .9. . . . . . . . . . 11.1. Linux システムより JBoss Data Grid を削除する 49 11.2. Windows システムより JBoss Data Grid を削除する 49 2 目次 .参照 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 ............ A.1. キーバリューペアについて 50 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 改訂履歴 ............ 3 Red Hat JBoss D ata Grid 6 スタートガイド 4 前書き 前書き 1. 本 書 の 表 記 規 則 本ガイドでは、一部の単語や語句を強調して、特定の情報に対する読者の注意を促すために、以下のよう な表記規則を採用しています。 本ガイドの PDF および紙書籍版では、Liberation フォントセットの書体を使用しています。また、 Liberation フォントセットがご使用のシステムにインストールされている場合には、HT ML 版もこの書体 で表示されます。インストールされていない場合には、別の対応する書体で表示されます。なお、Red Hat Enterprise Linux 5 以降のバージョンでは、Liberation フォントセットがデフォルトでインストールさ れる点に注意してください。 1.1. 書体の表記規則 本ガイドでは、特定の単語や語句に対する注意を促すために、4 つの書体表記規則を採用しています。こ れらの表記規則および適用される状況は、以下のとおりです。 太字の等幅フォント シェルコマンド、ファイル名、パスなど、システムへの入力を強調するために使用します。また、キー名 やキーの組み合わせを強調するのにも使用します。以下が例となります。 作業ディレクトリ内の m y_next_bestselling_novel というファイルの内容を表示する には、シェルプロンプトで cat m y_next_bestselling_novel というコマンドを入力し て Enter キーを押し、そのコマンドを実行します。 上記の例には、ファイル名、シェルコマンド、キー名が含まれており、すべて太字の等幅フォントで表示 されていますが、文脈で区別することができます。 キーの組み合わせは、プラス記号 (+) で各キーがつながれているので、個別のキーと区別することができ ます。以下が例となります。 Enter を押してコマンドを実行します。 Ctrl+Alt+F2 を押して仮想ターミナルに切り替えます。 第 1 の例では、押すべき特定のキー名が強調されています。第 2 の例では、3 つのキーを同時に押す、 キーの組み合わせが強調されています。 ソースコードを記載する場合、その段落で言及されるクラス名、メソッド、関数、変数名、戻り値は上記 のように 太字の等幅フォント で表示されます。以下が例となります。 ファイル関連のクラスには、filesystem (ファイルシステム)、file (ファイル)、dir (ディレクトリ) などがあります。各クラスにそれぞれ独自のパーミッションセットが関連付 けられています。 太字の可変幅フォント この書体は、アプリケーション名、ダイアログボックスのテキスト、ラベル付きボタン、チェックボック ス/ラジオボタンのラベル、メニュータイトル、サブメニュータイトルなど、システムで表示される単語や 語句であることを示します。以下が例となります。 メインメニューバーから システム → 設定 → マウス の順で選択し、マウスの設定 を起動 します。全般 タブで 左利き のラジオボタンを選択して 閉じる をクリックし、マウスの主 5 Red Hat JBoss D ata Grid 6 スタートガイド ボタンを左から右へ切り替えます (左利きのユーザーが使用するのに適切な設定に変更しま す)。 gedit ファイルに特殊文字を入力するには、メインのメニューバーから アプリケーション → アクセサリ → 文字マップ の順に選択します。次に 文字マップ のメニューバーから 検 索 → 検索 … の順に選択して 検索 フィールドに文字名を入力し、次を検索 をクリックしま す。検索対象の文字が 文字テーブル に強調表示されます。その文字をダブルクリックして コピーする文字列 のフィールドに表示されたら、コピー ボタンをクリックします。この後 に編集中のドキュメントに戻り、gedit のメニューバーから 編集 → 貼り付け の順で選択し ます。 上記のテキストには、アプリケーション名、システム全体のメニュー名と項目、アプリケーション固有の メニュー名、GUI インターフェースで使用されているボタンおよびテキストが含まれており、これらはす べて、太字の可変幅フォントで表示されていますが、文脈で区別することができます。 太字斜体の等幅フォント または 太字斜体の可変幅フォント 太字の等幅フォントおよび太字の可変幅フォントに斜体を使用した場合には、いずれも置き換え可能な可 変テキストであることを意味します。斜体は、記載されている通りには入力しないテキスト、あるいは状 況によって変化するテキストを示します。以下が例となります。 ssh を使用してリモートマシンに接続するには、シェルプロンプトで ssh username@ domain.name と入力します。リモートマシンが exam ple.com で、そのマシン 上のユーザー名が john である場合には、ssh john@ exam ple.com と入力してください。 m ount -o rem ount file-system のコマンドは、指定したファイルシステムを再マウン トします。たとえば、/hom e ファイルシステムを再マウントするコマンドは m ount -o rem ount /hom e となります。 現在インストール済みのパッケージのバージョンを確認するには、rpm -q package のコマ ンドを使用します。その結果、次のような出力が返されます: package-version-release ユーザー名、ドメイン名、ファイルシステム、パッケージ、バージョン、およびリリースが太字のイタ リック体で表示されている点に注意してください。これらの語句はプレースホルダーで、コマンドを発行 する際に入力するテキストまたはシステムによって表示されるテキストのいずれかです。 斜体は、著作物のタイトルを表すという標準的な用途の他に、重要な用語の初出時にも使用されます。以 下が例となります。 Publican は DocBook の出版システムです。 1.2. 引用文の表記規則 端末の出力とソースコードは、周囲のテキストとは視覚的に区切られて表示されます。 端末に送信される出力は、ローマン体の等幅フォント を使用して以下のように表示されます。 books books_tests Desktop Desktop1 documentation downloads drafts images mss notes photos scripts stuff svgs svn ソースコードの表示にも ローマン体の等幅フォント が使用されますが、以下のような構文強調表示が追 加されます。 6 前書き package org.jboss.book.jca.ex1; import javax.naming.InitialContext; public class ExClient { public static void main(String args[]) throws Exception { InitialContext iniCtx = new InitialContext(); Object ref = iniCtx.lookup("EchoBean"); EchoHome home = (EchoHome) ref; Echo echo = home.create(); System.out.println("Created Echo"); System.out.println("Echo.echo('Hello') = " + echo.echo("Hello")); } } 1.3. 注記および警告 本ガイドでは、見落としがちな情報に注意を促すために、次にあげる 3 つの視覚的スタイルを使用してい ます。 注記 注記には、対象のタスクに関するヒント、ショートカット、その他のアプローチなどを記載してい ます。注記を無視しても、悪影響はありませんが、作業を効率的に行うためのコツを見逃してしま う可能性があります。 重要 重要の欄には、現行セッションのみに適用される設定の変更や、更新を適用するのに再起動が必要 なサービスなど、見落としがちな情報を記載しています。「重要」と記載された事項を無視して も、データ損失などには至りませんが、作業が思ったようにスムーズに進まなくなる可能性があり ます。 警告 警告は、無視しないでください。警告を無視すると、データ損失が発生する可能性が非常に高くな ります。 2. サ ポ ー ト 、 お よ び フ ィ ー ド バ ッ ク の お 願 い 2.1. サポートが必要ですか? 本書に説明してある手順で問題があれば、Red Hat カスタマーポータル(http://access.redhat.com)をご覧 ください。カスタマーポータルでは以下を行うことができます。 7 Red Hat JBoss D ata Grid 6 スタートガイド Red Hat 製品に関する技術的なサポートの記載をナレッジベースで検索、閲覧することができます。 サポートケースを Red Hat グローバルサポートサービス(GSS)に提出することができます。 他の製品文書を参照することができます。 また、Red Hat は Red Hat のソフトウェアやテクノロジーに関するディスカッションの場として多くの メーリングリストを設置しています。公開されているメーリングリストについて はhttps://www.redhat.com/mailman/listinfoで一覧を参照してください。メーリングリストをサブスクライ ブする、またはメーリングリストのアーカイブを参照する場合はそのメーリングリスト名をクリックしま す。 2.2. フィードバックをお願いします 誤植、本ガイドの改善案がある場合、ご意見お待ちしております。製品JBoss Data Grid 6、コンポー ネントDocum entationとしBugzilla から報告してください。以下のリンクhttps://bugzilla.redhat.com/か ら、あらかじめ記入が施されている本製品のバグレポートへ移動できます。 Bugzilla のDescription フィールドにある以下のテンプレートに記載してください。できるだけ具体的 に問題を説明していただけると、迅速に問題解決へ向けた取り組みが行いやすくなります。 文書URL: 項、項のタイトル: 問題の説明: 改善案: 追加情報: 問題報告の功績が認められるよう、名前を記載するのを忘れないようにしてください 。 8 第1章 JBoss D ata Grid 6 の紹介 第 1章 JBoss Data Grid 6 の紹介 1.1. JBoss Data Grid に つ い て JBoss Data Grid は分散インメモリーデータグリッドで、次の機能を提供します。 スキーマレスなキーバリューストア – Red Hat JBoss Data Grid は、固定のデータモデルを用いずに 異なるオブジェクトを格納するフレキシブルな NoSQL データベースです。 グリッドベースのデータストレージ – Red Hat JBoss Data Grid は、複数のノードにまたがったデー タのレプリケートが簡単に行えるよう設計されています。 エラスティックスケーリング – シンプルに混乱を起こさずノードの追加と削除を行えます。 複数のアクセスプロトコル – REST 、Memcached、Hot Rod または簡単なマップのような API を使用 して簡単にデータグリッドへアクセスできます。 バグを報告する 1.2. JBoss Data Grid の 使 用 モ ー ド JBoss Data Grid には 2 つの使用モードがあります。 リモートクライアントサーバーモード リモートクライアントサーバーモードは、管理分散されたクラスター化可能なデータグリッド サーバーを提供します。アプリケーションは Hot Rod、Memcached、または REST クライアン ト API を使用して、データグリッドにリモートアクセスできます。 ライブラリーモード ライブラリーモードは、カスタムランタイム環境の構築やデプロイに必要なすべてのバイナリを 提供します。ライブラリー使用モードでは、分散クラスターの 1 つのノードへローカルアクセス でできます。この使用モードでは、使用されるコンテナの仮想マシン内でアプリケーションが データグリッドの機能にアクセスできます。サポート対象のコンテナには、T omcat 7 や JBoss Enterprise Application Platform 6 などがあります。 バグを報告する 1.3. JBoss Data Grid の 利 点 JBoss Data Grid の利点 巨大なヒープと高可用性 JBoss Data Grid では、パフォーマンス向上のためにアプリケーションがデータのルックアップ 処理のほとんどを大型のサーバーデータベースへ委譲する必要がありません。JBoss Data Grid は、現在のエンタープライズアプリケーションの大部分に存在するボトルネックを完全に取り除 きます。 9 Red Hat JBoss D ata Grid 6 スタートガイド 例 1.1 巨大なヒープと高可用性の例 100 個のブレードサーバーを持つグリッドの例として、各ノードがレプリケートされたキャッ シュ専用の 2 GB のストレージ領域を持っているとします。この場合、グリッドの全データが 2 GB のデータのコピーとなります。逆に、分散グリッド (データ項目ごとに 1 つのコピーが 必要であることを仮定した場合) では、メモリーがサポートする仮想ヒープに 100 GB のデー タが含まれます。グリッドのどこからでも効果的にこのデータへアクセスできるようになりま す。サーバーに障害が発生した場合、グリッドによって損失データの新しいコピーが即座に作 成され、グリッドの運用サーバーに置かれます。 スケーラビリティー JBoss Data Grid ではデータが均一に分散されるため、グリッドサイズの唯一の上限はネット ワーク上でのグループ通信になります。ネットワークのグループ通信は最小限で、新規ノードの 発見のみに制限されています。すべてのデータアクセスパターンは、ノードによるピアツーピア 接続を介した直接通信を許可するため、スケーラビリティーの更なる向上を容易にします。 JBoss Data Grid のクラスターは、リアルタイムでスケールアップまたはスケールダウンするこ とが可能ですが、インフラストラクチャーの再起動を必要としません。スケーリングポリシーへ の変更をリアルタイムで適用できるため、非常にフレキシブルな環境を実現することができま す。 データ分散 JBoss Data Grid は一貫したハッシュアルゴリズムを使用して、クラスターにおけるキーの場所 を判断します。一貫したハッシュに関する利点には次のようなものがあります。 コスト効果 速度 更なるメタデータやネットワークトラフィックの必要がない、決定論的なキーの場所 データ分散は、永続性とフォールトトラレンスを提供するため、余分のない十分なコピーがクラ スター内に確実に存在するようにします。余分なコピーは環境のスケーラビリティーを低下させ ます。 永続性 JBoss Data Grid は、CacheStore インターフェースと複数の高パフォーマンス実装 (JDBC キャッシュストアやファイルシステムベースのキャッシュストアなど) を公開します。キャッ シュストアはキャッシュをシードし、関連データを安全に保持し、破損しないようにします。ま た、キャッシュストアはプロセスがメモリー不足になると、データをディスクへオーバーフロー します。 言語のバインディング JBoss Data Grid は、既に多くの一般的なプログラミング言語向けに使用されている Memcached プロトコルと、Hot Rod と呼ばれる最適化された JBoss Data Grid 固有のプロトコ ルの両方をサポートします。そのため、Java Data Grid は Java に限定されず、すべての主要な Web サイトやアプリケーションに使用できます。 管理 数百個またはそれ以上のサーバーが存在するグリッド環境では、管理の実行は重要な機能になり ます。エンタープライズネットワーク管理ソフトウェアである JBoss Operations Network は、 10 第1章 JBoss D ata Grid 6 の紹介 複数の JBoss Data Grid インスタンスを管理するのに最適なツールです。JBoss Operations Network の機能を使用すると、キャッシュマネージャーやキャッシュインスタンスを簡単かつ効 率的に監視できます。 バグを報告する 1.4. JBoss Data Grid の バ ー ジ ョ ン 情 報 JBoss Data Grid は、データグリッドソフトウェアのオープンソースコミュニティー版である Infinispan が基盤となっています。Infinispan は、高ストレス環境で試行やテストを行い証明された JBoss Cache の コード、設計、およびアイデアを使用します。このようなデプロイメントの前歴があるため、JBoss Data Grid の初版リリースはバージョン 6.0 になっています。 バグを報告する 1.5. JBoss Data Grid の キ ャ ッ シ ュ ア ー キ テ ク チ ャ ー 図 1.1 JBoss Data Grid のキャッシュアーキテクチャー JBoss Data Grid のキャッシュアーキテクチャーは個々の要素と要素同士の対話を表現します。分かりや すくするため、キャッシュアーキテクチャーの図は以下の 2 つの部分に分割されています。 ユーザーが直接対話できない要素 (背景が灰色の部分)。これにはキャッシュ、キャッシュマネー ジャー、1 次キャッシュ、永続ストアインターフェース、永続ストアなどが含まれます。 ユーザーが直接対話できる要素 (背景が白の部分)。これにはキャッシュインターフェースやアプリ ケーションなどが含まれます。 キャッシュアーキテクチャーの要素 JBoss Data Grid のキャッシュアーキテクチャーには次の要素が含まれます。 1. キャッシュインスタンスやエントリーを永久的に格納する永続ストア。 2. JBoss Data Grid は、永続ストアのアクセスに 2 つの永続ストアインターフェースを提供します。 永続ストアインターフェースは以下のいずれかになります。 キャッシュローダーは永続データストアへの接続を提供する読み取り専用インターフェースで す。キャッシュローダーは、キャッシュインスタンスおよび永続ストアよりデータの場所を見つ け、読み出すことができます。 11 Red Hat JBoss D ata Grid 6 スタートガイド キャッシュストアは、キャッシュローダーによるステートのロードおよび格納を許可するメソッ ドを公開し、キャッシュローダーの機能に書き込み機能が含まれるようにします。 3. 1 次キャッシュ (L1 キャッシュ) は、リモートキャッシュエントリーが最初にアクセスされた後にそ れらのエントリーを格納し、同じエントリーがその後使用される度に不必要なリモートフェッチ操 作が行われないようにします。 4. キャッシュマネージャーは JBoss Data Grid のキャッシュインスタンスを読み出すために使用され る主なメカニズムで、キャッシュを使用する時の開始点とすることができます。 5. キャッシュはキャッシュマネージャーによって読み出されたキャッシュインスタンスを格納しま す。 6. キャッシュインターフェースは Memcached や Hot Rod などのプロトコルを使用します。キャッ シュを持つインターフェースには REST を使用することもできます。リモートインターフェースに 関する詳細は開発者ガイドを参照してください。 Memcached はメモリー内にキーバリューを格納するために使用される分散メモリーオブジェク トキャッシングシステムです。Memcached キャッシングシステムは、Memached プロトコルと 呼ばれるテキストベースのクライアントサーバーキャッシングプロトコルを定義します。 Hot Rod は JBoss Data Grid で使用されるバイナリ T CP クライアントサーバープロトコルで す。Memchached などの他のクライアントサーバープロトコルに不足している機能を補うため に作成されました。Hot Rod は、パーティション化または分散化された JBoss Data Grid サー バークラスターの要求を、クライアントがスマートルーティングできるようにします。 REST プロトコルは、密結合のクライアントライブラリおよびバインディングを不要にします。 REST API ではオーバーヘッドが発生し、REST 呼び出しの理解と作成に REST クライアント またはカスタムコードを必要とします。 7. アプリケーションは、キャッシュインターフェースを介してユーザーがキャッシュとやりとりでき るようにします。このようなエンドユーザーアプリケーションの一般的な例がブラウザーです。 バグを報告する 1.6. JBoss Data Grid の API JBoss Data Grid は次の API を提供します。 キャッシュ バッチ処理 グループ化 CacheStore 外部化 JBoss Data Grid のリモートクライアントサーバーモードでは、データグリッドとの対話に次の API のみ を使用できます。 非同期 API (リモートクライアントサーバーモードで Hot Rod クライアントを併用する場合のみ使用可 能) REST インターフェース Memcached インターフェース Hot Rod インターフェース RemoteCache API バグを報告する 12 第2章 JBoss D ata Grid の要件 第 2章 JBoss Data Grid の要件 2.1. JBoss Data Grid の 前 提 条 件 JBoss Data Grid の実行には、Java 6.0 およびそれ以降のバージョンと互換性を持つ Java 仮想マシン (JVM) のみが必要となります。JBoss Data Grid にはアプリケーションサーバーは必要ありません。 バグを報告する 2.2. Java Virtual Machines (JVM) 2.2.1. Java 仮想マシン Java 仮想マシン (JVM) は Java バイトコードを実行できるソフトウェアのことです。JVM は中間のバイ トコードが実行される標準的な環境を作成します。基盤のハードウェアとオペレーティングシステムの組 み合わせにとらわれず標準的な環境を作成することで、プログラマーは Java コードを一度書けばどのシ ステムでも実行できることを確信できます。OpenJDK はオープンソースで Java 仮想マシンがサポート し、Red Hat Enterprise Linux システムで快適に実行されるため、Red Hat は OpenJDK の使用を推奨し ます。Window ユーザーは Oracle JDK 1.6 をインストールするようにしてください。 バグを報告する 2.2.2. Red Hat Enterprise Linux への OpenJDK のインストール 手順 2.1 Red Hat Enterprise Linux への OpenJDK のインストール 1. ベースチャンネルのサブスクライブ RHN ベースチャンネルより OpenJDK を取得します。Red Hat Enterprise Linux のインストールは デフォルトでこのチャンネルにサブスクライブされています。 2. パッケージのインストール yum ユーティリティを使用して OpenJDK をインストールします。 $ sudo yum install java-1.6.0-openjdk-devel 3. OpenJDK がシステムデフォルトであることを検証 次のように、正しい JDK がシステムデフォルトとして設定されているかを確認します。 a. root としてログインし、alternatives コマンドを実行します。 $ /usr/sbin/alternatives --config java b. /usr/lib/jvm /jre-1.6.0-openjdk.x86_64 /bin/java 選択します。 c. 次のコマンドを使用して javac を設定します。 $ /usr/sbin/alternatives --config javac d. /usr/lib/jvm /java-1.6.0-openjdk/bin/java を選択します。 バグを報告する 13 Red Hat JBoss D ata Grid 6 スタートガイド 第 3章 JBoss Data Grid のダウンロードおよびインストール 3.1. JBoss Data Grid の ダ ウ ン ロ ー ド 次の手順に従って、カスタマーサービスポータルより JBoss Data Grid をダウンロードします。 手順 3.1 JBoss Data Grid のダウンロード 1. カスタマーサービスポータルへアクセス カスタマーサービスポータル https://access.redhat.com へログインします。 2. 製品の検索 [Downloads] にカーソルを置き、[JBoss Enterprise Middleware] に移動します。 3. 製品の選択 [Data Grid] を選択します。 4. JBoss Data Grid のダウンロード 適切な JBoss Data Grid を選択し、[Download] リンクをクリックします。 リモートクライアントサーバー使用モードがある JBoss Data Grid をダウンロードする場合は [JBoss Data Grid Server 6.0.0] を選択します。ライブラリ使用モードを持つ JBoss Data Grid をダウンロードする場合は [JBoss Data Grid Library 6.0.0] を選択します。 バグを報告する 3.2. Red Hat カ ス タ マ ー ポ ー タ ル に つ い て Red Hat カスタマーポータルは、 公式にサポートされたソフトウェアのダウンロード、エンタイトルメン トとサポート契約の管理、グローバルサポートサービスへの問い合わせ、Red Hat 製品のバグの報告など を Red Hat のお客様が行うための Web サイトです。カスタマーポータルにアクセスする Web アドレス は https://access.redhat.com です。 バグを報告する 3.3. チ ェ ッ ク サ ム の 検 証 チェックサムの検証は、ダウンロードされたファイルが破損していないか確認するために使用されます。 チェックサムの検証には、デジタルデータの任意のブロックより固定サイズのデータ (またはチェックサ ム) を算出するアルゴリズムが使用されます。異なるユーザーが同じアルゴリズムを使用して特定ファイ ルのチェックサムを算出しても、結果は同じになります。そのため、サプライヤーと同じアルゴリズムを 使用してダウンロードされたファイルのチェックサムを算出する場合、チェックサムが一致すればファイ ルの整合性が確認されます。チェックサムが一致しない場合、ダウンロードの処理中にファイルが破損し たことになります。 バグを報告する 3.4. ダ ウ ン ロ ー ド さ れ た フ ァ イ ル の 検 証 手順 3.2 ダウンロードされたファイルの検証 1. Red Hat カスタマーポータルからダウンロードしたファイルにエラーがないことをポータルサイト 上で検証するには、パッケージの [Software Details] ページに移動します。このページには、 ファイルの整合性チェックに使用する MD5 および SHA256"checksum" 値があります。 14 第3章 JBoss D ata Grid のダウンロードおよびインストール 2. ターミナルウインドウを開いて m d5sum または sha256sum コマンドを実行し、ダウンロードし た ZIP のファイル名を引数として渡します。すると、ファイルのチェックサム値が出力されます。 3. コマンドによって返されたチェックサム値と、ファイルの [Software Details] ページに表示さ れた対応する値を比較します。 注記 Microsoft Windows にはチェックサムツールが同梱されていません。Microsoft Windows の ユーザーはサードパーティーの製品をダウンロードする必要があります。 結果 2 つのチェックサム値が同じである場合、ファイルに変更や破損がないため、安心して使用することがで きます。 2 つのチェックサム値が同じでない場合、再度ファイルをダウンロードします。チェックサム値に相違が ある場合、ダウンロード中にファイルが破損したり、サーバーへアップロードされた後に変更が加えられ たりしたことを意味します。数回ダウンロードしてもチェックサムの検証に失敗する場合は、Red Hat サ ポートまでご連絡ください。 バグを報告する 3.5. JBoss Data Grid の イ ン ス ト ー ル 前提条件 適切なバージョン、プラットフォームおよびファイルタイプを見つけ、カスタマーサービスより JBoss Data Grid をダウンロードする必要があります。 手順 3.3 JBoss Data Grid のインストール 1. ダウンロードした JBoss Data Grid パッケージをマシン上の希望の場所にコピーする必要がありま す。 2. 次のコマンドを実行して、ダウンロードした JBoss Data Grid パッケージを展開します。 $ unzip JDG_PACKAGE JDG_PACKAGE は、Red Hat カスタマーポータルよりダウンロードした JBoss Data Grid 使用モー ドパッケージの名前に置き換えます。 3. 展開したディレクトリは $JDG_HOME とします。 バグを報告する 3.6. Red Hat の ド キ ュ メ ン ト サ イ ト Red Hat 公式のドキュメントサイトは https://access.redhat.com/knowledge/docs/ になります。本書を含 む、最新バージョンのドキュメントを検索できます。 バグを報告する 15 Red Hat JBoss D ata Grid 6 スタートガイド 第 4章 Maven リポジトリのインストールおよび使用 4.1. Maven に つ い て Apache Maven は、ソフトウェアプロジェクトの作成、管理、構築を行う Java アプリケーションの開発 で使用される分散型ビルド自動化ツールです。Maven は Project Object Model (POM) と呼ばれる標準の設 定ファイルを利用して、プロジェクトの定義や構築プロセスの管理を行います。POM はモジュールやコ ンポーネントの依存関係、ビルドの順番、結果となるプロジェクトパッケージングのターゲットを記述 し、XML ファイルを使用して出力します。こうすることで、プロジェクトが正しく統一された状態で構築 されるようにします。 バグを報告する 4.2. Maven の ダ ウ ン ロ ー ド Maven のダウンロードおよびインストール方法については、Maven ダウンロードページを参照してくだ さい。 バグを報告する 4.3. JBoss Data Grid の Maven リ ポ ジ ト リ に つ い て Maven は、JBoss Data Grid でプロジェクトを構築する標準的な方法を作成するビルドツールで、JBoss Data Grid に同梱されるコードや例が想定通り動作するようにします。 バグを報告する 4.4. Maven リ ポ ジ ト リ の イ ン ス ト ー ル 4.4.1. Maven リポジトリのインストールオプション JBoss Data Grid の Maven リポジトリをインストールする方法は 3 つあります。 1. ローカルファイルシステム上のインストール 2. Apache Web Server 上のインストール 3. Maven リポジトリマネージャーを用いたインストール ご使用の環境に最も適したオプションを使用してください。 バグを報告する 4.4.2. ローカルファイルシステムリポジトリのインストール このオプションは小チームでの初期テストに最も適したオプションです。次のコマンドを用いて、JBoss Data Grid Maven リポジトリをローカルファイルシステムのディレクトリに展開します。 手順 4 .1 ローカルファイルシステムリポジトリのインストール 1. Red Hat カスタマーポータルより jboss-datagrid-m aven-repository-6.0.0.zip ファイ ルをダウンロードします。 2. $JDG_HOME/projects/m aven-repositories/ などのローカルファイルシステムのディレク トリにファイルを展開します。 16 第4章 Maven リポジトリのインストールおよび使用 バグを報告する 4.4.3. Apache Web Sever のインストール このオプションは、マルチユーザー環境での使用に最も適しています。次のように JBoss Data Grid Maven リポジトリを標準的な Web サーバー (Apache httpd など) にインストールできます。 手順 4 .2 Apache Web Sever のインストール 1. Red Hat カスタマーポータルより、次のファイルをダウンロードします。 jboss-datagrid-maven-repository-6.0.0.zip 2. $JDG_HOME/projects/m aven-repositories/ などのローカルファイルシステムのディレク トリにファイルを展開します。 3. Apache を設定し、設定されたディレクトリの読み取りアクセスとディレクトリの閲覧を許可しま す。 バグを報告する 4.4.4. Maven リポジトリマネージャーのインストール このオプションは、リポジトリーマネージャーを既に使用している場合に最適なオプションです。 JBoss Data Grid は、Maven リポジトリマネージャーとそのドキュメントを用いてインストールすること ができます。このようなリポジトリマネージャーの例は次の通りです。 Apache Archiva JFrog Artifactory Sonatype Nexus バグを報告する 4.5. Maven レ ポ ジ ト リ の 設 定 4.5.1. Maven リポジトリの設定 インストールされた JBoss Data Grid の Maven リポジトリを設定するには、settings.xm l ファイルを 編集します。デフォルトの settings.xml ファイルは、 Maven インストールの conf にあります。 Maven のユーザー設定は、ユーザーのホームディレクトリの .m 2 サブディレクトリにあります。Maven の設定に関する詳細は Maven documentation を参照してください。 バグを報告する 4.5.2. Maven リポジトリリンクの設定 Maven リポジトリのリンクは、使用されたインストールオプションによって異なります。ブラウザー上 で、以下に示された各インストールタイプのリンクにアクセスします。 17 Red Hat JBoss D ata Grid 6 スタートガイド 表 4 .1 Maven リポジトリインストールのリンク インストールタイプ リンク ファイルシステムインストール file://$JDG_HOME/projects/mavenrepositories/jboss-datagrid-maven-repository6.0.0 Apache Web Server インストール http://intranet.acme.com/jboss-datagrid-mavenrepository-6.0.0 Nexus リポジトリマネージャー https://intranet.acme.com/nexus/content/repositori es/jboss-datagrid-maven-repository-6.0.0 バグを報告する 4.5.3. Maven リポジトリの設定例 展開後、Maven リポジトリフォルダーのルートディレクトリにある exam ple-settings.xm l という名 前の Maven リポジトリファイルの例を利用できます。以下は、settings.xm l ファイルに関連する箇所 が含まれる抜粋になります。 18 第4章 Maven リポジトリのインストールおよび使用 <settings> ... <profiles> ... <profile> <id>jboss-datagrid-repository</id> <repositories> <repository> <id>jboss-datagrid-repository</id> <name>JBoss Data Grid Maven Repository</name> <url>file:///path/to/repo/jboss-datagrid-maven-repository6.0.0</url> <layout>default</layout> <releases> <enabled>true</enabled> <updatePolicy>never</updatePolicy> </releases> <snapshots> <enabled>false</enabled> <updatePolicy>never</updatePolicy> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>jboss-datagrid-repository-group</id> <name>JBoss Data Grid Maven Repository</name> <url>file:///path/to/repo/jboss-datagrid-maven-repository6.0.0</url> <layout>default</layout> <releases> <enabled>true</enabled> <updatePolicy>never</updatePolicy> </releases> <snapshots> <enabled>false</enabled> <updatePolicy>never</updatePolicy> </snapshots> </pluginRepository> </pluginRepositories> </profile> </profiles> <activeProfiles> <activeProfile>jboss-datagrid-repository</activeProfile> </activeProfiles> ... </settings> バグを報告する 19 Red Hat JBoss D ata Grid 6 スタートガイド 第 5章 新規 JBoss Data Grid プロジェクトの作成 5.1. プ ロ ジ ェ ク ト へ の 依 存 関 係 の 追 加 プロジェクトに依存関係を追加し、JBoss Data Grid を設定します。Maven や Maven の依存関係をサ ポートするその他のビルドシステムを使用している場合、Maven リポジトリフォルダーにある pom .xm l ファイルに以下を追加します。 <dependency> <groupId>org.infinispan</groupId> <artifactId>infinispan-core</artifactId> <version>5.1.5.FINAL-redhat-1</version> </dependency> 注記 version の値を、JBoss Data Grid に含まれるライブラリの適切なバージョンに置き換えます。 バグを報告する 5.2. プ ロ ジ ェ ク ト へ の プ ロ フ ァ イ ル の 追 加 プロジェクトに対して JBoss Maven リポジトリを有効にするには、次のようにプロファイルを pom .xm l ファイルに追加します。 20 第5章 新規 JBoss D ata Grid プロジェクトの作成 <profile> <id>jboss-datagrid-repository</id> <repositories> <repository> <id>jboss-datagrid-repository</id> <name>JBoss Data Grid Maven Repository</name> <url>file:///path/to/repo/jboss-datagrid-maven-repository-6.0.0</url> <layout>default</layout> <releases> <enabled>true</enabled> <updatePolicy>never</updatePolicy> </releases> <snapshots> <enabled>false</enabled> <updatePolicy>never</updatePolicy> </snapshots> </repository> <repository> <id>jboss-public-repository-group</id> <name>JBoss Public Maven Repository Group</name> <url>https://repository.jboss.org/nexus/content/groups/publicjboss/</url> <layout>default</layout> <releases> <enabled>true</enabled> <updatePolicy>never</updatePolicy> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>never</updatePolicy> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>jboss-datagrid-repository-group</id> <name>JBoss Data Grid Maven Repository</name> <url>file:///path/to/repo/jboss-datagrid-maven-repository-6.0.0</url> <layout>default</layout> <releases> <enabled>true</enabled> <updatePolicy>never</updatePolicy> </releases> <snapshots> <enabled>false</enabled> <updatePolicy>never</updatePolicy> </snapshots> </pluginRepository> <pluginRepository> <id>jboss-public-repository-group</id> <name>JBoss Public Maven Repository Group</name> <url>https://repository.jboss.org/nexus/content/groups/publicjboss/</url> <layout>default</layout> <releases> <enabled>true</enabled> <updatePolicy>never</updatePolicy> </releases> <snapshots> <enabled>true</enabled> 21 Red Hat JBoss D ata Grid 6 スタートガイド <updatePolicy>never</updatePolicy> </snapshots> </pluginRepository> </pluginRepositories> </profile> 宣言型の依存関係管理をサポートしないビルドシステムを使用している場合は、JBoss Data Grid パッ ケージに含まれる client/java/ ディレクトリの内容を、ビルドクラスパスへ追加します。 バグを報告する 5.3. JBoss Data Grid の 実 行 次のスクリプトを実行すると、最も簡単に JBoss Data Grid を実行できます。 $JDG_HOME/bin/standalone.sh このスクリプトは、$JDG_HOME/standalone/configuration の standalone.xm l に定義されて いる設定を使用して、JBoss Data Grid を起動します。 次の例のように、-c と設定ファイル名を追加すると、代替設定を実行できます。 $JDG_HOME/bin/standalone.sh -c standalone-ha.xml バグを報告する 22 第6章 埋め込みキャッシュとして JBoss D ata Grid を実行する 第 6章 埋め込みキャッシュとして JBoss Data Grid を実行する 6.1. ク イ ッ ク ス タ ー ト フ ァ イ ル の 場 所 「埋め込みキャッシュとして JBoss Data Grid を実行する」の章と、「埋め込みデータグリッドとして JBoss Data Grid を実行する」の章にある演習では、特定のクイックスタートファイルが必要になりま す。必要なクラスター化されたクイックスタート zip ファイルは、以下にあります。 Infinispan Github リポジトリ. 重要 これらのクイックスタートは、Infinispan のコミュニティープロジェクト向けに書かれています。 これらのクイックスタートを JBoss Data Grid で実行し、Infinispan の依存関係を JBoss Data Grid の依存関係に置き換えます。 バグを報告する 6.2. ク イ ッ ク ス タ ー ト ク ラ ス に お け る main メ ソ ッ ド の 作 成 次の手順に従って、新しいクイックスタートクラスを作成します。 手順 6.1 クイックスタートクラスにおける main メソッドの作成 1. Quickstart.java ファイルの作成 プロジェクトの場所に Quickstart.java という名前のファイルを作成します。 2. クイックスタートクラスの追加 次のクラスとメソッドを追加します。 import org.infinispan.manager.DefaultCacheManager import org.infinispan.Cache package com.mycompany.app; public class Quickstart { public static void main(String args[]) throws Exception { Cache<Object, Object> c = new DefaultCacheManager().getCache(); } } 3. 依存関係のコピーと Java クラスのコンパイル 次のコマンドを使用して、すべてのプロジェクト依存関係をディレクトリにコピーし、プロジェク トより Java クラスをコンパイルします。 $ mvn clean compile dependency:copy-dependencies -DstripVersion 4. main メソッドの実行 次のコマンドを用いて main メソッドを実行します。 $ java -cp target/classes/:target/dependency/* com.mycompany.app.Quickstart バグを報告する 23 Red Hat JBoss D ata Grid 6 スタートガイド 6.3. 新 し い RemoteCacheManager の 作 成 次の設定を用いて、新しい Rem oteCacheManager を宣言により設定します。 Properties props = new Properties(); props.put("infinispan.client.hotrod.server_list", "127.0.0.1:11222"); RemoteCacheManager manager = new RemoteCacheManager(props); RemoteCache defaultCache = manager.getCache(); 注記 JBoss Data Grid で Hot Rod を使用するための詳細については、開発者ガイドの Hot Rod の章を 参照してください。 バグを報告する 6.4. デ フ ォ ル ト キ ャ ッ シ ュ の 使 用 6.4.1. キャッシュのデータ追加および削除 JBoss Data Grid は、キャッシュに格納されたデータにアクセスして変更を行うため、提案されている JSR-107 API と似たインターフェースを提供します。 次の手順は、DefaultCacheQuickstart.java ファイルに入力された各行が何を実行するかを定義する例にな ります。 手順 6.2 キャッシュのデータ追加および削除 1. エントリーを追加し、key と value を希望のキーと値に置き換えます。 cache.put("key", "value"); 2. キャッシュにエントリーが存在することを確認します。 assertEquals(1, cache.size()); assertTrue(cache.containsKey("key")); 3. キャッシュよりエントリーを削除します。 Object v = cache.remove("key"); 4. エントリーがキャッシュに存在しないことを確認します。 assertEquals("value", v); バグを報告する 6.4.2. キー値の追加と置換 JBoss Data Grid はスレッドセーフなデータ構造を提供します。 24 第6章 埋め込みキャッシュとして JBoss D ata Grid を実行する 次の手順は、DefaultCacheQuickstart.java ファイルに入力された各行が何を実行するかを定義す る例になります。 手順 6.3 キー値の追加と置換 1. key をキーの値とするエントリーを追加します。 cache.put("key", "value"); 2. キーの値があるか確認します。値が見つからない場合、見つからない値を key に置き換えます。値 が見つかった場合、変更は発生しません。 cache.putIfAbsent("key", "newValue"); 関連トピック : 「キーバリューペアについて」 バグを報告する 6.4.3. データライフの調整 デフォルトでは、JBoss Data Grid のエントリーは期限なし (immortal) ですが、この設定は変更できま す。 次の手順は、DefaultCacheQuickstart.java ファイルに入力された各行が何を実行するかを定義す る例になります。 手順 6.4 データライフの調整 1. キーの lifespan 値を変更します。 cache.put("key", "value", 5, SECONDS); 2. キャッシュにキーが含まれるかを確認します。 assertTrue(cache.containsKey("key")); 3. 割り当てられた lifespan 時間が期限切れになると、キーはキャッシュから削除されます。 Thread.sleep(10000); assertFalse(cache.containsKey("key")); バグを報告する 6.4.4. デフォルトのデータ期限 デフォルトでは、新規作成されたエントリーにはライフスパンや最大アイドル時間値セットがありませ ん。これらの 2 つの値がない場合、データエントリーは永久に期限切れにならないため、期限なし (immortal) データと呼ばれます。 バグを報告する 6.5. 名 前 付 き キ ャ ッ シ ュ の 使 用 25 Red Hat JBoss D ata Grid 6 スタートガイド 6.5.1. 名前付きキャッシュの使用 JBoss Data Grid の名前付きキャッシュは、設定で宣言する必要はありません。定義されていない場合、 名前付きキャッシュはデフォルトのキャッシュと同様に自動的に設定されます。 この動作を上書きするには、宣言的 (XML を使用) またはプログラムを用いて (API を使用)、必要なカスタ ム設定で名前付きキャッシュを定義します。 カスタムキャッシュが宣言的に登録される場合、設定ファイルは使用する前にロードする必要がありま す。プログラムを用いてカスタムキャッシュが登録される場合は、設定ファイルをロードする必要はあり ません。 バグを報告する 6.5.2. プログラムを用いた名前付きキャッシュの登録 JBoss Data Grid は、ユーザーがプログラムを用いて名前付きキャッシュを登録できる設定機能を提供し ます。 名前付きキャッシュは、プログラムを用いて設定することが可能です。例として、クイックスタートパッ ケージに含まれる Custom CacheQuickstart.java ファイルを参考にすることができます。infinispanquickstart は infinispan-quickstart/em beddedcache/src/m ain/java/org/infinispan/quickstart/em beddedcache/ にあります。 関連トピック : 「クイックスタートファイルの場所」 バグを報告する 6.5.3. 設定ファイルのロード 前提条件 名前付きキャッシュを宣言的に登録する必要があります。 infinispan-quickstarts の Xm lConfiguredCacheQuickstart.java ファイルは、名前付きキャッシュ のカスタム設定がどのようにロードされるかを実例を用いて説明します。このファイルは Quickstarts パッケージの infinispan-quickstart/em beddedcache/src/m ain/java/org/infinispan/quickstart/em beddedcache にあります。 関連トピック : 「クイックスタートファイルの場所」 バグを報告する 6.5.4. XML を用いた名前付きキャッシュの登録 プログラムを用いず、名前付きキャッシュを宣言的に (XML を使用) 設定するには、infinispan.xm l ファイルを設定します。 infinispan.xm l ファイルは、infinispan-quickstarts パッケージの infinispanquickstart/em bedded-cache/src/m ain/resources にあります。 関連トピック : 「クイックスタートファイルの場所」 26 第6章 埋め込みキャッシュとして JBoss D ata Grid を実行する バグを報告する 27 Red Hat JBoss D ata Grid 6 スタートガイド 第 7章 埋め込みデータグリッドとして JBoss Data Grid を使用 する 7.1. ク イ ッ ク ス タ ー ト フ ァ イ ル の 場 所 「埋め込みキャッシュとして JBoss Data Grid を実行する」の章と、「埋め込みデータグリッドとして JBoss Data Grid を実行する」の章にある演習では、特定のクイックスタートファイルが必要になりま す。必要なクラスター化されたクイックスタート zip ファイルは、以下にあります。 Infinispan Github リポジトリ. 重要 これらのクイックスタートは、Infinispan のコミュニティープロジェクト向けに書かれています。 これらのクイックスタートを JBoss Data Grid で実行し、Infinispan の依存関係を JBoss Data Grid の依存関係に置き換えます。 バグを報告する 7.2. 埋 め 込 み デ ー タ グ リ ッ ド と し て JBoss Data Grid を 実 行 す る JBoss Data Grid は、ネットワークトランスポートとして JGroups を使用し、簡単に使用できるクラスタ リングを提供します。そのため、JBoss Data Grid でクラスターを形成するために必要な初期操作を JGroups が管理します。 バグを報告する 7.3. JGroups チ ャ ネ ル の 共 有 単一の CacheManager から作成されたすべてのキャッシュは、デフォルトでは同じ JGroups チャネルを 共有します。JGroups チャネルは、レプリケーションメッセージや分散メッセージを多重化するために使 用されます。 次の例では、3 つのキャッシュがすべて同じ 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"); $LOCATION を CacheManager の場所に置き換えてください。 バグを報告する 7.4. ク ラ ス タ ー に お け る JBoss Data Grid の 実 行 7.4.1. プロジェクトのコンパイル Maven を使用し、次のコマンドを用いてプロジェクトをコンパイルします。 28 第7章 埋め込みデータグリッドとして JBoss D ata Grid を使用する $ mvn clean compile dependency:copy-dependencies -DstripVersion バグを報告する 7.4.2. レプリケーションモードでクラスター化されたキャッシュを実行する クラスター化されたキャッシュに関する JBoss Data Grid のレプリケーションモード例を実行するには、 異なるコンソールで 2 つのノードを開始します。 手順 7.1 レプリケーションモードでクラスター化されたキャッシュを実行する 1. 次のコマンドを用いて、最初のノードを立ち上げます。 $ java -cp target/classes/:target/dependency/* org.infinispan.quickstart.clusteredcache.replication.Node0 2. 次のコマンドを用いて、2 つ目のノードを立ち上げます。 $ java -cp target/classes/:target/dependency/* org.infinispan.quickstart.clusteredcache.replication.Node1 結果 両方のノードで JGroups と JBoss Data Grid が初期化されます。約 15 秒後に、キャッシュエントリーの ログメッセージが最初のノードのコンソール上に表示されます。 バグを報告する 7.4.3. ディストリビューションモードでクラスター化されたキャッシュの実行 クラスター化されたキャッシュに関する JBoss Data Grid のディストリビューションモード例を実行する には、異なるコンソールで 3 つのノードを開始します。 手順 7.2 ディストリビューションモードでクラスター化されたキャッシュの実行 1. 次のコマンドを用いて最初のノードを立ち上げます。 $ java -cp target/classes/:target/dependency/* org.infinispan.quickstart.clusteredcache.distribution.Node0 2. 次のコマンドを用いて 2 番目のノードを立ち上げます。 $ java -cp target/classes/:target/dependency/* org.infinispan.quickstart.clusteredcache.distribution.Node1 3. 次のコマンドを用いて 3 番目のノードを立ち上げます。 $ java -cp target/classes/:target/dependency/* org.infinispan.quickstart.clusteredcache.distribution.Node2 結果 3 つのノードで JGroups と JBoss Data Grid が初期化されます。約 15 秒後に、3 番目のノードによって 追加された 10 個のエントリが、最初のノードと 2 番目のノードに分散されたように表示されます。 29 Red Hat JBoss D ata Grid 6 スタートガイド バグを報告する 7.4.4. クラスターの設定 7.4 .4 .1. クラスターの設定 次の手順に従って、クラスターを追加および設定します。 手順 7.3 クラスターの設定 1. 新しいクラスターのデフォルト設定の追加 2. ネットワークの要件に従って、デフォルトのクラスター設定をカスタマイズします。宣言的 (XML を使用) またはプログラムを用いてカスタマイズできます。 3. レプリケートされたデータグリッド、または分散されたデータグリッドを設定します。 バグを報告する 7.4 .4 .2. デフォルトクラスター設定の追加 クラスター設定を追加して、クラスターが存在し、定義されていることを JBoss Data Grid が確実に認識 するようにします。この目的を達成するデフォルト設定は次の通りです。 new ConfigurationBuilder() .clustering().cacheMode(CacheMode.REPL_SYNC) .build() 注記 GlobalConfiguration.clusteredDefault() を使用して、事前設定されたクラスター対応 の GlobalConfiguration を迅速に作成します。この設定はカスタマイズ可能です。 バグを報告する 7.4 .4 .3. デフォルトクラスター設定のカスタマイズ ネットワークの要件によっては、JGroups 設定のカスタマイズが必要なことがあります。 プログラムを用いた設定 以下の GlobalConfiguration コードを使用して、JGroups の設定に使用するファイルの名前を指定しま す。 new GlobalConfigurationBuilder().transport().addProperty("configurationFile", "jgroups.xml") .build() jgroups.xm l を希望のファイル名に置き換えます。 jgroups.xm l ファイルは $Infinispan-Quickstart/clusteredcache/src/m ain/resources/ にあります。 30 第7章 埋め込みデータグリッドとして JBoss D ata Grid を使用する 注記 JGroups を ループバックインターフェースのみにバインドする場合は (設定されたファイアウォー ルを避けるため)、システムプロパティー -Djgroups.bind_addr="127.0.0.1" を使用しま す。これは、すべてのノードが 1 つのマシン上にある状態でクラスターをテストする場合、特に便 利です。 宣言的な設定 infinispan.xm l ファイルにある以下の XML スニペットを使用して、JBoss Data Grid の XML 設定を 使用するよう JGroups プロパティーを設定します。 <global> <transport> <properties> <property name="configurationFile" value="jgroups.xml"/> </properties> </transport> </global> バグを報告する 7.4 .4 .4 . レプリケートされたデータグリッドの設定 JBoss Data Grid のレプリケートモードは、データグリッドのすべてのノードで各エントリーが確実にレ プリケートされるようにします。 このモードは、ノード障害によるデータの損失に対応するセキュリティーを提供し、優れたデータの可用 性も提供します。ストレージ容量を、最小メモリーでノード上にて使用できるストレージの量に制限し て、これらの利点を実現します。 プログラムを用いた設定 以下のコードスニペットを使用して、レプリケーションモードのキャッシュをプログラムを用いて設定し ます (同期または非同期)。 private static EmbeddedCacheManager createCacheManagerProgramatically() { return new DefaultCacheManager( new GlobalConfigurationBuilder() .transport().addProperty("configurationFile", "jgroups.xml") .build(), new ConfigurationBuilder() .clustering().cacheMode(CacheMode.REPL_SYNC) .build() ); } 宣言的な設定 cfg.xm l ファイルに次の XML コードが含まれるようにし、レプリケーションモードのキャッシュを宣言 的に設定します (同期または非同期)。 31 Red Hat JBoss D ata Grid 6 スタートガイド <infinispan xsi:schemaLocation="urn:infinispan:config:5.1 http://www.infinispan.org/schemas/infinispan-config-5.1.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:infinispan:config:5.1"> <global> <transport> <properties> <property name="configurationFile" value="jgroups.xml"/> </properties> </transport> </global> <default> <clustering mode="replication"> <sync/> </clustering> </default> </infinispan> 次のコードを使用して、XML 設定ファイルを持つ DefaultCacheManager を初期化し、返します。 private static EmbeddedCacheManager createCacheManagerFromXml() throws IOException { return new DefaultCacheManager("infinispan-replication.xml"); } バグを報告する 7.4 .4 .5. 分散されたデータグリッドの設定 JBoss Data Grid のディストリビューションモードは、データグリッドの全ノードのサブセット上に各エ ントリーが確実に格納されるようにします。サブセットのノード数は numOwners パラメーターによって 制御され、各エントリーの「所有者」の数が示されます。 ディストリビューションモードでは、ストレージ容量が増えますが、アクセス時間が長くなり、永続性 (ノード障害への保護) が低下します。numOwners の値を調整し、容量、永続性、および可用性の適切な バランスを設定してください。JBoss Data Grid のトポロジーを意識した一貫性のあるハッシュによっ て、永続性が更に向上されます。このようなハッシュは、多様なデータセンターやラック、ノードなどに またがり、エントリーオーナーを検索します。 プログラムを用いた設定 以下のコードスニペットを使用して、ディストリビューションモードのキャッシュをプログラムを用いて 設定します (同期または非同期)。 new ConfigurationBuilder() .clustering() .cacheMode(CacheMode.DIST_SYNC) .hash().numOwners(2) .build() 宣言的な設定 cfg.xm l ファイルに次の XML コードが含まれるようにし、ディストリビューションモードのキャッシュ を宣言的に設定します (同期または非同期)。 32 第7章 埋め込みデータグリッドとして JBoss D ata Grid を使用する <default> <clustering mode="distribution"> <sync/> <hash numOwners="2"/> </clustering> </default> バグを報告する 33 Red Hat JBoss D ata Grid 6 スタートガイド 第 8章 エンドポイントのないノードとして JBoss Data Grid を 実行する 8.1. エ ン ド ポ イ ン ト に つ い て サービスは他のサービスと通信するため、チャネルを使用してメッセージを送信します。エンドポイント はサービスの通信ポイントで、チャネルからのメッセージを送受信するために使用されます。そのため、 エンドポイントのないノードは他のノードとは通信できますが、クライアントとは通信ができません。 バグを報告する 8.2. エ ン ド ポ イ ン ト の な い ノ ー ド の 利 点 JBoss Data Grid でエンドポイントのないノードを作成する主な利点には、データレプリケーションが関 係します。 クライアントは直接エンドポイントのないノードにアクセスできません。そのため、クライアントと通信 できる別のノードからデータをレプリケートするために使用されます。その結果、クライアントがアクセ スできないデータのバックアップコピーをノードが持つようになり、クライアントによって送信されたエ ラーによる障害から守ることができます。 バグを報告する 8.3. エ ン ド ポ イ ン ト の な い ノ ー ド の 設 定 例 JBoss Data Grid は、エンドポイントのないノードを設定するための設定例を提供します。この例にアク セスする方法は次の通りです。 手順 8.1 エンドポイントのないノードの JBoss Data Grid 設定例を検索 1. JBoss Data Grid の Z IP の展開 1. JBoss Data Grid のリモートクライアントサーバーモードの Z IP ファイルを展開します。これに は jboss-datagrid-server-${version}-GA 名前が付けられます。ファイル名に関連バー ジョンを追加します。 2. 適切なフォルダーへ移動 展開したフォルダー内で、$JDG_HOME/docs/exam ples/config フォルダーに移動します。 3. 設定例ファイルの検索 エンドポイントのないノードの設定が含まれる standalone-storage-only.xm l を見つけま す。 バグを報告する 8.4. エ ン ド ポ イ ン ト の な い ノ ー ド の 設 定 スタンドアロン高可用性設定などの標準的な設定を、エンドポイントのないノード向けに変更できます。 以下の手順に従います。 datagrid サブシステムを削除します。 modcluster を削除します。 datasource 定義を削除します。 34 第8章 エンドポイントのないノードとして JBoss D ata Grid を実行する mod_cluster、Hot Rod、および m em cached の socket-bindings を削除します。 上記の項目を削除し、すべてのエンドポイントが確実に設定から削除されるようにし、クラスタリングを 不可能にします。結果、エンドポイントのない設定が作成されます。 バグを報告する 35 Red Hat JBoss D ata Grid 6 スタートガイド 第 9章 JBoss Data Grid の CarMart クイックスタート 9.1. CarMart ク イ ッ ク ス タ ー ト に つ い て JBoss Data Grid にはトランザクションおよび非トランザクションの CartMart クイックスタートが含まれ ています。CartMart クイックスタートは、リレーショナルデータベースの代わりに JBoss Data Grid を使 用する簡単な Web アプリケーションです。各車 (car) に関する情報はキャッシュに格納されます。キャッ シュはプログラムを用いて設定され、Web アプリケーションと同じ Java 仮想マシン (JVM) で実行されま す。 機能 CarMart クイックスタートは次の機能を提供します。 全車の一覧表示。 新しい車の追加。 車の削除。 ヒット数、保存、読み出しなど、キャッシュの統計を表示。 使用モード CarMart クイックスタートは、次の JBoss Data Grid の使用モードで使用可能です。 リモート JBoss Data Grid サーバーと通信するため Hot Rod クライアントが含まれる、リモートクラ イアントサーバーモード。 すべてのライブラリが jar ファイル形式でアプリケーションとバンドルされる、ライブラリモード。 場所 JBoss Data Grid の CarMart クイックスタートは jboss-datagrid-quickstarts1.0.0/carm art/ にあります。 バグを報告する 9.2. CarMart ト ラ ン ザ ク シ ョ ン ク イ ッ ク ス タ ー ト に つ い て トランザクションバージョンの CartMart クイックスタートは、リレーショナルデータベースの代わりに JBoss Data Grid を使用する簡単な Web アプリケーションです。各車 (car) に関する情報はキャッシュに 格納されます。キャッシュはプログラムを用いて設定され、Web アプリケーションと同じ Java 仮想マシ ン (JVM) で実行されます。 機能 トランザクション CarMart クイックスタートは次の機能を提供します。 全車の一覧表示。 新しい車の追加。 ロールバックで新しい車を追加。 車の削除。 ヒット数、保存、読み出しなど、キャッシュの統計を表示。 使用モード 36 第9章 JBoss D ata Grid の CarMart クイックスタート トランザクション CarMart クイックスタートは JBoss Data Grid のライブラリモードでのみ使用できま す。トランザクション CarMart クイックスタートが T omcat で実行されると、JBoss T ransactions より スタンドアロントランザクションマネージャーが使用されます。 場所 JBoss Data Grid の トランザクション CarMart クイックスタートは jboss-datagrid-quickstarts1.0.0/carm art-transactional にあります。 バグを報告する 9.3. CarMart と ト ラ ン ザ ク シ ョ ン ク イ ッ ク ス タ ー ト の 違 い トランザクションおよび非トランザクション CarMart クイックスタートのビルド、デプロイ、アンデプロ イ手順は似ていますが、違いもあります。相違点は次の通りです。 CarMart はリモートクライアントサーバーモードとライブラリモードの両方で使用可能です。リモー トクライアントサーバーモードではトランザクションが使用できないため、トランザクション CarMart はライブラリモードでのみ使用可能です。 また、トランザクションクイックスタートは、トランザクションロールバックがどのように発生する かを表示します。[Add car with rollback] ボタンを使用してロールバックを表示します。CarMart の 例には、簡単な [Add car] ボタンがあります。 バグを報告する 9.4. JBoss Application Server を 用 い た CarMart ク イ ッ ク ス タ ー ト 9.4.1. CarMart クイックスタートを JBoss Application Server へビルドする 次の手順では、CarMart アプリケーションを JBoss Application Server 7 にビルドする方法を説明しま す。 前提条件 サポート対象の JBoss Data Grid ライブラリモードのディストリビューションファイルを取得する必要が あります。 手順 9.1 CarMart を JBoss Application Server へビルドする 1. Maven リポジトリのインストール 小チームでの初期テストでは、JBoss Data Grid Maven リポジトリをローカルシステムのディレク トリへ展開します。 $ unzip jboss-datagrid-maven-repository-6.0.0.zip JBoss Data Grid Maven リポジトリをインストールする方法の詳細は、4章Maven リポジトリのイ ンストールおよび使用 を参照してください。 2. JBoss Application Server の起動 次のように JBoss Application Server を起動します。 37 Red Hat JBoss D ata Grid 6 スタートガイド $JBOSS_HOME/bin/standalone.sh 3. アプリケーションのビルド 次のコマンドを用いて、Maven を使用してアプリケーションをビルドします。 $ mvn clean package -Plibrary-jbossas Ddatagrid.maven.repo=file:///path/to/unpacked/jdg/maven/repository バグを報告する 9.4.2. CarMart クイックスタートを JBoss Application Server へデプロイする 次の手順では、CarMart アプリケーションを JBoss Application Server 7 にデプロイする方法を説明しま す。 前提条件 デプロイする CarMart クリックスタートがビルドされている必要があります。 手順 9.2 CarMart クイックスタートを JBoss Application Server へデプロイする 1. アプリケーションのデプロイ JBoss Application Server の Maven プラグインを使用して、次のようにアプリケーションをデプロ イします。 $ mvn jboss-as:deploy -Plibrary-jbossas 2. アプリケーションの表示 アプリケーションを表示するには、ブラウザーを使用して次のリンクに移動します。 http://localhost:8080/carmart-quickstart バグを報告する 9.4.3. CarMart クイックスタートを JBoss Application Server からアンデプロイす る 次の手順では、すでにデプロイされているアプリケーションを JBoss Application Server からアンデプロ イする方法を説明します。 手順 9.3 JBoss Application Server よりアプリケーションをアンデプロイする アプリケーションをアンデプロイするには、次のコマンドを使用します。 $ mvn jboss-as:undeploy -Plibrary-jbossas バグを報告する 38 第9章 JBoss D ata Grid の CarMart クイックスタート 9.5. Tomcat を 用 い た CarMart ク イ ッ ク ス タ ー ト 9.5.1. CarMart クイックスタートの Tomcat へのビルド 次の手順では、CarMart クイックスタートを T omcat 7 にビルドする方法を説明します。 前提条件 サポート対象の JBoss Data Grid ライブラリモードのディストリビューションファイルを取得する必要が あります。 手順 9.4 CarMart クイックスタートの T omcat へのビルド 1. Maven リポジトリのインストール 小チームでの初期テストでは、JBoss Data Grid Maven リポジトリをローカルシステムのディレク トリへ展開します。 $ unzip jboss-datagrid-maven-repository-6.0.0.zip JBoss Data Grid Maven リポジトリをインストールする方法の詳細は、4章Maven リポジトリのイ ンストールおよび使用 を参照してください。 2. マネージャースクリプト情報の追加 このビルドでは、デフォルトのホスト名 (localhost) やポート (8080) などが含まれる T omcat 7 のデフォルト設定が使用されることを前提としています。Maven の T omcat プラグインがマ ネージャーにアクセスできるようにするため、以下の情報を conf/tom cat-users.xm l にある tom cat-users.xm l ファイルへ追加します。 <role rolename="manager-script"/> <user username="admin" password="" roles="manager-script"/> 3. T omcat の起動 次のスクリプトを使用して T omcat を起動します。 $CATALINA_HOME/bin/catalina.sh start 4. アプリケーションのビルド 次のコマンドを用いて、Maven を使用してアプリケーションをビルドします。 $ mvn clean package -Plibrary-jbossas Ddatagrid.maven.repo=file:///path/to/unpacked/jdg/maven/repository バグを報告する 9.5.2. CarMart クイックスタートの Tomcat へのデプロイ 次の手順では、CarMart クイックスタートを T omcat 7 にデプロイする方法を説明します。 前提条件 39 Red Hat JBoss D ata Grid 6 スタートガイド デプロイする CarMart クリックスタートがビルドされている必要があります。 手順 9.5 CarMart クイックスタートの T omcat へのデプロイ 1. サーバーの認証情報の編集 Maven インストールの conf ディレクトリにある Maven settings.xm l ファイルに、server 要素と必要な認証情報を追加します。 <server> <id>tomcat</id> <username>admin</username> <password></password> </server> 2. アプリケーションのデプロイ 次のように、T omcat の Maven プラグインを使用してアプリケーションをデプロイします。 $ mvn tomcat:deploy -Plibrary-tomcat 3. アプリケーションの表示 アプリケーションを表示するには、ブラウザーを使用して次のリンクに移動します。 http://localhost:8080/carmart-quickstart バグを報告する 9.5.3. Tomcat の CarMart クイックスタートのアンデプロイ 次の手順では、すでにデプロイされているアプリケーションを T omcat よりアンデプロイする方法を説明 します。 手順 9.6 T omcat のアプリケーションのアンデプロイ アプリケーションをアンデプロイするには、次のコマンドを使用します。 $ mvn tomcat:undeploy -Plibrary-tomcat バグを報告する 9.6. リ モ ー ト ク ラ イ ア ン ト サ ー バ ー モ ー ド の CarMart ク イ ッ ク ス タート 9.6.1. リモートクライアントサーバーモードでの CarMart クイックスタートのビル ド このクイックスタートは Hot Rod 経由で JBoss Data Grid にアクセスします。この機能は、トランザク ション CarMart クイックスタートでは使用できません。 前提条件 40 第9章 JBoss D ata Grid の CarMart クイックスタート サポート対象の JBoss Data Grid ライブラリモードのディストリビューションファイルを取得する必要が あります。 手順 9.7 リモートクライアントサーバーモードでの CarMart クイックスタートのビルド 1. スタンドアロンファイルの設定 $JDG_HOME/standalone/configuration/ ディレクトリにある standalone.xm l ファイル に、次の設定を追加します。 a. 次の設定を、<system-properties> 要素の右側のタグの後に追加します。 <paths> <path name="temp" path="/tmp"/> </paths> b. infinispan サブシステムのタグ内に次の設定を追加します。 <local-cache name="carcache" start="EAGER" batching="false" indexing="NONE"> <locking isolation="REPEATABLE_READ" striping="false" acquire-timeout="20000" concurrency-level="500"/> <eviction strategy="LIRS" max-entries="4"/> <file-store relative-to="temp" path="carstore" passivation="false"/> </local-cache> 2. JBoss Data Grid サーバーの起動 次のスクリプトを実行し、JBoss Data Grid サーバーを起動します。 $JDG_HOME/bin/standalone.sh 注記 サーバーは指定された設定を使用して、test1 アドレス上で実行されます。 A. UNIX ユーザー向けの test1 の設定 /etc/hosts に次の行を追加し、UNIX システム上の test1 アドレスを設定します。 192.168.11.101 test1 B. IfConfig コマンドの実行 コマンドラインで次のコマンドを実行します。 $ sudo ifconfig eth0:1 192.168.11.101 netmask 255.255.255.0 3. JBoss Application Server の起動 41 Red Hat JBoss D ata Grid 6 スタートガイド 次のスクリプトを実行し、アプリケーションがデプロイされる場所に JBoss Application Server イ ンスタンスを起動します。 $JDG_HOME/bin/standalone.sh 4. JBoss Data Grid サーバーアドレスの指定 $JDG_HOME/src/m ain/resources/MET A-INF/ ディレクトリにある jdg.properties ファ イルを編集し、次のように JBoss Data Grid サーバーのアドレスを指定します。 datagrid.address=test1 注記 ポートオフセットが定義されている localhost アドレスで JBoss Data Grid サーバーが稼 働している場合は、ポート情報が含まれるように jdg.properties ファイルを編集しま す。例は次の通りです。 datagrid.address=localhost datagrid.hotrod.port=11322 5. アプリケーションのビルド 次のコマンドを使用し、関連ディレクトリでアプリケーションをビルドします。 $ mvn clean package -Premote バグを報告する 9.6.2. リモートクライアントサーバーモードでの CarMart クイックスタートのデプ ロイ 次の手順では、CarMart クイックスタートを JBoss Data Grid のリモートクライアントサーバーモードに デプロイする方法を説明します。 前提条件 デプロイする CarMart クリックスタートがビルドされている必要があります。 手順 9.8 リモートクライアントサーバーモードでの CarMart クイックスタートのデプロイ 1. アプリケーションのデプロイ 次のコマンドを用いて、Maven を使用してアプリケーションをデプロイします。 $ mvn jboss-as:deploy -Premote 2. アプリケーションの表示 次のリンクにアクセスし、アプリケーションを表示します。 42 第9章 JBoss D ata Grid の CarMart クイックスタート http://localhost:8080/carmart-quickstart バグを報告する 9.6.3. リモートクライアントサーバーモードでの CarMart クイックスタートのアン デプロイ 次の手順では、すでにデプロイされているアプリケーションを JBoss Data Grid のリモートクライアント サーバーモードよりアンデプロイする方法を説明します。 手順 9.9 リモートクライアントサーバーモードでのアプリケーションのアンデプロイ アプリケーションをアンデプロイするには、次のコマンドを使用します。 $ mvn jboss-as:undeploy -Premote バグを報告する 43 Red Hat JBoss D ata Grid 6 スタートガイド 第 10章 Football クイックスタートエンドポイントの例 10.1. Football ク イ ッ ク ス タ ー ト エ ン ド ポ イ ン ト の 例 に つ い て Football アプリケーションは、JBoss Data Grid のエンドポイント (Hot Rod、REST および Memcached) の使用方法を実例を用いて説明する簡単な例になります。各例は、これらプロトコルの 1 つを使用して JBoss Data Grid に接続し、キャッシュよりデータをリモートで保存、読み出し、および削除する方法を 示しています。 各アプリケーションは、コンソールアプリケーションとする簡単なフットボールチームマネージャーユー ティリティの一種です。 機能 Football Manager アプリケーションの例で使用できる機能は次の通りです。 チームの追加。 プレーヤーの追加。 全エンティティー (チームおよびプレーヤー) の削除。 全チームおよびプレーヤーの一覧表示。 場所 JBoss Data Grid の Football クイックスタートは以下の場所にあります。 jboss-datagrid-quickstarts-1.0.0/carm art/rest-endpoint jboss-datagrid-quickstarts-1.0.0/carm art/hotrod-endpoint jboss-datagrid-quickstarts-1.0.0/carm art/m em cached-endpoint バグを報告する 10.2. Football ア プ リ ケ ー シ ョ ン の ビ ル ド 次の手順では、JBoss Data Grid の REST 、Hot Rod、および memcached エンドポイントの例として フットボールマネージャーアプリケーションをビルドする方法を説明します。 注記 JBoss Data Grid はデプロイするアプリケーションをサポートしないため、このクイックスタート をデプロイメントとしてインストールすることはできません。 手順 10.1 Football アプリケーションのビルド 1. 設定の追加 $JDG_HOME/standalone/configuration/ にある standalone.xm l ファイルを編集し、 データソースおよび infinispan サブシステムの定義を追加します。 a. データソースに対する次のサブシステム定義を追加します。 44 第10章 Football クイックスタートエンドポイントの例 <subsystem xmlns="urn:jboss:domain:datasources:1.0"> <datasources> <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true"> <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url> <driver>h2</driver> <security> <user-name>sa</user-name> <password>sa</password> </security> </datasource> <drivers> <driver name="h2" module="com.h2database.h2"> <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasourceclass> </driver> </drivers> </datasources> </subsystem> b. infinispan に対する次のサブシステム定義を追加します。 45 Red Hat JBoss D ata Grid 6 スタートガイド <subsystem xmlns="urn:jboss:domain:infinispan:1.2" default-cachecontainer="local"> <cache-container name="local" default-cache="memcachedCache" listener-executor="infinispan-listener" start="EAGER"> <local-cache name="memcachedCache" start="EAGER" batching="false" indexing="NONE"> <locking isolation="REPEATABLE_READ" acquire-timeout="20000" concurrency-level="500" striping="false" /> <transaction mode="NONE" /> <string-keyed-jdbc-store datasource="java:jboss/datasources/ExampleDS" passivation="false" preload="false" purge="false"> <property name="databaseType">H2</property> <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> <local-cache name="teams" start="EAGER" batching="false" indexing="NONE"> <locking isolation="REPEATABLE_READ" acquire-timeout="20000" concurrency-level="500" striping="false" /> <transaction mode="NONE" /> <string-keyed-jdbc-store datasource="java:jboss/datasources/ExampleDS" passivation="false" preload="false" purge="false"> <property name="databaseType">H2</property> <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> </cache-container> </subsystem> 46 第10章 Football クイックスタートエンドポイントの例 注記 Hot Rod および REST エンドポイントは team s という名前のキャッシュを使用し、 memcached エンドポイントはデフォルトで m em cachedCache を使用します。 2. サブモジュール設定ファイルの編集 各サブモジュール (特に hotrod-endpoint、rest-endpoint、および m em cachedendpoint) には設定ファイルが含まれています ($JDG_HOME/src/m ain/resources/jdg.properties にあります)。設定を編集して、ご使 用の JBoss Data Grid インストールに必要な値を指定します。Hot Rod エンドポイントには次のよ うな追加設定が必要です。 a. Maven リポジトリのインストール 小チームでの初期テストでは、次のようにリポジトリをローカルシステムのディレクトリへ 展開することができます。 unzip jboss-datagrid-maven-repository-6.0.0.zip これにより、jboss-datagrid-m aven-repository-6.0.0 というディレクトリに Maven リポジトリが作成されます。 JBoss Data Grid Maven リポジトリをインストールする方法の詳細は、4章Maven リポジト リのインストールおよび使用 を参照してください。 3. アプリケーションのビルド 次のコマンドを使用して、サンプルアプリケーションのディレクトリでサンプルアプリケーション をビルドします。 mvn package これにより、Maven のシェードプラグインが使用されます。このプラグインは、すべての依存関係 を 1 つの jar ファイルにバンドルし、使いやすくします。 4. JBoss Data Grid の起動 次のスクリプトを実行し、JBoss Data Grid を起動します。 $JDG_HOME/bin/standalone.sh 5. アプリケーションの実行 サンプルアプリケーションのディレクトリでサンプルアプリケーションを実行します。 a. Hot Rod エンドポイントの場合、次のコマンドを実行します。 java -jar target/hotrod-endpoint-quickstart.jar b. memcached エンドポイントの場合、次のコマンドを実行します。 java -jar target/memcached-endpoint-quickstart.jar c. REST エンドポイントの場合、次のコマンドを実行します。 java -jar target/rest-endpoint-quickstart.jar バグを報告する 47 Red Hat JBoss D ata Grid 6 スタートガイド 48 第11章 JBoss D ata Grid の削除 第 11章 JBoss Data Grid の削除 11.1. Linux シ ス テ ム よ り JBoss Data Grid を 削 除 す る 次の手順では、Linux システムより JBoss Data Grid を削除する方法を説明します。 警告 削除すると、JBoss Data Grid の設定がすべて永久的に失われます。 手順 11.1 Linux システムより JBoss Data Grid を削除する 1. サーバーのシャットダウン JBoss Data Grid サーバーが必ずシャットダウンされているようにしてください。 2. JBoss Data Grid のホームディレクトリへの移動 コマンドラインを使用して、$JDG_HOME フォルダーより 1 つ上の階層へ移動します。 3. JBoss Data Grid のホームディレクトリの削除 ターミナル上で次のコマンドを入力し、JBoss Data Grid を削除します。 $JDG_HOME は JBoss Data Grid のホームディレクトリの名前に置き換えてください。 $ rm -Rf $JDG_HOME バグを報告する 11.2. Windows シ ス テ ム よ り JBoss Data Grid を 削 除 す る 次の手順では、Windows システムより JBoss Data Grid を削除する方法を説明します。 警告 削除すると、JBoss Data Grid の設定がすべて永久的に失われます。 手順 11.2 Windows システムより JBoss Data Grid を削除する 1. サーバーのシャットダウン JBoss Data Grid サーバーが必ずシャットダウンされているようにしてください。 2. JBoss Data Grid のホームディレクトリへの移動 Windows Explorer を使用して、$JDG_HOME フォルダーが存在するディレクトリへ移動します。 3. JBoss Data Grid のホームディレクトリの削除 $JDG_HOME フォルダーを選択し、削除します。 バグを報告する 49 Red Hat JBoss D ata Grid 6 スタートガイド 参照 A.1. キ ー バ リ ュ ー ペ ア に つ い て キーバリューペア (KVP) とは、キーと値で構成されるデータセットのことです。 キーは特定のデータエントリーに一意であり、関連する特定エントリーのデータ属性によって構成さ れます。 バリュー (値) は、キーによって割り当てられ、キーによって識別されるデータです。 バグを報告する 50 改訂履歴 改訂履歴 改訂 1.0.0-34 Fri Jan 10 2014 Husnain Ali Misha [FAMILY Given] Built from Content Specification: 11623, Revision: 507875 by mhusnain 51
© Copyright 2024 Paperzz