Linux에서 proc를 할 경우 프로그램 종료에 관련되어 질문 드립니다.
글쓴이: baarong / 작성시간: 월, 2019/06/10 - 1:51오후
리눅스를 이용해서 오라클 Pro*C를 작업하고 있습니다.
그런데 문제는 EXEC 구문을 만나면 프로그램이 그냥 종료되고 있는 문제가 발생하고 있습니다.
int proc_wrk_end(char *target) { struct rcv_lane_data *rd; struct hi_wrk_end *pk_in; int iCrjb; int start_sno; int end_sno; int ii; EXEC SQL BEGIN DECLARE SECTION; struct sp_adjust_ins pr_out; char plz_id[2+1]; char lane_no[2+1]; char year[4+1]; char mon[2+1]; char day[2+1]; int ret; char *stmt = "BEGIN SP_ADJUST_INS(:v1, :v2, :v3, :v4, :v5, :v6, :v7, :v8, :v9, :v10, :v11, :v12, :v13, :v14, :v15, :v16, :v17, :v18, :v19, :v20, :v21, :v22); END"; EXEC SQL END DECLARE SECTION; printf("1111\n"); char tmp[10]; memset(tmp, 0x00, sizeof(tmp)); memset((char *)&pr_out, 0, sizeof(pr_out)); printf("2222\n"); rd = (struct rcv_lane_data *)target; pk_in = (struct hi_out_way_wrk_end *)rd->buf; start_sno = lb_data2atoi(rd->st_snd_no, 10); end_sno = lb_data2atoi(pk_in->seq_no, 10); printf("3333\n"); EXEC SQL PREPARE sProc FROM :stmt; printf("4444\n"); sprintf((char *)pr_out.in_id, "%.4s%c", pk_in->wrkr_no+2, '\0'); e_memcpy(pr_out.in_fare, rd->plz_id); e_memcpy(pr_out.in_booth, rd->lane_no); sprintf((char *)pr_out.in_st_date, "%.4s%.2s%.2s%.2s%.2s%.2s", pk_in->wrk_start_year, pk_in->wrk_start_month, pk_in->wrk_start_day, pk_in->wrk_start_hour, pk_in->wrk_start_min, pk_in->wrk_start_sec); sprintf((char *)pr_out.in_ed_date, "%.4s%.2s%.2s%.2s%.2s%.2s", pk_in->wrk_end_year, pk_in->wrk_end_month, pk_in->wrk_end_day, pk_in->wrk_end_hour, pk_in->wrk_end_min, pk_in->wrk_end_sec); printf("5555\n");
실제로 찍히는 것은 3333 까지만 찍히고 프로세스는 종료가 되고 있습니다.
접속에 대해서는 3333 밑에 sleep을 걸어서 실제 DB 연결상태를 확인하였을 경우에도 연결 상태를 확인했습니다.
왜 프로그램이 종료가 되는 걸까요..ㅠ
원인을 모르겠어서 고수님들의 답변 부탁드립니다.
Forums:
댓글 달기