※※※ 本マニュアルは旧製品V1のものです。最新版V2はこちらです ※※※

インターネットサーバ

※以下の説明は開発中のものです。現在は使用できません。ご了承ください。

ここでは、商品スタッフIIサーバをインターネットサーバに導入する方法について述べます。 このインターネットサーバとしては、以下を前提とします。

※Debian系Linux, Windows, Solaris, MacOSXでも動作するはずですが、手順は以下の説明とは若干異なるかもしれません。

Firebirdのインストールと設定

サーバマシンにFirebirdをインストールします。 http://www.firebirdsql.org/の「Download」から インストールイメージをダウンロードします。 その際、いくつかの決定事項があります。

インストールイメージの選択

Firebirdのバージョン

2.0.*あるいは2.1.*を選択します。特別な理由がなければ2.0.*を選んでください。 もし、2.1.*で動かしていたデータベースをそのまま使いたい場合は2.1.*を選びます。 2.1.*で動かしていたデータベースを2.0.*で動かすことはそのままではできません (変換することは可能ですが、非常に面倒です)。

32/64bitの違い

64bitを選択できるのは、CPUが64ビット、かつOSが64bit対応OSの場合です。 CPUが64bitでもOSは32bitという場合がありえますので注意してください。

32ビットの場合は「Linux x86」です。 64bitの場合には「Linux AMD64」との記述になっていますが、これはAMDだけではなく、インテルのCPU でも同じです。全く同じアーキテクチャのことをインテルでは「EM64T」と呼称しています。

CSかSSか

CS(Classic Server)かSS(Superserver)かの選択肢があります。これは常にSS(Superserver)を選択してください。

※Linux以外の場合にCSの選択肢しか無い場合はCSで結構です。

non-NPTLかNPTLか

32bitのSuperserverではnon-NPTLかNPTLかの選択肢があります。 これはOSの中の「スレッド」の実装方法の違いで、non-NPTLは古い実装になります。 ここ数年のRedhat系列のOSではNPTLを選択すればいいです(※2003年リリースのRedhat 9はnon-NPTLです)。

確認するには(注意書きにもあるように)、

getconf GNU_LIBPTHREAD_VERSION

というコマンドを実行してみます。NPTLの場合は「NPTL 2.n.n」などという応答が返ってきます。

インストールファイルの選択

特にtar-ballやdebuginfoを選択する理由はありません。rpmファイルを選択します。

インストール

通常のrpmパッケージと同様に

rpm -ivh FirebirdSS*.rpm

などとしてインストールします。インストールと同時にサーバが起動するはずです。

ps ax | grep firebird

とすれば、fbguard, fbserverというプロセスが存在することが確認できます。

パスワードの確認

Windows上でFirebirdをインストールすると、sysdbaユーザのパスワードは必ずmasterkeyに設定されていますが、 Linuxはインターネットサーバとして使われることが多いため、インストールごとに異なるランダムなパスワードが 設定されています。

このパスワードは「/opt/firebird/SYSDBA.password」というファイルに記述されています。

※Firebirdは3050番ポートを通じてクライアントからのリクエストを受け付けます。 Linuxにファイアウォール設定等をしていない場合(あるいは3050番ポートへの外部からの接続 を拒否していない場合)には、誰もかれもがFirebirdに接続できては困るため、 このような措置が講じられているようです。

ですから、sysdbaのパスワードを「masterkey」などにしてはいけません。

ただし、同じマシン上で商品スタッフIIサーバを動作させる場合には、外部から3050ポートに接続できる 必要はありません。つまり、localhostからだけの接続で十分ですので、ファイアウォール等で3050番ポート を完全にふさいでしまえばこの限りではありません。

起動停止スクリプトの変更

Firebirdはデーモン(Windows風の呼称ではサービス)としてLinuxサーバの起動時に自動的に起動します。 このための起動停止スクリプトに手を加えた方が良い場合があります。 これは「/etc/rc.d/init.d/firebird」というファイルです。

#から始まる行を無視して冒頭の

FIREBIRD=/opt/firebird
FBRunUser=firebird
pidfile=/var/run/firebird/`basename $0`.pid

の部分を



FIREBIRD=/opt/firebird
FBRunUser=root
pidfile=/var/run/firebird/firebird.pid

等に変更します(必要な場合のみです。変更しない方が無難ではあります)。

スクリプトを変更したら、

service firebird restart

としてFirebirdを再起動しておきます。

JREのインストール

http://java.sun.com/javase/ja/6/download.html からJREのインストールイメージをダウンロードしてインストールします。

インストールイメージの選択

「JRE 6 Update *」を選択し、32bitの場合は「Linux」、64bitの場合は「Linux x64」を選択します。 「jre-6*.bin」か「jre-6*-rpm.bin」の選択がありますが、 rpmの方でよいでしょう。

インストール

sh jre-6*-rpm.bin

というコマンドでインストールを開始します。 途中で、ライセンス条項を閲覧するためにスペースの入力が必要になり、最後にyes/noの選択になるので yesを入力します。 あとは、rpmとして通常通りインストールが行われます。

インストールの確認とパスの設定

JREは「/usr/java」にインストールされています。

cd /usr/java
ls -l

としてみます。例えば以下のような表示がされます。

lrwxrwxrwx  1 root root   16  7月 18  2008 default -> /usr/java/latest
drwxr-xr-x  7 root root 4096  8月  3 19:04 jre1.6.0_14
lrwxrwxrwx  1 root root   21  8月  3 19:04 latest -> /usr/java/jre1.6.0_14

複数のバージョンの異なるJREをインストールすることができるようになっていますが、 デフォルトとして使うJavaはdefaultからリンクされています(Windows風の呼び名では「ショートカット」)。 したがって、このJavaコマンドを「/usr/java/default/bin/java」として呼び出すことができますが、 「/usr/java/default/bin」をパスに指定すれば「java」だけで呼び出せるので便利です。

やりかたとしては「~/.bash_profile」に記述しておくなどの方法がありますが、説明はこの文書の範囲を超えます。

商品スタッフIIサーバのインストール

プログラムのインストール

配布ファイルを展開して適当なディレクトリに置きます。

データベースの用意

使用したいデータベースがある場合は、それを上のserver.jarと同じ位置に置きます。 ただし、gsdb.fdbを置く場合は、同じ種類のOSで使用していたものに限ります。 Windowsで使用していたgsdb.fdbを、そのままLinuxで使用することはできません。 この場合には、まずWindows上でバックアップを行って*.fbkファイルを作成し、 それを「gsdb.fbk」という名前でserver.jarの位置に置きます。

Windows上で手動でバックアップする場合は以下のコマンドです(Firebird2.0の場合)

C:\Program Files\Firebird\Firebird_2_0\bin\gbak -user sysdba -password masterkey gsdb.fdb gsdb.fbk
※注意:既にネットワーク版で使用されていたデータベースをバックアップして別のネットワーク版にて 使うことは、現在のところそのままではできません。 起動はしますが、それらの間で「サーバ識別子」が同じになってしまうため共存することができません (一つの端末パソコンの中で、二つのサーバを区別することができなくなる)。 このようなことをしたい場合はご相談ください。

server.propertiesの設定

ウインドウ環境が無いためサーバコントローラ画面は使用できません。 あらかじめserver.propertiesを設定しておく必要があります。 詳細はserver.propertiesの説明を参照してください。

多くの場合に必要になるのは以下の設定です。

商品スタッフIIサーバの起動と停止

現在のところ起動・停止スクリプトは用意していません。 起動はjavaコマンドを使い、停止はプロセスをkillすることで行います。

起動

java -jar server.jar -headless

として起動します。二重起動はできません。 なぜなら、一度起動するとwebServerPort, rmiPortが占有されてしまうので、 同じポートを使用しようとしても失敗するからです。

-headlessはウインドウ環境では無いことを示します(コマンドライン環境)。 -headlessをつけると、サーバコントローラ画面は開かず、単にserver.propertiesファイル を読み込んでサーバを起動します。

※リモートサーバ操作の際の基本的事項ですが、 SSH等で一時的にログインして操作している場合は以下のようにコマンドの最後に「&」をつける必要があります。

java -jar server.jar -headless &

停止

停止する場合は以下のようにしてください。

ps ax | grep java

として商品スタッフIIサーバのプロセス番号を取得します。 これを指定して

kill プロセス番号

とします。実際にプロセスが停止するまで時間がかかることがあります。 万が一停止しない場合は、

kill -KILL プロセス番号

としてください。

サーバコントローラ使用時の注意

Linux上でもウインドウ環境(X Window System環境)があれば、 Windowsと同様にサーバコントローラ画面を用いることができます。 コマンドラインで、

java -jar server.jar

と起動するか、「servser.jar」をダブルクリックすれば起動します(ウインドウマネージャによる)。 ただし、サーバコントローラ画面が以下のように表示されてしまう場合があります。

この現象はJavaプログラムが適切な日本語フォントを見つけ出せないことに起因します。 以下は解決策の一つの例です。 必ずしもこれで解決するとは限らないため、「java linux 日本語 文字化け」等で検索して解決策を見出してください。

解決策の例

(JDKではなく)JREをインストールした場合です。この場合には、 「/usr/java/default/lib/fonts」というディレクトリが存在します。 そこに「fallback」というディレクトリを作成してその中に、システムにあるフォントへのシンボリックリンクを 作成します。

必ずしもシステムに「/usr/share/fonts/ja/TrueType/kochi-mincho-subst.ttf」というフォント が存在するとは限らないことに注意してください。

cd /usr/java/default/lib/fonts
mkdir fallback
cd fallback
ln -s /usr/share/fonts/ja/TrueType/kochi-mincho-subst.ttf
ln -s /usr/share/fonts/ja/TrueType/kochi-gothic-subst.ttf