일반적으로 쿼리를 던지면 그 결과를 리턴할 때까지 블럭 되는데,
쿼리 결과를 기다리지 말고 바로 리턴하면서, 그 결과는 나중에 비동기적으로 통보를 받고 싶습니다.
일단 쿼리를 비동기적으로 수행하는 함수는 찾았는데. (이 쿼리가 여러 레코드를 반환하는 SELECT 쿼리인 경우) 언제 이 쿼리 수행이 끝나는 지를 알 수가 없더군요. 현재는 비동기쿼리수행 함수를 호출해 놓고 어느 시점에선가 해당 쿼리에 대하여 한 행이라도 리턴 결과가 있는지 조회하는 함수를 주기적으로 호출해야 되던데, 이러지 말고 DB 서버에서 쿼리 수행이 끝난 시점에서 바로 어떤 신호를 받고 싶습니다. 그 신호를 받으면 당연히 리턴결과가 있을 테니까. 바로 리턴 레코드를 조회할 수가 있게 되잖아요. 이렇게 해주는 관련 함수가 혹시 있나요?
쿼리 결과를 기다리지 말고 바로 리턴하면서, 그 결과는 나중에 비동기적으로 통보를 받고 싶습니다.
일단 쿼리를 비동기적으로 수행하는 함수는 찾았는데. (이 쿼리가 여러 레코드를 반환하는 SELECT 쿼리인 경우) 언제 이 쿼리 수행이 끝나는 지를 알 수가 없더군요. 현재는 비동기쿼리수행 함수를 호출해 놓고 어느 시점에선가 해당 쿼리에 대하여 한 행이라도 리턴 결과가 있는지 조회하는 함수를 주기적으로 호출해야 되던데, 이러지 말고 DB 서버에서 쿼리 수행이 끝난 시점에서 바로 어떤 신호를 받고 싶습니다. 그 신호를 받으면 당연히 리턴결과가 있을 테니까. 바로 리턴 레코드를 조회할 수가 있게 되잖아요. 이렇게 해주는 관련 함수가 혹시 있나요?
원하시는 기능은 CUBRID 에는 없습니다.
제가 알기로는 모든 DBMS에서 지원하는 DB API에서 원하시는 기능을 지원 하지 않고 있는 것으로 알고 있습니다.
꼭 구현하셔야 한다면 ASYNC로 DB를 호출 한 상태에서 이벤트 객체나 Observer 객체를 만들어 놓고
while (rs.next ()) {
...
}
Observer.signal(dataObj);
ResultSet에 원하시는 데이터를 다 가져 왔다면 호출 하여 원하시는 기능을 구현 하시면 될 것 같습니다.