Phase 2a: 모듈서버 패턴 + 재사용 빌드시스템 (ac 모듈 38서비스 실동작)
- ac_svr(30 매입서비스 advertise) + rc_svr/st_svr, dbio 정적라이브러리, common 라이브러리 - app/build.sh: 모듈 자동발견(app/src/<mod>/<mod>_svr.pgc) → ecpg+buildserver+ndrxconfig 생성 - ac 배치 2종, 스키마 9테이블, 검증: 41서비스 AVAIL, 체인·배치 psql 커밋, prepared_xacts=0 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
e6e29e6b5d
commit
05a0ff3e56
28 changed files with 1964 additions and 410 deletions
50
docs/service-catalog.md
Normal file
50
docs/service-catalog.md
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
# 서비스 카탈로그 — acquire-core-x (2000본 구성)
|
||||
|
||||
파일 2000본은 유지하되, **모듈당 온라인 서버 바이너리 1개가 그 모듈의 온라인 서비스 다수를
|
||||
`tpadvertise`**하는 실제 Tuxedo 방식으로 프로세스를 구성한다.
|
||||
|
||||
## 프로세스 구성
|
||||
|
||||
| 종류 | 프로세스/파일 | 설명 |
|
||||
|---|---|---|
|
||||
| 모듈 온라인 서버 | 11개 서버 바이너리 = `<mod>_svr` | 각 ~30 서비스 advertise (총 ~350) |
|
||||
| dbio | 링크 라이브러리 (`lib<mod>dbio.a`) | 서비스가 호출하는 EXEC SQL 함수 (~300 .pgc) |
|
||||
| common | 링크 라이브러리 (`libacqcommon.a`) | leaf 유틸 (~120 .c) |
|
||||
| batch | ~180 독립 실행파일 (`main`) | 마감/집계, 온디맨드, XA |
|
||||
| tmsrv | RM1 (PostgreSQL XA) | 2PC 조율 |
|
||||
|
||||
## 모듈별 온라인 서비스 (대표, 각 32개 목표 → 총 ~350)
|
||||
|
||||
- **ac 매입**: ACQUIRE, ACQ_DDC, ACQ_EDI, ACQ_EDC, ACQ_CANCEL, ACQ_CORRECT, ACQ_PARTIAL,
|
||||
ACQ_INSTALL, ACQ_FOREIGN, ACQ_UNMATCH, ACQ_REPROC, ACQ_DUPCHK, ACQ_LIMITCHK, ACQ_FEEADJ,
|
||||
ACQ_STATUS, ACQ_MERCHSUM, ACQ_ISSUERCLS, ACQ_WHT, ACQ_TAXINV, ACQ_APPRLINK, ACQ_DATECHG,
|
||||
ACQ_AMTFIX, ACQ_RECLASS, ACQ_XFERLINK, ACQ_APPRMAP, ACQ_SETTLELINK, …
|
||||
- **au 승인/한도**: AUTH, LIMIT_CHK, LIMIT_DEC, LIMIT_RST, STANDIN, AUTH_CANCEL, AUTH_PARTCXL,
|
||||
FRAUD_DETECT, AUTH_RETRY, INSTALL_AUTH, AUTH_STATUS, …
|
||||
- **rc 대사**: RECONCILE, RC_APPR_ACQ, RC_ACQ_DEP, RC_RETURN, RC_AMTDIFF, RC_CNTDIFF,
|
||||
RC_3WAY, RC_TOLERANCE, RC_REMATCH, RC_HOLD, RC_UNMATCH, …
|
||||
- **st 정산/수수료**: SETTLE, ST_MDR, ST_VANFEE, ST_RELAYFEE, ST_NETTING, ST_VAT, ST_WHT,
|
||||
ST_ADJUST, ST_ADVANCE, ST_DELAYINT, ST_HOLD, ST_SPLIT, ST_PAYDATE(T+n), …
|
||||
- **py 지급**: PAY_FILEGEN, PAY_RESULT, PAY_REPROC, PAY_HOLD, PAY_CANCEL, PAY_ACCTCHK,
|
||||
PAY_SPLIT, PAY_INT, PAY_XFERLINK, …
|
||||
- **lg 원장**: LG_POST, LG_CREDIT, LG_DEBIT, LG_DOUBLE, LG_BALCHK, LG_REVERSE, LG_CARRY,
|
||||
LG_CLOSE_LINK, …
|
||||
- **cl 마감**: CL_DAILY, CL_MONTHLY, CL_QUARTER, CL_SNAPSHOT, CL_RECLOSE, CL_VERIFY, …
|
||||
- **mm 마스터**: MM_MERCH_REG, MM_MERCH_UPD, MM_FEERATE, MM_BIN, MM_LIMIT, MM_CODE, …
|
||||
- **vl 정합성**: VL_SALES, VL_CARD, VL_LIMIT, VL_AMOUNT, VL_ANOMALY, VL_REQUIRED, …
|
||||
- **mg 전문게이트웨이**: MG_RECV, MG_SEND, MG_ISO8583, MG_STAN, MG_ROUTE, MG_RESEND, …
|
||||
- **cm 공통**: CM_CODE, CM_BIZDAY, CM_AMT, CM_SEQ, CM_FX, CM_LUHN, …
|
||||
|
||||
## 대표 tpcall 체인 (실동작 검증 대상)
|
||||
|
||||
1. **매입 체인**: `ACQUIRE` → `RECONCILE` → `SETTLE` → `LG_POST` (글로벌 XA) ← 슬라이스 검증됨
|
||||
2. **승인 체인**: `AUTH` → `LIMIT_DEC` → `FRAUD_DETECT`
|
||||
3. **정산 체인**: `SETTLE` → `ST_MDR` → `ST_NETTING` → `PAY_FILEGEN`
|
||||
4. **마감 배치**: `cl_daily_batch` (커서) → `CL_SNAPSHOT` → `LG_CLOSE_LINK`
|
||||
|
||||
## Phase 2 검증 게이트 (all must pass)
|
||||
|
||||
- 풀빌드: 모든 `.pgc` ecpg→buildserver, 모든 batch/common 컴파일 (EXIT 0)
|
||||
- 전서버 부팅: `xadmin start` 후 모든 `<mod>_svr` + tmsrv `runok`
|
||||
- 전서비스 advertise: `xadmin psc`에 ~350 서비스 AVAIL
|
||||
- 대표 체인 4종: 클라이언트 실행 → psql 커밋 row 확인
|
||||
Loading…
Add table
Add a link
Reference in a new issue