トップ «前の日記(2006-03-10) 最新 次の日記(2006-03-14)» 編集

ORCA愉快日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|10|11|12|
2012|01|02|09|
2013|04|

2006-03-11 jma-receipt 2.7.0のチェックメモ

_ [orca] jma-receipt 2.7.0のチェックメモ

jma-receipt2.7の内部的な挙動に関するメモ。ネットワークにつながっていない状態でdpkg-reconfigureすると、jma-receiptの起動に失敗する現象も調査。

■ jma-receipt 2.7.0での変更点メモ
  
  
基本的な情報は以下のURLの内容ならびにPDFを参照のこと。
http://www.orca.med.or.jp/receipt/outline/update/ver270.rhtml
    
□ 依存関係のバージョンの変更
$ diff 2.6.0/debian/control 2.7.0/debian/control
panda-serverの依存関係が、panda-server (>= 1:1.2.5)からpanda-server (>= 1:1.2.6)に変更。
  
  
□ debconfによるインストール時の質問
インストール時にデータベース構造変更処理をするかどうかの
debconfの質問ダイアログを出すのが追加になっている。
   
$ diff 2.6.0/debian/config 2.7.0/debian/config 
44a45,47
> db_input medium jma-receipt/install-with-database || true
> db_go
> 
  
  
□ /usr/lib/jma-receipt/bin/ディレクトリの追加
ソース的には、2.7.0から従来のorca-hospid-set.shからjma-receipt-hospid-set.shに
名前変更になり、binディレクトリの中に格納されるようになった。
binディレクトリ内には、jma-receipt-hospid-set.shと新規のjma-receipt-db-setup.shがある。
それぞれ、医療機関IDの設定とデータベース構造変更処理のためのスクリプト。
  
  
□ /etc/init.d/jma-receiptスクリプトの変更 
initスクリプト中で、スキーマチェックが行われるようになった。
これにより、/usr/lib/jma-receipt/init/database-non-upgradeというチェックファイルの
存在により、データベーススキーマのチェックを行うかどうかの判断をしている。
  
このチェックファイルは、jma-receiptのインストール時またはdpkg-reconfigureでの
設定時に作成/削除される。または、以下のようなdebconfでの設定時のメッセージにも
あるように、手動で/usr/lib/jma-receipt/bin/jma-receipt-db-setup.shを
実行することで、データベース構造変更処理に成功すれば、このチェックファイルが削除される。
  
試しに、jma-receiptが起動できない状態にして、このチェックファイルを削除すれば
jma-receiptが起動して、ひととおり使えるようだ。ただし、DB管理情報等に不整合が
起きないかどうかについては、いまのところ検証中。
  
  
       「No」を選択すると、インストールまたはアップグレードすると同時にデー
       タベース構造変更処理は実行されなくなります。この場合、インストール
       またはアップグレードが終了してから、手動で/usr/lib/jma-receipt/bin/
       jma-receipt-db-setup.sh を実行する必要があります。実行していない場合、
       jma-receipt デーモン(サーバプログラム)をスタートさせても起動されません。
  
  
□ 簡単なまとめ
apt-getやdpkg-reconfigureの実行
                         ↓
jma-receiptパッケージ内部のpostinstスクリプトが実行される
                         ↓
/usr/lib/jma-receipt/init/database-non-upgrade
というチェックファイルが生成される。
                         ↓
orca-db-create.shとorca-db-install.shとorca-db-clear.shが
実行される。
                   ↓                                            ↓
orca-db-install.shで                orca-db-install.shで
インストールに成功                   インストールに失敗(ネットワークにつながっていない等)
                   ↓                                            ↓
上記のチェックファイルが         上記のチェックファイルは
削除される                                 削除されない
                   ↓                                            ↓
/etc/init.d/jma-receipt          /etc/init.d/jma-receipt
でちゃんと起動する                    で警告メッセージが表示されて
                                                    起動しない
  
(orca-db-install.shでは、オンラインモードだとwgetでftp.orca.med.or.jpから
ファイルを取得するので、ネットワークにつながっていないと失敗する。)
  
  
□ /etc/init.d/jma-receipt 起動スクリプトの差分
$ diff 2.6.0/debian/init.d 2.7.0/debian/init.d
56a57,68
> function schema_check() {
> # check. execute database schema change processiong
> if [ -e "$ORCALIB"/init/database-non-upgrade ]
> then
>     echo "Don't execute database schema change processing."
>     echo "Execute $ORCALIB/bin/jma-receipt-db-setup.sh manually."
>     echo
>     echo "Cancel {$1} $DESC daemon."
>     exit 0
> fi
> }
> 
64a77
>       schema_check "$1"
100c113
<                       -dir "$LDDIRECTORY" -restart -wait 1 -wfcwait 10 \
---
>                       -dir "$LDDIRECTORY" -restart -wait 1 -wfcwait 10 -retry 1 \
147a161
>       schema_check "$1"
212a227
>       schema_check "$1"
253a269
>       schema_check "$1"
  
  
□ インストール/再設定時に実行されるpostinstスクリプトの差分
diff -r 2.6.0/debian/postinst 2.7.0/debian/postinst
57a58,61
>       db_get jma-receipt/install-with-database
>       echo "INSTALL_WITH_DATABASE=$RET" >> $tmp
>       INSTALL_WITH_DATABASE=$RET
> 
140,142c144,159
<       "$ORCADIR"/init/orca-db-create.sh
<       "$ORCADIR"/init/orca-db-install.sh
<       "$ORCADIR"/init/orca-db-clear.sh
---
>       touch "$ORCADIR"/init/database-non-upgrade
>       
>       if [ "$INSTALL_WITH_DATABASE" = true ] ; then
>           "$ORCADIR"/init/orca-db-create.sh
>           "$ORCADIR"/init/orca-db-install.sh
>           if [ $? -eq 0 ] ; then
>               if [ -e "$ORCADIR"/init/database-non-upgrade ] ; then
>                   rm -f "$ORCADIR"/init/database-non-upgrade
>               fi
>           fi
>           "$ORCADIR"/init/orca-db-clear.sh
>       fi
> 
>       rm -rf /var/tmp/.orca_ps
>       rm -f /var/tmp/K02SPASCR*
>       rm -f /var/tmp/K01PARA*
  
参考にしたdebconfのメモ
http://ukai.jp/debuan/2001w/debconf.txt

トップ «前の日記(2006-03-10) 最新 次の日記(2006-03-14)» 編集