« 2004年9月 | トップページ | 2004年11月 »

2004年10月

2004/10/24

Postgresql用のGUIツールを探す

WindowsからPostgreSQLを操作できるGUIソフトを探してみました。

WindowsからLinux上のPostgresqlを操作するには、いろんな問題があります。
・文字コードの問題。日本語で文字化けしないか?
・どこまで細かい設定ができるか?
・sslに対応しているか?

PostgreSQLには、PgAdominというWindowsで使える最強フリーGUIツールがあります。
メニューなども日本語に対応しているし、細かい設定も行えるし、なんといってもこのソフトだけでSSLでPostgreSQLに接続できてしまうのです!!
でも、文字コードがUnicodeベースなので、データにEUCが入っていると文字化けします。(T_T)
しかも、私が現在使っているPostgresqlのVer7.2には対応していません・・・(7.3以上対応)。

ってなわけで、その他のフリーソフトで使えそうなものを探しました。

PostgreStudio
TOMCAT&JSPで動く管理ツール。
今の自分のLinuxの環境にピッタリ!と思って入れてみました。
Webベースのツールなだけに、文字コード関連には強いです。
が・・・。基本的なツール部分がまだまだ未完成ってな印象です。
TimeStampデータ型のミリ秒を取得するとエラーが出るのは困りもの。
また、TimeStamp Without Time Zone 型をテーブルに作れないので、Ver7.2では致命的です。
データの一覧を表示したりするには手軽に使えて便利ですけど。

Webmin
VineLinux2.5では標準で入っている管理ツールWebminですが、なんとPostgreSQLの管理までできてしまいます!
が、Ver1.160ではPostgreSQLのモジュールにバグがあり、エラーが出てしまいます。
モジュールを最新のものにすれば解決します。
モジュールの更新も、Webminからできます。
使い勝手ですが、文字コードに関してはWebベースなので問題無いです。
テーブルの作成などもそれなりにできるので、そこそこ使えます。
ただし、Webmin自体がけっこう重たいので、非力なマシンだとレスポンスが悪いです。

CSE
このソフト、けっこう有名なソフトみたいです。ネットで検索すると、使っている人が多いですね。
このソフト一つで、Postgresqlはもちろん、MySQL、ODBC、オラクルにまで使用可能です!
各データベース用のdllは別に用意する必要があるのでちょっと敷居は高いですが、作者のページのインストール方法を読めばなんとかなると思います。
データベースの操作もけっこう細かいところまでできます。
最悪、SQL叩けばなんとでもなるので、SQLが解る人には超絶オススメなソフトです。
とても気に入りました!
唯一の不満は、SSLに対応してないことぐらいかな。

他に、Eclipseのプラグインでデータベースを管理できるものがあるそうなんですが、使っていないので判りません。
また、外国産のソフトは、やはり文字コードがネックになっているようですね。

あと、Windows上のツールからPostgresqlに繋ぐ時は、Postgresqlの設定で、外部からのTCP/IP接続を許可する必要があります。
PostgreStudioやWebminでは、PostgresqlにはLinuxから内部的に繋がっているのでそういう設定が不要です。
その辺も選択基準になるかな。
ちなみに、外部から接続する時はpg_hba.conf を書き換えて設定します。
(VineLinuxだとフルパスで/var/lib/pgsql/data/pg_hba.conf)
host all 127.0.0.1 255.255.255.255 trust
の下あたりにでも、クライアントマシンのIPを書き込むだけです。
host all 192.168.1.0 255.255.255.0 trust
みたいな。
PostgreSQLのマニュアルに詳しく載ってます。

| | コメント (0) | トラックバック (0)

設定ファイルを書き換える時の常識

Linuxを触って、まずWindowsと決定的に違うと思うことは、いろんな設定の変更をする時に設定ファイルを書き換えないといけない、ということです。
Windowsでも結果的に内部的には似たようなことをやってるんだけど、それをGUIのボタン一つでできるか、テキストファイルを書き換えるかは大きな違いです。

ま、この辺はLinuxを触る再の常識なんだろうけど、私が買ったLinuxの入門書では、設定ファイルをこのように書き換える~みたいなのはいっぱい載ってるのに、何を使って書き換えるのかについてはまったく触れられていませんでした。
vi とかのエディタを使うのが常識なんだろうけど、初心者にはわかりませんて。そんなもん。
しかも、vi はコマンド知らないと使えないし。
最初はviアレルギーで、わざわざX立ち上げてGEDIT使ってました。Windowsのメモ帳と同じ感覚で使えるし。
でも、ターミナルで操作することも多くなり、これは避けて通れないと思って、UNIX1年生のページでviの使い方を勉強しました。

もう一つ、常識。
設定ファイルを書き換えて、元に戻せないこと続出。(笑)
設定書き換える前に、今の設定ファイルをバックアップしておくのは、これもまた常識なんだろうけど、誰も教えてくれないです。(T_T)
これでハマる初心者もけっこう多いんだろうなあ。
バックアップと書けばなんかすごそうだけど、ただ単に設定ファイルを別の名前でコピーしておくだけのことです。

| | コメント (0) | トラックバック (0)

2004/10/16

Apache1.3とTomcat5を連携させる

今のサーバは基本的にポート80のみ外部に公開しているので、Apacheと連携してTomcatも公開したいな~と思ったのであります。

ApacheとTomcatの連携は、Windowsでやったことがあります。
Apache2.0.48とTomcat4.1を連携したのでした。
当時としてはメジャーなバージョンだったので、苦戦はしましたが資料がけっこうネットで見つかったので、なんとかなりました。
そんなわけで、なんとかなるだろうと思って始めたわけです。

VineLinuxに標準で入っているApacheが1.3で、今使っているTomcatが5.0.28です。
なんかバージョンに差がありすぎるような気がしないでもない・・・。
ApacheとTomcatを連携するのに、mod_jk2というモジュールを使います。
で、mod_jk2がApache1.3に対応しているのか調べてみたところ、どうやら使えるみたいです。
やった~!!
しいしせねっとにすごく詳しく解説がしてあったので、なんとかなりそうです!

まず、jakarta-tomcat-connectors-jk2-src-current.tar.gz をApacheのページから探してダウンロードしてきました。
また、Apache1.3と連携する時は、aprとapr-util が必要らしく、これも探してダウンロードしました。
ちなみに、aprとapr-util は、しいしせねっとではver0.9.4を使っていますが、最近ver1.0.0が出たらしく、モジュールは新しければ新しいほど性能が良いだろうと思って、1.0.0をダウンロードしました。
で、説明のとおりに ./configure をした所、途中でエラーが!!
apr-configファイルが見つからない、みたいなエラーが出たかな?
なんで~!!??

ネットでいろいろ調べた所、NetPlatzに原因が載っていました。
「最新バージョンである apr-1.0.0.tar.gz と apr-util-1.0.0.tar.gz では、この後のインストール作業で失敗してしまうので、0.9.4 でなくてはなりません。」

・・・・・な、な、なに~!?最新版を使うとダメなの??
そんなモジュールにメジャーバージョン名をつけるな~!!!

気を取り直して、ver0.9.4をダウンロードして、configure とmake をした所、待望の mod_jk2 が出来上がりました!
やった~!!
さっそくApacheのモジュールに入れて、ちょちょっと設定した所、ちゃんと80番ポートからServletとJSPが見えるようになりました。

NetPlatzと、しいしせねっと、どちらも大変解りやすく解説してあり、助かりました。
ちなみに、VineLinuxの環境だと、ディレクトリ構成の関係で、しいしせねっとの方が解りやすかったかな。
FedoraCoreなんかだとNetPlatzの方が解りやすいのかも。

| | コメント (0) | トラックバック (0)

2004/10/11

カスタム・タグを作ろうとしてハマる

Webアプリケーションの作成項目も、のこりわずかになってきました。

今回は、カスタム・タグを作ってみるのが目的です。
サーブレット、JSPと勉強してくると、JSPではできるだけスクリプトレットを追い出すのが良いみたいなんだけど、それって返って処理を複雑にしている気がしてならない今日このごろです。(笑)
タグのみで処理を行えば、結局は同じような気がするんだけど・・。
Javaのコードが読めるなら、カスタムタグは返って手間隙掛かるような。

とまあ、感想は置いておいて、今回はタグ・ハンドラをコンパイルできなくて悩みました。
コンパイル時に、import文でエラーが出るのです。
javax.servletまでは認識しているのですが、javax.servlet.jsp以降が見つからない様子。
これって、あきらかにCLASSPATHが通っていないのが原因なんだろうけど、本にはどうしろとか特に書いてありませんでした。
本では、CLASSPATHは$CATALINA_HOME/common/lib/servlet.jarに通すことになっていましたが、今は$CATALINA_HOME/common/lib/servlet-api.jarに通っています。(いつ通したんだろ?コンパイルできなくていろいろ試したんだっけ??)
なんかPATHが微妙に違うから怪しいと思ってcommonディレクトリを見てみると、いました!それらしいのが!
jsp-api.jar ってなファイルを見つけたので、そっちにもCLASSPATHを通したところ、うまくいきました。

が、自己流は怖いのでネットで検索したところ、やはりCLASSPATHを2つ通す必要があったようです。
本に載っていたのはTOMCATのWindows版5.0.18、使っているのはLINUX版の5.0.28です。
昔のJavaの本を見たところ、TOMCAT3.3のころは$CATALINA_HOME/lib/common/servlet.jarに通すように書いてあった。これも微妙にPATHが違うなあ。
う~ん、ヴァージョンが変わるごとにこういう所がコロコロ変わるので、ついていけないです・・・。

| | コメント (1) | トラックバック (0)

2004/10/03

JDBCデータソースを使おうとしてハマる

前回に引き続き、Webアプリケーションの作成をしております。

今回はJDBCデータソースを使おうってやつです。
データベースに接続する時、Javaのコードに接続情報を書いてしまうと、データベースが変わった時なんかにもう一度コードを書き換えてコンパイルする必要があるので、接続情報をTomcatに任せてしまおうってなものらしいです。
オレからすれば、そんなのソース書き換えた方が楽な気がするんだけど・・・。

ちなみに、前回、PostgresqlのJDBCドライバの置き場所で「TOMCATから使うなら、$TOMCAT_HOME/libが良いでしょう。」ってあったのは、JDBCデータソースを使う時の設定みたいですね。

で、まあ、わけの解らないままプログラムを打ち込んで実行したのですが、案の定エラーが。
例の、ドライバが読み込めません!!ってやつです。
JDBCデータソースを使うための設定を server.xml に書くのですが、どこに書けばいいのかわかりません。
適当な場所に書いたのがまずかったみたいです。(T_T)
本には、Context要素の中に書くってあったんだけど、server.xmlに、そんな場所が無い!!
昔WindowsのTomcat触ってた時は、あったような気がするんだけど。
バージョンの問題かな?ちなみに、今はLinux版の5.0.18を使っています。

ネットで調べても、server.xmlのContext要素内に書くってなのばかりで、よく解りません。

そう言えば、今のアプリケーションのContext要素がなんで無いんだ?
TomcatのAdminToolでいろいろ書き換えて調べてみたところ、server.xmlにはなんの変化もなし。
どこか書き換わったところがあるはずだと思って調べたら、conf/Catalina/localhost/ 内に、アプリケーション名のついたXMLファイルが作られていて、そこが書き換わっていました。
その中にContext要素があったので、そこに設定を書き込んだところ、うまく動くようになりました。
でも、ネットで調べても、そのような設定の仕方をしているのを見ないです。なんでだろう??

ちなみに、AdminToolを使って設定する場合、データソースの設定はグローバルで作っておいて、それをコンテキストごとにリソースリンクに設定するってのが正しいみたいです。
でも、ま、いいや。今のままでちゃんと動くんだし。

| | コメント (0) | トラックバック (0)

2004/10/02

TomcatからPostgresqlに接続してみる

IDG JAPANからでているJava WORLD for Beginnersというムックを買ってきました。

VineLinux2.5ではデフォルトでPostgresqlがインストールされているので、前からこいつを使う方法が無いものか?と思っていたのです。
そんな時に、このムックで Tomcat+Postgresql を使ったWebアプリケーションの作り方が載っていたので、作ってみようと思ったのでした。

この本では、Windows上で動かすのを前提で書いてあります。
Postgresql も、Cygwinで動かしてます。(汗)
ま、CygwinもLinuxも似たようなもんだろうと思って、深く考えずに作り始めたのでした。

で、なんとかPostgresqlを使おう!ってな所までたどり着き、実行してみたところエラーが!!
SQL Exception No suitable driver
そんなドライバは知らん!! と言われてます・・・。
そんなはずは!
ちゃんと Class.forName( "org.postgresql.Driver" ); でクラスを呼んでるし、
Connection connection = DriverManager.getConnection( DB_URL, DB_USER, DB_PASSWORD );
でコネクションオブジェクトも作成できてるはず!!

なんでや~!!と思ってPostgresql(Ver7.43)のページに行ってみた所、ドライバのある所にCLASSPATHを通さなくてはいけないらしい・・・。
「ドライバを使うためには、JAR ファイル (ソースからコンパイルした場合は postgresql.jar、そのほかの場合はそれぞれ JDBC 1、JDBC 2、JDBC 3 バージョンである、pg7.4jdbc1.jar、pg7.4jdbc2.jar、pg7.4jdbc3.jar)をクラスパスに含む必要があります。」
って書いてあったので、それらしきファイルを探してみたのだけど見つかりません・・・。

そんなばかな!
このPostgresqlには、JAVA用のドライバが無いのか?!?
ちょっとまて。こいつのPostgresqlのバージョンっていくつだっけ?と思ったら
/var/lib/pgsql/data/PG_VERSION
ってなそのまんまな名前のファイルを発見し、見てみたところ バージョン7.2でした。

で、バジョン7.2のページを見てみると、
「jar ファイル(ソースからコンパイルした場合は postgresql.jar、さもなくば、それぞれ jdbc1、jdbc2 バージョンである、jdbc7.2-1.1.jar または jdbc7.2-1.2.jar)をクラスパスに含む必要があります。」
って書いてある。

・・・・・ファイル名違うやん!! ころころ変えんな~!!

find / -name jdbc* とコマンド打って検索したら、出てきました! しかもバージョン違うのが4つも!(笑)

とりあえず、その1つにCLASSPATHを通して実行してみました。

・・・・また同じエラーが。 ????なんで????

Googleを使って検索してみると、どうやらJDBCのURLが間違っている時に出るエラーのようです。
ソース見ても間違っていないのにな~。わからん・・・。
CLASSPATHの通し方が違っているのかなと思い、調べてみると、
「TOMCATから使うなら、$TOMCAT_HOME/libが良いでしょう。」ってなのにヒットした。

なに~!?Tomcatに直接置けばいいのか!?
そんなのこのムックのどこにも載って・・・・・・。
・・・。載ってました~。(T_T)

本では、postgresql.jarをコピーし、WEB-INF\lib に置けばいい、みたいなことが書いてありました。
しかも、ここに置いておけばCLASSPATHを設定しなくても勝手に読んでくれるそうです。
で、 jdbc7.1-1.2.jar をWEB-INF\libに置いたら、ちゃんと動くようになりました!!

もっとしっかり本読んでおけば・・・・・。ま、ファイル名が違うことには気づいたんだから良しとするか。

| | コメント (0) | トラックバック (0)

« 2004年9月 | トップページ | 2004年11月 »