Pivotal Knowledge Base

フォローする

ホストのロケール設定に起因して cache.xml ファイル解析時に Fatal error 発生

適用範囲

GemFire 8.1

問題

ホストに非英語ロケール設定を適用している場合、cache.xml ファイル解析時に Fatal error が発生、それにより、GemFire キャッシュサーバーの起動に失敗することがある。

例えば、日本語ロケールを設定している場合は以下のような Fatal error が発生:

===========================================================
com.gemstone.gemfire.cache.CacheXmlException: While reading Cache XML file:/D:/apps/Pivotal/Pivotal_GemFire_NativeClient_64bit_8100/SampleCode/quickstart/gfecs/../XMLs/serverPoolCqQuery.xml. Fatal error while parsing XML, caused by org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 10; 機能"http://apache.org/xml/features/disallow-doctype-decl"がtrueに設定されている場合、DOCTYPEは指定できません
===========================================================

中国語(簡体字)の場合は以下のような Fatal error が発生:

===========================================================
com.gemstone.gemfire.cache.CacheXmlException: While reading Cache XML file:/C:/lab/sslissue/gemfire-issues/2wayssl-nullencryption/gemfire/cache-replicated-eventual.xml. Fatal error while parsing XML, caused by org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 10; 将功能 "http://apache.org/xml/features/disallow-doctype-decl" 设置为“真”时, 不允许使用 DOCTYPE。
===========================================================

説明

この問題は、日本語ロケールや中国語ロケール(おそらく、その他の非英語ロケール)に設定したホスト上で、GemFire 8.1 を使用すると発生する。根本原因は、内部的に  "http://apache.org/xml/features/disallow-doctype-decl" に true を設定しているにもかかわらず、cache.xml に DOCTYPE 要素を指定しているためである。この問題は、GemFire 8.x の次期リリース以降修正予定である。

解決策

  1. GFSH コマンド等、サーバー起動時に --J=-Duser.language=en オプションを付与する。
  2. 旧来の DTD を用いた形式の代わりに、新しい XML Schema を用いた形式で cache.xml を記述する。

コメント

Powered by Zendesk