Files
HC900-Crawler/config/gateway-config.json
windpacer b3985d77fb fix(crawler): realtime_table id bigint(시퀀스 오버플로) + HCX 폴링 비활성
운영 사고 재발 방지:
- realtime_table.id가 SERIAL(int4)이라 매 poll의 nextval 소비로 2^31 도달 →
  전체 realtime 업서트가 'reached maximum value of sequence'로 정지(현장에서 14h
  무갱신 발생, bigint ALTER로 라이브 복구 완료). 신규 배포: CREATE를 BIGSERIAL로,
  기존 배포: 기동 시 멱등 마이그레이션(integer일 때만 bigint+시퀀스 ALTER).
- gateway-config: HCX(IP·맵 없는 플레이스홀더)가 enabled=true라 50055 연결거부
  로그 양산 → enabled=false.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 05:44:11 +09:00

59 lines
1.6 KiB
JSON

{
"shared": {
"binaryPath": "/home/windpacer/projects/hc900_ax/industrial-comm/cpp/build/hc900_gateway",
"ldLibraryPath": "/tmp/grpc_local/usr/lib/aarch64-linux-gnu:/tmp/absl_local/usr/lib/aarch64-linux-gnu",
"logDir": "/tmp"
},
"controllers": [
{
"id": "C1",
"name": "HC900 C1 Controller",
"controllerIp": "192.168.0.250",
"controllerPort": 502,
"grpcPort": 50051,
"pollIntervalMs": 500,
"registerMapPath": "/home/windpacer/projects/hc900_ax/docs/register-map-c1.json",
"enabled": false
},
{
"id": "C2",
"name": "HC900 C2 Controller",
"controllerIp": "192.168.0.230",
"controllerPort": 502,
"grpcPort": 50052,
"pollIntervalMs": 500,
"registerMapPath": "/home/windpacer/projects/hc900_ax/docs/register-map-c2.json",
"enabled": false
},
{
"id": "C3",
"name": "HC900 C3 Controller",
"controllerIp": "192.168.0.240",
"controllerPort": 502,
"grpcPort": 50053,
"pollIntervalMs": 500,
"registerMapPath": "/home/windpacer/projects/hc900_ax/docs/register-map-c3.json",
"enabled": true
},
{
"id": "C4",
"name": "HC900 C4 Controller",
"controllerIp": "192.168.0.220",
"controllerPort": 502,
"grpcPort": 50054,
"pollIntervalMs": 500,
"registerMapPath": "/home/windpacer/projects/hc900_ax/docs/register-map-c4.json",
"enabled": false
},
{
"id": "HCX",
"name": "",
"controllerIp": "",
"controllerPort": 502,
"grpcPort": 50055,
"pollIntervalMs": 1000,
"registerMapPath": "",
"enabled": false
}
]
}