Troubleshooting
===============

Failover Managerエージェントの起動に失敗する
--------------------------------------------

バージョン5.xエージェントの起動に失敗した場合は、指示に従ってsystemctl/journalctl出力を参照してください。エージェントがバージョン4.xである場合、詳細については、起動ログ\ ``/var/log/efm-<version>/startup-<cluster>.log``
を参照してください。

承認ファイルが見つかりません。ローカルエージェントは実行されていますか?
-----------------------------------------------------------------------

Failover Managerクラスター管理コマンドを呼び出し、Failover
Managerがノードで実行されていない場合、 ``efm``
コマンドはエラーを表示します。

.. code:: text

   Authorization file not found. Is the local agent running?

このコマンドを実行する権限がありません。ユーザー ’<os user>’は`efm\` グループのメンバーではありません。
-------------------------------------------------------------------------------------------------------

:ref:`Using the efm utility <Using the efm utility>`  に文書化されている一部の\ ``efm``
コマンドを呼び出すには、特別な権限が必要です。これらのコマンドを実行する権限を持たないユーザーが呼び出した場合、
``efm`` コマンドはエラーを表示します。

.. code:: text

   Not authorized to run this command. User <os user> is not a member of the `efm` group.

通知;予期しないエラーメッセージ
-------------------------------

予期しないエラーメッセージに関する通知メッセージを受け取った場合は、
:ref:`Failover Manager log file <Controlling logging>` で\ ``OutOfMemory``
メッセージを確認します。フェールオーバーマネージャーは、このプロパティで設定されたデフォルトのメモリ値で実行されます。

.. code:: text


   #  Extra information that will be passed to the JVM when starting the agent.

   jvm.options=-Xmx128m

128メガバイト未満の割り当てで実行している場合は、値を増やしてFailover
Managerエージェントを再起動します。

OpenJDKバージョンの確認
-----------------------

Failover ManagerはOpenJDKでテストされています。
OpenJDKを使用することを強くお勧めします。次のコマンドを使用して、Javaインストールのタイプを確認できます。

フェールオーバーマネージャーエージェントが使用しているJavaのバージョンを更新または変更する前に、エージェントを停止し、更新後に再度起動する必要があります。これはOSのアップグレードにも適用され、エージェントが使用しているJavaインストールが変更される可能性があります。
:ref:`Configuring for Eager Failover <Configuring for Eager Failover>` が使用されていない限り、エージェントを停止しても実行中のデータベースサーバーに影響はありません。

.. code:: shell


   #  java -version

   openjdk version "11.0.20" 2023-07-18 LTS
   OpenJDK Runtime Environment (Red_Hat-11.0.20.0.8-1.el7_9) (build 11.0.20+8-LTS)
   OpenJDK 64-Bit Server VM (Red_Hat-11.0.20.0.8-1.el7_9) (build 11.0.20+8-LTS, mixed mode, sharing)

..  Note::
   RHELおよびその派生のOpenJDKバージョン11に一時的な問題があります。フェールオーバーマネージャーを起動すると、次のようなエラーが表示される場合があります。

``java.lang.Error: java.io.FileNotFoundException: /usr/lib/jvm/java-11-openjdk-11.0.20.0.8-2.el8.x86_64/lib/tzdb.dat (No such file or directory)``

このメッセージが表示された場合、回避策は、
``sudo dnf install tzdata-java``
コマンドを使用して、不足しているパッケージを手動でインストールすることです。

クラスター外部からの予期しない接続試行
--------------------------------------

外部プロセスが\ ``bind.address``
ポートでエージェントに接続しようとすると、フェールオーバーマネージャーは接続試行のソースを含む警告をログに記録します。これらの警告は、フェールオーバーマネージャークラスターには影響しません。ただし、ソースアドレスを使用して、外部プロセスを停止または構成して、フェールオーバーマネージャーエージェントに接続しようとしないようにできます。以下は、クラスターの外部の何かが\ ``<source_address>``
からエージェントプロセスに接続しようとしたときに表示されるメッセージの例です。

.. code:: text

   org.jgroups.protocols.TCP warn WARN: JGRP000006: failed accepting connection from peer Socket[addr=/<source_address>,port=56046,localport=7800]: java.net.SocketTimeoutException: Read timed out

別のクラスターの一部であったアドレスでエージェントを実行している場合、元のクラスターはまだこのアドレスに接続してクラスターを再形成しようとしている可能性があります。この例では、クラスター\ ``oldcluster``
はまだ\ ``newcluster`` の一部になったアドレスに接続しようとしています。

.. code:: text

   org.jgroups.protocols.TCP warn WARN: JGRP000012: discarded message from different cluster oldcluster (our cluster is newcluster). Sender was 93cb99c7-bf3f-4243-b582-faf25aced49e(<source_address>)

クラスター名前と\ ``<source_address>``
情報を使用して、元のクラスターを見つけることができます。そのクラスターで :ref:`efm remote-members <efm remote-members>` コマンドを使用すると、キャッシュからアドレスがクリアされます。
