MapServerとOracleの微妙な関係

今回も技術的な小ネタを披露致します。
ただし今回は非常にニッチです。
需要はあるのかどうか分かりません!

お題は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の連携についてでした。

コメントを残す

メールアドレスが公開されることはありません。