1. 事象
ワークフローオプションなどでファイル書出し申請を行った際に「サーバーに接続できません」
というエラーが表示されOKボタンを押下すると、出力したZIPファイルが消えてしまうなど、
サーバが応答しない場合は発生時間帯のServer側のログに何らかのエラーが記録されていないか
ご確認ください。
※以下はメールサーバが異常だった時にInterSafeに記録されたログです ※導入バージョン、導入先によりフォルダパスが異なる場合があります。 ■ ログの確認 ・Apacheログ C:\Program Files\Apache Software Foundation\ApacheX.X\logs \error-yyyy-mm-dd.log 例:[error] (OS 10060)接続済みの呼び出し先が一定の時間を... [error] (70007)The timeout specified has expired \access_yyyy-mm-dd.log 例:POST /ISWorkflow/faces/wfView.jsf HTTP/1.1" 500 541 300 ・Tomcatログ C:\Program Files\Apache Software Foundation\Tomcat X.X\logs\ilpweb \is-ilpweb-error.log 例:[ajp-bio-8009-exec-1018] ERROR (LeoWorkflow:?:?)(null) - failed to mail send. C:\Program Files\Apache Software Foundation\Tomcat X.X\logs\server \is-server-error.log 例:[ajp-bio-8009-exec-906] FATAL (ISServer:?:?)(null) - メールエラー Apacheログで(OS 10060)のログが記録されている場合、最初に記録された日時を中心に
他のLogを確認してください。
2. 考えられる原因と対処方法 2-1.autovacuumによるサーバーの高負荷 PostgreSQLではデータが削除された領域を再利用するため、デフォルトでは
autovacuumがONになっていますが、大規模環境で利用される場合などでは
運用時間帯に実行されるとサーバーの負荷が上がり、処理に支障をきたす
場合があります。この場合は、以下の操作で、autovacuumをOFFにしてください。
2-1-1.postgresql.confをメモ帳等で開く 標準格納先 : C:\Program Files\PostgreSQL\XX\data 2-1-2.autovacuumで検索いただき、下記のように修正し保存する 修正前) #autovacuum = on 修正後) autovacuum = off 2-1-3. 設定ファイルの再読み込み
2-1-3-1.コマンドを実行し、再読み込みを実施します。
cd "C:\Program Files\PostgreSQL\XX\bin" pg_ctl reload -D "C:\Program Files\PostgreSQL\XX\data"
|
2-1-3-2.設定が反映していることを確認します
psql -d ISDB -U postgres -c "SHOW autovacuum;"
|
※PostgreSQLのパスワードを求められるので、入力します。(デフォルト:password) ※以下のように表示されていれば設定が変更されております。
autovacuum ------------ off (1 行)
|
autovacuumをoffにした場合は、夜間・休日などサーバ負荷が低い時間帯で vacuum処理を必ずスケジュール実行してください。 -------------------------------------------------------------------- @echo on set PG_BIN=C:\Program Files\PostgreSQL\XX\bin set PATH=%PATH%;%PG_BIN% vacuumdb.exe -z -U postgres ISDB
---------------------------------------------------------------------
2-2. アンチウイルススキャンによるサーバーの高負荷 アンチウイルスでは定期的にディスクスキャンを行うものがあります。事象発生時間帯に
ディスクスキャンが実行されていないかを確認し、負荷の低い時間帯に行うなどご検討
ください。
F-Secureなどサーバに同居しているアンチウイルスによりサービス起動に問題が発生する
場合があります。この場合、以下の対応を行い、改善しないかご確認ください。
・アンチウイルスから以下フォルダ除外
C:\Program Files\Apache Software Foundation\ApacheX.X C:\Program Files\Apache Software Foundation\Tomcat X.X C:\Program Files\PostgreSQL\XX ※ ドライブ/パスは環境/Verにより変わります。 ・サービスの遅延起動に変更
[ApacheX.X] [Apache Tomcat X.X TomcatX] [postgresql-x64-XX - PostgreSQL Server XX] 2-3. PostgreSQL DB肥大化によるPostgreSQL負荷の増大 大規模環境の場合、DBの肥大化により自動で行われているautovacuum 処理が終わらず、
高負荷になることで、ユーザリクエストに応えられない状態になっていると考えられます。
以下コマンドを実行いただき、テーブル情報のご確認をお願いいたします。
"C:\Program Files\PostgreSQL\XX\bin\psql" -d ISDB -U postgres -c "SELECT * FROM pg_stat_user_tables order by relname;" -A -F, > C:\ILPLog\tableData_%date:~0,4%%date:~5,2%%date:~8,2%.csv
|
※コマンド実行前にあらかじめログ出力先のフォルダ(C:\ILPLog)を作成いただく必要がございます。 デットタプル(再利用されない領域 : n_dead_tupカラム)の値が大きい場合、
PostgreSQLがautovacuumにより再利用可能な領域に再編を試みますが、
日中処理が込み合う時間帯で実行されると今回のような事象になってしまうことが
報告されています。この場合は、ひとまず上記1項の手順でautovacuumをOFFにした後 DBのバックアップリストアによりDBを再編してください。 バックアップリストアについてはFAQ:3685をご参照ください。 ※大容量データのバックアップ/リストア目安時間 DBサイズ:1,000GB の場合 バックアップ:約24時間/リストア:約15時間<暫定的なトラブル回避方法>PostgreSQLからの応答が無くなることで本エラーが頻発する際は事象(Apacheログで「OS 10060」)
発生時に以下のようなスクリプトを発行することで回避可能です。暫定対処としてご利用ください。
--------------------------------------------------------------------
@echo on
set PG_BIN=d:\Program Files\PostgreSQL\XX\bin
set PATH=%PATH%;%PG_BIN%
psql -U postgres -w -d ISDB -h localhost -q -t -f C:\tools\sparge.sql
---------------------------------------------------------------------
C:\tools\sparge.sqlの内容
---------------------------------------------------------------------
SELECT pg_terminate_backend(pid)
FROM pg_stat_activity
where datname = 'ISDB'
and usename in ('ismanager', 'isserver', 'isilpweb')
and pid <> pg_backend_pid();
---------------------------------------------------------------------
※ Apacheログを検知してスクリプトを実行させるにはBOM for Windows等の
サーバー監視ツールをご利用ください。
3. その他
上記に該当しない場合は、以下のログを圧縮してお送りください。
C:\Program Files\Apache Software Foundation\Tomcat X.X\logs
C:\Program Files\Apache Software Foundation\ApacheX.X\logs
C:\Program Files\PostgreSQL\XX\data\log
※ ドライブ/パスは環境/Verにより変わります。
※ 明らかに関係の無い過去日付のログは除いてください。