6.3.0 リリースノート

Red Hat JBoss Data Grid 6.3

Red Hat JBoss Data Grid 6.3 の既知の問題および解決済みの問題

Gemma Sheldon

Red Hat Engineering Content Services

概要

Red Hat JBoss Data Grid 6.3 リリースノートでは、Bugzilla のバグをリストし、説明します。これらのバグは関連リリースでの既知の問題です。

第1章 Red Hat JBoss Data Grid 6.3 の紹介

Red Hat JBoss Data Grid 6.3 をご使用いただきありがとうございます。JBoss Data Grid の最新バージョンを理解していただくため、本リリースノートは新機能、既知の問題、および解決済みの問題に関する情報を提供します。本書は、Red Hat カスタマーポータルの JBoss Data Grid ドキュメントページ にある他の JBoss Data Grid 6.3 ドキュメントとともにお使いください。

1.1. Red Hat JBoss Data Grid

Red Hat JBoss Data Grid は、Infinispan オープンソースソフトウェアプロジェクトから構築されたオープンソースでインメモリー型の分散キーバリューデータストアです。クライアントサーバーモードでのデプロイや、Java 仮想マシンへの埋め込みに関係なく、弾力性、高パフォーマンス、高可用性、および線形スケールを実現します。
JBoss Data Grid は Java と Java でないクライアントの両方からアクセスできます。JBoss Data Grid を使用すると、データがノードの管理可能なクラスター全体で分散およびレプリケートされ、任意でディスクに書き込まれます。また、REST、Memcached、および Hot Rod プロトコルを使用すると簡単にデータへアクセスできますが、従来の Java Map API を用いてプロセスで直接アクセスすることも可能です。

1.2. 概要

本書には Red Hat JBoss Data Grid バージョン 6.3 の新機能、既知の問題、および解決済みの問題に関する情報が含まれています。本書を読んでから本バージョンの Red Hat JBoss Data Grid をインストールするようにしてください。

1.3. JBoss Data Grid 6.2.1 から 6.3 へのアップグレード

以下は Red Hat JBoss Data Grid 6.2.1 から 6.3 へアップブレードする場合に便利な情報になります。
Hot Rod プロトコル

JBoss Data Grid 6.3 では、新機能 (セキュリティーなど) をサポートするため、クライアントサーバー通信の Hot Rod プロトコルがバージョン 1.3 から 2.0 へ変更されました。新しい Hot Rod クライアント (JBoss Data Grid 6.3.0) が以前のインスタンス (JBoss Data Grid 6.2.1 など) に対して使用されている場合、以下のように Hot Rod プロトコルバージョンを明示的に設定する必要があります (デフォルトはバージョン 2.0 です)。

infinispan.client.hotrod.protocol_version=1.3
クラスローダー

JBoss Data Grid 6.3.x では、org.infinispan.configuration.cache.ConfigurationBuilder.classLoader() を使用して指定されたクラスローダーは無視されます。以下の 1 つを使用してカスタムクラスローダーを指定してください。

  • グローバル設定の場合: org.infinispan.configuration.global.GlobalConfigurationBuilder.classLoader(ClassLoader)
  • 呼び出しごとの設定の場合: org.infinispan.AdvancedCache.with(ClassLoader)
API パッケージの変更

JBoss Data Grid 6.2.1 を 6.3.0 にアップグレードする際に追加、変更、および削除されるパッケージについては、『API Documentation』 を参照してください。

第2章 新機能および改良された機能

2.1. データセキュリティー

グリッドに保存されるデータのセキュリティーを強化するため、Red Hat JBoss Data Grid 6.3 に複数の新機能が導入されました。

2.1.1. ユーザー認証

Red Hat JBoss Data Grid 6.3 では、Simple Authentication and Security Layer (SASL) フレームワークによるユーザー認証をサポートするため、Hot Rod プロトコルが改良されました。この機能により、リモートアプリケーションを実行するユーザーがセキュア化されたキャッシュ上で操作を実行する前に認証を要求することができます。
ライブラリーモードでは、ユーザー認証はアプリケーションが実行されているコンテナに委譲されます。

2.1.2. ロールベースアクセス制御

Red Hat JBoss Data Grid 6.3 には、指定のセキュア化されたキャッシュ上の操作に対応するロールベースアクセス制御機能が含まれています。これにより、アプリケーションにアクセスするユーザーにロールを割り当て、さらにキャッシュおよびキャッシュマネージャー操作に対するパーミッションへのロールのマッピングを指定できます。このようなセキュア化されたキャッシュでは、認証済みユーザーはロールが承認された操作のみを実行できます。
ロールベースアクセス制御は、ライブラリーモードとリモートクライアントサーバーモードの両方で使用できます。

2.1.3. ノードの認証および承認

JBoss Data Grid 6.3 は、新しいノードやマージするパーティションがクラスターに参加する前に認証を要求する機能を提供します。クラスターへ参加することを承認された認証済みノードのみが参加を許可されます。これにより、認証されていないサーバーがデータを保存できないようにし、データを保護します。この機能は、ライブラリーモードとリモートクライアントサーバーモードの両方で使用できます。

2.1.4. クラスター内の暗号化通信

JBoss Data Grid 6.3 では、JCA (Java Cryptography Architecture、Java 暗号化アーキテクチャー) によってサポートされるユーザー指定の暗号化アルゴリズム使用して、クラスターを構成するノード間での通信の暗号化がサポートされるようになり、データのセキュリティーが強化されました。この機能は、ライブラリーモードとリモートクライアントサーバーモードの両方で使用できます。

注記

TLS/SSL を使用した Hot Rod クライアントと JBoss Data Grid サーバー間の通信の暗号化は、JBoss Data Grid 6.2 ですでに使用可能でした。

2.2. Map/Reduce の改良

呼び出しているアプリケーションに結果を返す代わりに分散キャッシュに結果を保存できるようになったため、Map/Reduce のスケーラビリティーが向上しました。また、各ノードでの並行実行によっても Map/Reduce が改良され、中間結果の処理が向上しました。

2.3. JBoss EAP モジュール

JBoss Data Grid 6.3 のライブラリーモードディストリビューションと Hot Rod クライアントは、Red Hat JBoss Enterprise Application Platform 6 では別のモジュールとして使用できます。JBoss Data Grid ライブラリーを各アプリケーションに埋め込む代わりに、アプリケーションのマニフェストファイルに JBoss Data Grid モジュールの場所を 1 つ指定できるため、JBoss EAP 6 上で JBoss Data Grid のデプロイメントおよびアップグレードが改善されます。

2.4. Apache Karaf でのサポート

2.4.1. リモートクライアントサーバーモード

The Hot Rod クライアントは Apache Karaf バージョン 2.3 および 3.0 でサポートされます。これにより、 JBoss Data Grid を JBoss Fuse の統合フローに対するリモートの分散キャッシュとして使用できます。

2.4.2. ライブラリーモード

JBoss Data Grid 6.3 は、Apache Karaf バージョン 2.3 および 3.0 のライブラリーでもサポートされます。これにより、JBoss Data Grid を JBoss Fuse の統合フローに対する埋め込みの分散キャッシュとして使用できます。

注記

Apache Karaf では、トランザクションは Apache Aries トランザクションマネージャーを用いてライブラリーモードでサポートされます。
Apache Karaf のライブラリーモードでサポートされない機能は次のとおりです。

2.5. Hot Rod C# クライアント

JBoss Data Grid 6.3 には、Hot Rod C# クライアントが技術プレビューとして導入されています。Hot Rod C# クライアントは .NET 4 をベースとしています。

2.6. JPA キャッシュストア

JBoss Data Grid 6.3 には、リレーショナルデータベースへ永続化するときにエントリーのスキーマを保持する新しい JPA キャッシュストアが導入されました。これにより、JBoss Data Grid を使用しないアプリケーションより、データベースから直接このデータへアクセスできます。JPA キャッシュストアはライブラリーモードのみで使用できます。

2.7. リモートキューイング

キューイング (Hot Rod 上のキューイング) が改良され、エンティティーのインデクシングを必要とせずにリモートクラスターのエントリーをクエリするオプションが追加されました。リモートキューイングは、JBoss Data Grid 6.3 でも技術プレビューとして提供されます。

2.8. Oracle Weblogic 12c でのサポート

JBoss Data Grid 6.3 のライブラリーモードと Hot Rod クライアントは、バージョン 12.1.2 の Oracle Weblogic Server 12c アプリケーションサーバーでサポートされます。

第3章 サポートされる設定

サポートされるハードウェア設定およびソフトウェア設定は、カスタマーポータルの https://access.redhat.com/ja/articles/299923 に記載されている「JBoss Data Grid でサポートされる構成」を参照してください。

第4章 コンポーネントバージョン

Red Hat JBoss Data Grid で使用されるコンポーネントバージョンの完全リストは、カスタマーポータルの https://access.redhat.com/ja/articles/757083 を参照してください。

第5章 既知の問題

Red Hat JBoss Data Grid 6.3 には以下の問題があることがわかっています。これらの問題は今後のリリースで修正される予定です。
BZ#807674 - JTA データソースを使用する JDBC キャッシュストアがキャッシュトラザクションに参加しない
Red Hat JBoss Data Grid のライブラリーモードでは、JTA 対応のデータソースを使用するよう、JDBC キャッシュストアを設定できます。しかし、JTA トラザクションの実行中、このようなストアによってサポートされるキャッシュ上で実行される操作は、トラザクションのスコープ外にあるストアへ永続化されます。すべてのキャッシュ操作は非トランザクションであるため、この問題は JBoss Data Grid のリモートクライアントサーバーモードには適用されません。
BZ#881080 - 未応答の SuspectExceptions
ノードがシャットダウンすると応答しないため、ノードがシャットダウンするときに SuspectExceptions が周期的に発生します。そのため、SuspectException エラーがログに記録されます。データの整合性は SuspectExceptions による影響を受けません。
現在、この問題の回避策はありません。
BZ#881791 - JBoss Data Grid サーバーへのファイルパスに特殊文字が含まれていると問題が発生する
ディレクトリーパスに特殊文字が使用されていると、JBoss Data Grid サーバーが起動に失敗するか、ロギングに使用される設定ファイルが適切にロードされません。問題が生じる特殊文字には、空白文字、# (ハッシュ記号)、! (感嘆符)、% (パーセント記号)、$ (ドル記号) などが含まれます。
この問題の唯一の回避策は、ディレクトリーパスに特殊文字を使用しないことです。
BZ#1012036 - サイトに到達できないと RELAY2 ログエラーが発生する
サイトが到達不可能であると、JGroups の RELAY2 によって、ドロップした各メッセージのエラーがログに記録されます。Infinispan には設定可能な失敗ポリシー (ignore/warn/abort) がありますが、ignore ポリシーでもログにエラーが記録されます。
BZ#1024373 - デフォルトの楽観的ロック設定によって一貫性が失われる
デフォルトでは、トランザクションキャッシュは楽観的ロックで設定されています。競合の状態では、replace() の同時呼び出しが true を返すことがあり、コミットしてはならない場合でもトランザクションがコミットすることがあります。
replace(key, A, B) および replace(key, A, C) の 2 つの同時実行コマンドは、エントリーを上書きすることがあります。最後に終了したコマンドによって、予期しない値が新しい値に上書きされます。
この問題を回避するには、REPEATABLE_READ 分離レベルと write skew チェックを有効にします。これにより、同時実行の replace 操作が想定どおり動作するようになります。
BZ#1076084 - RHQ サーバープラグイン: リモートストアキャッシュの子の作成に失敗する
現在、JBoss Operations Network の JBoss Data Grid Remote Client-Server プラグインを使用するキャッシュに対してリモートキャッシュストアの子リソースを作成できません。この操作は失敗し、JBoss Operations Network Agent によって失敗がログファイルに記録されます。そのため、JBoss Operations Network のユーザーインターフェースを使用してリモートキャッシュストアを設定できません。
この問題を回避するには、リモートキャッシュストアを手動で設定するよう JBoss Data Grid のサーバー設定ファイルを変更します。
BZ#1092403 - JPA キャッシュストアが Oracle12c および PostgresPlus 9 のダイアレクトを推測できない
JPA キャッシュストアの内部依存関係である Hibernate がデータベースとの通信に使用するダイアレクトを判断できないため、JPA キャッシュストアは Oracle12c および Postgres Plus 9 では動作しません。
この問題を回避するには、Hibernate ダイアレクトを直接 persistence.xml に指定します。直接指定するには、以下の要素を persistence.xml に追加します。
<property name="hibernate.dialect" value="${hibernate.dialect}" />
${hibernate.dialect} は、Oracle12c の場合は org.hibernate.dialect.Oracle10gDialect、Postgres Plus 9 の場合は org.hibernate.dialect.PostgresPlusDialect に置き換える必要があります。
BZ#1101512 - CLI で保存されたデータをテストするとき、CLI UPGRADE コマンドが失敗する
CLI を用いて古いクラスターに保存されたデータを移行する場合 、CLI のアップブレードコマンドを使用してデータを古いクラスターから新しいクラスターに移行できません (put --codec=hotrod key1 val1 コマンドを実行する場合など)。Hot Rod または REST クライアントを使用してデータが直接保存された場合は、この問題は発生しません。
BZ#1118204 - Infinispan クエリー - FullTextIndexEventListener における WeakIdentityHashMap の同時処理の問題
Hot Rod より put/remove 操作を使用する場合、システムが高負荷の状態であると一部のオブジェクトがインデックス化されないことがあります。これらのオブジェクトはリモートクエリーによって返されないか、以前の状態を基に返されます。これにより、キャッシュがトラザクションでない場合は埋め込みクエリーも影響を受けます。
このバグにより、更新や削除の操作が失われることもあります。そのため、後続のクエリーが新たに挿入されたオブジェクトの結果を見落とすことがありますが、返されるべきでない結果が含まれる可能性もあります。グリッドからオブジェクトを返すようにユーザーがリクエストすると、存在しないものが結果から削除されるため、削除操作が見落とされる問題はプロジェクションの使用のみに影響します。
この問題を回避するには、キャッシュが Hod Rod 上でアクセスされるか (各操作はトランザクションで囲まれます)、または埋め込みキャッシュとしてローカルでアクセスされるかに関わらず、キャッシュをトランザクションとしてマーク付けします。
BZ#1113585 - LevelDBStore.stop() によってネイティブコードの JVM がクラッシュされる
LevelDB キャッシュストアを使用するキャッシュが停止すると (キャッシュマネージャーが停止したことによる場合など)、LevelDB ネイティブ実装によって JVM プロセスのセグメンテーション違反が発生することがあります。これにより、プロセス全体がクラッシュします。

第6章 解決済みの問題

Red Hat JBoss Data Grid 6.3 で解決した問題は次のとおりです。
BZ#1043434 - すでに無効化されている L1 エントリーが状態の遷移によって追加される
L1 が有効で onRehash=true である分散キャッシュモードでは、状態の遷移中にエントリーが上書きされると上書きが無視されることがありました。このノードによってエントリーの上書き前の値が報告され、L1 のタイムアウト後にこのエントリーは完全に削除されました。
この問題は、JBoss Data Grid 6.3.1 で修正されました。
BZ#1054165 - JBoss Operations Network (3.2.0) -- キャッシュマネージャーの lib プラグイン AVAILABILITY CHECK に失敗する -- アプリケーションは JBoss EAP 6.2 上にデプロイ
JBoss Data Grid Library と JBoss Operations Network の統合では、JBoss EAP サーバー上にデプロイされた JBoss Data Grid ライブラリーを使用するアプリケーションを監視する目的で、可用性チェック操作のタイムアウト期間にデフォルトの 5000 ミリ秒を使用するのは不十分でした。これにより、埋め込みの Infinispan キャッシュマネージャーの可用性として UPDOWN が交互に報告されました。さらに、この問題によってキャッシュ統計の監視が影響を受けました。
この問題は、JBoss Data Grid 6.3.1 で修正されました。
BZ#1072349 - JBoss Operations Network のサーバープラグインの管理/監視に拡張が必要
JBoss Operations Network の Red Hat JBoss Data Grid サーバープラグインは、管理操作の完全セットを対象にしませんでした。そのため、JBoss Operations Network のユーザーインターフェースから管理操作のサブセットへアクセスできませんでした。
この問題は、JBoss Data Grid 6.3.1 で修正されました。
BZ#1096877 - Hot Rod クライアント RequestBalancingStrategy の後方互換性の問題
org.infinispan.client.hotrod.impl.transport.tcp.RequestBalancingStrategy インターフェースはパブリック API の一部としてみなされますが、このインターフェースが変更になりました。JBoss Data Grid を直接使用するアプリケーションがこのインターフェースを使用 (実装) する場合、アプリケーションコードを変更しないと JBoss Data Grid 6.3 へアップデートできませんでした。
この問題は、JBoss Data Grid 6.3.1 で修正されました。
BZ#1097197 - Karaf で Hot Rod を介してカスタムオブジェクトを保存できない
Karaf で実行されている Hot Rod クライアントはユーザー定義のオブジェクトを保存または読み出しできませんでした。これは、カスタムクラスはクライアントのバンドルにパッケージ化されていたため、Hot Rod クライアントはこれらのクラスを認識できなかったためです。
この問題は、JBoss Data Grid 6.3.1 で修正されました。
BZ#1099055 - サブジェクトが設定されるときに認証設定ビルダーに CallbackHandler が必要
SASL コールバックハンドラーが設定されていないと、Hot Rod Java クライアント設定バリデーターは設定を許可しませんでした。しかし、代わりに有効なクライアントサブジェクトが指定されると、バリデーターは設定を許可します。そのため、設定バリデーターは org.infinispan.commons.CacheConfigurationException 例外をスローし、以下のエラーメッセージが表示されました。
ISPN004030: Cannot enable authentication without specifying a Callback Handler.
この問題は、JBoss Data Grid 6.3.1 で修正されました。
BZ#1099156 - JpaStore.process および JpaStore.purge メソッドでの storeMetadata=false の処理
メタデータストレージ属性が無効な状態で JPA キャッシュストアが使用されると、他の操作が発生するときにキャッシュストアはメタデータ向けのクエリーを実行しました。そのため、メタデータクラスが persistence.xml ファイルで無効になっている場合、他の操作が実行に失敗したり、最適に実行されませんでした。
この問題は、JBoss Data Grid 6.3.1 で修正されました。
BZ#1100741 - Red Hat Enterprise Linux 5 で LevelDB テストが失敗する
LevelDB ストアによって使用されるネイティブ LevelDB JNI ライブラリーは、Red Hat Enterprise Linux 6 で使用可能な C++ コンパイラーを使用して構築されました。これにより、バイナリーは Red Hat Enterprise Linux 5 との ABI の互換性がなくなりました。そのため、LevelDB JNI ライブラリーはロードに失敗し、バージョンシンボルがないというリンカーエラー (/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found) が報告されました。
この問題は、JBoss Data Grid 6.3.1 で修正されました。
BZ#1115229 - LevelDB ストアが有効な状態でキャッシュをロードすると、同時実行エラーが発生する
LevelDB の期限切れキューが満杯になりつつあると、queue-size パラメーターが解析されませんでした。そのため、キューが満杯になり書き込み操作がブロックされました。
この問題は、JBoss Data Grid 6.3.1 で修正されました。パーサーが修正され、queue-size を設定できるようになりました。

付録A 改訂履歴

改訂履歴
改訂 6.3.0-6Wed Oct 22 2014Misha Husnain Ali
解決済みの問題のページを更新。
改訂 6.3.0-5Tue Jul 15 2014Gemma Sheldon
BZ-1067224:「新機能および改良された機能」の章の形式および表現を更新。
既知の問題および解決済み問題のリストを更新。
改訂 6.3.0-4Thu Jul 10 2014Misha Husnain Ali
BZ-1118087: mapreduce の情報を削除。
改訂 6.3.0-3Tue Jul 01 2014Gemma Sheldon
冒頭から "Beta" という表現を削除。
プレースホルダー「解決済みの問題」の章を追加。
BZ-1107341: 移行の情報を追加。
改訂 6.3.0-2Wed May 28 2014Misha Husnain Ali
サブタイトルを更新。
改訂 6.3.0-1Tue May 27 2014Misha Husnain Ali
冒頭の内容を更新し、既知の問題をすべて追加。
改訂 6.3.0-0Mon Apr 28 2014Gemma Sheldon
6.3.0 Beta 向けの新書

法律上の通知

Copyright © 2014 Red Hat, Inc.
This 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, OpenShift, 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 Torvalds 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.
The 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.