豚吐露@wiki

Database/Oracle/tips/32bit版と64bit版のODACを共存させたい

最終更新:

ohden

- view
管理者のみ編集可

32bit版と64bit版のODACを共存させたい

Windows 7-64bit Professional
Oracle Client
ODAC 11.2 Release 5 and Oracle Developer Tools for Visual Studio (11.2.0.3.20)
64-bit ODAC 11.2 Release 5 (11.2.0.3.20) for Windows x64

Download
まず、32bit版と64bit版でversionを合わせんとAssemblyで取得できないってerrorが出るから、versionは合わせてdownloadしてくること。
あと、64bit版だけ、インストーラが付属しないxcopy版ってのがあるみたい。xcopy版は、インストーラ版よりもreleaseが早いみたいだけど...アンインストール時とか結構トラブルの元。そもそも32bit版に同versionが無かったりするので共存考えてるんならオススメはできない。

と、言うわけで、まずはversionを合わせてdownload。
32bit版 ODTwithODAC1120320_32bit.zip 32bit版
64bit版 ODAC1120320_x64.zip 64bit版
※先に右のlink触って『ライセンス に同意する』選択しとけばdownloadできる。シングル・サインオンは出てくるけど...
※Oracleへuser登録とか必要やけどその辺は割愛。

Install
お次は、実際にinstall。
32bit版からでも64bit版からでもどちらでも良い。が、1つだけ共存させるための条件がある。『Oracleベース・ディレクトリ』を32bit版と64bit版で変えてやること。

ODACをinstallする場合、defaultのinstall先は以下の様なpathになるハズ。
C:\app\ORACLE_USER\product\11.2.0\client_1
※ORACLE_USERの部分は、loginしてるuser名になるハズ。
この『C:\app\ORACLE_USER』の部分を『Oracleベース・ディレクトリ』と呼ぶ。
が、appの下のdirを呼ぶのか、productの上のdirを呼ぶのか定義が不明なので、dirの構造は基本に準じるようにしといた方が無難。

共存させる場合、『Oracleベース・ディレクトリ』を変えないといけないので...
32bit版 C:\app\Oracle_x86
64bit版 C:\app\Oracle_x64
とかって感じに分かるように変えてやる。
※仮に、32bit版と64bit版で『Oracleベース・ディレクトリ』を一緒にすると、後からinstallした方の途中で『OracleMTSRecoveryService』のサービスが重複してしもうとるから登録できんよってエラーが出る。

install対象は、必要な物を選択。分からんかったら全部選べば良い。
これで32bit版、64bit版をinstallすれば、install自体は問題無く終わるハズ。

installが終わったら設定。tnsnames.oraを設定してやらんといけんのんじゃが、これは32bit版と64版で別個に設定してやらんとダメ。
32bit版 C:\app\Oracle_x86\product\11.2.0\client_1\Network\Admin\tnsnames.ora
64bit版 C:\app\Oracle_x64\product\11.2.0\client_2\Network\Admin\tnsnames.ora
※file自体は無いのでsampleを参考にしてやりながら書いてやる。

これで、32bit版と64bit版、両方の環境でDB接続が上手くいくようになったハズ。

補足説明
上手くいかん場合は、sqlplusでそれぞれDB接続ができるか確認してみること。ダメ環境だとそれすら出来ないハズ。
32bit版 C:\app\Oracle_x86\product\11.2.0\client_1\sqlplus.exe
64bit版 C:\app\Oracle_x64\product\11.2.0\client_2\sqlplus.exe

で、個別に接続できるんだけど、Visual Studioとかでdebug時に怒られたりするようなら、『C:\Windows\assembly』を確認。
Oracle関係のversionで意図しないものが残って無いか確認してみること。
32bit、64bitの所望の環境だけちゃんと入ってたら、こんな風に表示される。※公開キートークンでsortするとOracle絡みのassemblyをまとめられる。


まぁなんでこんな事せんといけんくなったんかと言うと...
WindowsアプリケーションとIIS上で動くASP.NETのアプリケーションを同時にいじらんとダメじゃったんじゃが...
開発環境がVisual Studio 2008で、IISExpressのアプリケーションプールを64bitモードで動作させる方法が分からんかったから...
64bit版のODACだけ入れるとASP.NETの方が...32bit版だけ入れるとアプリケーションの方が...
まぁ、その段階では、32bit版と64bit版でversionの差異があった訳ですが...Oracleも32bit版と64bit版1つのinstallerにしてくれりゃぁえぇのに...(´・ω・`)


更新日: 2021年02月19日 (金) 17時38分38秒

名前:
コメント:

すべてのコメントを見る
添付ファイル
記事メニュー