문제

정부 기관의 경우 PHP와 Oracle에서 개발 된 릴리스 관리 시스템을 구축합니다. 이 응용 프로그램의 데이터는 데이터베이스 테이블에 저장되며 PL/SQL 패키지 및 절차로 처리됩니다.

릴리스 관리 프로세스는 파괴 저장소에서 나오는 메타 데이터를 기반으로합니다. 내부 Oracle JVM을 통해 PL/SQL의 저장소에 액세스하여 Oracle 인스턴스를 상주하는 UNIX 서버에서 SVN 명령을 실행합니다. SVN 명령의 결과는 XML로 수신되고 PL/SQL에 의해 꿀벌을 처리하기 전에 구문 분석됩니다. 이러한 방식으로 전복에 액세스하는 것은 빈번한 반복적 인 사용을 위해 그다지 성능이 없습니다.

현재, 우리가하는 일은 전복 리포지토리 (전복 후크를 통해)에 각 커밋에 데이터베이스 테이블에 전복 메타 데이터를 저장하는 것입니다. 우리는 각 전복 거래에 대한 로그 정보를 추출하고 일부 Oracle 테이블에 보관합니다. 그런 다음 정상적인 SQL 쿼리로 전복 메타 데이터를 얻을 수 있습니다.

PL/SQL에서 전복에 액세스하는 더 좋은 방법이 있습니까?

도움이 되었습니까?

해결책

Oracle의 Java JVM을 사용하는 경우 사용할 수 있습니다. svnkit 명령을 실행하기 위해 운영 체제로 배포되는 대신 Java와의 SVN 서버와 통신합니다.

다른 팁

기본 흐름이 의미가 있다고 생각합니다. 성능 병목 현상이 정확히 어디에 있는지 확인하기 위해 실험을 수행 한 다음 거기에서 가져 오는 것이 좋습니다. 예를 들어, PL/SQL에서 Oracle JVM으로 교차합니까? SVN 명령을 실행하기 위해 JVM이 쇄도합니까? SVN 왕복입니까? XML의 구문 분석입니까?

예를 들어, 그것은 SVN 왕복입니다. 어쩌면 오라클 머신에 SVN 서버의 답변을 캐시하는 프로세스를 가질 수있어 때때로 왕복 여행을 피할 수 있습니까? SVN 왕복이 비동기 일 수 있습니까?

그러나 내가 말했듯이 병목 현상이 어디에 있는지 알아야합니다.

나는 또한 전복과 오라클을 정복 할 API를 찾고 있습니다. Oracle PL/SQL 객체 (프로 시저, 패키지)를 전복으로 끌어 당기고 객체를 변경하면 Oracle 데이터베이스의 해당 객체에 적용해야합니다.

한 가지 솔루션은 Oracle과 SVN 사이에 머무르는 소프트웨어를 사용하고 PL/SQL을 소스와 동기화하는 것입니다.

다음은 Cron이 시작할 수있는 이러한 프로그램 중 하나입니다.https://sourceforge.net/projects/dbcode-svn-sync/ .

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