9

对于政府机构,我们构建了一个使用 PHP 和 Oracle 开发的发布管理系统。此应用程序的数据存储在数据库表中,并使用 PL/SQL 包和过程进行处理。

发布管理过程广泛基于来自 Subversion 存储库的元数据。我们通过内部 Oracle JVM 从 PL/SQL 访问存储库,以在驻留 Oracle 实例的 unix 服务器上执行 svn 命令。svn 命令的结果以 XML 格式接收并在 PL/SQL 处理之前进行解析。对于频繁重复使用,以这种方式访问​​ Subversion 的性能不是很好。

目前,我们所做的是在 Subversion 存储库中的每次提交时将 Subversion 元数据存储在数据库表中(通过 Subversion 挂钩)。我们提取每个 Subversion 事务的日志信息并将其保存在一些 oracle 表中。然后我们就可以通过正常的 SQL 查询获得 Subversion 元数据。

有没有更好的方法从 PL/SQL 访问 Subversion?

4

4 回答 4

2

如果您使用 Oracle 的 Java JVM,您可以尝试使用SVNKit从 Java 本地与 SVN 服务器通信,而不是向操作系统发送命令来执行命令。

于 2008-09-26T15:23:36.127 回答
2

我认为基本流程是有道理的。我建议进行实验以查看性能瓶颈的确切位置,然后从那里获取。例如,它是否从 PL/SQL 跨越到 Oracle JVM?执行 svn 命令是 JVM 脱壳吗?是svn往返吗?是解析XML吗?

例如,假设它是 svn 往返。也许你可以在 oracle 机器上有一个进程来缓存来自 svn 服务器的答案,以便有时可以避免往返?也许svn往返可能是异步的?

但是,就像我说的,你需要知道瓶颈在哪里。

于 2008-09-26T15:35:35.910 回答
1

我也在寻找一个 API 来整合 Subversion 和 Oracle。我需要能够将 Oracle PL/SQL 对象(过程、包)提取到 Subversion 中,然后一旦对对象进行了更改,它就应该应用于 Oracle 数据库中的那些对象。

于 2009-02-04T22:49:11.377 回答
1

另一种解决方案是使用介于 ORACLE 和 SVN 之间并将 PL/SQL 与源同步的软件。

这是可以由 cron 启动的这些程序之一: https ://sourceforge.net/projects/dbcode-svn-sync/ 。

于 2011-04-25T10:51:40.943 回答