第3章 既知の問題および修正された問題
Data Grid の既知の問題や、修正された問題を確認してください。
3.1. Data Grid の既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift で実行している Data Grid クラスターに影響する問題は、Data Grid Operator 8.2 release notes を参照してください。
Red Hat JBoss EAP (EAP) の Data Grid モジュールに依存関係がない
問題: JDG-5104
説明: EAP 7.4 の Data Grid モジュールには、必要なすべての Hibernate アーティファクトが含まれていません。さらに、EAP 7.4 は、Data Grid が必要とする Eclipse MicroProfile および SmallRye モジュールを削除します。
回避策: 次の手順を実行します。
- Data Grid サーバーのディストリビューションをダウンロードします。
-
ターミナルウィンドウを開き、
$RHDG_HOME/server/libディレクトリーに移動します。 次の Hibernate JAR ファイルを見つけます。
-
hibernate-search-backend-lucene-6.0.2.Final-redhat-00002.jar -
hibernate-commons-annotations-5.0.5.Final-redhat-00002.jar
-
JAR ファイルを Data Grid モジュールインストールの次のディレクトリーにコピーします。
modules/system/add-ons/rhdg/org/infinispan/rhdg-8.2/-
/modules/system/add-ons/rhdg/org/infinispan/rhdg-8.2/module.xmlを開いて編集します。 optional="true"属性を次のモジュールに追加します。<module name="org.eclipse.microprofile.config.api" export="true" optional="true"/> <module name="org.eclipse.microprofile.metrics.api" export="true" optional="true"/> <module name="io.smallrye.config" services="export" export="true" optional="true"/> <module name="io.smallrye.metrics" services="import" export="true" optional="true"/>
putAll() の操作で、楽観的ロックで期限切れのエントリーに書き込むとデッドロックが発生する。
問題: JDG-5087
説明:楽観的ロックを使用するトランザクションキャッシュでは、期限切れのエントリーを削除するコマンドが、期限切れが書き込み操作によって引き起こされた場合でもロックを取得してしまいます。putAll() 操作で期限切れのエントリーに書き込まれる場合に、この動作によりデッドロックになってしまう場合があります。
回避策: この問題の回避策はありません。
期限切れのエントリーを putAll() または getAll() で処理するとデータ競合が発生する。
問題: JDG-5028
説明putAll() または getAll() の操作が 2 つ以上のエントリーに影響を与えると、それらのエントリーの両方が期限切れになることがあります。両方のエントリーのキーが同じ HashMap バケットにマッピングされている場合には、片方の更新が失われ、Data Grid は次のような例外を出力します。
IllegalStateException: Entry should be always wrapped!
回避策: この問題の回避策はありません。
クライアントは、TLS/SSL 暗号化を使用するリモートキャッシュに接続できない
問題: JDG-4763
説明: クライアントはリモートキャッシュに接続できず、Data Grid ログは TLS/SSL に関連する WARN ログメッセージを出力します。
この問題は、Data Grid に含まれる WildFly OpenSSL ライブラリーが原因で発生します。ログメッセージの詳細は、Red Hat ナレッジベースのアーティクル Clients are not able to connect a server after update to RHDG 8.2.1 を参照してください。
回避策: 次のプロパティーを使用して Data Grid Server を起動し、OpenSSL の代わりに Java TLS/SSL ライブラリーを使用します。
-Dorg.infinispan.openssl=false
Red Hat JBoss Web Server から Data Grid 8.2 へのセッションの外部化が Tomcat セッションクライアントの 7.3.8 または 8.1.1 バージョンで利用できる
問題: JDG-4599
説明: Data Grid 8.2 には Tomcat セッションクライアントがまだ含まれていません。これは、EAP 7.4 GA 後に利用できます。
回避策: 以下の設定で、Tomcat セッションクライアントの Data Grid 7.3.8 または 8.1.1 バージョンと組み合わせて、Data Grid Server 8.2 を使用します。
<Manager className="org.wildfly.clustering.tomcat.hotrod.HotRodManager"
configurationName="default"
persistenceStrategy="${persistenceStrategy}"
server_list="127.0.0.1:11222"
protocol_version="2.9"
auth_realm="default"
sasl_mechanism="DIGEST-MD5"
auth_server_name="infinispan"
auth_username="admin"
auth_password="changeme"/>
Java 8 を使用する Hot Rod クライアントはアップグレードして、SSLHandshakeException を回避する必要がある
問題: JDG-4279
説明: Hot Rod クライアントで JDK 8 を使用しており、Java のバージョンが少なくとも 8u252 でない場合に以下の致命的な例外になります。
SSLHandshakeException: Remote host closed connection during handshake at sun.security.ssl.SSLSocketImpl
回避策: 最低でも Java 8u252 を使用していることを確認してください。このバージョンには、Application-Layer Protocol Negotiation (ALPN) に必要なセキュリティー機能が含まれています。
Data Grid 競合解決のパフォーマンス
問題: JDG-3636
説明: テストケースによっては、Data Grid パーティション処理機能では、競合解決に、想定よりも時間がかかりました。
回避策: この問題の回避策はありません。
Data Grid は JWS セッションを正しくパッシベーションしない
問題: JDG-2796
説明: JBoss Web Server (JWS) からセッションを外部化する時に FINE 永続ストラテジーを使用する場合は、セッションが正しくパッシベートされません。
回避策: この問題の回避策はありません。