HHeLiBeXの日記 正道編

日々の記憶の記録とメモ‥

Firebird v2.1とv2.5の同居

何気なくFirebirdのサイトを訪れてみると、Firebird2.5がリリースされたというニュースが。

ということで、早速ダウンロードしてインストール‥
‥って、v2.1のWindowsサービスが上書きされてしまいました。
ということで、この時点では、次の状態になっている。

  • Firebird v2.1がインストールされている。
    • ただし、対応するWindowsサービスは上書きされた。
  • Firebird v2.5がインストールされている。
    • 対応するWindowsサービスもちゃんとある。

そこで、まずは次の手順でv2.1が動作する状態にする。

  1. Firebird v2.5をアンインストールする。
    • これでFirebird関連のWindowsサービスはすべて削除される。
  2. Firebird v2.1のインストーラを起動して、再インストールを行う。
    • 途中、「Run Firebird server as:」という設定があり、「Run as an Application?」と「Run as a Service?」という選択肢があるが、前者の「Run as an Application?」を選択する。
  3. インストールが完了したら、スタートメニューから「Firebird Guardian」を起動する。
  4. 適当なプログラムを使って接続テストをする。

これでv2.1は動作する環境が整ったので、一旦v2.1のFirebird Guardianを終了する。(通知領域の「Firebird Guardian」を右クリックして「Shutdown」)
次にv2.5のセットアップ。

  1. Firebird v2.5のインストーラを起動して、インストールを行う。
    • インストール先はv2.1と異なるディレクトリにする。
    • 途中、「Run Firebird server as:」という設定があり、「Run as an Application?」と「Run as a Service?」という選択肢があるが、前者の「Run as an Application?」を選択する。
  2. インストールが完了したら、スタートメニューから「Firebird Guardian」を起動する。
    • 最初、起動に失敗するので悩んでいたが、スタートメニューの「Firebird Guardian」のプロパティを見てみると、リンク先の「-a」の後に空白が入っており、この空白を削除したら起動するようになった。
  3. 適当なプログラムを使って接続テストをする。

これで、個々に起動すればどちらのバージョンも使用できる環境は整った。
さて、次は同時起動の実現。
Firebirdは、デフォルトではポート番号3050で接続待ちをしており、このままでは同時起動はできない。
そこで、設定の変更を考えるわけだが、Firebirdのインストール先に次のようなファイルがあるはずである。

これらのファイルを開くと、v2.1は415行目、v2.5は530行目あたりに次のような行があるはずである。

#RemoteServicePort = 3050

この行のコメントをはずし、適当なポート番号に変えてやることにする。
今回は、「3051」と「3055」にした。
で、両バージョンの「Firebird Guardian」を起動しようとするのだが、

The Firebird Guardian failed to startup because another instance of the guardian is already running.

というエラーが出てしまい、片方しか起動することができない。
そこで、最後の調整。
Firebird v2.1とv2.5を再々インストールする(アンインストールせずに)。
インストールの途中で、「Use the Guardian to control the server?」というチェックボックスがあるので、このチェックをはずす。
すると、スタートメニューに「Firebird Server」または「Firebird SuperServer」という項目が追加されているので、これを使用してサーバーを起動する。
念のため、両方のサーバーに対して適当なプログラムを使って接続テストをする。
これで完了。


まとめると、複数バージョンのFirebirdを同居させたい場合には、インストール時に:

  • 「Run Firebird server as:」という設定項目では、「Run as an Application?」を選択
  • 「Use the Guardian to control the server?」というチェックボックスのチェックをはずす
  • firebird.confのRemoteServicePortの設定を変更する

という設定を行うようにする。