忍者ブログ
全くIT系ではない製造業の社員がイントラ上でColdFusionと格闘。システム構築を外部委託するとき「できればColdFusionでお願いします」と頼むのだが・・・・
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

NHKの「プロフェッショナル仕事の流儀」って番組の、『建築家・隈研吾』の回の録画を家で見ていたら、司会の2人が

「隈さんはやっぱり・・・」

「隈さんの持ち物は・・・」

などと発言するたびに、2歳の娘が

「くまさん?どこ?」 と反応して面白かった。


さて、


ColdFusionからWindows上のOracleに接続することが多く、5~6年間全く問題にならなかったので、今までデーターベース接続のコネクションを気にしたことはありませんでした。

データーソース設定をしてしまえば、コネクションのオープンやクローズはColdFusionまかせで普通OKです。
デフォルトはColdFusion側でデーターベースとのコネクションをいくつかプールして、うまく使いまわしているようです。

つまり、いくつかの接続がオープン状態のまま保たれ、次の新たなリクエストに備える「コネクションプーリング」がデフォルト設定。



「ColdFusionからの接続がたくさん残ってるから消してほしい」

とSI屋さんから言われて、この辺の事情をはじめて知りました。
そのサーバーは「緊急地震速報」を社内に再配信するサーバーなので、その辺ナーバスになるのは当然でしょうか。



で、
データーソースの詳細設定で「接続の維持」をはずしたところ、コネクションはプーリングされなくなりました。

パフォーマンスの劣化は全く感じられません。
今のところ。





ちなみに、Flex2 + ColdFusionの組み合わせで、緊急地震速報サーバーに接続しています。
何をしてるかというと、緊急地震速報の端末管理や配信履歴管理。

ユレキテル管理画面
緊急地震速報の受配信のコアな部分はSI屋さんに外注。
それ以外の周辺インターフェースはColdFusion + Flex2で自前です。


今日、「日経コンピューター」の取材を受けたので、そのうち載るかもね。


ユレキテル」って、いいネーミングだと思う。我ながら。
PR

RedHat ES上のPostgreSQLにWindowsのColdFusionMX7から接続する必要が出てきました。
今までやったことのないパターンです。
PosgreSQLのサーバーはDMZ上になる点も、今までに無いパターン。

とりあえず、イントラ内のFedoraCoreにPosgreを入れて接続してみることにしました。バージョンは8.1.6。
DMZ上にあると、接続できないときの原因切り分けが難しくなりそうだし。

ColdFusionAdministratorのデーターソースの設定はこんな感じ。
posgre1.gif

JDBC URL:jdbc:postgresql://localhost:5432/myDB?charSet=UTF8
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
に、接続を許可するホストの設定があるということで、

host all all 10.1.51.0/255.255.255.0 ident sameuser
と追加してみる。
ident と sameuser というパラメータの意味はよくわからず。
で、

 

service postgresql restart

 してみたが、接続できず。同じエラーですね。

もう少し調べると、
/var/lib/pgsql/data/postgresql.conf

tcpip_socket = true
にすべし。 を発見。

ところが、そんなパラメータは無い・・・・見てる資料のposgreのバージョンが古いのかな。

postgresql.confに

#listen_addresses = 'localhost'         # what IP address(es) to listen on;
                                        # 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 の設定を、

host all all 10.1.51.0/24 ident sameuser
に変更。サブネットの書き方がまずい模様。
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のコメントを読む。

# METHOD can be "trust", "reject", "md5", "crypt", "password",
# "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 すると・・・・・

(^▽^喜) 無事接続できました!

jcfmlより。
後々利用しそうなのでメモる。

OS Windows XP Profesxsional Version 2002 Service Pack 2
MySql Version  5.0.22
ColdFusion MX Version 7,0,1,116466

1.次のURLからMySQL Connector/J JDBC ドライバをダウンロードする。

http://dev.mysql.com/downloads/connector/j/3.1.html
このページの Source and Binaries(ZIP) 3.1.13

2.解凍して、mysql-connector-java-3.1.13-bin.jar を、ColdFusion のインストール
  ディレクトリ直下にある lib に置く

3.PCを再起動

4.ColdFusion Administrator 画面のデータソース定義画面で新規のデータソースを定義

 データソース名 --> 任意
 ドライバー --> その他

 追加をクリックして詳細設定画面で

 CFデータソース名 --> 任意
 JDBC URL --> jdbc:mysql://localhost:3306/(MySqlで定義したデータベース名)
 ドライバークラス --> com.mysql.jdbc.Driver
 ドライバー名 --> 空白
 ユーザ名/パスワード --> (MySqlで定義したデータベースのユーザ)
ブログ内検索
プロフィール
HN:
CFIF
性別:
男性
自己紹介:
もっと日本でもColdFusionが広まって欲しいです。

情報通信を生業としない企業の、システム系でもない普通の社員なので、 ColdFusionは独学。参考書が少ないのがツライです・・・・なんだかんだ、ColdFusion4.xのシリウス時代から7年くらいのおつきあい?リンコムNextのソースが教科書かも。

外注するときはよく「できればColdFusionで・・・・」とお願いするのですが、ほとんどの場合「えっ!?」と驚かれてしまい、「SEのアサインが・・・」などと営業さんが困ってしまうことが多くて悲しいです。
ちょっとしたものなら自分でシステム構築しちゃいますが、一人でやるには時間が足りませんね・・・

FlashRemotingとかもやりますが、Flexには手を出してません。
と、最初の頃書きましたが、ついにFlexに手を出しました。Flex1.5はイマイチわかりませんでしたが、Flex2は別物ですね。これで6万円でイインデスカ?
そしてFlex2とColdFusionの組み合わせなら無敵な気がしますよ。ほんとに。
最新トラックバック
カレンダー
03 2024/04 05
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 29 30
なかのひと
忍者ブログ [PR]