現象

TarPM クラスター化された CRX 環境では、追加の CRX クラスターノードの起動時に次の例外がスローされます。

警告 com.day.crx.persistence.tar.ReplicatingTarSet.open - /repository/shared/version/control javax.jcr でロックを取得できませんでした。リポジトリ例外:home /repository/shared/version/control のリポジトリが.lock というファイルが別のプロセスによってロックされているため、使用中であるように見えます。

原因

この例外は、ルートの原因が次のいずれかであるロック問題が原因でスローされます。

  • 共有フォルダー(バージョン、ワークスペース、ジャーナルまたはリポジトリ)に対するロックを保持している CRX インスタンスが異常終了し、古い.lock ファイルが残っている
  • CRX クラスターノードは、共有フォルダーのロックを保持していますが、他の CRX クラスターインスタンスは、マスター CRX クラスターノードに接続できません。

最初の状況は通常は問題ありません。古い .lock ファイルは削除され、置き換えられます。ただし、以前のバージョンの NFS を使用している場合は、クラッシュ後にファイルシステムがこのファイルのロックを解除できない可能性があります。

後者は、リポジトリへの書き込みアクセスを正しく同期するのを確認するために、スレーブとマスター CRX クラスターノードの間の通信が必須なため問題です。スレーブクラスターノードがネットワーク経由でマスタークラスターノードに接続できない場合は、そのノードが実行されていないことを前提としており、マスターロールを引き継ごうとしています。

解決策

古いバージョンの NFS を使用する場合は、すべてのプロセスが停止していることを確認し、すべての .lock ファイルを手動で削除します。それでも問題が解消されない場合は、問題の原因となる共有フォルダー内の listener.properties ファイルの「アドレス」のパラメーターを確認してください。

次に例を示します。

address=192.168.1.22\:58128

このファイルは、すべての(スレーブ)CRX クラスターノードによって読み取られます。したがって、IP アドレスはすべてのスレーブマシンでアクセスできるようにする必要があります。それ以外の場合は例外が発生します。

デフォルトの CRX では、使用可能なネットワークインターフェイスと使用可能なポートがすべて使用されます。また、使用する IP アドレスと port-range を明示的に割り当てることもできます。これらの設定は、repository.xml および workspace.xml の両方で TarPersistenceManager レベルに設定されなければなりません。

<PersistenceManager class="com.day.crx.persistence.tar.TarPersistenceManager"> ... <param name="bindAddress" value="192.168.1.10" /> <param name="portList" value="9100-9110" /> </PersistenceManager>

適用

CRX1.4.x(クラスター)

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー