CUBRID JAVA Stored Procedure는 현재 연결된 데이터베이스 이외에 외부의 다른 데이터베이스에 연결할 수 있다.
단순히 connection 설정을 내부가 아닌 외부로 설정해주기만 하면 된다.
내부 connection 설정은
Connection conn = DriverManager.getConnection("jdbc:default:connection:");
외부 connection 설정은
Connection conn = DriverManager.getConnection("jdbc:CUBRID:192.168.2.100:33000:demodb:::","","");
일반 JDBC 프로그램에서 connection 설정하는 것과 동일하게 JAVA SP 내에서 사용하면 그대로 외부 데이터베이스에 접속하게 된다.
여기서 한가지 두 connection의 차이가 있다.
내부 connection은 Broker을 통하지 않지만, 외부 connection은 해당 서버의 Broker을 통해서 접속한다는 것이다.
위 외부 connection 설정 예제의 33000이 접속하고자 하는 서버의 Broker port를 나타낸다. 즉, 접속하고자 하는 서버에 Broker가 기동되어 있어야 외부 connection을 얻어 올 수 있다는 것이다.
당연한 이야기처럼 보이겠지만 JAVA SP를 사용하는 경우는 대부분 아래와 같이 이미 connection이 이루어져 있는 상태에서 사용하게 된다는 것을 생각해보면 충분히 놓일 수 있는 사항이다.
Connection conn = DriverManager.getConnection("jdbc:CUBRID:localhost:33000:demodb:::","","");
CallableStatement cstmt = conn.prepareCall("?=CALL selectdata()");
정리하면 외부 connection을 사용할 때는 해당 서버에 DB 및 Broker가 기동되어 있어야 한다는 것이다.