ODP.NETのメタデータキャッシュを無効にする

ODP.NETを使ってアプリケーション実行中、他の端末からテーブルに列を追加したり列名を変更された場合、いままではメタデータがキャッシュに残っていたため、アプリケーションを一旦終わらせてから再度動かす方法で対処していた。
しかし実はこのメタデータキャッシュを無効にする方法がある。
Connection String に"metadata pooling=false"を追加すると無効になる。
ただしいちいちメタデータを確認しに行くので、当然パフォーマンスは落ちる。善し悪し...
開発サーバにはfaseの接続文字列を使い、本番サーバには"metadata pooling=true"で設定するのがよいかと。

(例)
Oracle.DataAccess.Client.OracleConnection hogeCon = new Oracle.DataAccess.Client.OracleConnection();
hogeCon.ConnectionString = "user id=hoge;password=hoge;data source=hogedb;Incr Pool Size=2;metadata pooling=false";


MEMO (21505)