滚动发布期间的“无效列索引”

时间:2015-06-30 16:40:03

标签: oracle jruby release-management

我正在删除Oracle数据库中的表列。我的JRuby连接池似乎是缓存元数据并在select:

上引发异常
ERROR 12:40:00.408000 pid=1832 tid=bok56 :: Java::JavaSql::SQLException: Invalid column index: 
SELECT  "MY_TABLE".* FROM "MY_TABLE"  WHERE "MY_TABLE"."ID" = :a1

重新启动我的应用程序的几个JRuby实例将导致池中的连接获取表的正确元数据,但我想在没有停机的情况下执行此部署。 (在滚动重启期间,将有一些服务器具有旧状态,一些服务器具有新状态。)

  • 有没有办法强制我的池中的连接获取新的元数据,可以在select上,也可以在数据库发出元数据已更改的信号时获取?
  • 或者是否有另一种从活动表中删除未使用列的策略?

我不反对多版本(或多次重启)解决方案。 我更喜欢来使用基于Oracle Edition的Redifinition™。

当我在Trinidad上运行JRuby时,我希望有Rails或Java应用程序的人也必须解决这个问题。

0 个答案:

没有答案