我正在删除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应用程序的人也必须解决这个问题。