| 作業者遠隔保守担当 | pgAdmin基幹サーバ側 | 企画調整室 | pgAgentパソカサーバ側 |
|---|---|---|---|
| ▶ フェーズ 1:保守開始・ログ記録 | |||
|
▶ 遠隔保守 開始
|
|||
|
STEP 1
pgAdmin:保守開始登録
pgAdmin クエリツールを開き、
maintenance_log に開始情報を挿入。 |
pgAdmin 実行 SQL
保守開始レコードを INSERT
INSERT INTO maintenance_log
(start_at, operator, usb_key_no, status)
VALUES (NOW(), '担当者名', 'USB-XXX', 'IN_PROGRESS');
|
||
|
STEP 2
作業ログ記録開始
pgAdmin クエリツールにて
work_log へのINSERT文で記録開始をマーク。 |
pgAdmin 実行 SQL
作業ログ:セッション開始記録
INSERT INTO work_log (log_id, logged_at, action, result)
VALUES (:log_id, NOW(), 'SESSION_START', 'OK');
|
||
| ▶ フェーズ 2:受信ファイル確認 | |||
|
STEP 3
受信ファイル確認
pgAdmin でパソカDB の受信ファイルテーブルを照会。
|
pgAdmin 照会
受信ファイルを SELECT
SELECT * FROM pasoca_received_files
WHERE receive_date = CURRENT_DATE
ORDER BY received_at DESC;
|
||
|
STEP 4
受信ファイル存在確認
クエリ結果の件数で判断。
|
|||
|
YES 受信ファイルあり
正常終了ルート
→ STEP 19(作業ログ停止)へジャンプ
|
pgAdmin SQL
正常終了を work_log に記録
INSERT INTO work_log (log_id, logged_at, action, result)
VALUES (:log_id, NOW(), 'FILE_CHECK', 'FILE_EXISTS');
|
||
|
NO STEP 5
状況連絡
pgAdmin にて
notice_log へ INSERT し企画調整室に通知。(メール通知連携 or 画面確認) |
pgAdmin SQL
通知ログを INSERT・work_log に記録
INSERT INTO notice_log
(log_id, notice_at, notice_type, message)
VALUES (:log_id, NOW(), 'NO_FILE', '受信ファイルなし');
|
STEP 6
状況連絡受理
企画調整室担当が pgAdmin または通知メールで確認し、受理ステータスを UPDATE。
|
|
| ▶ フェーズ 3:日締め確認・バッチ起動時間変更(pgAgent スケジュール変更) | |||
|
STEP 7
日締め確認
pgAdmin で事業者共通システムの日締めステータスを照会。
|
pgAdmin 照会
日締めステータスを SELECT
SELECT close_status, closed_at
FROM daily_close_status
WHERE business_date = CURRENT_DATE;
|
||
|
STEP 8
起動時間確認(デフォルト)
pgAdmin の pgAgent ジョブ管理画面またはクエリで現在スケジュールを確認。
|
pgAdmin 照会
pgAgent スケジュールを SELECT
SELECT jscid, jschours, jscminutes, jscenabled
FROM pgagent.pga_schedule
WHERE jscjobid = :etc_batch_job_id;
|
pgAgent 現在値
デフォルト起動時間:0700
jschours[7] = TRUE の状態を確認。 |
|
|
STEP 9
起動時間変更(pgAgent スケジュール)
pgAdmin の pgAgent GUI またはクエリで起動時間を変更入力。
条件:①0900〜1800 ②現在時刻+2分以上 ↓
STEP 10
起動時間確認(変更後)
変更後の
jschours を SELECT で確認。 |
pgAdmin SQL
スケジュールを UPDATE
-- 例:09:00 に変更
UPDATE pgagent.pga_schedule
SET jschours = ARRAY[
false,false,false,false,false,false,false,
false,false,true, -- index 9 = 09時
false,false,false,false,false,false,false,
false,false,false,false,false,false,false]
WHERE jscjobid = :etc_batch_job_id;
※ CHECK制約またはトリガーで0900〜1800・現在時刻+2分を検証。
|
pgAgent SCHED
スケジュール変更を検知・反映
pga_schedule の更新をリアルタイムに認識し、次回起動時間を再設定。 |
|
|
STEP 11
起動時間確定(work_log 記録)
変更完了後、変更操作を作業ログに記録。
|
pgAdmin SQL
変更履歴を work_log に記録
INSERT INTO work_log
(log_id, logged_at, action, result, detail)
VALUES (:log_id, NOW(), 'BATCH_TIME_CHANGE',
'OK', '0700→0900');
|
||
| ▶ フェーズ 4:バッチ実行・確認 | |||
|
STEP 12 AUTO
日確定明細バッチ 自動起動
設定時刻になると pgAgent が
pga_jobstep を実行。バッチ処理を開始。-- pgAgent が自動実行
pga_jobstep → ETC日確定明細バッチ起動
|
|||
|
STEP 13
システムログ確認
pgAdmin で pgAgent のジョブ実行ログを照会し正常終了を確認。
↓
STEP 14
利用状況チェック
pgAdmin でパソカ利用状況テーブルを SELECT。
|
pgAdmin 照会
pgAgent 実行ログを SELECT
SELECT jlgid, jlgstart, jlgend,
jlgstatus, jlgresult
FROM pgagent.pga_joblog
WHERE jlgjobid = :etc_batch_job_id
ORDER BY jlgstart DESC LIMIT 5;
↓
pgAdmin 照会
パソカ利用状況を SELECT
SELECT * FROM pasoca_usage_status
WHERE target_date = CURRENT_DATE;
|
pgAgent AUTO
バッチ実行結果を pga_joblog に自動記録
実行開始/終了時刻・ステータス・結果を pgAgent が自動書き込み。
|
|
| ▶ フェーズ 5:起動時間デフォルト復元 | |||
|
STEP 15〜17
起動時間をデフォルト(0700)に復元
現在値確認 →
pga_schedule を 0700 に UPDATE → 確認。 |
pgAdmin SQL
スケジュールをデフォルトに復元・変更履歴記録
-- index 7 = 07時 に戻す
UPDATE pgagent.pga_schedule
SET jschours[7] = true,
jschours[9] = false -- 変更後時間を解除
WHERE jscjobid = :etc_batch_job_id;
INSERT INTO work_log (log_id, logged_at, action, result, detail)
VALUES (:log_id, NOW(), 'BATCH_TIME_RESTORE', 'OK', '変更後→0700');
|
pgAgent SCHED
デフォルトスケジュールに再設定
復元された
jschours を認識し翌日から 0700 で起動。 |
|
| ▶ フェーズ 6:作業ログ停止・終了報告・保守終了記録 | |||
|
STEP 18
起動時間確認(デフォルト)
pgAdmin で
jschours[7] = TRUE を確認。 |
pgAdmin 照会
スケジュール復元確認 SELECT
SELECT jschours[7] AS default_0700
FROM pgagent.pga_schedule
WHERE jscjobid = :etc_batch_job_id;
|
||
|
STEP 19
作業ログ記録停止・CSV保存
pgAdmin クエリツールで
work_log を抽出し CSV エクスポート。 |
pgAdmin SQL
作業ログを SELECT → CSV ダウンロード
SELECT * FROM work_log
WHERE log_id = :log_id
ORDER BY logged_at;
-- ↑ クエリツールの「CSV保存」ボタンで出力
セッション終了レコードも INSERT して完結。
|
||
|
STEP 20
終了報告
pgAdmin にて
notice_log へ終了報告レコードを INSERT(メール通知連携可)。 |
pgAdmin SQL
終了報告通知を INSERT
INSERT INTO notice_log
(log_id, notice_at, notice_type, message)
VALUES (:log_id, NOW(), 'COMPLETE', '作業終了報告');
|
STEP 21
終了報告受理
企画調整室が pgAdmin で
notice_log を確認し、受理 UPDATE 実行。 |
|
|
STEP 22
pgAdmin:保守終了登録
maintenance_log に終了時刻を UPDATE。記録簿完了。 |
pgAdmin SQL
maintenance_log に終了時刻を UPDATE
UPDATE maintenance_log
SET end_at = NOW(), status = 'COMPLETED'
WHERE log_id = :log_id;
|
||
|
■ 遠隔保守 終了
|
|||
jschours[7]=true、0900 = jschours[9]=true。log_id と日付を含めること。notice_log の受理更新は専用ストアドプロシージャ経由を推奨。