반응형
ORA-29268: HTTP client error during communication
ORA-29268 오류는 Oracle의 UTL_HTTP 패키지를 사용하여 HTTP 요청을 보낼 때 네트워크 문제 또는 서버 응답 오류로 인해 발생합니다.

오류 원인
ORA-29268 오류는 다음과 같은 원인으로 인해 발생할 수 있습니다:
- 잘못된 URL 또는 응답 없음: - 요청한 URL이 존재하지 않거나, 서버가 응답하지 않을 수 있습니다.
- 방화벽 또는 네트워크 차단: - 내부 방화벽 설정으로 인해 외부 HTTP 요청이 차단될 수 있습니다.
- UTL_HTTP 설정 문제: - `UTL_HTTP.REQUEST` 또는 `UTL_HTTP.BEGIN_REQUEST` 호출 시 적절한 인수를 전달하지 않았을 수 있습니다.
- SSL/TLS 문제: - HTTPS 요청 시 Oracle Wallet이 적절하게 설정되지 않았거나, 신뢰할 수 없는 인증서 문제일 수 있습니다.
해결 방법
ORA-29268 오류를 해결하기 위해 다음 단계를 수행할 수 있습니다:
- 요청 URL이 정상적인지 확인: - 웹 브라우저 또는 `curl` 명령어로 URL이 정상 응답하는지 확인합니다.
curl -I https://example.com
- Oracle에서 네트워크 액세스 허용: - ACL(Access Control List)을 추가하여 HTTP 요청을 허용합니다.
BEGIN DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE( host => 'example.com', lower_port => 80, upper_port => 443, ace => xs$ace_type(privilege_list => xs$name_list('connect'), principal_name => 'HR', principal_type => xs_acl.ptype_db)); END; /
- UTL_HTTP 요청 코드 확인: - 요청을 보낼 때 올바른 형식으로 설정합니다.
DECLARE req UTL_HTTP.REQ; resp UTL_HTTP.RESP; buffer VARCHAR2(4000); BEGIN req := UTL_HTTP.BEGIN_REQUEST('https://example.com', 'GET'); resp := UTL_HTTP.GET_RESPONSE(req); LOOP UTL_HTTP.READ_LINE(resp, buffer); DBMS_OUTPUT.PUT_LINE(buffer); END LOOP; UTL_HTTP.END_RESPONSE(resp); EXCEPTION WHEN UTL_HTTP.END_OF_BODY THEN UTL_HTTP.END_RESPONSE(resp); END; /
- SSL 인증서 확인 및 Oracle Wallet 구성: - HTTPS 요청 시 Oracle Wallet이 올바르게 설정되었는지 확인합니다.
orapki wallet display -wallet /path/to/wallet
- 방화벽 및 네트워크 설정 확인: - 서버에서 외부 HTTP/HTTPS 요청이 차단되지 않았는지 확인합니다.
telnet example.com 80
간단 요약
- ORA-29268 오류는 HTTP 요청이 실패했을 때 발생합니다.
- 해결 방법: - 요청 URL이 유효한지 확인 - ACL을 추가하여 네트워크 액세스 허용 - `UTL_HTTP.BEGIN_REQUEST` 및 `UTL_HTTP.GET_RESPONSE` 코드 검토 - HTTPS 요청 시 Oracle Wallet을 설정 - 방화벽 및 네트워크 설정 점검
반응형
'SW > Database' 카테고리의 다른 글
ORA-01002: Fetch out of sequence / 원인과 해결 방법 (0) | 2025.03.04 |
---|---|
ORA-14109: Partition-extended table name syntax is disallowed for this object / 원인과 해결 방법 (0) | 2025.03.02 |
ORA-07413: Attempt to write to a file that is not open / 원인과 해결 방법 (0) | 2025.03.02 |
ORA-29275: Partial multibyte character / 원인과 해결 방법 (0) | 2025.03.02 |
ORA-08177: Can't serialize access for this transaction / 원인과 해결 방법 (0) | 2025.03.02 |