开发人员收件箱是否有必要知道应用程序托管在RAC Oracle数据库上?我们是否需要添加任何额外的机制来使Java应用程序具有RAC感知?即使出现单个 node 故障,应用程序也能维持数据库连接性吗?我们是否需要对Java应用程序执行任何额外的RAC感知测试?

推荐答案

这取决于你想要什么.

  • 您想要零停机时间修补吗?
  • 是否需要平衡 node 之间的负载?
  • 您的应用程序是否只想在出现故障时重新连接到任何幸存的 node ?

以下是我的建议:

  • 不要使用默认DB服务进行连接,请为您的应用创建专用DB服务
  • 使用HikariCP或UCP连接池
  • UCP是Oracle的RAC感知负载平衡连接池库.查看this project以查找如何将您的Hibernate/Spring与UCP集成的示例
  • RAC"仅"保证数据库能够启动并运行,即使其中一个集群 node 丢失.如果您的应用程序还希望保留未提交事务中的数据,则必须在应用程序中实现重新try 机制,或者必须将连接池配置为使用"JB应用程序连续性"收件箱.

Java相关问答推荐

通过推送通知向自己发送Matrix消息

如何让HikariCP指标在NewRelic中正确显示?

Jooq隐式地将bigint转换为数字,并且索引不起作用

Selenium Java:无法访问IFRAME内部的元素

Cucumber TestNG Assert失败,出现java. lang. Numbercycle异常

在spring—data中自动发现native—sql查询期间遇到重复的SQL别名[id]

Spring Batch 5-不要让它在数据库中自动创建表

编译多个.Java文件并运行一个依赖于用户参数的文件

JavaFX如何在MeshView中修复多个立方体?

JPanel透支重叠的JComcoBox

Spring和可编辑";where";@Query

try 从REST API返回对象列表时出错

与IntArray相比,ArrayList<;Int>;对于大量元素的性能极差

Android Java:已设置但未读取SharedPreferences

JOLT根据值删除并保留其余的json键

在应用getCellFormula()时,Excel引用中的文件名始终为";[1]";使用Apache POI()

为什么JavaFX MediaPlayer音频播放在Windows和Mac上运行良好,但在Linux(POPOS/Ubuntu)上却有问题?

OAuth:登录后无法查看Google邮箱地址

在Java中比较同一多维数组的两个不同的字符串元素

控制器建议异常处理