Jump to content 日本-日本語

製品  >  ソフトウェア  >  HP-UX   >  Knowledge-on-Demand  >  サーバープラットフォーム移行ガイド

DBシステム開発者のための
サーバープラットフォーム移行ガイド

第3回:実践!<Solaris→HP-UX/Linux>アプリケーション移行ガイド Part.2

HP-UX/Integrityサーバー お問い合せ
コンテンツに進む
実践!<Solaris→HP-UX/Linux>アプリケーション移行ガイド Part.2
前回は、「Webセミナー受付システム」と「会員管理・メール配信システム」という2つのWebアプリケーションに対するポーティングのシナリオを概観しました。またHP IntegrityサーバーにHP-UX 11i v2をインストールし、ネットワーク等の環境構築を進めてきました。実践編Part.2の今回は、ミドルウェアのインストールを行います。Apache Webサーバーをはじめ、TomcatとJK2、そしてOracleをHP-UX上でインストールする手順を見ていきます。
実践!<Solaris→HP-UX/ Linux>アプリケーション移行ガイド Part.2
3〜4日目: ミドルウェアの設定(1)
5〜6日目: ミドルウェアの設定(2)
2004年11月
テクニカルライター 大戸 英樹

第2段階:「Webセミナー受付システム」のミドルウェアのインストール


3〜4日目: ミドルウェアの設定(1)


  まずWebサーバーApache とJ2SEをインストールします。

Apacheのインストール

Apache はHP-UX にプリインストールされていますが、今回は新しいバージョンのApache をソースからビルドすることにしました。ソースアーカイブをダウンロードしてconfigure を実行すると、「+DAportable と-hreads というオプションは存在しない」というエラーが出ました(ログ-1)。

   
  configureを実行すると、「+DAportableと-hreadsというオプションは存在しない」という警告がでるんだけど。  
   
   
  実はconfigure から呼び出されるファイルには、PA-RISC 向けの設定しかなく、HP-UX だったら適用される設定になっていることがそもそもの原因なんだ。  
   
   
  それじゃあ、-hreadsのほうは何なんだい。  
   
   
  -mthreadsというコンパイルオプションが自動的に付けられたんだけど、HP-UXのCコンパイラには-mthreadsというオプションがないんだ。でも-mtというオプションはあるので、-mtとhreadsに分割されてしまったんだろうね。  
   
   
 

この問題を解決するには、コンパイルオプションをTips3のように変更します。

configure:3434: cc +DSitanium2 + -Ae +Z +DAportable -mthreads -DHPUX11 -D_REENTRANT -D_XOPEN_SOURCE_EXTENDED -L/usr/local/src/httpd-2.0.49/srclib/apr-util/xml/expat/lib conftest.c >&5

cc: warning 901: unknown option: `+DAportable': use +help for online documentation.
cc: warning 901: unknown option: `-hreads': use +help for online documentation.


Tips3 HP-UXでのconfigureのオプション
インテル®Itanium®プロセッサ(以下、Itanium)が搭載されたHP Integrityサーバー上でオープンソースのミドルウェアをコンパイルする際には、コンパイルオプションのCCに、-AC99を追加してください。また、HP-UXには、-mthreadsというオプションはありません。コンパイルオプションのLIBSに-lpthreadを指定してください。

その後、正しいオプションを付けて、configure を再実行しました。このままインストールは問題なく終了したように見えましたが、調べてみるとシェアードオブジェクトが作成されていませんでした。これはApache 2.0.49のconfigureをはじめとして、HP-UX 11i v2(11.23)への対応がされていないことが原因と思われます。そこでbuildconfを実行してconfig-ureを作り直すことにしました。しかし、buildconf は内部でautoconf とlibtoolを用いますので、この2 つを先にインストールする必要があります。さらに、autoconfにはm4が必要です。またlibtoolは、HP-UXに付属するmakeを使用してコンパイルするとmake checkで多数のエラーが出るため、GNU Makeをインストールする必要がありました。

最終的に、GNU make、GNU m4、GNU auto-conf、GNU libtool、Apacheの順にインストールを行いました。

J2SEのインストール

HP-UXに付属しているJ2SEのバージョンが1.4.1 であったため、最新バージョンの1.4.2を日本ヒューレット・パッカードのWebサイトからダウンロードしました。チェックサムを確認した後、rootユーザーになりswinstallを実行しました。

   
  ダウンロードしたら、必ずチェックサムの確認をしたほうがいいだろ。  
   
   
  そのためのコマンドも用意されているよ。cksumコマンドだ。  
   
   
  ハッシュ値の比較なのか。  
   
   
  ちょっとした注意が必要だから、次にまとめておくよ。  
   

Tips4 HP-UXのcksumコマンド

HP-UXのcksumコマンドではチェックサムを調べることができます。このアルゴリズムは32bit Cyclic Redundancy Checkを採用しているため、MD5チェックサムと直接比較することはできません。また、swinstallでdepotのパスを指定する際は、相対パスでなく絶対パスで行う必要があります。

 

5〜6日目: ミドルウェアの設定(2)


Tomcatのインストール

担当者SがTomcat4.1.30のソースアーカイブをダウンロードし、HP-UX付属のtarで展開したところ、展開が失敗して、@LongLink という名前のファイルが複数できました。これはHP-UX(Solaris7 も同様) に付属しているtar が長いファイル名に対応していないからです。この問題を回避するために、GNU tar をインストールしてから再度展開しました。

また、ビルドを行うためにAnt をインストールしました。BUILDING.txt によると、Tomcat4.0 はAntのバージョン1.5 を要求しています。そこでApache Ant ProjectのWebサイトのアーカイブからapache-ant-1.5.4-bin.zipをダウンロードし、jar コマンドを使用して展開しました。Ant 以外のアーカイブをすべて同じディレクトリに置いた後、build.properties.sample をbuild.properties という名前でコピーして編集し、ビルドを行いました。その後、ant dist ターゲットを実行して完全なパッケージを作成し、rootユーザーでdist ディレクトリをインストールディレクトリにコピーして、Tomcatのインストールを終えました(図1)。

  図1:Tomcatの初期画面
図1:Tomcatの初期画面
  JK2 のインストール

次は、Apache とTomcatを連携させるためのコネクタをインストールします。今回は、jakarta-tom-cat-connectors-4.1.30-srcではなく、別途JK2 2.0.4 (jakarta-tomcat-connectors-jk2-src-current.tar .gz)のソースアーカイブをJakartaのWebサイトからダウンロードしました。しかし、configureがItanium用のHP-UX 11i v2(11.23)には対応していなかったので( PA-RISC用のHP-UXには対応済み)、TomcatのWebサイトからパッチを入手してビルドしました。

Apacheのapxsにより、mod_jk2.soファイルはmodulesディレクトリにコピーされるため、あとはhttpd.confに「LoadModule jk2_module mod-ules/mod_jk2.so」を追加してJK2 のインストールを終えました。

Oracleのインストール

Oracle9i Release2のインストールの前に、ソフトウェアとデータベースのマウントポイント用論理ボリュームを追加しなければなりません。

   
  HP-UXの論理ボリュームってなんだい。  
   
   
  HP-UXではディスクスペースを論理ボリュームという単位で分けて、論理ボリュームマネージャが管理するんだよ。  
   
   
  それでいったい、どうやって論理ボリュームを使えばいいんだ。  
   
   
  論理ボリュームは、ソフトRAIDに似てるんだ。こんなふうに使えばいいんだよ。  
   

Tips5 HP-UXの論理ボリュームの設定方法

論理ボリュームを使うためには、物理ボリュームデバイス上にあるパーティション(/dev/dsk/c0t0d0など)をボリュームグループにアサインします。このボリュームグループ内の合計スペースを1つまたは複数の論理ボリュームとして分割することにより、OSがこれらの領域をパーティションのように利用できるようになります。


サーバー構築時にすでに43GBを使っています。残りのディスク領域を10GBずつに分け、ソフトウェアマウントポイントとデータベースマウントポイント用に割り当てます。論理ボリュームの用意ができたら、Oracleのインストールに進みます。

Oracleのインストーラを起動する前に、次の作業を済ませておきます。

  • UNIX グループとアカウントの追加
    UNIXグループにoinstall とdbaを追加し、追加したグループのUNIXアカウントとしてoracleユーザーを追加します。技術資料『HP-UX 11i v2(11.23) +Oracle9i DB構築手順』には、グループ属性を設定するようにという記述があります。グループ属性を設定することにより、Oracl9iのパフォーマンスが向上します。
  • カーネルパラメータの変更
    カーネルパラメータを変更するには、SAMからKernel Config(kcweb)というツールを起動します。kcwebではパラメータどうしの関連性もチェックされており、関連する項目の値を先に変更しておかなければ変更できない値もあります。
  • CD-ROM デバイスのマウント
    『Oracle9i for UNIX Systems インストレーションガイドリリース2(9.2.0.1.0)』には、CD-ROMのマウントにはpfs_mount コマンドを使うと書かれていますが、マウントポイントを/SD_CDROM/ とすると、アンマウントに失敗することがあります。『HP-UX 11i v2(11.23)+Oracle9i DB 構築手順』では、mount コマンドを使うように指示されているため、mount コマンドを使ってCD-ROM をマウントします。

あとは、Oracleのインストーラを起動してOracle のドキュメントどおりに行えば、インストールは完了です(ログ-2)。

・ログ-2 Oracle9i 起動時のログ
SQL*Plus: Release 9.2.0.2.0 - Production on 月Jul 12 15:41:14 2004
Copyright (c) 1982, 2002, Oracle
Corporation. All rights reserved.

SQL> アイドル・インスタンスに接続しました。
SQL> ORACLEインスタンスが起動しました。

Total System Global Area 320356472 bytes
Fixed Size 753784 bytes
Variable Size 285212672 bytes
Database Buffers 33554432 bytes
Redo Buffers 835584 bytes
データベースがマウントされました。
データベースがオープンされました。
SQL> Oracle9i Enterprise Edition Release
9.2.0.2.0 - 64bit Production

Database "ora" warm started.

「Web セミナー受付システム」のミドルウェアのインストールは、これですべて完了しました。

Linuxへのポーティング
ミドルウェアインストール編「Webセミナー受付システム」

  • Cコンパイラについて
    ミドルウェアのソースのコンパイルをする際に、RedHat Linuxに同梱されていたCコンパイラのGCC2.96ではなく、GCC 3.4.0をあらためてインストールして利用した。このGCC 3.4.0は、Itanium上での高速化が期待されている。

  • Oracle9iのインストール
    Oracle9iのインストール時に注意しなければならないのは次の点だ。このサーバーは、RedHat Linuxのインストールの際に、ハードディスクの容量一杯にパーティションが切ってあったため、HP-UXの時とは異なり2台目のハードディスクにOracleのソフトウェアマウントポイントとデータベースマウントポイントを作成しようと考えた。2台目のハードディスクはまだ未使用だったため、fdiskを実行し2台目のハードディスクを参照すると、全体が1つのGPT パーティションに見えた。GPTとは、GUIDパーティションテーブルの略で、MBRなどのパーティションスタイルの一種なのだが、現時点ではfdiskでGPT上のパーティションテーブルを見ることはできない。そのため、これを削除してMBRでパーティションを切り直してしまった。本来は、partedというコマンドを使って、GPT上のパーティションを操作することが推奨される。
連載記事一覧    

連載 「DBシステム開発者のためのサーバープラットフォーム移行ガイド」記事一覧

第1回 将来を見据えたプラットフォーム選び
第2回 実践!<Solaris→HP-UX/Linux>アプリケーション移行ガイド Part.1
第3回 実践!<Solaris→HP-UX/Linux>アプリケーション移行ガイド Part.2
第4回 実践!<Solaris→HP-UX/Linux>アプリケーション移行ガイド Part.3
第5回 実践!<Solaris→HP-UX/Linux>アプリケーション移行ガイド Part.4

 その他の連載記事


本ページの内容は執筆時の情報に基づいており、異なる場合があります。

お問い合わせ

ご購入前のお問い合わせ


ご購入後のお問い合わせ

オンラインサポート
製品の標準保証でご利用いただける無償のサービスです。

ショールーム

ショールーム 導入をご検討のお客様へ
業務アプリケーションの継続・標準化・開発性とシステム担当者様、システム開発者様が抱える悩み・疑問に対する解決策実体験して頂けます。
印刷用画面へ
プライバシー ご利用条件・免責事項