[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
RedHat ES上のPostgreSQLにWindowsのColdFusionMX7から接続する必要が出てきました。
今までやったことのないパターンです。
PosgreSQLのサーバーはDMZ上になる点も、今までに無いパターン。
とりあえず、イントラ内のFedoraCoreにPosgreを入れて接続してみることにしました。バージョンは8.1.6。
DMZ上にあると、接続できないときの原因切り分けが難しくなりそうだし。
ColdFusionAdministratorのデーターソースの設定はこんな感じ。
Driver Class:org.postgresql.Driver
Driver Name:
Username:xxxxx
Password(16-character limit):xxxxx
Description:
localhostの部分がIPやホスト名。myDBは接続するposgreのDB名。
とりあえずこれで接続してみると・・・・・
やっぱりエラー。
データソース用の接続確認に失敗しました: posgretest
org.postgresql.util.PSQLException: Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
ルート原因 :org.postgresql.util.PSQLException: Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
さて、posgreの勉強です・・・
/var/lib/pgsql/data/pg_hdba.conf
に、接続を許可するホストの設定があるということで、
ident と sameuser というパラメータの意味はよくわからず。
で、
service postgresql restart
してみたが、接続できず。同じエラーですね。
もう少し調べると、
/var/lib/pgsql/data/postgresql.conf
で
tcpip_socket = true
にすべし。 を発見。
ところが、そんなパラメータは無い・・・・見てる資料のposgreのバージョンが古いのかな。
postgresql.confに
# comma-separated list of addresses;
# defaults to 'localhost', '*' = all
これっぽい。
listen_addresses = '*'
として、restart
お?エラーが変わった。
データソース用の接続確認に失敗しました: posgretest
org.postgresql.util.PSQLException: FATAL: missing or erroneous pg_hba.conf file
ルート原因 :org.postgresql.util.PSQLException: FATAL: missing or erroneous pg_hba.conf file
あら?最初の設定がまずかった?
pg_hba.conf の設定を、
restart すると、
データソース用の接続確認に失敗しました: posgretest
org.postgresql.util.PSQLException: FATAL: Ident authentication failed for user "postgres"
ルート原因 :org.postgresql.util.PSQLException: FATAL: Ident authentication failed for user "postgres"
認証周りのエラーに変わった・・・・・
むむむ。
http://www.adobe.com/jp/support/coldfusion/ts/documents/tn18338.htm
この辺のドキュメントを読みながら、そういえばPosgre用のJDBCドライバなんて入れてないなぁ・・・・でも入ってるようなエラーが出てるなぁ・・・・と思い、一応JDBCドライバを入れてみることにする。
http://jdbc.postgresql.org/download.html
・・・なんでこんなに種類があるんだ!? と迷いながらも、JVMバージョンからして、8.1-408JDBC3をチョイス。
サーバーの /cfroot/lib/ フォルダに放り込もうと思って覗いてみると、既に
postgresql-8.1-404.jdbc3.jar
ファイルが置いてありました。
他のColdFusion7のサーバーを見ても入ってません。ということは、データーソース設定をしたときに、ColdFusionが適切なJDBCドライバをダウンロードしたって事ですかね??
JDBCドライバは関係ないということで、再度pg_hdba.confのコメントを読む。
# "krb5", "ident", or "pam". Note that "password" sends passwords
# in clear text; "md5" is preferred since it sends encrypted passwords.
エラーメッセージにはIdent authentication failedとあるので、[METHOD] ident を trust に変更してみる。
host all all 10.1.51.0/24 trust sameuser
restart すると・・・・・
(^▽^喜) 無事接続できました!
trust だと、どうやらそのIPからパスワード無しで繋がっちゃうようです。
trust → password に変更しました。
情報通信を生業としない企業の、システム系でもない普通の社員なので、 ColdFusionは独学。参考書が少ないのがツライです・・・・なんだかんだ、ColdFusion4.xのシリウス時代から7年くらいのおつきあい?リンコムNextのソースが教科書かも。
外注するときはよく「できればColdFusionで・・・・」とお願いするのですが、ほとんどの場合「えっ!?」と驚かれてしまい、「SEのアサインが・・・」などと営業さんが困ってしまうことが多くて悲しいです。
ちょっとしたものなら自分でシステム構築しちゃいますが、一人でやるには時間が足りませんね・・・
FlashRemotingとかもやりますが、Flexには手を出してません。
と、最初の頃書きましたが、ついにFlexに手を出しました。Flex1.5はイマイチわかりませんでしたが、Flex2は別物ですね。これで6万円でイインデスカ?
そしてFlex2とColdFusionの組み合わせなら無敵な気がしますよ。ほんとに。
01 | 2025/02 | 03 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |