« 2017年12月 | トップページ | 2018年2月 »

2018年1月

2018年1月25日 (木)

編集中カルテの自動一時保存機能

その時,突然画面から書きかけのカルテが消えた。直前まであったはずのカルテウインドウは忽然と姿を消し,デスクトップには紅葉に映えるシエラネバダ山脈 - High Sierra - の美しい景色が広がっていた。OpenDolphin の礎たる Java VM が何の託ち言も残さず突然落ちたのだ。こんな悲劇が現実に起こり得て,しかも,まさに今,実際に目の前で起きたのだと,そう認識するまでにやや数秒を要した。

泣きながらカルテを入力し直し,そして,このような悲劇を2度と繰り返すことがあってはならない,その強い思いから,編集中カルテを 1秒ごとに一時ファイルとしてローカルディスクに保存する機能 Autosave を付けた。

Autosave は 1秒ごとに KarteEditor の dirty 状態をチェックし,dirty だった場合,KartePaneDumper_2 でカルテ内容を dump して AutosaveModel を作り,さらに json 化してローカルの一時ファイルに保存する。正常にカルテ編集が終了すれば一時ファイルは削除されるが,Java VM が落ちたりした場合は一時ファイルが残る。ChartImpl 立ち上げ時に一時ファイルをチェックして,もし一時ファイルがあれば DocumentModel を復元して KarteEditor に渡し,カルテ編集中状態を回復する。

Karte

バックグランドで動作し,保存にかかる時間は数ミリ秒,シェーマの encode があっても 50ミリ秒程度以下で,パフォーマンスにはほとんど影響なかった。

がんばってプログラムしたが,実際にはこの機能が使われる日が来ないことを祈りたい。

2018年1月14日 (日)

domU の orca サーバを ubuntu 16.04 にアップグレード

まずは autoremove
$ sudo apt-get autoremove
しかる後にアップグレード。
$ sudo do-release-upgrade
jma-receipt は do-release-upgrade の対象ではないので,自動的に apt line がコメントアウトされる。
リポジトリ情報のアップデート
サードパーティが提供するリポジトリを使わない設定にしました
sources.list にあるサードパーティが提供するリポジトリを使わない設定にしました。アップグレード完了後、'ソフトウェアソース' ツールもしくはパッケージマネージャーを使って再び利用可能な設定にすることができます。
設定ファイルについていくつか聞かれるが,いずれもパッケージメンテナのバージョンをインストールする
設定ファイル '/etc/cups/cups-browsed.conf'
 ==> これはインストールしてから (あなたかスクリプトによって) 変更されています。
設定ファイル /etc/postgresql-common/createcluster.conf の新しいバージョン (/tmp/postgresql-common.6101P1) が利用可能ですが、現在インストールされているバージョンは、ローカルで変更されています。
アップグレード完了後,再起動する。
システムのアップグレードが完了しました。
再起動が必要です
アップグレードを完了するには再起動が必要です。
'Y' を選択すると再起動します。
再起動後に,postgresql 9.3 を purge する。これで postgresql 9.5 が立ち上がる。
$ sudo service postgresql stop
$ sudo aptitude purge postgresql-9.3 postgresql-client-9.3
$ sudo service postgresaql start
jma-receipt の apt line を修正する。trusty → xenial の書き換えはしてくれないので,手動で書き換える必要がある。
$ cd /etc/apt/sources.list.d/
$ sudo sh -c "sed -e 's/^# //' jma-receipt-trusty50.list | sed 's/#.*$//' | sed 's/trusty/xenial/' > jma-receipt-xenial50.list"
$ sudo rm jma-receipt-trusty50*
jma-receipt のアップグレード
$ sudo aptitude update
$ sudo aptitude upgrade
データベースの初期化
$ sudo service jma-receipt stop
$ sudo jma-setup --noinstall
DBHOST:		OK (PostgreSQL:localhost)
DBUSER:		OK (orca)
DATABASE:	OK (orca)
DBENCODING:	OK (EUC-JP)
OK! データベースをリストア後再度 jma-setupを実行してください
データベースのリストア
$ pg_restore -Fc -d orca orca_db.dump
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 6067; 0 0 COMMENT EXTENSION plpgsql
pg_restore: [archiver (db)] could not execute query: ERROR:  must be owner of extension plpgsql
    Command was: COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language'
 :
pg_restore: WARNING:  no privileges could be revoked for "public"
pg_restore: WARNING:  no privileges could be revoked for "public"
pg_restore: WARNING:  no privileges were granted for "public"
pg_restore: WARNING:  no privileges were granted for "public"
WARNING: errors ignored on restore: 1
もう一回 jma-setup
$ sudo jma-setup
DBHOST:		OK (PostgreSQL:localhost)
DBUSER:		OK (orca)
DATABASE:	OK (orca)
DBENCODING:	OK (EUC-JP)
DBKANRI		OK (tbl_dbkanri)
UPDATE CHECK:	OK (online)
DBLIST:		OK (050000-1)
LIST DOWNLOAD:	OK (nothing)
DBVERSION:	OK (0500001)
データベース構造変更処理は終了しました
pg_hba.conf の設定
host   all   all   192.168.1.0/24   trust
postgresql.conf の設定
listen_addresses = '*'
port = 5432
リブート後,monsiaj でアクセスしてプログラム更新,マスタ更新,しかる後にスキーマチェック。
$ wget http://ftp.orca.med.or.jp/pub/etc/jma-receipt-dbscmchk.tgz
$ tar xvzf jma-receipt-dbscmchk.tgz
$ cd jma-receipt-dbscmchk
$ sudo bash jma-receipt-dbscmchk.sh
ubuntu 16.04 の orca 5.0 は 2020年の 9月までサポートされる予定。

2018年1月13日 (土)

domU の dolphin サーバを ubuntu 16.04 にアップグレード

まずは autoremove
$ sudo apt-get autoremove
しかる後にアップグレード。
$ sudo do-release-upgrade
java 1.8 は PPA でインストールしていたので,do-release-upgrade の際には停止される。
リポジトリ情報のアップデート
サードパーティが提供するリポジトリを使わない設定にしました
sources.list にあるサードパーティが提供するリポジトリを使わない設定にしました。アップグレード完了後、'ソフトウェアソース'
ツールもしくはパッケージマネージャーを使って再び利用可能な設定にすることができます。
設定ファイルについていくつか聞かれるが,いずれもパッケージメンテナのバージョンをインストールする
設定ファイル /etc/postgresql-common/createcluster.conf の新しいバージョン (/tmp/postgresql-common.h3j36L) が利用可能ですが、現在インストールされているバージョンは、ローカルで変更されています。
設定ファイル /etc/apt/apt.conf.d/50unattended-upgrades の新しいバージョン (/etc/apt/apt.conf.d/50unattended-upgrades.ucftmp) が利用可能ですが、現在インストールされているバージョンは、ローカルで変更されています。
アップグレード完了後,再起動する。
システムのアップグレードが完了しました。
再起動が必要です
アップグレードを完了するには再起動が必要です。
'Y' を選択すると再起動します。
再起動したら,まず postgresql-9.3 を削除する。
$ sudo service postgresql stop
$ sudo aptitude purge postgresql-9.3 postgresql-client-9.3
データベースを dump から戻す。なお,dump を戻すときは posgresql.conf で fsync = off にしておくと時間の節約になる。パスワードも忘れずに設定
$ sudo service postgresql start
$ sudo -u postgres createuser --super dolphin
$ createdb dolphin
$ psql -c "alter user dolphin with password 'dolphin'"
$ pg_restore -Fc -d dolphin dolphin_db.dump
java 1.8 の apt line を再有効化する。 /etc/apt/sources.list.d/webupd8team-java-precise.list のファイルネームを変更し,先頭の # を除去して有効化する。*.distUpgrade は削除する。
$ cd /etc/apt/sources.list.d/
$ sudo mv webupd8team-java-trusty.list webupd8team-java-xenial.list
$ sudo rm webupd8team-java-trusty.list.distUpgrade
$ sudo vi webupd8team-java-xenial.list
$ sudo aptitude update
$ sudo aptitude upgrade
$ sudo update-alternatives --config java
以上で ubuntu 16.04 へのアップグレードは完了。

2018年1月12日 (金)

domU の owncloud サーバを ubuntu 16.04 にアップグレード

domU で運用している自宅サーバの owncloud を ubuntu 16.04 にアップグレードした。
  1. autoremove
    $ sudo apt-get autoremove
    
  2. postgres のデータベースをバックアップ
    $ pg_dump -Fc owncloud > owncloud.dump
    
  3. owncloud を削除する
    $ sudo aptitude purge owncloud
    $ sudo rm /etc/apt/sources.list.d/owncloud.list
    
  4. do-release-upgrade
    $ sudo do-release-upgrade
     :
    設定ファイル '/etc/apache2/sites-available/default-ssl.conf'
     ==> これはインストールしてから (あなたかスクリプトによって) 変更されています。
     ==> パッケージ配布元が更新版を提供しています。どうしますか? 
    → N
     :
    廃止されたメジャーバージョン 9.3
    既存のクラスタがアップグレードされた後に、postgresql-9.3 および postgresql-client-9.3 パッケージを削除する必要があります。
    → <了解>
     :
    設定ファイル /etc/postgresql-common/createcluster.conf の新しいバージョン(/tmp/postgresql-common.4RBMXy) が利用可能ですが、現在インストールされているバージョンは、ローカルで変更されています。変更された設定ファイル createcluster.conf について何を行いたいですか? 
    → パッケージメンテナのバージョンをインストール
     :
    システムのアップグレードが完了しました。
    'Y' を選択すると再起動します。
    続行する[yN]
    
  5. postgresql-9.3 の削除と 9.5 のインストール
    $ sudo purge postgresql-9.3 postgresql-client-9.3
    $ sudo aptitude install postgresql
    
  6. postgresql の設定
    $ sudo vi /etc/postgresql/9.5/main/postgresql.conf
    listen_addresses = '*' ←コメントを解除し、''内を * に修正
    
    $ sudo vi /etc/postgresql/9.5/main/pg_hba.conf
    # IPv4 local connections:
    host    all             all             127.0.0.1/32            trust
    # IPv6 local connections:
    host    all             all             ::1/128                 trust
    
  7. カーネルアップグレード,再起動
    $ sudo apt-get install linux-generic
    
  8. データベースを dump から戻す
    $ sudo -i
    # su - postgres
    $ psql 
    postgres=# CREATE USER a_user WITH PASSWORD 'a_passwd';
    postgres=# CREATE DATABASE owncloud TEMPLATE template0 ENCODING 'UNICODE';
    postgres=# ALTER DATABASE owncloud OWNER TO a_user;
    postgres=# GRANT ALL PRIVILEGES ON DATABASE owncloud TO a_user;
    postgres=# \q
    $ pg_restore -d owncloud owncloud.dump
    
  9. owncloud のレポジトリを設定する
    $ curl https://download.owncloud.org/download/repositories/stable/Ubuntu_16.04/Release.key | sudo apt-key add -
    # echo 'deb http://download.owncloud.org/download/repositories/stable/Ubuntu_16.04/ /' > /etc/apt/sources.list.d/owncloud.list
    
  10. owncloud のインストール
    $ sud aptitude update
    $ sudo aptitude install owncloud-files
    
  11. maintenance モードに設定
    $ sudo vi /var/www/owncloud/config/config.php
     'maintenance' => true,
    
  12. php のインストール
    $ sudo aptitude install php php7.0-pgsql php-bz2 php-curl php-gd php-imagick php-intl php-mbstring php-xml php-zip libapache2-mod-php
    
  13. owncloud.conf の有効化と apache2 のリロード
    $ sudo a2enconf owncloud
    $ sudo service apache2 reload
    
  14. maintenance モードを解除
    $ sudo vi /var/www/owncloud/config/config.php
     'maintenance' => false,
    
  15. あとは,ブラウザからアクセスして,「アップデートを開始」をクリック。無事 ubuntu 16.04 + owncloud 10.0.4 にアップデートされた。

2018年1月11日 (木)

サーバの dom0 を ubuntu 16.04 にアップグレード

サーバの dom0 を ubuntu 16.04 にアップグレードした。14.04 の時と同じように do-release-upgrade した。efi インストール (mac mini) も試してみたが,xen をインストールすると起動途中で固まってしまい,断念した。
$ sudo apt-get autoremove
$ sudo do-release-upgrade
 :
SSH経由で実行していますが、続けますか?
続行する[yN] y
 :
アップグレードを開始しますか?
続行する[yN]  詳細 [d] y
 :
システムのアップグレードが完了しました。
再起動が必要です
アップグレードを完了するには再起動が必要です。
'Y' を選択すると再起動します。
続行する[yN] y
再起動後に uname でカーネルを確認してみると
$ uname -r
3.13.0-137-generic
なぜかカーネルが古いままになっていた。そこで,
$ sudo apt-get install linux-generic
これでカーネルも最新バージョンになった。
$ uname -r
4.4.0-109-generic
xen の balooning を止める設定
/etc/defaults/grub
GRUB_CMDLINE_XEN_DEFAULT="dom0_mem=512M,max:512M"
/etc/xen/xl.conf
autoballoon=0
しかる後に update-grub と reboot

« 2017年12月 | トップページ | 2018年2月 »