今回も技術的な小ネタを披露致します。
ただし今回は非常にニッチです。
需要はあるのかどうか分かりません!
お題はMapServerのビルド時に
Oracleの地理情報を使えるようにする時の
非常に注意しなければいけない点についてで、
特にWindows環境向けの話です。
さてさてWindows環境でMapServerを利用される方は
どこでバイナリを手に入れられていますかね?
Webサーバまでそろって使いやすいMS4W?
それともOSGeo4W?
やっぱりver6以上が用意されているGISInternalsでしょうか?
いずれの環境のものもESRI ShapeファイルやPostGISを扱うには
そのままでも問題ありませんが、Oracleの地理情報
(Oracle SpatialやOracle Locator由来のもの)を扱うには
自前でビルドが必要です。
これには今日のお題に沿った明確な理由があります。
詳しくはココやココに
公式文書があるのですが、当然windows向けには書かれていません。
GISInternalsのビルドキットを使うなら
MakefileのMS_OCIのところと
関連リソース(instantclient)のパスを変更する必要があります。
さてココまでが前提知識です。
ここからがWindows版でちょっとしたコツのいるところです。
以下3点の確認事項です。
1、ビルドするMapServerは32bit版ですか?64bit版ですか?
2、ビルド環境に用意するoracleのinstantclientは
32bit版ですか?64bit版ですか?また、バージョンは何でしょう?
3、ビルド後、設置する環境にあるOracle Database Clientは
32bit版ですか?64bit版ですか?また、バージョンは何でしょう?
結論から言うと
2と3のバージョンは合わせないと動かないことがある。
1、2、3のbit数は合わせないと動かない。
と、なります。
ハイ、皆様お分かりかと思いますが
3のせいで各サイトで配布するmapserverバイナリに
Oracle対応を入れられないのです。
(入れても大半の用途で無駄になってしまうのです。)
ですのでMapServerでOracle接続を検討しないといけない場合
腹くくって環境構築から運用案検討まで
しっかりやらないと痛い目を見ます。
また開発環境でのデバッグでもbit数の問題や
Oracle Database Clientのバージョン問題は
付きまといますので御注意ください。
以上、日本語での情報の少ない
MapServerとOracleの連携についてでした。