문제

호출 API를 사용하여 기존 C 응용 프로그램에 JRE를 포함하고 있으며 JDBC를 사용하여 해당 코드의 데이터베이스와 함께 작동 할 수 있습니다. 이 응용 프로그램은 트랜잭션 처리 응용 프로그램이며 데이터베이스 트랜잭션은 응용 프로그램의 C 부분의 코드별로 관리되며 Java 코드는 해당 트랜잭션 내에서 실행해야합니다. 이것은 내가 열 수 없다는 것을 의미합니다새로운 연결, 기존의 것을 재사용해야합니다.

그렇다면 JRE를 설정할 때 기존 ODBC 연결 핸들에 대한 JDBC 액세스를 제공하는 방법이 있습니까? 일부 JDBC-ODBC 브리지는 아마도 그 이름의 기존 드라이버와 달리 기존 연결 및 트랜잭션을 사용하도록 설정할 수 있습니다.

내가 볼 수 있듯이 다른 옵션은 다음과 같습니다.

  • 응용 프로그램에서 가능한 모든 C 작동에 대해 Java 동등한 제품을 제공합니다 (이것은 많은 이유로 바람직하지 않습니다. 우리는 많은 방법을 가지고 있으며 그것들을 복제하는 것은 엉덩이의 고통입니다.

  • JNI와 ODBC 연결을 감싸는 나만의 JDBC 드라이버를 작성하십시오. 물론, 그것은 재미있는 주말 (월) 프로젝트 일 것이지만, 나는 그보다 더 빨리 일을해야 할 것으로 기대합니다.

도와주세요, 스택 오버 플로우, 당신은 나의 유일한 희망!

도움이 되었습니까?

해결책

이것이 작동하는지 모르겠지만 ... Sun의 JDBC-ODBC 브리지의 소스 소스 코드를 간단히 살펴 보았습니다. JDBCODBCConnection을 서브 클래스하여 알려진 연결 핸들 및 이미 열린 상태로 초기화 할 수있는 것 같습니다. 이는 Java 측의 연결 핸들이 연결 객체에 대한 실제 ODBC 연결 핸들 또는 포인터이며 JDBC-ODBC 브리지가 사용하는 ODBC 라이브러리와 코드가 연결 핸들을 공유 할 수 있다는 점에서 호환된다고 가정합니다.

Sun의 라이센스를 통해 개발자가 그러한 속임수를 수행 할 수 있는지 확인해야합니다.

다른 팁

태양은 a JDBC-ODBC 브리지 JDK에서.

편집 : 이미 알고있는 것처럼 소리를 내고 사용하고 싶지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top