ナレッジベース

Tableau Server のアップグレード後にブラウザのログイン画面に表示されるエラー "サインインに失敗しました"


発行: 25 Aug 2016
最終修正日: 24 Aug 2022

問題

Tableau Server 10 にアップグレードした後、以下の問題が発生する場合があります。

Tableau Server にログインしようとすると "サインインに失敗しました" エラーで失敗します。

または

次のエラーがログに記録される場合があります。

"PSQLException: Connection to localhost:8060 refused" (localhost:8060 への接続は拒否されました)

または

リポジトリが "stopped (停止中)" または "setting up (セットアップ中)" と表示される場合があります。 

この解決策を適用できるかどうかを判断するには、障害発生時の clustercontroller のログに次のエラーがないか確認します。

 WARN  : com.tableausoftware.cluster.postgres.SpawnPostgresRunner - Monitoring thread for the master instance didn't start. Trying failover... (マスター インスタンスのスレッドの監視が開始しませんでした。フェールオーバー試行中...)
org.postgresql.util.PSQLException: FATAL: the database system is starting up (致命的: データベース システムは起動中です)
...
INFO  : com.tableausoftware.cluster.postgres.SpawnPostgresRunner - Failing over master Postgres to localhost:8060 (マスター Postgres を localhost:8060 にフェールオーバーしています)
INFO  : com.tableausoftware.cluster.postgres.SpawnPostgresRunner - Stopping the monitoring thread for Postgres instance on localhost:8060 (localhost:8060 で Postgres インスタンスの監視スレッドを停止しています)
INFO  : com.tableausoftware.cluster.postgres.SpawnPostgresRunner - Starting the monitoring thread for master Postgres instance on localhost:8060 (localhost:8060 で Postgres インスタンスの監視スレッドを開始しています)

環境

Tableau Server 10

解決策

オプション 1:
IT チームと協力して、ディスク パフォーマンスを増強するか、Tableau Server を実行しているコンピューターで tableau フォルダーをウイルス対策スキャンから除外します。
オプション 2:
Postgres (Tableau Server リポジトリ) の clustercontroller タイムアウト設定を延長します。管理者としてコマンド プロンプトを開き、次のコマンドを実行します。
tabadmin stop
tabadmin set clustercontroller.pgsql_connection_timeout_ms 6000
tabadmin config
tabadmin start

 
値を 6000 に設定した後も問題が継続する場合は、値を再度増やすことができます (最大で 60000 まで)。最善の結果を得るため、できるだけ小さい値を使用することをお勧めします。

原因

既定の時間 (60 秒) よりも Postgres の起動に時間がかかっています。この動作は、低速な入出力またはその他の環境要因が原因である可能性があります。 

詳細情報

Tableau Server は、データベースの起動を設定された時間 (デフォルト値は 60 秒) 待ってから、再試行やデータベースの再起動を行います。このタイムアウトは次の 2 つの workgroup.yml 設定によって決まります。

clustercontroller.pgsql_connection_attempts  (デフォルト値 = 20)
clustercontroller.pgsql_connection_timeout_ms (default value=3000)

これら 2 つの値の積により、タイムアウトの合計量が決まります(60000 ミリ秒つまり 60 秒)。

clustercontroller.pgsql_connection_timeout_ms の値を大きくすると、クラスタ コントローラがフェールオーバーを試行する前に Postgres からの応答を待機する時間が増加します。この設定の値を大きくすると、Tableau Server のパフォーマンスにマイナスの影響が及ぶ場合があります。たとえば、クラスタ コントローラが Postgres を再起動する前に待機する時間が長くなるため、障害発生時に Postgres が実際にダウンしている場合に Tableau Server が応答しない時間が増える可能性があります。このような理由で、この設定ではできるだけ小さい値を使用することをお勧めします。 
常に最善の解決策となるのは、Postgres の起動が遅い原因となっている環境要因を調査することです。長期的な修正のために遅いパフォーマンスを調査している間、素早い解決策として clustercontroller.pgsql_connection_timeout_ms 設定の変更が役立つ場合もあります。 
この記事で問題は解決しましたか?