DB2 9.7のFix Pack 2がリリースされました。セキュリティ脆弱性への修正を含みます。
- IBM - Security Vulnerabilities and HIPER APARs fixed in DB2 for Linux, UNIX, and Windows Version 9.7 Fix Pack 2
上記リンクを読むと、セキュリティ脆弱性への修正4つに加え、HIPER APAR(重要度が高い問題)への修正が5つも含まれています。DB2 9.7を本番環境で使われているのでしたら、積極的に適用を検討される事をお勧めします。
また、FP2での機能面での変更点は以下にまとめられています。
- DB2 for Linux, UNIX, and Windows バージョン 9.7 フィックスパックのサマリー
これによると、大きな変更は無いものの、多数の細かい修正や新機能が追加されています。その中からいくつか興味深い物を拾ってみると、
Linuxでは、DB2を導入後シェアードメモリ関連のパラメータ(SHMMNIなど)を大きくする設定が推奨されていましたが、FP2からは強制的に大きな値に修正されるようになったようです。これまでも最低限必要な分には自動的に修正されていたのですが、FP2からはより現実的な値に更新されました。
要するに、NCHARが使えるようになりました。内部的にはNCHARはGRAPHIC文字列の別名です。ドキュメントによるとNCHAR(GRAPHIC)は内部的にUTF16BEでデータを保持するようです。
UDF(ユーザ定義関数)が拡張されて、デフォルト値が指定できたり、名前付き引数が使えるようになっています。
例えばSELECT * FROM EMPLOYEE WAIT FOR OUTCOMEと書くと、別のトランザクションがEMPLOYEE表の挿入/更新/削除をしている場合、それが完了(COMMIT)するまで、SELECTがウエイト(待ち)します。
これはDB2 9.7で他トランザクションの更新処理をウエイトしない動作(CS with CC)がデフォルトになったために作られたようです。以前の動作を一部のSQLで実現したい場合に便利そうです。
この他にもdb2hasコマンドの追加や、バックアップ速度の向上など、小さいながらも色々な新機能が追加されているようです。
Fix Packの取得方法は以下にまとめています。
- Unofficial DB2 FAQ - パッチ(Fix Pack)はどこから取得できますか?
- IBM - Security Vulnerabilities and HIPER APARs fixed in DB2 for Linux, UNIX, and Windows Version 9.7 Fix Pack 2
上記リンクを読むと、セキュリティ脆弱性への修正4つに加え、HIPER APAR(重要度が高い問題)への修正が5つも含まれています。DB2 9.7を本番環境で使われているのでしたら、積極的に適用を検討される事をお勧めします。
また、FP2での機能面での変更点は以下にまとめられています。
- DB2 for Linux, UNIX, and Windows バージョン 9.7 フィックスパックのサマリー
これによると、大きな変更は無いものの、多数の細かい修正や新機能が追加されています。その中からいくつか興味深い物を拾ってみると、
プロセス間通信 (IPC) に関連した Linux® カーネル・パラメーターを更新するために手動で調整する必要はなくなりました。
Linuxでは、DB2を導入後シェアードメモリ関連のパラメータ(SHMMNIなど)を大きくする設定が推奨されていましたが、FP2からは強制的に大きな値に修正されるようになったようです。これまでも最低限必要な分には自動的に修正されていたのですが、FP2からはより現実的な値に更新されました。
NCHAR、NCLOB、および NVARCHAR によって国別文字サポートが拡張されています。
国別文字サポートを補助するために新しいスカラー関数 NCHAR、NCLOB、NVARCHAR、TO_NCLOB、および TO_NCHAR が追加されています。
要するに、NCHARが使えるようになりました。内部的にはNCHARはGRAPHIC文字列の別名です。ドキュメントによるとNCHAR(GRAPHIC)は内部的にUTF16BEでデータを保持するようです。
バージョン 9.7 で導入された以下のプロシージャーの拡張が、ユーザー定義関数 (UDF) に対応するように拡張されています。
UDF を作成してパラメーターのデフォルト値を指定する機能
名前付き引数を使用して UDF を呼び出す機能
UDF(ユーザ定義関数)が拡張されて、デフォルト値が指定できたり、名前付き引数が使えるようになっています。
SELECT ステートメント内で新しい WAIT FOR OUTCOME キーワードを使用して、並行アクセスの解決を指示できます。WAIT FOR OUTCOME は、更新、削除、または挿入の処理中のデータがあるとコミットまたはロールバックを待機するよう指定します。
例えばSELECT * FROM EMPLOYEE WAIT FOR OUTCOMEと書くと、別のトランザクションがEMPLOYEE表の挿入/更新/削除をしている場合、それが完了(COMMIT)するまで、SELECTがウエイト(待ち)します。
これはDB2 9.7で他トランザクションの更新処理をウエイトしない動作(CS with CC)がデフォルトになったために作られたようです。以前の動作を一部のSQLで実現したい場合に便利そうです。
この他にもdb2hasコマンドの追加や、バックアップ速度の向上など、小さいながらも色々な新機能が追加されているようです。
Fix Packの取得方法は以下にまとめています。
- Unofficial DB2 FAQ - パッチ(Fix Pack)はどこから取得できますか?