0
다른 서버에있는 Oracle 저장 프로 시저를 호출하고 있습니다. 따라서 네트워크 문제가 발생하면 OCI_Execute (statement)에서 응용 프로그램이 "멈춤"합니다.C - 저장 프로 시저 호출 시간 제한 설정 (ocilib)
이 SP 실행 시간 초과를 설정해야하거나 연결 상태를 확인해야 할 때 일반적인 방법이 무엇인지 알 수 없습니다. 어떻게 프로그램이 네트워크에 장애가 발생하면 내동댕이 - OCI_Execute(stmt);
-,이 기능 execStoredProc
의 첫 번째 줄에 있어요
#include <stdio.h>
#include <ocilib.h>
OCI_Connection *dbConn;
OCI_Statement *storedProcStmt;
otext *storedProcQuery = "BEGIN TEST_PROC (:param1,:param2,:result); END;";
int main()
{
if(connectDB() != 0){
return (1);
}
storedProcStmt = OCI_StatementCreate(dbConn);
OCI_Prepare(storedProcStmt, storedProcQuery);
char paramResult[3] = "";
OCI_BindString(storedProcStmt, ":param1", "123", strlen("123"));
OCI_BindString(storedProcStmt, ":param2", "abc", strlen("abc"));
OCI_BindString(storedProcStmt, ":result", paramResult, 2);
execStoredProc(storedProcStmt);
printf("RESULT:\n");
printf("%s\n", paramResult);
return (0);
}
int connectDB()
{
if (!OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT))
return (EXIT_FAILURE);
dbConn = OCI_ConnectionCreate("xe", "user", "password", OCI_SESSION_DEFAULT);
if (dbConn == NULL)
{
printf("Could not connect to DB\n");
return (1);
}
printf("Connected to DB\n");
return (0);
}
int execStoredProc(OCI_Statement *stmt)
{
OCI_Execute(stmt);
OCI_Commit(dbConn);
OCI_StatementFree(stmt);
}
내가 말했듯이 : 여기
무엇 내가 뭘의 예입니다 이 함수를 실행하려면 예를 들어 5 초를 설정합니다. 검색 할 내용이나 코드 예제에 대한 힌트가 필요합니다. 감사합니다.