Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Update 2 リリースノート

- Previous: 第 1 章 概要
- Next: 第 3 章 既知の問題点と制限事項

# 第 2 章 Application Server 8.1 Update 2 2005Q2 の概要

Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Update 2 は、大規模な本稼働環境を持つ J2EE アプリケーションおよび Java テクノロジベースの Web サービスを開発および配備するための、J2EE 1.4 プラットフォーム互換サーバーです。

この節では、次の点を説明します。

- 「8.1 2005Q2 Update 2 リリースでの新機能」

- 「ハードウェアとソフトウェアの要件」

- 「Enterprise Edition 8.1 リリースで修正されたバグ」

- 「Enterprise Edition 8.1 Update 2 リリースで修正されたバグ」

- 「HADB に関する追加情報」

- 「Application Server 製品リリース」

- 「互換性の問題」

- 「J2EE のサポート」

- 「高パフォーマンス」

- 「スケーラビリティー」

- 「JavaServer Faces 1.1 のサポート」

# 8.1 2005Q2 Update 2 リリースでの新機能

Application Server Enterprise Edition 8.1 2005Q2 Update 2 には、次の拡張機能が含まれています。

- 改善された管理機能 — Application Server では、複数のマシンで構成される複雑なエンタープライズ配備を、セキュリティー保護された状態でリモート管理できます。このリモート管理には、ブラウザベースのコンソールか、スクリプトを使用できるコマンド行インタフェースを使用できます。また、セキュリティー保護された状態でリモートから管理および監視機能にプログラムアクセスするための JMX ベースの豊富な API も用意されています。

- Message Broker — Application Server には、高可用性、信頼性、高パフォーマンス、およびスケーラブルなメッセージングを実現する統合エンタープライズクラスのメッセージブローカが含まれています。

- プラットフォームサポートの拡張 — サポートするオペレーティングシステム、データベース、ロケール、およびハードウェアが追加されています。

- Sun Java Enterprise System — Sun Java Enterprise System の主要な構成要素として、Application Server はポータルサービスおよびネットワークアイデンティティーサービスと緊密に統合されています。

- 移行ツールとアップグレードツール — これらのツールにより、J2EE アプリケーションの規格合致性および移植性を保証し、別の J2EE Application Server (JBoss、WebLogic、WebSphere) からの移行に役立ち、以前のバージョンの Sun ONE Application Server や iPlanet Application Server からのアップグレードを支援することが可能になります。

- Java 2 Standard Edition 5.0 のサポート — Application Server は、管理および監視のための拡張機能とパフォーマンスおよびスケーラビリティーについての改善点を数多く含む Java 2 Standard Edition 5.0 をサポートしています。

- Java Web Services Developer Pack 1.6 (JWDSP) のプラグインサポート — すべての JWSDP プラグインがサポートされるようになりました。JWSDP 1.6 は `http://java.sun.com/webservices/downloads/1.6/index.html` から無料でダウンロードできます。

- JDBC ドライバ — Application Server には、Sun の JDBC ドライバが付属しています。

- Web サービスセキュリティー — これらのコンテナメッセージのセキュリティーメカニズムは、SOAP Web サービス呼び出しのメッセージレベルでの認証 (たとえば XML 電子署名および暗号化) を、OASIS WS-Security 規格の X509 およびユーザー名/パスワードのプロファイルによって実装しています。

- WS-I Basic Profile 1.1 — J2EE 1.4 の仕様で規定されているように、このリリースは Web サービスアプリケーションの相互運用を可能にするための Web Services Interoperability (WS-I) Basic Profile 1.1 を実装しています。

- iWay アダプタによるバックエンド接続 — Sun Microsystems は、現時点で 22 の iWay アダプタを、主要なバックエンドシステム (SAP、Siebel、Oracle、CICS、および IBM MQ Series) 向けに再販およびサポートしています。これは、Application Server 環境内から既存の IT アプリケーションを利用できるようにするためです。これらのアダプタは、J2EE Connector Architecture 1.5 仕様と Web サービス (SOAP) 規格をサポートしており、バックエンドアプリケーションに接続するための時間を節減する開発者ツールを含んでいます。

- 最新の HADB 管理システム — UNIXTM プラットフォームは、新しい高可用性データベース (HADB) 管理システム (HADB Version 4.4.2–7) を備えています。このシステムには、データベースサーバー、ODBC 2.5 ドライバ、JDBC 3.0 Type 4 のドライバ、`clusql` (SQL 文の入力と実行を行うための対話型プログラム)、および管理システムが含まれています。このバージョンにより、SSH や RSH に依存することがなくなりますが、UDP マルチキャスト用にネットワークを設定する必要があります。HADB の要件と制限事項の詳細は、『Sun Java System Application Server Enterprise Edition 8.1 2005Q2 高可用性 (HA) 管理ガイド』を参照してください。

- Solaris 10 ゾーンのサポート – Application Server は、Solaris 10 システムの大域ゾーンまたは非大域ゾーンのどちらにもインストールできます。別の Application Server インストールがすでに大域ゾーンにインストールされている場合でも、Application Server Enterprise Edition 8.1 を「完全ルート」の非大域ゾーンにインストールできます。Solaris ゾーンについては、Solaris ゾーンのページを参照してください。

# ハードウェアとソフトウェアの要件

ここでは、Sun Java System Application Server Enterprise Edition 8.1 製品をインストールする前に満たしている必要のある要件を示します。

- 「プラットフォーム要件」

- 「システムの仮想化のサポート」

- 「重要なパッチ情報」

- 「JDBC ドライバとデータベース」

- 「Oracle の設定」

- 「PointBase の設定」

- 「Web サーバー」

- 「ブラウザ」

- 「HADB の要件とサポートされているプラットフォーム」

- 「Sun Java System Application Server のアップグレード」

- 「サポートされている J2SE バージョンへの切り換え」

- 「その他の要件」

## プラットフォーム要件

次の表に、Sun Java System Application Server Enterprise Edition 8.1 2005Q2 製品でサポートされているオペレーティングシステムを示します。また、Application Server をインストールして実行するための最小および推奨のメモリー要件も示します。

表 2–1 Sun Java System Application Server 8.1 2005Q2 のプラットフォーム要件

オペレーティングシステム | 最小メモリー | 推奨メモリー | 最小ディスク容量 | 推奨ディスク容量 | JVM
--- | --- | --- | --- | --- | ---
Sun Solaris 8、9、10 (SPARC) Solaris 9、10 (x86) | 512M バイト | 1G バイト | 250M バイトの空き領域 | 500M バイトの空き領域 | J2SE 1.4.2_06、J2SE 5.0
Red Hat Enterprise Linux 2.1 Update 2、3.0 Update 1 | 512M バイト | 1G バイト | 220M バイトの空き領域 | 300M バイトの空き領域 | J2SE 1.4.2_06、J2SE 5.0
Windows Server 2000 SP4+ Windows 2000 Advanced Server SP4+ Microsoft Windows Server 2003 Windows XP Pro SP1+ | 1G バイト | 2G バイト | 500M バイトの空き領域 | 1G バイトの空き領域 | J2SE 1.4.2_06、J2SE 5.0

UNIX では、オペレーティングシステムのバージョンを `uname` コマンドで確認できます。ディスク容量は `df` コマンドで確認できます。

## システムの仮想化のサポート

システムの仮想化は、複数のオペレーティングシステム (OS) インスタンスを共用ハードウェア上で個別に実行できるようにするテクノロジです。機能的にいうと、仮想化された環境でホストされる OS に配備されたソフトウェアは、通常はベースとなるプラットフォームが仮想化されていることを認識しません。Sun では、精選されたシステムの仮想化と OS の組み合わせについて、その Sun Java System 製品のテストを行っています。これは、Sun Java System 製品が、適切な規模と構成の仮想化された環境で、仮想化されていないシステム上の場合と同様に引き続き機能することを実証するためのテストです。仮想化された環境における Sun Java System 製品のサポートについては、System Virtualization Support in Sun Java System Productsを参照してください。

## 重要なパッチ情報

現時点で Sun Java System Application Server Enterprise Edition 8.1 に必要なパッチについては、`http://sunsolve.sun.com` にアクセスして、「`app server 8.1 patch`」を検索してください。Sun Java System Application Server Enterprise Edition 8.1 のリンクをたどります。オペレーティングシステムのパッチ要件が変わって Java Enterprise System コンポーネントに対するパッチが利用可能になると、最初は推奨パッチクラスタとして SunSolve からアップデートが入手可能になります。

### Solaris のパッチ要件

Solaris 9 または 10 (x86 または SPARC) を使用する場合には、「Sun 推奨パッチクラスタ」をインストールすることをお勧めします。このパッチクラスタは、SunSolve の& セキュリティーパッチから入手できます。

### RedHat Enterprise Linux 3.0 の追加パッケージ要件

インストールプログラムをはじめとして、この製品のネイティブコンポーネントを実行するには、標準の RedHat Enterprise Linux 3.0 ディストリビューションには含まれていないパッケージ をインストールする必要があります。`compat-libstdc++-7.3-2.96.118.i386.rpm` をインストールする必要があります。

このパッケージは、`http://rpm.pbone.net/index.php3/stat/4/idpl/843376/com/compat-libstdc++-7.3-2.96.118.i386.rpm.html` からダウンロードできます。

## JDBC ドライバとデータベース

Sun Java System Application Server は、対応する JDBC ドライバを備えた任意の DBMS への接続をサポートするように設計されています。Sun がテストし、J2EE 準拠のデータベース設定を行うのに使用できることが確認されたコンポーネントを、次の表に示します。

表 2–2 J2EE 準拠の JDBC ドライバ

JDBC ベンダー | JDBC ドライバのタイプ | サポートされるデータベースサーバー
--- | --- | ---
i-net Software | Type 4 | Oracle (R) 8.1.7、9i、9.2.0.3 Sybase ASE 12.5.2 Microsoft SQL Server 2000 4.0 Service Pack 1
IBM | Type 2 | IBM DB2 8.1 Service Pack 3+
PointBase | Type 4 | PointBase Network Server 4.8
DataDirect | Type 4 | Oracle (R) 8.1.7、9i、9.2.0.3 Sybase ASE 12.5.2 Microsoft SQL Server IBM DB2 8.1 Service Pack 3+
Sun Java System JDBC Driver for Oracle | Type 4 | Oracle (R) 9.2.0.3、10G
Sun Java System JDBC Driver for DB2 | Type 4 | IBM DB2 8.1 Service Pack 3+
Sun Java System JDBC Driver for Sybase | Type 4 | Sybase ASE 12.5.2
Sun Java System JDBC Driver for Microsoft SQL Server | Type 4 | Microsoft SQL Server 2000 4.0 Service Pack 1
Oracle | Type 4、Type 2 | Oracle (R) 9.2.0.3、10G

i-net Software については、`http://www.inetsoftware.de/` を参照してください。

DataDirect Technologies については、`http://www.datadirect.com/` を参照してください。

## Oracle の設定

J2EE 1.4 に準拠するように Oracle JDBC ドライバを適切に設定する必要があります。Type 2 および Type 4 のドライバを次のように設定してください。

### Oracle を設定するには

1. 9.2.0.3 以降の JDBC ドライバを使用します。

2. Oracle データベースのパラメータファイル (`init.ora`) に `compatible=9.0.0.0.0` またはそれ以上の値を加えます。

3. `ojdbc14.jar` ファイルを使用します。

4. Application Server の設定を変更して JVM のプロパティーを次のように定義します。

       -Doracle.jdbc.J2EE13Compliant=true

   さらに、`Type-2` のドライバについては、Application Server が起動される環境で `ORACLE_HOME` 変数と `LD_LIBRARY_PATH` 変数 (ここには `$ORACLE_HOME/lib` が含まれている必要がある) の両方を定義する必要があります。たとえば、これらを `asenv.conf` ファイルに追加し、必ずエクスポートされるようにします。

## PointBase の設定

多くのサンプルアプリケーションは、Application Server に付属の PointBase データベースサーバーを使用しています。Application Server Enterprise Edition を使用する場合、事前に PointBase データベースサーバーを設定する必要があります。

PointBase を設定するには、次の 2 つの方法があります。

1. オペレーティングシステムおよびシェルの適切なコマンドを使用して、環境変数 `JAVA_HOME` を J2SE がインストールされているディレクトリに設定します。次に例を示します。`% setenv JAVA_HOME "/opt/SUNWappserver/jdk"`

2. 次のように、Application Server の PointBase 設定ファイルを編集します。

   1. Solaris および Linux システムでは、`install_dir/pointbase/tools/serveroption/pbenv.conf` 設定ファイルを編集して、次の行を変更します。

      `PB_JAVA=%%%PB_JAVA%%%`

      上記の行を次のように変更します。

      `PB_JAVA=J2SE_location`

   1. Windows システムでは、`install_dir\pointbase\tools\serveroption\pbenv.bat` 設定ファイルを編集して、次の行を変更します。

      `PB_JAVA=%%%PB_JAVA%%%`

      上記の行を次のように変更します。

      `PB_JAVA=J2SE_location`

   ここで J2SE_location は、J2SE がインストールされているディレクトリです。Application Server と一緒に J2SE をインストールした場合、J2SE はデフォルトで `install_dir/jdk` にインストールされます。

   この変更を加えた後で、`startserver` スクリプトを使用して PointBase を起動できます。

## Web サーバー

ここでは、Sun Java System Application Server Enterprise Edition 8.1 2005Q2 向けにサポートされている Web サーバーを示します。

表 2–3 サポートされている Web サーバー

Web サーバー | バージョン | オペレーティングシステム
--- | --- | ---
Sun Java System Web Server | 6.1+ | Solaris SPARC 9、10 Solaris x86 9、10 Red Hat Enterprise Linux 3 および 4
Apache Web Server | 1.3+、1.4、2.0 | Solaris SPARC 9、10 Solaris x86 10 Red Hat Enterprise Linux 3 および 4 Windows Server 2003 Windows 2000 Advanced Server SP4+ Windows Server 2000 SP4+ Windows XP Pro SP1+
Microsoft IIS® | 5.0+ | Windows Server 2003 Windows 2000 Advanced Server SP4+ Windows Server 2000 SP4+ Windows XP Pro SP1+

## ブラウザ

ここでは、Sun Java System Application Server Enterprise Edition 8.1 2005Q2 でサポートされているブラウザを示します。

表 2–4 サポートされている Web ブラウザ

ブラウザ | バージョン
--- | ---
Mozilla | 1.4、1.5、1.6、1.7.x
Netscape Navigator | 4.79、6.2、7.0
Internet Explorer | 5.5 Service Pack 2、6.0

## HADB の要件とサポートされているプラットフォーム

「ハードウェアとソフトウェアの要件」に示されている要件に加えて、システムが、下に示されている HADB を実行するための要件を満たしていることを確認してください。

- 「サポートされるプラットフォーム」

- 「HADB サーバーホストの要件」

- 「HADB 管理ホストの要件」

- 「HADB クライアントホストの要件」

注 –

システムの Java コンポーネントは JDK 1.4.2_02 を使用して構築され、JDK 1.5 上でテストされています。

### サポートされるプラットフォーム

- Solaris (SPARC) – Solaris 8 MU7、Solaris 9 MU7、Solaris 10 RR。

- Solaris (x86) – Solaris 9 MU7、Solaris 10 RR。

- RedHat Enterprise Linux - 2.1 U5 (`ext3` はサポートされず、`ext2` ファイルシステムのみがサポートされている)、3.0 U4 (`ext2` と `ext3` の両方がサポートされている。U4 より前のアップデートは、過剰なスワッピングのために推奨されない)。これらのオペレーティングシステムバージョンでは、HADB が 32 ビットモードでのみテストされていることに注意してください。また、HADB が、オペレーティングシステム内のバグのために 64 ビットモードで動作している RedHat Enterprise Linux 3.0 をサポートしていないことにも注意してください (HADB への影響の詳細は、「高可用性」の既知のバグ 6249685 を参照)。

- Microsoft Windows – Microsoft Windows 2000 Advanced Server Service Pack 4 および Microsoft Windows 2003 Enterprise Edition。HADB が、間もなく登場する、64 ビットモードの Microsoft Windows オペレーティングシステムバージョンをまったくサポートしていないことに注意してください。

### HADB サーバーホストの要件

- 最小メモリー - ノードあたり 320M バイト。

- 最小空きディスク容量 - ホストあたり HADB バイナリ用に 70M バイト。さらに、データデバイスにもディスク容量が必要、ノードあたりテストインストール用に 512M バイト。

- 推奨メモリー - ノードあたり 512M バイト。

- 推奨空きディスク容量 - ホストあたり HADB バイナリ用に 70M バイト。さらに、データデバイスにもディスク容量が必要、ノードあたりテストインストール用に 1200M バイト。

注 –

HADB データとログファイルを格納するデバイスで書き込みキャッシュが無効になっていることを確認してください。一部の Solaris プラットフォーム (たとえば、Solaris x86) では、デフォルトで書き込みキャッシュが有効になります。

### HADB 管理ホストの要件

- 最小メモリー - 128M バイト

- 最小空きディスク容量 - ノードあたり HADB バイナリ用に 70M バイト

### HADB クライアントホストの要件

- 最小メモリー - 120M バイト

- 最小空きディスク容量 - 20M バイト

## Sun Java System Application Server のアップグレード

Application Server の以前のどのリリースからも、上書きアップグレードはサポートされていません。以前のバージョンの Application Server から現在のバージョンへのアップグレードに関する詳細な指示については、『Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Upgrade and Migration Guide』を参照してください。

## サポートされている J2SE バージョンへの切り換え

PointBase を Application Server とともに使用する場合は、J2SE 1.4.2 をダウンロードし、それを付属の J2SE 5.0 JVM の代わりに使用してください。これを行うには、次の手順に従います。

### J2SE 1.4.2 に切り替えるには

1. まだインストールされていない場合、J2SE 1.4.2 SDK (JRE ではない) をダウンロードしてシステムにインストールします。

   J2SE 1.4.2 SDK は、`http://java.sun.com/j2se/1.4.2/` からダウンロードできます。

2. Application Server を停止します。

   コマンド行から、次のように入力します。

       install_dir/bin/asadmin stop-domain

   管理コンソールで次のようにします。

   1. 「アプリケーションサーバー」ノードをクリックします。

   2. 「インスタンスの停止」をクリックします。

3. `install_dir/config/asenv.conf` ファイル (Windows では `asenv.bat`) を編集して、`AS_JAVA` の値を J2SE 1.4.2 のホームディレクトリを指すように変更します。

4. `as-install/samples/common.properties` ファイルを編集して、`com.sun.aas.javaRoot...` で始まる行を J2SE 1.4.2 のホームディレクトリを参照するように変更します。

5. Application Server を再起動します。

   コマンド行から、次のように入力します。

       install_dir/bin/asadmin start-domain

   管理コンソールで次のようにします。

   1. 「アプリケーションサーバー」ノードをクリックします。

   2. 「インスタンスを起動」をクリックします。

## その他の要件

Sun Java System Application Server ソフトウェアをインストールする前に、次の追加の要件が満たされるようにしてください。

- 空き領域 — 一時ディレクトリには、少なくとも、Sun Java System Application Server のインストール用に 35M バイトの空き領域と、SDK のインストール用に 250M バイトの空き領域が必要です。

- アンインストールプログラムの使用 — システムから Application Server を削除する必要がある場合は、ソフトウェアに付属のアンインストールプログラムを使用することが重要です。他の方法を使って削除すると、同じバージョンの再インストールや新しいバージョンのインストールを行うときに問題が発生する可能性があります。

- 空きポート — 利用可能な未使用ポートが 7 つ必要です。

  - インストールプログラムは、使用されているポートを自動的に検出し、その時点で未使用のポートをデフォルトの設定として示します。デフォルトでは、HTTP については `8080`、HTTPS については `8181`、Administration Server については `4849` が初期デフォルトポートです。

  - インストールプログラムは、使用されているポートを検出し、それ以外の 2 つのポートを割り当てます。そのポートは、Sun Java System Message Queue (デフォルトでは、7676) と、IIOP (デフォルトでは、IIOP の場合は 3700、IIOP/SSL の場合は 1060 と 1061) です。これらのデフォルトポート番号が使用されている場合、インストールプログラムは動的ポートの範囲から無作為にポート番号を割り当てようとします (これは利用可能な次のポート番号とはかぎらない点に注意)。

  インストール済みサーバーの起動 (UNIX) — インストール済みサーバーを置き換える場合以外は、Sun Java System Application Server 8.1 のインストール処理を開始する前に、インストール済みサーバーを起動してください。インストールプログラムが使用中のポートを検出するため、使用中のポートがほかの目的に使用されることはありません。

- インストール済みサーバーの置き換え (UNIX) — 古いバージョンの Sun Java System Application Server がインストールされており、それを現在のバージョンの Application Server に置き換える場合は、新しいサーバーをインストールする前に、インストール済みサーバーを停止してください。インストールプログラムのアップグレードウィザードを使ってサーバーをアップグレードしてください。

- ファイアウォールのシャットダウン (Microsoft Windows) — Sun Java System Application Server ソフトウェアをインストールする前に、すべてのファイアウォールソフトウェアを停止する必要があります。一部のファイアウォールソフトウェアはデフォルトですべてのポートを無効にするからです。インストールプログラムは、使用可能なポートを正確に検出できる必要があります。

  互換性に関するその他の情報については、『Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Upgrade and Migration Guide』を参照してください。

# Enterprise Edition 8.1 リリースで修正されたバグ

ここでは、お客様から報告された問題のうち、Sun Java System Application Server Enterprise Edition 8.1 製品で解決されたものを示します。

バグ番号 | 説明
--- | ---
4887079 | 配備と配備の取り消し、および配備されているアプリケーションの検索を実行するためのプログラミング API。
4911462 | ポートが使用可能な範囲を外れているときの正しくないメッセージ。
4918535 | `sun-appserv-deploy()` が、`createAndDropTables()` をサポートするフラグを取らない。
4939749 | `xml:()``lang()` 値は、Deploytool によって自動的に挿入されるべきではない。
4946914 | クラスタに対する配備サポート。
4979136 | ディレクトリベースの配備によって、アプリケーションがバックアップディレクトリにコピーされる。
4987274 | Bean のリモートインタフェースに `Util()` という名前が付いていると、配備が失敗する。
4988818 | J2SE 1.5 が使用されていると、透過的持続性ランタイムテストが失敗する。
4992295 | コマンド行インタフェースでのシステムコンポーネントの配備は成功するが、サーバーのログファイルにエラーが記録される。
4994790 | precompilejsp=true を使用して配備された JSP が、`sun-web.xml` でコンパイラフラグを使用しない。
4996876 | ベリファイアと、verify=true による配備のレポートが異なる。
5003356 | 最新の `server.policy` ファイルアップデートが Upgradetool によって処理されない。
5006854 | `asadmin deploy` `--virtualservers` が配備に失敗する。
5007309 | HTTP リスナーアクセプタスレッドに対する不適切なデフォルト値。
5008941 | アプリケーションが配備取り消しの後で再度配備されたとき、JSR88 の起動操作が失敗する。
5016848 | Windows で、JDK JAR ファイルキャッシュと閉じられていないファイルによって、一部の再配備が妨げられる。
5017956 | JAR モジュールレベルでの `list` `-m` によって EJB が表示されない。
5030425 | `deploydir` コマンドで `security-role-mapping` の変更が無視される。
5041343 | `servlet-mapping url-pattern``- -directory` が常に / で囲まれているかどうかがチェックされない。
5046120 | 大規模アプリケーションの配備中に SEVERE ログメッセージが出力される。
6041268 | `HTTP TRACE` を無効にする機構がない。
6062410 | 地域対応化されたマシンで、Upgradetool が英語で起動される。
6067341 | Web アプリケーションで `ejb-refs` を使用して `deploydir` コマンドを実行すると、リモートインタフェースの `rmic` で失敗する。
6152752 | SPEC J2004 テストの実行中に `outofbound` 例外がログに記録される。
6154949 | 接続検証が機能しない。
6157310 | 関係管理中に、ランタイムで「`Collection`」フィールドが再読み込みされる。
6165491 | ドメインがデフォルトドメインとは別のパスに作成されていると、ドメインの起動に失敗する。
6171667 | ライフサイクルモジュールのプロパティー要素が `domain.xml` に作成されない。
6171729 | MDB の配備中に、文字列でない RA ActivationSpec プロパティーで IllegalArgumentException が発生する。
6172178 | OSS/J TT TCK で、リモートアプリケーションサーバーからの JMS 接続ファクトリの取得に失敗する。
6172589 | セキュリティーマネージャーの呼び出しの最適化。
6183492 | [DataDirect] DB2: 一部の透過的持続性アプリケーションサーバーテストで、EJB の呼び出し中に例外がスローされて失敗する。
6184864 | OR 演算子を使用し、式に Null の単一値 CMRS が含まれていると、EJB QL クエリーで結果が返されない。
6197393 | Deploytool で、配備記述子に message-destination 要素が作成されないことがよくある。
6198796 | アプリケーションを配備する場合、EE サンプルの `asadmin` コマンドに `availabilityenabled=true()` オプションを含める必要がある。
6198981 | クラスパスに `xalan.jar` ファイルがないと、ドロップダウンが空になり、Web サービスウィザードが失敗する。
6199076 | `asant` スクリプトを使用して、Duke 書店サンプルのフェイルオーバーテストを実行できない。
6202363 | `mq-failover` サンプルアプリケーション内の 1 つの `ant` ターゲットで、クラスタ名がハードコードされている。
6202606 | JMS と Message Queue の間の SSL JMS に JMS サービス設定を使用できない。
6206176 | Application Server 8.1 で、`startserv/stopserv` にアクセス権 755 が必要である。
6207297 | デフォルトの SSL ポート番号 (443) を使用しないで Application Server にアクセスすると動作しない。
6207862 | `asadmin create-domain` `--help` によって生成された一部が正しくない。

# Enterprise Edition 8.1 Update 2 リリースで修正されたバグ

ここでは、お客様から報告された問題のうち、Sun Java System Application Server Enterprise Edition 8.1 Update 2 製品で解決されたものを示します。

バグ番号 | 説明
--- | ---
4842830 | 例外「ComStream is closed」が JDBC クライアントに送信される。
4847716 | 望ましくない動作を引き起こす可能性があるため、コミットモードの設定に execute/executeUpdate を使用するべきではない。標準の JDBC の `setAutocommit()` を使用する必要がある。
4861326 | ステートメントプールで、CREATE SCHEMA が暗黙の SET SCHEMA として認識されない。
4891060 | リスナーがソケットで待機しているときにアドレス指令を無視する。
5042351 | 新規ノードが追加された後に作成された新規テーブルが、追加ノードに配布されない。
5061316 | 再断片化しているテーブルに対するクエリーが、「HADB-E-01792: Replica has been deleted」で失敗することがある。クエリーを再試行する必要がある。
5063175 | ホストを単一/複数の両方のネットで使用している場合、`hadbm create` はエラーを発生させるべきである。
5079029 | 単一ホストでパッケージの登録を解除すると、「The software package is in use by database instance and can not be removed」というエラーで失敗することがある。
5094611 | 管理リポジトリ内の書き込みトランザクションを開く必要のある管理操作が、きわめてまれなケースとして、そのトランザクションが開かれるのを待機して永久にハングアップすることがある。
5103186 | Windows 2003 でネットワークが 1 つダウンしていると、NSUP を起動できない。
6225613 |
6271063 | HADB `c` パッケージ (Solaris: SUNWhadbc、Linux: sun-hadb-c) バージョンのシンボリックリンク `/opt/SUNWhadb/` のインストールまたは削除によって、エラーが発生する。
6174781 | 管理エージェントが再起動された後の短期間、コマンド `hadbm` status - nodes によって、ノードが「不明」に等しい `nodestate` にあると表示されることがある。
6175436 | `hadbm addnodes` または `hadbm refragment` が「HADB-E-11747: Nodegroup all_nodes exists already」というエラーで失敗した場合は、再度 `hadbm refragment` を実行する。
6174676 6179084 | configure-ha-cluster を実行できない。
6178228 6179010 | configure-ha-cluster の失敗。
6181845 | Windows 上で 2G バイトよりも大きなデータデバイスを作成できない。
6189189 | 絶対パスが指定されたとき、`export-http-lb-config` で `loadbalancer.xml` のファイル名が作成されない。
6198225 | 『クイックスタートガイド』に、文の繰り返しの誤植がある。
6195779 | 一部のフィルタドロップダウンリストのオプションの値が国際化されていない。
6196741 | J2SE 1.4.x をアップグレードするとき、付属の J2SE コンポーネントの代わりのアップグレードが正常に動作しない。
6207616 | ホストがダウンしていると、任意の `hadbm` コマンドが、管理エージェントへの接続が必要な場合に数分間ハングアップすることがある。
6212791 | ツリーノードをクリックしても、項目が右の区画に表示されない。
6216096 | ハングしているトランザクションによってログバッファーがいっぱいになり、多数のトランザクションが中止されることで、ノードクラッシュが引き起こされる。
6225613 | executeUpdate() における整合性のない LOB サイズ。
6227502 | EJB Timer サービスの初期化エラーは、`SEVERE` としてログに記録されるべきではない。
6228789 | `hadbm delete` コマンドが失敗する。
6230415 | HADB-E-21070: 操作は制限時間内に完了しなかったが、キャンセルされてはいないため、あとで完了する可能性がある。
6230792 | hadbm:エラー 22009: 発行されたコマンドが、ここ 300 秒の間進んでいない。
6232347 | `dropandcreatetables` が、`asdamin deploy` `--help` に対して完全には正しくない。
6232838 | 不必要なログ呼び出しのために、アプリケーションサーバーがスケーリングできない。
6232974 | 8.0 Platform Edition から 8.1 Enterprise Edition へのアップグレード時に、インストーラがノードエージェントの作成に失敗する。
6233142 | HADB のインストール/アンインストールでは、ソフトリンク /opt/SUNWhadb/4 が常に保持されるべきだが、必ずしもそのとおりになっていない。
6233276 | フォーム認証が URL `-pattern /*.jsp` に対して機能しない。
6233469 | `asadmin` ヘルプの正しくないヘルプテキスト。
6233476 | `update-file-user` や類似のコマンドの正しくないヘルプテキスト。
6237567 | 「管理オブジェクトリソースの作成」ウィンドウに、キー `adminObjectStep2PageHelp` がない。
6238477 | 同じアプリケーションサーバーインスタンス内の「corba name」EJB 参照を解決できない。
6239630 | 特定のエンティティー Bean を適切にマッピングできない。
6239837 | JMS `server-config` の管理における「再接続間隔」の単位とデフォルト値が誤っている。
6240661 | 一部のメッセージが英語のロケールのままである。
6241311 | 「プールアイドルタイムアウト」フィールドの注記が間違っている。
6241368 | 管理コンソールのログイン画面とオンラインヘルプで、英語のブラウザ言語について触れていない。
6243395 | JMS および JDBC のリソースでトランザクションリカバリが機能しない。
6245922 | Application Server が連続してクラッシュする。
6246426 | Web-INF/lib で JAR ファイルを展開すると、隠すべき内容が公開される。
6249637 | JDBC 接続プールプロパティーを変更すると、再起動が必要になる。
6249662 | `Proxy-auth-cert` が適切にフォーマットされていない。
6250989 | SOAP 要素 `addChildElement` によって、マークアップのない不完全な要素が追加される。
6252187 | 高可用性シングルサインオンによって、異なるレルム間で主体が伝達される。
6252810 | マニュアルページ内の `configure-ha-persistence` が最新ではない。
6253735 | 『クイックスタートガイド』に、高可用性に関する情報が含まれていない。
6254393 | 付属の『クイックスタートガイド』に、期限が切れたリリースノートへのリンクが含まれている。
6254462 | データベースが再起動した後、接続検証コードによって NPE がスローされる。
6255253 | 付属のマニュアルの中の「購入方法」リンクの URL が間違っている。
6255440 | 同期のパフォーマンス向上。
6255458 | `delete-virtual-server` における誤植。
6255524 | `UpdateTask` ANT タスクが ANT 1.6.2 で動作しない。
6255564 | Platform Edition から Enterprise Edition へのアップグレードの後、アップグレードされたドメインの起動が、管理ユーザー認証の失敗のために失敗する。
6258844 | 8.1 Update 1 へのアップグレードの後、ファイルレルムユーザーのログインが機能しない。
6258997 | コマンド行インタフェースのマニュアルページでの `--secure` オプションに対する正しい説明。
6259125 | `asadmin get` のドキュメントが不十分であり、かつ紛らわしい。
6262564 | `PrivateKeyProcessor` で、`keyIdentifier` による取得がサポートされない。
6262824 | Solaris 10: 大域ゾーンで ma-initd スクリプトを使用して管理エージェントを停止すると、ローカルゾーンの管理エージェントも停止される。
6263684 | Linux RPM パッチ生成スクリプトの `README` に手作業の変更が必要である。
6263686 | svr4 パッチ生成によって、正しくないエントリが `README` に挿入される。
| `package-appclient` スクリプトが壊れている。
6264969 | PointBase を使用しているすべての AS サンプルのセットアップが失敗する。データベースをバージョン 5.1 にアップグレードできない。
6265687 | インストーラのグラフィックイメージに、正しくない製品バージョンが含まれている。
6266183 | 高可用性テストが失敗する。再起動後のレルム名に Null が含まていれる。
6267410 | ログレベルが FINE に設定されていると、`session.invalidate()` 中に例外が発生する。

# HADB に関する追加情報

ここでは、Application Server 8.1 に含まれている HADB 実装に関する重要な追加情報を示します。

- 「HADB の拡張機能」

- 「HADB のファイルシステムサポート」

- 「高可用性データベースのアップグレード」

- 「既知の SQL の制限事項」

- 「高可用性ロードバランス」

## HADB の拡張機能

- データベース管理に使用するパスワードの変更を可能にするために、新しい管理コマンド `hadbm setadminpassword` が実装されました。このコマンドは、使用する管理エージェントを示すオプションと、古いパスワードおよび新しいパスワードを取ります。詳細は、`hadbm setadminpassword` のマニュアルページを参照してください。

- 既存の管理コマンド `hadbm listpackages` が変更されています。以前、このコマンドはオペランドを取らず、関連する管理ドメイン内のすべてのパッケージを表示していました。変更によって、オプションのパッケージ名オペランドが導入され、その名前を持つパッケージのみが表示されます。そのオペランドが指定されない場合は、すべてのパッケージが表示されます。詳細は、`hadbm listpackages` のマニュアルページを参照してください。

- 既存の管理コマンド `hadbm createdomain` が変更されています。hostlist オペランドが、管理エージェントのポート番号も指定できるように拡張されました。この方法により、hostlist オペランドのみを使用してドメインが完全に指定されます。下位互換性のために、以前の動作も引き続きサポートされています。詳細は、`hadbm createdomain` のマニュアルページを参照してください。

- 管理システムからのエラーメッセージの一部が変更されています。これらの変更は、エラーメッセージのわかりやすさ、一貫性、および正確性を向上させることを目的にしています。実際の変更は、このリリースノートには示されていません。

- インストールとアンインストールの動作が若干変更されています。HADB のインストールまたはアンインストールでは、ソフトリンク `/opt/SUNWhadb/4` が常に保持されるべきですが、必ずしもそのとおりにはなっていません。

- コマンド行でパスワードをコマンドオプションとして入力する場合がありますが、この方法は推奨されません。これは、コマンド行オプションとしてパスワードを取るすべての `hadbm` コマンドに当てはまります。`hadbm` コマンドでは、従来より、パスワードを次の方法で入力できるようになっています。

  1. パスワードファイル

  2. コマンド行オプション

  3. 対話型の入力

  2 つ目の方法のコマンド行オプションは安全でないと見なされるため、推奨されません。この方法でパスワードが入力されると、警告メッセージが表示されます。代わりに、1 つ目の方法のパスワードファイルか、または 3 つ目の方法の対話型の入力を使用してください。コマンド行でのパスワードの使用は、次のリリースでは廃止される予定です。これは、コマンド行のパスワードオプションを取るすべての `hadbm` コマンドに適用されることに注意してください。

- HADB は、JGroups Version 2.2 を使用するようにアップグレードされており、そのソースコードは HADB とともに配布されます。以前の HADB バージョンからのオンラインアップグレードをサポートするために、JGroups 2.1 および 2.2 の両方が HADB とともに提供されます。JGroups 2.1 の場合は、バイトコードのみが提供されます。

## HADB のファイルシステムサポート

次のファイルシステムを使用するよう HADB を設定する場合には、重要な考慮事項がいくつかあります。

- ext2 および ext3– HADB は、Red Hat Application Server 3.0 用に ext2 および ext3 ファイルシステムをサポートしている。Red Hat Application Server 2.1 については、HADB は ext2 ファイルシステムしかサポートしていない。

- `Veritas`– Solaris プラットフォームで Veritas File System を使用すると、「`WRN:` `Direct disk I/O mapping failed`」というメッセージが履歴ファイルに書き込まれる。このメッセージは、データデバイスおよびログデバイスについて HADB が直接入出力を有効にできないことを示している。直接入出力は、ディスクページに書き込むための CPU コストを節減することによってパフォーマンスを向上させる。また、「ダーティー」なデータページを管理するためのオペレーティングシステムのオーバーヘッドを減らす。

  Veritas File System で直接入出力を利用するには、次の方法の 1 つを使います。

  - オプション `mincache=direct` でマウントされたファイルシステム上に、データデバイスとログデバイスを作成します。このオプションは、そのファイルシステム上に作成されるすべてのファイルに適用されます。詳細は、`mount_vxfs(1M)` コマンドを参照してください。

  - Veritas Quick 入出力ユーティリティーを使用して、ファイルシステムファイルに対する raw 入出力を行います。詳細は、『VERITAS File System 4.0 Administrator's Guide for Solaris』を参照してください。

    これらの設定は、Application Server 8.1 2005Q2 Update 2 ではテストされていないことに注意してください。

    Application Server ソフトウェアでの HADB のインストールと設定については、『Application Server Enterprise Edition 高可用性 (HA) 管理ガイド』を参照してください。

## 高可用性データベースのアップグレード

- 「アップグレード前の作業とデータ移行」

- 「アップグレード手順」

- 「アップグレードのテスト」

- 「配備とアップグレードに関する特別な情報」

### アップグレード前の作業とデータ移行

##### 始める前に

ユーザーは、HADB 履歴ファイル、管理エージェント設定ファイル、ログファイルとリポジトリ、およびインストールパスの外部にあるすべてのデータデバイスを保管するようにしてください。この作業がまだ完了していない場合は、アップグレードの前に実行してください。管理リポジトリと設定ファイルを移動するには、次の手順に従います。

1. すべての古い管理エージェントを停止し、HADB ノードは動作したままにします。

2. 各ホスト上で、リポジトリディレクトリを新しい場所に移動します。

3. 各ホスト上で、`dbconfig` ディレクトリを新しい場所にコピーします。

4. 各ホスト上で、`mgt.cfg` ファイルをアップデートし、`dbconfig` とリポジトリディレクトリの正しいパスを設定します。

5. アップデートされた `mgt.cfg` ファイルを使用して管理エージェントを起動します。

### アップグレード手順

HADB Version 4.4.x から Version 4.4.2-7 にアップグレードするには、次の手順を実行します。

1. 必要に応じて、上で説明したアップグレード前の作業を実行します。

2. HADB Version 4.4.2-7 をすべての HADB ホストにインストールします。パスは Version 4.4.x とは別のパス、たとえば `/opt/SUNWhadb/4.4.2-7` にします。

3. HADB Version 4.4.2-7 を、HADB ホストとは別の `hadbm` クライアントホストにインストールします。

4. すべての HADB ホスト上で実行されているすべての管理エージェントを停止します。

5. 新しいバージョンのソフトウェアを使用して (ただし、設定ファイルは古いまま)、管理エージェントプロセスを起動します。残りの手順では、新しいバージョンの `bin` ディレクトリにある `hadbm` コマンドを使用してください。

6. 管理ドメインでパッケージを登録します。デフォルトのパッケージ名が V4.4 になるので、同じ名前を持つ既存のパッケージとの競合を避けるために別のパッケージ名が必要になる場合があります。

       hadbm registerpackage --packagepath=/opt/SUNWhadb/4.4.2-7 V4.4.2-7

7. `hadbm listpackages` コマンドを実行し、ドメインに新しいパッケージが登録されていることを確認します。

8. 新しい `hadbm` Version 4.4.2-7 を使用してデータベースを再起動します。デバイスと履歴ファイルを移動する必要がある場合は、オンラインアップグレードを、デバイスと履歴ファイル用の新しいパスの設定とともに 1 回の操作で実行します。

       hadbm set packagename=V4.4.2-7,devicepath=new_devpath,
       historypath=new_histpath

   そうでない場合、つまりデバイスと履歴ファイルがすでにインストールディレクトリの外にある場合は、ノードの順次再起動のみを行う次のコマンドを実行します。

       hadbm set packagename=V4.4.2-7 database name

9. データベースが「実行中」の状態にあり (`hadbm status` コマンドを使用して確認)、かつ正常に動作してクライアントトランザクションを処理していることを確認します。

10. すべてが正常に動作している場合は、あとで古いインストールを削除することができます。古いパッケージの登録を解除する前に、古いパッケージへのすべての参照を `ma` リポジトリから削除します。そうしないと、「使用中のパッケージ」のために `hadbm unregisterpackage` が失敗します。たとえば、ダミーの再設定操作 `hadbm set connectiontrace=same as previous value` によって、古いパッケージへのすべての参照が削除されます。ここで、古いパッケージの登録を解除します。

        hadbm unregisterpackage [--hosts=host-list] old pacakge name

11. ファイルシステムから古いインストールを削除します。

### アップグレードのテスト

Solaris で、アップグレードの成功をテストするには、アップグレードが正常に実行されたことを確認します。

1. 動作中のプロセスが新しいバイナリを使用していることを確認してください。すべての HADB ノードで、次のことを確認します。

       new path/bin/ma -v
       new path/bin/hadbm -v

2. データベースが動作中かどうかを確認します。次のコマンドによって、すべての HADB ノードが「実行中」の状態にあることが表示されます。

       new path/bin/hadbm status -n

3. HADB を使用している製品のポインタが、新しい HADB パスを指すように変更されていることを確認します。

4. HADB を使用している製品では、独自のアップグレードテストを実行して、HADB アップグレードも動作していることを確認できます。

   オンラインアップグレードの後、新しいバージョンが正常に動作しない場合は、以前の HADB バージョンの使用に戻してください。ただし、管理エージェントリポジトリが変更されている場合は、HADB 自体はダウングレードできますが、新しい管理エージェントを引き続き動作させる必要があります。

### 配備とアップグレードに関する特別な情報

ここでは、HADB の配備とアップグレードに関する追加情報を示します。

- 「導入」

- 「4.4.1 から 4.4.2 へのオンラインアップグレード」

#### 導入

- デバイス、ログ、および履歴ファイルはローカルディスクにのみ格納するようにし、リモートマウントのファイルシステムは使用しないでください。

- ホストに複数のノードが配置されている場合は、各ノードに所属するデバイスを別のディスクに保管することをお勧めします。そうしないと、ディスクの競合によってパフォーマンスが低下します。この問題の症状は、「`BEWARE - last flush/fputs took too long`」などのメッセージによって履歴ファイルで確認できます。1 つのノードに複数のデータデバイスファイルがある場合は、これらのデバイスファイルに別々のディスクを使用することをお勧めします。

- ローカルディスク (可能であれば、データデバイスに使用されているものとは別のディスク) を使用して、HADB ホストに HADB バイナリをインストールしてください。NFS の遅延またはディスクの競合によって、履歴ファイルに「`Process blocked for` `nnn``, max block time is` `nnn`」という警告が出力され、ノードが再起動される可能性があります。

- HADB デバイス、履歴ファイル、管理エージェントディレクトリ、およびエージェント設定ファイルを HADB パッケージのパスには配置しないでください。これを行うと、新しいバージョンにアップグレードし、古いパッケージのパスを削除したときに問題が発生します。

- このリリースの HADB では、最大 28 ノード (24 のアクティブデータノード、および 4 つのスペア) が正式にサポートされています。

- JDBC ドライバおよび HADB サーバーには同じバージョンを使用することをお勧めします。

- IPv6 はサポートしていません。IPv4 のみです。

- Windows でのコマンド行の長さは、2048 バイトに制限されています。

- UDP マルチキャスト用にネットワークを設定する必要がある。

- RedHat Enterprise Linux 3.0 Update 1 〜 3 は、過剰なスワッピングが見られるため、配備プラットフォームとしてはお勧めできません。この問題は、RedHat Enterprise Linux 3.0 Update 4 では修正されています。

- `NSUP` をリアルタイム優先度を使用して実行する可能性は次のとおりです。

  ノードスーパーバイザー (`NSUP`) のプロセス (`clu_nsup_srv`) は、タイムリーな方法による「ハートビート」メッセージ交換を利用して、HADB の高可用性を保証します。`NSUP` がほかのプロセスと同じ場所に配置されていると、このタイミングが影響を受け、リソースの枯渇が発生します。その結果、誤ったネットワークパーティションが発生し、ノードが再起動します (その前に、履歴ファイルに「Process blocked for `n` seconds」という警告が出力される)。それにより、トランザクションの中止やその他の例外が発生します。

  この問題を解決するには、`clu_nsup_srv` (`installpath``/lib/server` に格納されている) の `suid` ビットを設定し、そのファイルをルートが所有するようにする必要があります。これを手動で行うには、次のコマンドを実行します。

      # chown root clu_nsup_srv
      # chmod u+s clu_nsup_srv

  これにより、`clu_nsup_srv` プロセスは、起動されると、ユーザー `root` として実行されます。さらに、起動後、自分自身にリアルタイム優先度を自動的に与えることができるようになります。`setuid` を使用することによるセキュリティーへの影響を避けるために、リアルタイム優先度は最初の間だけ設定され、優先度が変更されたらプロセスは有効な uid に戻ります。ほかの HADB プロセスは、優先度をタイムシェアするために自分の優先度を低くします。

  NSUP がリアルタイム優先度を設定できない場合は、「Could not set realtime priority」(`unix: errno will be set to EPERM`) という警告を出力します。この警告は `ma.log` ファイルに書き込まれ、リアルタイム優先度を使用しないで処理が継続されます。

  リアルタイム優先度を設定できない例として、次のような場合があります。

  - Solaris 10 の非大域ゾーンにインストールされている場合

  - Solaris 10 で、`PRIV_PROC_LOCK_MEMORY` (プロセスが物理メモリー内のページをロックできる) または `PRIV_PROC_PRIOCNTL` 特権、あるいはその両方が無効になっている場合

  - ユーザーが `setuid` 権限を無効にしている場合

  - ユーザーがソフトウェアを tar ファイルとしてインストールしている場合 (`App.server` 用のルート以外のインストールオプション)

  `clu_nsup_srv` プロセスは CPU の消費が少なく、フットプリントも小さいため、リアルタイム優先度を使用して実行してもパフォーマンスには影響しません。

- Solaris での HADB 用の IP ネットワークマルチパスの設定 (Solaris 9 でのみテスト済み)

  可能な範囲で最高のネットワーク可用性を保証するために、HADB を実行している Solaris ホストをネットワークマルチパスを使用して設定することをお勧めします。ネットワークマルチパスの設定は、『IP Network Multipathing Administration Guide』で詳細に説明されています。HADB でマルチパスを使用することにした場合は、後述されている HADB 用のマルチパス設定への対応に進む前に、『IP Network Multipathing Administration Guide』の「Administering Network Multipathing」の節を参照してマルチパスを設定してください。『IP Network Multipathing Administration Guide』は、Solaris 9 の『System Administrator Collection』に含まれており、`http://docs.sun.com` からダウンロードできます。

  - ネットワークインタフェース障害検出時間の設定

    HADB でマルチパスのフェイルオーバーを適切にサポートするには、`/etc/default/mpathd` 内の `FAILURE_DETECTION_TIME` パラメータで指定されているネットワークインタフェース障害検出時間が 1000 ミリ秒を超えないようにする必要があります。元の値がこの値を超えている場合は、このファイルを編集して、このパラメータの値を `1000` に変更します。

        FAILURE_DETECTION_TIME=1000

    変更を有効にするために、次のコマンドを実行します。

        pkill -HUP in.mpathd

  - HADB で使用する IP アドレス

    『Solaris IP Network Multipathing Administration Guide』で説明されているように、マルチパスを使用するには、物理ネットワークインタフェースをマルチパスインタフェースグループにグループ化する必要があります。このようなグループ内の各物理インタフェースには、物理インタフェースアドレスとテストアドレスの 2 つの IP アドレスが関連付けられます。データの送信に使用できるのは物理インタフェースアドレスのみであり、テストアドレスは Solaris 内部の使用のためにのみ用意されています。`hadbm create --hosts` が実行されると、各ホストは、マルチパスグループの 1 つの物理インタフェースアドレスによってのみ指定されます。

  - 例

    ホスト 1 とホスト 2 のそれぞれに、2 つの物理ネットワークインタフェースが含まれていると仮定します。各ホスト上で、これらの 2 つのインタフェースをマルチパスグループとして設定し、`ifconfig -a` を実行すると次の出力が得られます。

    ホスト 1

        bge0: flags=1000843<mtu 1500 index 5 inet 129.159.115.10 netmask ffffff00
        broadcast 129.159.115.255 groupname mp0
        bge0:1: flags=9040843<mtu 1500 index 5 inet 129.159.115.11 netmask ffffff00
        broadcast 129.159.115.255
        bge1: flags=1000843<mtu 1500 index 6 inet 129.159.115.12 netmask ffffff00
        broadcast 129.159.115.255 groupname mp0
        bge1:1: flags=9040843<mtu 1500 index 6 inet 129.159.115.13 netmask ff000000
        broadcast 129.159.115.255

    ホスト 2

        bge0: flags=1000843<mtu 1500 index 3 inet 129.159.115.20 netmask ffffff00
        broadcast 129.159.115.255 groupname mp0
        bge0:1: flags=9040843<mtu 1500 index 3 inet 129.159.115.21 netmask ff000000
        broadcast 129.159.115.255
        bge1: flags=1000843<mtu 1500 index 4 inet 129.159.115.22 netmask ffffff00
        broadcast 129.159.115.255 groupname mp0
        bge1:1: flags=9040843<mtu 1500 index 4 inet 129.159.115.23 netmask ff000000
        broadcast 129.159.115.255

    ここで、両方のホスト上の物理ネットワークインタフェースは、`bge0` および `bge1` として表示されています。『IP Network Multipathing Administration Guide』で説明されているように、`bge0:1` および `bge1:1` として表示されているのはマルチパステストインタフェースです (そのため、`ifconfig` 出力ではこれらのインタフェースが「非推奨」としてマークされている)。

    この環境で HADB を設定するには、各ホストから 1 つの物理インタフェースアドレスを選択します。この例では、ホスト 1 からは `129.159.115.10` を、ホスト 2 からは `129.159.115.20` を選択します。ホストあたり 1 つのデータベースノードを含むデータベースを作成するには、`hadbm create` に次の引数を使用します。

        --host 129.159.115.10,129.159.115.20

    ホストあたり 2 つのデータベースノードを含むデータベースを作成するには、次の引数を使用します。

        --host 129.159.115.10,129.159.115.20,129.159.115.10,129.159.115.20

    どちらの場合も、両方のホストの `ma.server.mainternal.interfaces` 変数を `129.159.115.0/24` に設定してください。

#### 4.4.1 から 4.4.2 へのオンラインアップグレード

オンラインで 4.2 または 4.3 から 4.4 にアップグレードすることはできません。ただし、4.4 の将来のバージョンではオンラインアップグレードがサポートされます。4.4.1 から 4.4.2 にアップグレードするには、次の手順を実行します。

1. すべての HADB ホストに 4.4.2 をインストールします。パスは 4.4.1 とは別のパス、たとえば `/opt/SUNWhadb/4.4.2-6` にします。

2. `hadbm` クライアントホストに新しいバージョンをインストールします。

3. HADB ホスト上で実行されているすべての管理エージェントを停止します。

4. 新しいバージョンのソフトウェアを使用して (ただし、設定ファイルは古いまま)、管理エージェントプロセスを起動します。残りの手順では、新しいバージョンの `bin` ディレクトリにある `hadbm` コマンドを使用してください。

5. 管理ドメインでパッケージを登録します。ここで、デフォルトのパッケージ名が `V4.4` になるため、同じ名前を持つ既存のパッケージとの競合を避けるために別のパッケージ名が必要になる場合があります。

       hadbm registerpackage --packagepath=/opt/SUNWhadb/4.4.2-6 V4.4.2

6. 新しいバージョンを使用してデータベースを再起動します。次のコマンドでは、ノードの順次再起動が実行されます。

       hadbm set packagename=V4.4.2 database_name

7. データベースが「実行中」の状態にあり (`hadbm status` コマンドを使用して確認)、かつ正常に動作してクライアントトランザクションを処理していることを確認します。

8. すべてが正常に動作している場合は、あとで古いインストールを削除することができます。

   古いパッケージの登録を解除する前に、古いパッケージへのすべての参照を `ma` リポジトリから削除します。そうしないと、「使用中のパッケージ」のために `hadbm unregisterpackage` が失敗します。たとえば、ダミーの再設定操作 hadbm set connectiontrace=`<same_as_previous_value>` によって、古いパッケージへのすべての参照が削除されます。ここで、古いパッケージの登録を解除します。

       hadbm unregisterpackage [--hosts=<host_list>] <old_package_name>

   HADB のインストール手順で説明されているように、ファイルシステムから古いインストールを削除します。

## 既知の SQL の制限事項

- テーブルに `UNIQUE` 二次インデックスを作成することはできません。

- 式 `(DISTINCT 列)` は、これが選択された唯一の式でないかぎり、収集式では許可されません。

- すべてのテーブルを、主キーを指定して作成する必要があります。つまり、主キーのないテーブルはサポートされていません。

- `FULL OUTER JOIN` はサポートされていません。

- テーブルサブクエリーである `IN` サブクエリーはサポートされていません。次に例を示します。

      SELECT SNAME FROM S WHERE (S1#,S2#) IN (SELECT S1#,S2# FROM SP
      WHERE P#='P2')

- `NOT NULL` と `PRIMARY KEY` 以外の制約はサポートされていません。

- リソースに新しい所有者を割り当てることができます。ただし、これを行う場合、現在の所有者に付与されている特権は新しい所有者に付与されません。

- 2 つ以上の入れ子の `NOT EXISTS` サブクエリーで、各サブクエリーがクエリーの外側のレベルに (直接) 関連付けられていないものはサポートされていません。

- 列の特権はサポートされていません。

- 行の値コンストラクタは、`VALUES` 句でのみ許可されています。

- 行の値コンストラクタでは、サブクエリーは値式とは見なされません。

- 主キーを作成するとき、次のデータ型は使用できません。

  - `REAL`

  - `FLOAT`

  - `DOUBLE PRECISION`

  - `DECIMAL`

  - `NUMERIC`

## 高可用性ロードバランス

Application Server には、HTTP、IIOP、および JMS クライアント向けの負荷分散、HTTP セッションのフェイルオーバーのサポート、EJB クラスタリングおよびフェイルオーバーのサポート、高可用性 EJB タイマー、分散トランザクションリカバリ、アプリケーションのローリングアップグレードのサポート、および J2EE アプリケーションの一時的な状態を保存するための高可用性データベースが組み込まれています。

可用性により、クラスタ内の Application Server インスタンスのフェイルオーバー保護が可能になります。ある Application Server インスタンスがダウンすると、そのサーバーに割り当てられていたセッションを別の Application Server インスタンスが引き継ぎます。セッション情報は、HADB に格納されます。HADB は、HTTP セッションの持続性、ステートフルセッション Bean、およびシングルサインオン資格をサポートします。

# Application Server 製品リリース

Application Server 製品は、さまざまな方法で提供されます。次の表に、さまざまな配布方法で提供される製品を示します。

Application Server 製品リリース | 配布方法
--- | ---
Sun Java Enterprise System 内の Application Server Enterprise Edition コンポーネント | ファイルベースの配布 Sunsolve 経由でパッチのインストールが必要
Application Server Standard および Enterprise Edition スタンドアロン製品 | ファイルベースおよびパッケージベースの配布

# 互換性の問題

Sun Java System Application Server Enterprise Edition の次のメジャーリリースでは、次に示す非互換性が導入されます。

- HTTP サービスでは、パフォーマンス向上のために引き続き DNS キャッシュが使用されますが、DNS キャッシュの監視は使用できなくなります。

- HTTP ファイルキャッシュに対するサポートが変更されるため、設定と監視に変更が発生します。

- アクセスログローテーションのサフィックスの形式が、`http://java.sun.com/j2se/1.5.0/docs/api/java/text/SimpleDateFormat.html` に指定されている、日付と時刻オブジェクトでサポートされている形式に変更されます。このリリースでのデフォルト値、「`%YYYY;%MM;%DD;-%hh;h%mm;m%ss;s` 」は引き続きサポートされますが、その他の種類はサポートされません。

- サポートされなくなる `domain.xml` の要素、属性、およびプロパティーはすべて、サーバーログでは警告として、またアップグレードログファイルでは非推奨としてフラグが付けられます。

- `server.http-service.dns` ノードは、監視ビューでは使用できなくなります。

- `server.http-service.file-cache` ノードの属性の一部は、削除される可能性があります。その結果、これらのノードから削除された属性にアクセスしようとする `asadmin` 監視コマンドはすべて失敗します。

## Deploytool

Deploytool は使用できなくなります。これと等価な機能は NetBeans IDE にあります。移行に関する詳細とその計画方法については、`http://www.netbeans.org/kb/` から入手できる NetBeans 4.1 向けの J2EE 1.4 チュートリアルを参照してください。

## ベリファイア

- ベリファイアの GUI モード (`verifier -u` で起動される) は使用できなくなります。これと等価な機能は NetBeans IDE にあります。

- ベリファイアツールを使用する場合のアプリケーション確認のデフォルトモードは、「J2EE ルールの確認」から「J2EE ルールおよび Sun Application Server 設定ルールの確認」に変更されます。つまり、ベリファイアはデフォルトでは、アプリケーションが J2EE ルールを満たしているかどうか、および Sun Application Server 上で動作するように設定されているかどうかをテストします。ベリファイアコマンドには、J2EE ルールのみに関してアプリケーションをテストするためのコマンド行スイッチが用意されます。

## クラスローダの変更

現在のリリースでは、`domain.xml` (アプリケーションサーバーの設定ファイル) の `classpath-prefix`、`server-classpath`、および `classpath-suffix` 属性に追加された JAR およびディレクトリエントリは、JVM システムクラスパスでも使用できます。この動作に依存しているアプリケーションは、クラス `java.lang.ClassLoader` の次のメソッドを使用して、JVM システムクラスパスのクラスやその他のリソースにアクセスしている可能性があります。

- `getSystemClassLoader()`

- `getSystemResource()`

- `getSystemResourceAsStream()`

- `getSystemResources`

次のメジャーリリースでは、`classpath-prefix`、`server-classpath`、および `classpath-suffix` に追加された JAR およびディレクトリエントリは、JVM システムクラスパスでは使用できなくなります。アプリケーションが前述のいずれかのメソッドを使用している場合は、システムクラスパスでリソースが使用できることを前提としていない等価なメソッドを使用することを強くお勧めします。JVM システムクラスパスに依存しない等価なメソッドは、`java.lang.ClassLoader` にあり、可能な場合は使用するようにしてください。次に例を示します。

##### 例 2–1 古いコード

    java.net.URL url = ClassLoader.getSystemResource
    ("com/acme/tools/tools.properties");

##### 例 2–2 推奨される変更

    java.net.URL url = this.getClass().getClassLoader().getResource
    ("com/acme/tools/tools.properties");

コードを変更できない場合は、次のリリースで追加される、JVM システムクラスパスを設定するための新しい設定オプションの使用を選択することもできます。

## Web サービスのセキュリティー設定

Web サービスのセキュリティーは、`wss-client-config.xml` および `wss-server-config.xml` ファイルを使用して設定できます。これらの設定ファイルの内容や名前は変更される可能性が高いことに注意してください。ただし、等価な機能は引き続き使用できます。

# J2EE のサポート

Sun Java System Application Server Enterprise Edition 8.1 2005Q2 は、J2EE 1.4 プラットフォームをサポートしています。J2EE 1.4 プラットフォームで利用できる拡張 API を、次の表に示します。

表 2–5 J2EE 1.4 プラットフォームで使用可能な API

API | 説明
コンポーネント
Application および Application Client | XML スキーマによる標準配備記述子の実装
Enterprise JavaBeans (EJB) 2.1 | タイマーサービスと EJB Web サービスエンドポイント
Java Servlet 2.4 | Web サービスエンドポイントのフィルタ
JavaServer Pages (JSP) 2.0 アーキテクチャー | 式言語とタグライブラリ
J2EE Connector Architecture 1.5 | 着信リソースアダプタと Java Message Service (JMS) プラグイン可能性
Web サービス
Java Web Services Developer Pack 1.5 | XML アプリケーション、Web サービス、および Web アプリケーションを構築、テスト、および配備するための統合ツールキット
Java API for XML-based Remote Procedure Calls (JAX-RPC) 1.1 | WSDL と Java テクノロジのマッピングと、Web サービスクライアントおよびエンドポイントの開発のサポート
WS-I Basic Profile 1.0 | WSDL と SOAP による相互運用の有効化要素
SOAP with attachment API for Java (SAAJ) 1.2 | SOAP ベースのメッセージングのための API で、ファイルの添付された SOAP メッセージの作成を促進します
Java APIs for XML Registries (JAXR) 1.0 | Universal Description Discovery and Integration (UDDI および ebXML) などの XML レジストリにアクセスするための統一された標準 API
その他
J2EE Deployment 1.1 | J2EE のコンポーネントおよびアプリケーションの配備を可能にする標準 API
J2EE Management 1.0 | J2EE プラットフォームを管理するための情報モデルの定義
Java Management Extensions (JMX) 1.2 | 標準的な管理 API
Java Authorization Contract for Containers (JACC) 1.0 | J2EE Application Server と 認証ポリシープロバイダとの間でのセキュリティー規約の定義
Java API for XML Processing (JAXP) 1.2 | XML ドキュメントを解析および変換するための API で、XML スキーマの処理もサポートします
JMS 1.1 | J2EE アプリケーションコンポーネントがメッセージを作成、送信、受信、および読み取りできるためのメッセージング標準で、キューとトピックのための統一された API もサポートします
JavaMail 1.3 | メールシステムをモデル化する抽象クラスの集合で、API の小規模なアップデートも含まれます

# 高パフォーマンス

Application Server には、HTTP、IIOP、および JMS クライアント向けの負荷分散、HTTP セッションのフェイルオーバーのサポート、EJB クラスタリングおよびフェイルオーバーのサポート、高可用性 EJB タイマー、分散トランザクションリカバリ、アプリケーションのローリングアップグレードのサポート、および J2EE アプリケーションの一時的な状態を保存するための高可用性データベースが組み込まれています。

可用性により、クラスタ内の Application Server インスタンスのフェイルオーバー保護が可能になります。ある Application Server インスタンスがダウンすると、そのサーバーに割り当てられていたセッションを別の Application Server インスタンスが引き継ぎます。セッション情報は、HADB に格納されます。HADB は、HTTP セッションの持続性、ステートフルセッション Bean、およびシングルサインオン資格をサポートします。

# スケーラビリティー

Application Server は、サーバーインスタンスのクラスタ化と要求のロードバランスによる水平方向のスケーラビリティーをサポートします。同時に、マルチプロセッサの大規模マシンをサポートする最高級の垂直方向スケーラビリティーも実現します。統合メッセージブローカは、より高度なスケーラビリティーと可用性のためにクラスタ化できます。HTTP クライアント、RMI/IIOP ベースのリッチクライアントアプリケーション、Web サービスクライアント、および JRM クライアントからのクライアントアクセスは、Application Server クラスタに負荷分散できます。

# JavaServer Faces 1.1 のサポート

Sun Java System Application Server Enterprise Edition 8.1 は、JavaServer Faces 1.1 テクノロジをサポートしています。JavaServer Faces テクノロジは、自身の状態、イベント、ハンドリング、および入力チェックを管理するユーザーインタフェースコンポーネントに対応する一連のサーバーサイド API から成ります。これらの API は、ページナビゲーションを規定し、国際化とアクセシビリティーをサポートします。JSP のカスタムタグライブラリを使用して、カスタム UI コンポーネントを追加できます。

JavaServer Faces テクノロジで開発している間、開発チームの各メンバは、処理の一部分にだけ集中することができます。単純なプログラミングモデルでは、これらの部分をつなぎ合わせることにより、ずっと効率的でシンプルな開発サイクルが実現されます。

- Previous: 第 1 章 概要
- Next: 第 3 章 既知の問題点と制限事項

- © 2010, Oracle Corporation and/or its affiliates