2010年10月30日土曜日

AIXの/etc下のfb_*ファイルは何?

アドバンスト
技術情報にこんな記述が。

まず /usr/sbin/fbcheckというスクリプトがinittabから呼ばれます。
このスクリプトの機能は、もしそのシステムが /etc以下にfirstbootというファイルを持っていれば
/etc/fb_04_18_03_01といったファイル名に書き換え(mv)、その時点で一度実行し、もう一度このファイルが実行されない様にします。
したがって一度実行されてしまえば使われることはないはずです。
/etc/firstbootファイルは、クライアント環境を変えるためのファーストブートの際に使用されるスクリプトです。


https://www-06.ibm.com/jp/domino01/sl/alsl390.nsf/AllSearch/F569DE86F90C4E504925682B00420875?OpenDocument

クライアント環境を変える際の再起動の度に増えていくファイルみたい。よって、履歴としてみる必要なければ消して良し。

2010年10月28日木曜日

MQのメッセージと同期点処理メモ

■メッセージ
MQでデータを扱う単位で、テキストとバイナリの2種類を扱うことが出来、V5.1以降では1メッセージ100MBまで。

メッセージは、「ヘッダ部(MQMDと呼ばれる構造体)」と「データ部」を持つ。

ヘッダ部で代表的というか良く効く属性。
・Expiry
メッセージの有効期限。キューに書き込まれてから指定の時間を過ぎて何も行われなかった場合、キューから削除される。
・CodeCharSetId
俗にいうCCSID。ここで指定したコードに受信側でコード変換をする。
・MsgIdとCorrelId
一意なIDを付与し、複数メッセージを管理する。
任意に指定することも出来るし、キューマネージャに自動生成させることも出来る。
・ReplyToQとReplyToQMgr
送信したキューの結果を受け取るキューとキューマネージャを指定する場所。

キューマネージャによるデータ変換機能
・MQMD.FormatでMQFMT_STRNIGを指定し、全てがテキストデータである事を表している場合変換される。
以下のパターンの場合、文字変換をしない
①シングルバイト文字とダブルバイト文字の区切りを表すSOとSIが1メッセージ中に揃っていない場合
②ダブルバイトの文字列をシングルバイトへ変換しようとした場合
これらの場合で変換したい場合、キューマネージャにやらせずアプリなどで独自に行わせること。

パーシスタント・メッセージとノン・パーシスタント・メッセージ
・パーシスタント・メッセージ
まずログに書き込みを行い、その後にキューのファイルに書き込みに行く。
物理的にデータを取っておくので、テークオーバーなどが発生した場合にリカバリーをした際に、以前の状態で再開できる。
・ノン・パーシスタント・メッセージ
メモリーに書き込みを行い、メモリーから溢れた場合のみキューのファイルに書き込みに行く。
リブートなどをした場合は、当然以前の状態には戻らない。


■同期点処理
考え方は、DBと同じ。
COMMITをすれば確定し、ROLLBACKすれば以前の状態に戻る。
つまり、キューからメッセージを取り出して処理をしていったが、完了前にエラーとなり最初から再度処理を行わなくてはならない場合、処理の最初の状態、つまりキューにメッセージが入っていた状態に戻るという事。
トランザクション・マネージャとして、CICSなどがある。
WASでDBとの連携する場合、XAで2フェーズコミットを実現。