1

我有一个使用 Hibernate 在 Oracle 10g 上运行的应用程序。我想知道是否可以使用 Oracle RAC 使应用程序在数据库故障方面具有高可用性,而无需在应用程序端进行任何代码更改。

我有两个用于应用程序的 Oracle RAC 节点,理想情况下希望能够拔出其中一个节点的插头并让应用程序继续运行,而不会出现任何异常到达应用程序代码。

我的应用程序向数据库发送选择、插入、更新和删除查询。

我一直在阅读有关透明应用程序故障转移的信息,但我发现的网站暗示只有选择查询可以透明地进行故障转移,并且所有其他类型的查询将导致抛出异常并且必须重新执行查询。我宁愿避免这种情况,因为我不想在我的代码库的每个部分添加额外的异常处理来进行数据库查询。

4

1 回答 1

3

对不起,但不是真的。您正在查看透明应用程序故障转移 (TAF),Oracle 目前不支持 TAF,但 SELECT 语句除外。DML 将需要重新启动。查看这篇文章,了解 RAC(和 TAF)可以为您做什么。

无论如何,您都需要能够处理事务失败。这是我们进行交易的一个重要原因......所以我们可以优雅地处理失败的事情。还要意识到,硬件故障(RAC 保护您免受)只是事务可能失败的无数原因之一。

祝你好运,编码愉快!

于 2009-09-30T17:15:48.457 回答