반응형
🔍 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 어댑터 설정을 최적화하려면, 타임아웃 값을 상황에 맞게 조정하는 것이 중요합니다.
✅ 추가 참고 자료:
반응형
'PI_PO' 카테고리의 다른 글
PostgreSQL Error: Column <대문자 컬럼> does not exist in table <대문자 테이블> 해결 방법 (0) | 2025.03.18 |
---|---|
SAP Cloud Connector (SCC) HA(High Availability) 구성 가이드 (0) | 2025.03.17 |
SOAP Sender 채널 강제 중지 방법 및 실행 중단 가능 여부 (0) | 2025.03.16 |
REST 호출 시 Handshake Failure 오류 해결 방법 (0) | 2025.03.15 |
공백(�), CHR(0) 데이터로 인한 SAP PO 매핑 오류 해결 방법 (0) | 2025.03.14 |