講演資料 - InterSystems

誰でも分かるアップグレード
も分かる
プグ
ド
インターシステムズジャパン株式会社
カスタマーサポート
カスタマー
サポート
サポートエンジニア
中橋 聖介
Agenda
• アップグレードのすすめ
• アップグレードで何が変わるか
プグ
• アップグレードに向けた準備
1
1. Why?
• アップグレード
アップグレードのすすめ
のすすめ
• アップグレード
アップグレードで
で何が変わるか
プ
• アップグレードに向けた準備
日々是進化
4155
• 前バージョンからの
Bug Fix,
Fix 新機能個数
8008
5535
4594
26,000
= 20 /日
3619
5.1
5.2
2007.1 2008.1
2009.1 2010.1
2
重要機能も日々是修正
• Start / Stop / Journal / License限定
License限定
62
167
79
500
129
= 10 /月
74
5.1
5.2
2007.1
2008.1
2009.1
2010.1
基本パフォーマンスも向上
5.0.21
2007.1
2010 1
2010.1
ObjectScript エンジンが 20%
3
きっかけは様々
• アプリへ
アプリへの新機能搭載
の新機能搭載
• 足回り
足回りパフォーマンス
パフォーマンスの向上
の向上
• 潜在的なバグを防ぐため
• システムトラブル解決のため
• OS
OSやハードウェアの変更
やハードウェアの変更
• 周辺アプリのバージョンアップ
だからアップグレード
• きっかけは様々だが、アップグレードを行う必要に、
いつかは遭遇する
• アップグレードの現象を紐解き、怖さをなく
アップグレードの現象を紐解き、怖さをなくす
す
4
この人は誰?
• 父の後継としてトップにたつ
• 革命的なアイデアを素早く実行
• 30
30年間で
年間で 総資産
総資産は
は 200
200倍
倍
• 組織の元 No 1の部下を突然解雇
1の部下を突然解雇
時代の変化
時代
の変化から目をそらし
から目をそらし
古い栄光にしがみつくばかりだ
2. What?
• アップグレードのすすめ
• アップグレード
アップグレードで何が変わるか
プグ
で何が変わるか
• アップグレードに向けた準備
5
上書きアップグレード
• 上書きアップグレード
Cache 2007.1
Cache 2010.1
Caché関連ファイル
• 各モジュ-ルは 上書きコピー される
– CACHE(.exe),
CACHE(
) CCONTROL(.exe)
CCONTROL(
) などの bin
bi ファイル
• cache.cpf (Caché
Caché設定ファイル
設定ファイル)) は 再作成される
– 書き換わる可能性
書き換わる可能性がある
がある
• ジャーナルや
ジャーナルやCACHE.WIJ
CACHE.WIJには
には 手を付けない
6
System DBの書き換え
• システムDB
システムDBのルーチン
のルーチン&
&クラスを 強制削除
– ただし %z*,
% * %Z* , z*,
* Z* は削除されない
– 削除後、
削除後、新モジュールがインポート
新モジュールがインポートされる
される
• システムグローバルが変更される
• (ユーザ
ユーザ)
ザ) グローバルには手を付けない
グ
バ
手を付 な
• つまり、
つまり、CACHE.DAT
CACHE.DAT が入れ替わるわけではない
User DBの書き換え
• ルーチン・グローバルには手を付けない
– ただし、ルーチンの再コンパイル
ただし ル チンの再コンパイル
ただし、ルーチンの
チンの再コンパイルがお勧め
がお勧め
• クラス情報は全てリセットされる
クラス情報は全てリセットされる
– アップグレード直後は SQL
SQLアクセス不可
アクセス不可
– キャッシュドクエリも削除される
キャッシ ドクエリも削除される
– クラスの
クラスのアップグレード
アップグレード&
&再コンパイル
再コンパイルが必要
が必要
7
再: インストーラの実行内容
• モジュールの書き換え (exe, dll
dll))
• 構成ファイルの書き換え
• %SYS (システムデータベース
(システムデータベース))の更新
• User DB のクラス情報削除
アップグレードに備える
• 構成ファイル (cache.cpf
cache.cpf)) のバックアップ
• 現バージョンの%SYS
現バージョンの%SYSの確認
の確認
– ユーザ作成のルーチン・クラスはないか
– システムルーチン・クラスの修正はないか
• インストール完了後の クラス&ルーチンコンパイル
8
補足: 古いCACHE.DAT
Cache 2007.1
Cache 2010.1
• グローバルデータはそのまま使用可能
• クラスのアップグレード & 再コンパイル
再コンパイルは必要
は必要
• ルーチン再コンパイル
補足: 最新クライアントならOK
Cache 2007.1
Cache 2010.1
Cache 2010.1
9
3. How?
• アップグレード
アップグレードの
のすすめ
• アップグレード
アップグレードで何が変わるか
で何が変わるか
プ
• アップグレードに向けた準備
覚悟
私のアプリは そのまま動きますよね
そのまま動きますよね??
10
動作保証が難しい理由
• システムの仕様が変わる
システムの仕様が変わる
– CASE
CASE式の戻り値の型が、「最初のケースの型」
式の戻り値の型が、「最初のケースの型」
CASE式の戻り値の型が
式の戻り値の型が 「最初のケ スの型」
から「優先順位の高い型」 に変更 (2010.1)
• バグ修正に絡んで動作が変わる
バグ修正に絡んで動作が変わる
– 数値の丸め処理の精度が向上し
$Number/$Doubleの戻り値が異なる
$Number/$Double
の戻り値が異なる (2009.1)
• ユーティリティが削除
ユーティリティが削除される
される
– ライセンス管理 %LMFCLI, ロック管理 %LM (5.1)
何を気を付ければいいのか
• アップグレードチェックリストの確認
11
およその傾向
• Caché ObjectScript (MUMPS) レベルの動きは、ここ数
年ほぼ変化してない
– ルーチンロジックはそのまま動く
ルーチンロジックはそのまま動く可能性が高い
可能性が高い
• SQL文は
SQL文は 要チェック&再テスト
要チェック&再テストの必要あり
の必要あり
– SQL
SQL動作の厳密化など、変更点が比較的多い
動作の厳密化など、変更点が比較的多い
• CSP・クラスの構文チェックが厳密になった
CSP・クラスの構文チェックが厳密になった
– 新バージョンでコンパイルエラーになることも
Cachéのバージョン
• メジャーバージョン (新バージョン
新バージョン))
– 新機能
新機能追加
新機能追加・大幅な仕様変更
追加
追加・大幅な仕様変更
大幅な仕様変更
5.1
5.2
2007.1
2008.2
2009.1
2010.1
2008.1
• マイナーバージョン
マイナ バ ジョン (メンテナンスリリース
メンテナンスリリ
メンテナンスリリース)
ス)
ス)
– 障害修正のみ
2009.1
2009.1.1
2009.1.2
2009.1.3
12
まとめ: アップグレードは天秤
• 準備なくアップグレードできない
– アップグレードリストの
アップグレードリスト
アップグレ ドリストの
ドリストの確認
– アプリの再テストが必須
• 新バージョンでアプリを実行できる
– 新機能追加 & 大量の
大量のBug
Bug修正
修正
– 性能向上の期待大
Be InterSystems With You
バージョンアップにまだ不安があります
InterSystemsがついています
InterSystems
がついています
13
誰でも分かるアップグレード
も分かる
プグ
ド
インターシステムズジャパン株式会社
カスタマーサポート
カスタマー
サポート
サポートエンジニア
中橋 聖介
14