[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
データーベースを停止する直前になって、ColdFusionのシステムにエラー処理を仕込みました。
やっぱり今週は時間がとれなかった・・・・
さて、
エラー処理といっても、基本中の基本と思われる、データーベースが停止しているときの処理です。
ColdFusion MX7 なので、Application.cfcでやるのが王道でしょう。
拡張子 cfc は、コールドフュージョンコンポーネントです。その中でもApplication.cfcだけは特別扱いのコンポーネント。どの辺が特別かというと、どのcfmを実行するときでも必ず読み込まれるのです。(そのcfmと同一ディレクトリか上位ディレクトリにApplication.cfcが存在すれば ですが) あ、それとApplicationのAは必ず大文字で。
必ず読み込まれるので、そこで<cfquery>を発行して、エラーが出ない事を確認させれば、全部のcfmにチェックするコードを入れる手間は省けるわけです。
ColdFusionでセッション管理をする場合にもApplication.cfcで定義するのですが、ちょっとそれは置いといて、エラー処理について。
======== Application.cfc のソース===========
<cfcomponent>
<cfprocessingdirective pageencoding="UTF-8">
<cfscript>
This.name="genba_ph";
This.clientManagement="False";
This.sessionmanagement="True";
This.Sessiontimeout="#createtimespan(0,0,60,0)#";
</cfscript>
<cffunction name="onApplicationStart">
<!---アプリケーション変数設定--->
</cffunction>
<cffunction name="onRequestStart">
<!--- データーベース確認 --->
<cftry>
<cfquery name="check" datasource="tip">
SELECT COUNT(HONSTNCD) FROM HONSITENMST
</cfquery>
<cfcatch type="database">
<cfoutput><h1>データーベースが停止しているため、システムは現在利用できません</h1></cfoutput>
<cfreturn false>
</cfcatch>
</cftry>
<!--- ログインチェック --->
<!--- session.login があればログイン済
無ければクッキーを調べる。cookie.shimei_cdはポータルと同じクッキー --->
</cffunction>
<cffunction name="onSessionStart">
<!---セッション開始をログ記録--->
</cffunction>
<cffunction name="onSessionEnd">
<!---ディレクトリを作成したなら消す--->
</cffunction>
</cfcomponent>
====================================
Application.cfc は、だいたいこんな構成が多いんだと思います。
エラー処理をしてるのは、<!---データーベース確認--->と書いてあるところ。
<cftry>
エラーが発生する可能性がある処理(クエリ発行)
<cfcatch>
発生しちゃったときの処理
</cfcatch>
</cftry>
このパターンが普通ですね。
ところでApplication.cfc は、ColdFusionMX7から使えるようになったコンポーネント。以前はApplication.cfmでした。
cfcになってから、必ず読み込まれるだけでなく、<cffunction name="どんなときに実行する?">というファンクションがつきました。
<cffunction name="onApplicationStart">は、アプリケーションが開始したとき。
<cffunction name="onRequestStart">は、cfmページが呼ばれたときに最初に必ず。
<cffunction name="onRequestEnd">は、cfmページの最後に必ず。
<cffunction name="onSessionStart">は、セッションが開始したときに必ず。
<cffunction name="onSessionEnd">は、セッションが終了したときに必ず。
今回のデーターベースの稼働確認は、ページを表示する時に毎回チェックさせてます。
その他、注釈のような処理をさせたりしてます。
さて、明日はシステムの引っ越しです。
無事引っ越せるか、結構不安・・・・
情報通信を生業としない企業の、システム系でもない普通の社員なので、 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 |