M12i.

学術書・マンガ・アニメ・映画の消費活動とプログラミングについて

Oracle.ManagedDataAccess v12.1.022でOracleDB 12.1.0.2.0に接続しORA-12570

オンプレ環境に配備されていたOracleDB 12cからOCI(Oracle Cloud Infrastructure)に構築されたOracleDB 12cへ移行しようとしたときに確認されたエラーです。

前提

  • DBに接続するアプリケーションはC#で実装さてている。
  • DB接続のためのドライバにはOracle.ManagedDataAccess v12.1.022(あるいはそれ以下)を利用している。
  • 移行先のOracleDBは v12.1.0.2.0である。

事象

アプリケーションから移行先のOracleDBに接続を試みたところ、「ORA-12570: ネットワーク・セッション: 予期しないパケット読み取りエラーが発生しました」というエラーが発生。

回避策

使用するDB接続ドライバを Oracle.ManagedDataAccess v12.1.24*にマイナーアップグレードする。
これに伴い依存するOracle.ManagedDataAccess.EntityFrameworkもアップグレードされる。

そもそも v12.1.022は非production版であり本来は製品利用はしてはならないものとされている。しかし問題のアプリケーションは納品時からこのバージョンを利用していた。幸いにもv12.1.022は非production版の中で最後のバージョンであり、production版との間で行われた修正は暗号化方式の強化やORAファイルの検索パスの強化など非機能的なものに限られていた。