Cisco Finesse アドミニストレーション ガイド
Cisco Finesse のフェールオーバー メカニズム
Cisco Finesse のフェールオーバー メカニズム

Cisco Finesse のフェールオーバー メカニズム

この章では、Cisco Finesse のフェイルオーバーと冗長性のメカニズムについて説明します。

CTI フェールオーバー

CTI フェールオーバーの前提条件は次のとおりです。

  • Unified Contact Center Enterprise(Unified CCE)はデュプレックス モードで設定されます。

  • B 側の CTI ホストおよびポートは Finesse 管理コンソールを使用して設定されます。

Finesse が A 側の CTI サーバへの接続を失い、上記の前提条件が実施済みである場合、CTI フェールオーバーが発生します。

Finesse がデュプレックス Unified CCE の導入に使用されている場合、A 側の CTI サーバへの接続が失われると、5 回再接続を試みます。 接続の試行回数がしきい値を超えると、Finesse は B 側の CTI サーバへの接続を同じ回数試みます。 Finesse は CTI サーバへの接続に成功するまで、このプロセスを実行し続けます。

次の理由によって、CTI サーバへの接続が失われる可能性があります。

  • Finesse が、接続された CTI サーバからのハートビートを 3 回連続で受け取りに失敗した。

  • CTI サーバに対して開かれているソケットで障害が発生した。

フェールオーバー中は、Finesse がクライアント要求を処理しません。 フェールオーバー中に行われた要求に対して、「503 "Service Unavailable"」というエラー メッセージが表示されます。 さらに、Finesse はフェールオーバー中はイベントを送信しません。 Finesse は CTI サーバに再接続した後、クライアント要求への応答とイベントの発行を開始します。

CTI フェイルオーバー中に発生するコール制御、コール データ、またはエージェントの状態に関するアクションは、フェイルオーバーが完了した後に、イベントとしてエージェント デスクトップに発行されます。 これによって、Finesse クライアントはコール制御、コール データ、およびエージェント状態について正確に把握できます。

エージェントがフェールオーバー中にコールを発信または着信して終了した(つまり、コール全体がフェールオーバー中に行われた)場合は、対応するイベントがフェールオーバーの完了後に発行されません。


(注)  


(他のエージェントやスーパーバイザと関連付けられていない)他のデバイスとのアクティブな電話会議に参加した後にサインインしたエージェントやスーパーバイザの Finesse デスクトップで、Unified CCE からの不正なコール通知によって、予期しない動作が発生する可能性があります。 これらの制限には、エージェントまたはスーパーバイザが電話会議に参加している間にフェールオーバーが発生するフェールオーバー シナリオも含まれます。 たとえば、エージェントが電話会議に参加している間に Finesse サーバに障害が発生したとします。 エージェントが他の Finesse サーバにリダイレクトされると、そのエージェントの Finesse デスクトップで予期しない動作が発生する可能性があります。 予期しない動作の例には次のようなものがありますが、これらに限定されません。

  • Finesse Desktop に、電話会議のすべての参加者が反映されない。

  • Finesse Desktop に、サインインしたエージェントまたはスーパーバイザがアクティブ コールに参加中であることが反映されない。

  • Finesse が Unified CCE から一貫性のない通知コールを受信する。

これらの警告にもかかわらず、エージェントまたはスーパーバイザは、電話機で通常動作の実行を続行できます。 Finesse Desktop の動作は、エージェントまたはスーパーバイザが電話会議から退出した後に正常に戻ります。


AWDB フェールオーバー

AWDB フェールオーバーの前提条件は次のとおりです。

  • セカンダリ Administrative Workstation Database(AWDB)が設定されます。

  • セカンダリ AWDB は Finesse 管理コンソールを使用して設定されます。

  • Finesse はセカンダリ AWDB ホストに接続できます。

  • ディストリビュータ サービスはセカンダリ AWDB ホストで稼働しています。

エージェントとスーパーバイザは AWDB データベースに対して認証されます。 エージェントまたはスーパーバイザが正常な API 要求(サインイン要求やコール制御要求など)を行うと、要求時から 30 分間 Finesse にキャッシュされます。 ユーザが認証されると、両方の AWDB が停止している場合でも、30 分が経過するまでそのユーザの認証が続行されます。 Finesse が AWDB に対してこのユーザの再認証を試行するのは、キャッシュ期間の経過後だけです。

Finesse がプライマリ管理およびデータ サーバへの接続を失い、上記の前提条件が実施済みである場合、AWDB フェールオーバーが発生します。 Finesse はプライマリ管理およびデータ サーバへの接続を失った後、セカンダリ サーバへの再接続を試みます。

Finesse はいずれかの管理サーバおよびデータ サーバに接続できるまで、すべての API 要求に対してこのプロセスを繰り返します。 フェールオーバー中、Finesse は要求を処理しませんが、クライアントはイベントを受信できます。

Finesse が管理サーバまたはデータ サーバのどちらにも接続できず、キャッシュの有効期限が切れている場合、システムは次のエラーを返します。

  • Finesse デスクトップにサインインを試みているエージェントとスーパーバイザは、「Invalid user ID or password」というエラーメッセージを受信します。

  • 管理者は、Finesse 管理コンソールで設定を更新することも取得することもできません。

  • Finesse にすでにサインインしているユーザは、「Operation timed out」というエラーメッセージを受信します。

  • API 要求を行っているユーザは、「401 "Unauthorized" HTTP」というエラー メッセージを受信します。

Finesse がある AWDB に接続できない状況で要求を受信する場合、Finesse が接続できないことを検出し、別の AWDB に接続する前に、これらの要求が時間切れになってしまう場合があります。 このシナリオで完了させるには、ユーザ(管理者、エージェント、またはスーパーバイザ)は操作をもう一度試してみる必要があります。

Finesse クライアントのフェールオーバー

2 ノードの Finesse セットアップ(プライマリおよびセカンダリの Finesse サーバ)では、エージェントが接続されているサーバでサービスが停止した場合、そのエージェントはサーバとの接続が失われたという通知を受け取ります。 Finesse デスクトップは次のことを実行します。

  • Finesse デスクトップは引き続き、現在の Finesse サーバがその状態を回復するかどうかを確認します。
  • Finesse デスクトップは他の Finesse サーバが使用可能かどうか、稼働しているかどうかを確認します。

他の Finesse サーバが使用可能である場合、デスクトップは自動的にエージェントを他のサーバにサインインさせます。 現在の Finesse サーバが状態を復元する場合、デスクトップは再接続したことをエージェントに通知します。

Finesse のスマートなフェールオーバー ロジックには、デスクトップの障害を検出する 3 種類のトリガーがあります。

  • Finesse デスクトップが、現在のサーバが OUT_OF_SERVICE であることを示す SystemInfo イベントを受け取る。

  • BOSH 接続が切断される。

  • "finesse"」XMPP ユーザのプレゼンスが使用不可に変更される。

どのトリガーが検出された場合でも、デスクトップの再接続ロジックは次のとおりです。

  1. SystemInfo を 10 秒間隔でポーリングします。

  2. SystemInfo が IN_SERVICE の場合、BOSH 接続を確認します。

  3. BOSH 接続が切断されている場合、BOSH 接続を要求します。

  4. BOSH が接続されており、サーバが IN_SERVICE の場合、データを更新します。

SystemInfo を 10 秒間隔でポーリングしている間、デスクトップは 10 秒間隔で代替サーバの可用性も確認します。 このスマートなフェールオーバー ロジックでは、現在のサーバを利用し続けることが優先されます。 フェールオーバー ロジックで代替サーバが使用可能であることが検出された場合、現在のサーバをもう一度確認します。 現在のサーバがまだ停止している場合、デスクトップはエージェントを代替サーバに接続します。 現在のサーバが復元され、デスクトップは現在のサーバに再接続します。

BOSH 接続が失敗の原因である場合、デスクトップの状態を「接続が切断されている」に変更する前に、JabberWerx ライブラリが再接続を 3 回試みます。 この 3 回の試行は、よりスマートなフェールオーバー ロジックが開始される前に実行されます。

クライアントのフェールオーバーは、次の理由で発生する可能性があります。

  • Cisco Tomcat サービスが停止している。

  • Finesse Webapp サービスが停止している。

  • Cisco Finesse Notification Service が停止している。

  • Finesse は両方の CTI サーバへの接続を失います。

デスクトップの動作

特定の条件下で、Finesse は CTI サーバに 255 の理由コードとともに強制ログアウトを送信します。 デスクトップの実際の動作は、Unified CCE での Logout on Agent Disconnect(LOAD; エージェントの接続解除時のログアウト)の設定に応じて異なります。


(注)  


Finesse は、最大 120 秒間かけて、エージェントがブラウザを閉じるか、ブラウザがクラッシュするのを検出します。その後、CTI サーバに強制的なログアウト要求を送信するまで、60 秒間待機します。 次の条件により、Finesse がエージェントをサインアウトするまで、180 秒間かかる場合があります。


次の表に、Finesse が CTI サーバに強制ログアウトを送信する条件を示します。

シナリオ

デスクトップの動作

サーバのアクション

競合状態

エージェントがブラウザを閉じるか、ブラウザがクラッシュするか、またはエージェントがブラウザの [Back] ボタンをクリックします。

ブラウザを閉じるか、Finesse デスクトップから離れると、Finesse デスクトップがサーバに最良の方法で通知します。

Finesse がクライアントから使用不可のプレゼンス通知を受け取ります。 Finesse は 60 秒待機した後に CTI サーバに強制的にログアウト要求を送信します。

  1. エージェントがブラウザ ウィンドウを閉じます。 Finesse がユーザから使用不可のプレゼンス通知を受け取ります。 Finesse はエージェントをサインアウトしようとしていますが、このエージェントはすでにサインアウトしています。

  2. ブラウザがクラッシュした場合、Finesse サーバがクライアントがサインアウトしていることを検出し、プレゼンス通知を送信するまで最大 120 秒かかる場合があります。 この状況は、プライマリ Finesse サーバがブラウザのクラッシュによるプレゼンス通知を受信する前にクライアントがセカンダリ Finesse サーバにサインインした場合に発生する可能性があります。 この場合、エージェントがサインアウトするか、またはセカンダリ Finesse サーバで受信不可状態になる可能性があります。

  3. Finesse デスクトップが低速なネットワーク接続で実行されている場合、Finesse がクライアントのブラウザから常に使用不可プレゼンス通知を受信するとは限りません。 この場合、前述の条件で説明した、ブラウザのクラッシュと似たような状況が発生します。

クライアントがブラウザを更新します。

Finesse がクライアントから使用不可のプレゼンス通知を受け取ります。 ブラウザの更新後に再接続できるように、Finesse は 60 秒間待ってから CTI サーバに強制ログアウト要求を送信します。

クライアントでネットワークの故障が発生します(Finesse は稼動しています)。

Finesse サーバへの接続が一時的に停止したため、クライアントはセカンダリ Finesse サーバにフェールオーバーします。

プライマリ Finesse サーバがクライアントから使用不可のプレゼンス通知を受け取ります。 Finesse が稼働中であるため、CTI サーバにエージェントの強制ログアウト要求を送信します。

この状況は、クライアントがセカンダリ Finesse サーバへログインする前に強制ログアウトが行われなかった場合に発生することがあります。 エージェントがコール中の場合、プライマリ Finesse サーバはコール終了後に強制ログアウト要求を送信します。 クライアントがセカンダリ Finesse サーバにすでにサインインしている場合でも、エージェントがサインアウトするか、コールの終了時に受信不可状態になります。