Phase 1: 실동작 Enduro/X + PostgreSQL XA 매입 슬라이스
- Enduro/X 7.0.12 소스빌드 이미지(-DENABLE_POSTGRES=ON, libndrxxaecpg XA 스위치) - docker-compose: postgres(max_prepared_transactions=100) + endurox app - ECPG XA 서비스 3종: ACQUIRE→RECONCILE→SETTLE (tpservice + EXEC SQL) - 클라이언트 tpbegin/tpcall체인/tpcommit → tmsrv 2PC(prepare/commit) 원자 커밋 - 검증: 서비스 AVAIL, 커밋 row(status=S) psql 확인, 롤백 시 무잔존, pg_prepared_xacts=0 - 규명된 런타임 요건: sysctl fs.mqueue.*, ulimit msgqueue/nofile, XA open-str JSON - docs/architecture.md, README, service-catalog 설계 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
commit
e6e29e6b5d
19 changed files with 1005 additions and 0 deletions
26
docker/endurox.Dockerfile
Normal file
26
docker/endurox.Dockerfile
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
# Enduro/X (open-source Tuxedo/ATMI) + ECPG/PostgreSQL client — runnable builder image
|
||||
FROM debian:12
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
RUN apt-get update -qq && apt-get install -y -qq \
|
||||
build-essential cmake flex bison git \
|
||||
libxml2-dev libssl-dev uuid-dev libgpgme-dev \
|
||||
libecpg-dev libpq-dev postgresql-server-dev-all \
|
||||
postgresql-client \
|
||||
procps net-tools vim-tiny ca-certificates curl \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# --- build Enduro/X core from source (tag 7.0.12) ---
|
||||
WORKDIR /opt
|
||||
RUN git clone --depth 1 --branch 7.0.12 https://github.com/endurox-dev/endurox /opt/endurox-src
|
||||
WORKDIR /opt/endurox-src
|
||||
# atmitest 서브디렉터리는 생성헤더(t40.h 등) 의존으로 코어 빌드를 깨뜨려 제외 (DISABLETEST가 실제 제외 안 함)
|
||||
RUN sed -i -E '/add_subdirectory *\(atmitest/d' CMakeLists.txt
|
||||
RUN cmake -DDEFINE_DISABLEDOC=ON -DDEFINE_DISABLETEST=ON -DENABLE_POSTGRES=ON -DCMAKE_INSTALL_PREFIX=/usr/local . \
|
||||
&& make -j"$(nproc)" \
|
||||
&& make install \
|
||||
&& ldconfig
|
||||
# runtime env defaults
|
||||
ENV NDRX_HOME=/usr/local PATH=/usr/local/bin:$PATH LD_LIBRARY_PATH=/usr/local/lib
|
||||
WORKDIR /app
|
||||
CMD ["bash"]
|
||||
Loading…
Add table
Add a link
Reference in a new issue