PI_PO

JDBC 연계방식 및 다양한 DB 타임아웃 파라미터 정리

피오농부 2025. 3. 15. 21:23
반응형

🔍 JDBC 타임아웃 개요

JDBC 연계 방식에서 다양한 데이터베이스(DB) 환경에서 발생하는 타임아웃 오류를 방지하기 위해 주요 타임아웃 파라미터를 정리하였습니다. SAP PI/PO JDBC Adapter 환경에서 설정할 수 있는 taskTimeout, syncTimeout, 그리고 데이터베이스별 타임아웃 매개변수를 상세히 설명합니다.


📌 1. taskTimeout – JDBC 폴링 채널 타임아웃 설정

✅ taskTimeout이란?

  • JDBC Sender 채널에서 폴링 작업이 실행될 수 있는 최대 시간을 지정하는 파라미터
  • 지정된 시간이 초과되면 해당 폴링 작업이 강제로 중단됨

✅ 기본 설정 값 및 사용법

  • 기본값: 0 (항상 0보다 커야 함)
  • 단위: 초 (seconds)
  • 설정 위치: SAP PI/PO의 JDBC Sender 채널 → Advanced 탭 → Task Timeout (secs)

✅ 설정 예시

  • **300(초)**로 설정하면, JDBC Sender 채널의 쿼리가 최대 5분(300초) 동안만 실행됨
  • 300초를 초과하면 쿼리가 중단되며 재시도(Retry Interval) 설정에 따라 재실행 가능

⚠️ 설정 시 주의할 점

  • 폴링 주기보다 긴 값을 설정하면 불필요한 중복 실행 방지
  • 너무 짧게 설정 시 대량 데이터 조회 시 중단될 위험 존재

📌 2. syncTimeout – 동기 호출 응답 대기 타임아웃

✅ syncTimeout이란?

  • JDBC Sender 채널에서 실행된 SQL 쿼리가 응답을 받을 때까지 대기하는 최대 시간을 설정하는 파라미터
  • 설정된 시간 내에 응답이 없으면 Synchronous timeout exceeded 오류 발생

✅ 기본 설정 값 및 사용법

  • 기본값: 0 (무제한 대기)
  • 단위: 밀리초(ms)
  • 설정 위치: SAP PI/PO의 JDBC Sender 채널 → Advanced 탭 → Sync Timeout (ms)

✅ 설정 예시

  • 30,000(ms) (30초) 설정 시, 30초 동안 응답을 기다렸다가 타임아웃 발생

🔄 taskTimeout vs. syncTimeout 차이점

파라미터기능

syncTimeout DB 응답을 기다리는 최대 시간 (단위: ms)
taskTimeout 폴링 작업이 실행될 최대 시간 (단위: 초)

⚠️ 설정 시 주의할 점

  • 너무 짧으면 정상적인 쿼리도 타임아웃될 가능성
  • 너무 길면 JDBC 채널이 불필요하게 대기하여 성능 저하 가능

📌 3. SOAP 어댑터 타임아웃 (XMBWS.Timeout & XI.Timeout)

✅ 주요 설정값

  • XISOAPAdapterBean 사용 시 → XI.Timeout 설정 필요
  • CallSapAdapter 사용 시 → syncTimeout 설정 필요
  • 타겟 서버가 XISOAPAdapterBean 사용 시 → XMBWS.Timeout 적용

📌 관련 SAP Note: 1621719 - Timeout parameters in SOAP Sender/Receiver Adapter 참고


📌 4. 주요 데이터베이스(DB) 타임아웃 파라미터

Oracle

파라미터 설명
oracle.net.CONNECT_TIMEOUT DB 접속 시 허용하는 시간
oracle.jdbc.ReadTimeout 데이터를 주고받을 때 소요되는 최대 시간
📌 SAP Note 1078420 - XI/PI JDBC Adapter: Setting JDBC driver properties 참고

MSSQL

파라미터 설명
loginTimeout DB 연결 제한 시간 (초)
lockTimeout DB 잠금 해제 대기 시간
sqlquerytimeout JDBC 드라이버가 SQL 실행을 대기하는 최대 시간
📌 SAP Note 1586058 - XI/PI Adapter for SQL Server 참고

DB2

📌 관련 SAP Note: 1385571 - PI JDBC adapter: Connecting a DB2 for IBM i

MySQL

📌 설정 예시:

jdbc:mysql://xxx.xx.xxx.xxx:3306/database?connectTimeout=60000&socketTimeout=60000

PostgreSQL

📌 설정 예시:

jdbc:postgresql://localhost:5432/postgres?options=-c%20search_path=test,public,pg_catalog%20-c%20statement_timeout=90000

📌 공식 문서 참고: PostgreSQL Runtime Configuration


🔍 결론 및 추천 설정

설정 항목 추천값
taskTimeout 300초 (5분)
syncTimeout 30,000ms (30초)
oracle.net.CONNECT_TIMEOUT 10초
MSSQL sqlquerytimeout 60초
MySQL connectTimeout 60초

📌 SAP PO 환경에서 JDBC 및 SOAP 어댑터 설정을 최적화하려면, 타임아웃 값을 상황에 맞게 조정하는 것이 중요합니다.


추가 참고 자료:

반응형