Application Server 8.2 Enterprise Edition は、Application Server 8.1、8.0、および 7.x とバイナリ互換性があります。バージョン 8.1、8.0、および 7.x で実行される J2EE アプリケーションも Application Server8.2 で動作しますが、この章で説明する部分については互換性がありません。
Application Server 8.1 Enterprise Edition に存在した HTTP ファイルキャッシュは、Application Server 8.2 では提供されていません。
サーバーインスタンスに対するメッセージレベルのセキュリティープロバイダが設定されていない場合、Application Server 8.1 では Domain Administration Server (DAS) によるデフォルト設定が適用されます。Application Server 8.2 ではデフォルト設定は適用されません。メッセージレベルのセキュリティーを使用する各サーバーインスタンスに対して、メッセージレベルのセキュリティープロバイダ (ClientProvider および ServerProvider) を手動で導入する必要があります。以前のバージョンから Application Server 8.2 にアップグレードする場合、アップグレードツールでは、これらの不足している要素は domain.xml ファイルに追加されません。
Application Server 8.2 のデフォルトのセキュリティーポリシーでは、一部のシステムプロパティーの変更が許可されていません。たとえば、Application Server 7 では、java.util.PropertyPermission プロパティーの読み取り権/書き込みの権限は "*", "read,write"; でしたが、Application Server 8.2 の java.util.PropertyPermission プロパティーの読み取り権/書き込みの権限は "*", "read"; です。
Application Server 6.x では、暗黙の URL 書き換えがサポートされていました。この機能では、Web コネクタプラグインがブラウザに送信された HTML ストリームを解析し、href= および frame= などの属性にセッション ID を追加していました。Application Server 7、8、および Application Server 8.2 ではこの機能を使用できません。ユーザーは自分のアプリケーションを見直して、Cookie をサポートしていないクライアント (携帯電話など) にアプリケーションが提示するすべての URL で encodeURL および encodeRedirectURL を使用する必要があります。
次に示す Web サーバー固有の機能は、Application Server 8.2 ではサポートされていません。
cgi-bin、shtml
Simple Network Management Protocol (SNMP) のサポート
Netscape API (NSAPI) プラグイン API
ネイティブのコンテンツ処理機能
Web サーバーツール (flexanlg、htpasswd)
HTTP QoS
Web サーバーの設定ファイル (*.conf、 *.acl、mime.types)
Web サーバー固有のログローテーション機能
ウォッチドッグ処理 (appserv-wdog)
アップグレードツールは、レルムおよびロールマッピング設定、任意のカスタムレルムクラス、および各ドメインのファイルベースのユーザーキーファイルを移動します。XML タグ、security-service によって、レルムとロールマッピング設定が定義されます。このタグは sun-server_1_0.dtd および sun-domain_1_0.dtd で定義されます。Application Server 7 の場合、タグのデータは server.xml にあり、Application Server 8.2 の場合は domain.xml にあります。
アップグレードツールは、カスタムレルム用に定義されたクラスファイルを配置し、これを Application Server 8.2 環境で使用できるようにします。カスタムレルムクラスは、タグ auth-realm のクラス名属性で定義されます。security-service タグでは、default-realm 属性はサーバーの使用しているレルムを指しています。これが、設定済みの auth-realm 名のいずれかを指すようにします。デフォルトのレルムはファイルです。default-realm のクラス名が見つからない場合、アップグレードツールはこれをエラーとしてログします。
セキュリティーレルム実装のパッケージ名は、Application Server 7 では com.iplanet.ias.security.auth.realm でしたが、Application Server 8.2 では com.sun.enterprise.security.auth.realm に名前変更されました。したがって、com.iplanet.* クラスを使用して作成したカスタムレルムは変更する必要があります。
com.sun.enterprise.security.AuthenticationStatus クラスは削除されました。
com.sun.enterprise.security.auth.login.PasswordLoginModule authenticate メソッドの実装は、次のように変更されました。
/** * Perform authentication decision. * <P> Note: AuthenticationStatus and AuthenticationStatusImpl * classes have been removed. * Method returns silently on success and returns a LoginException * on failure. * * @return void authenticate returns silently on * successful authentication. * @throws LoginException on authentication failure. * */ abstract protected void authenticate() throws LoginException;
Application Server 7 では、オプション属性 delegate のデフォルト値は false でした。Application Server 8.2 では、この属性のデフォルト値は true に設定されています。この変更は、デフォルトでは Web アプリケーションのクラスローダーが、それ自身でクラスをロードする前に、まず親のクラスローダーに委任するようになったことを意味しています。詳細については、「delegate 属性」を参照してください。
sun-web.xml ファイルにある sun-web-app 要素の encodeCookies プロパティーが true に設定されている場合、Cookie の URL エンコーディングが実行されます。Application Server 7 では、encodeCookies プロパティーのデフォルト値は true でした。このプロパティーは Application Server 8 では存在していませんでした。Application Server 8.2 では、デフォルト値は false です。
Cookie の URL エンコーディングは必要ありません。このプロパティーは true に設定しないようにしてください。このプロパティーが必要になるのは、Application Server 7 でこの動作に依存していた非常に少数のアプリケーションのみです。
Application Server 7 では、ユーザーは、必要に応じていくつかの Object Request Broker (ORB) パフォーマンスの最適化をオンにするために、次のシステムプロパティーを指定することができました。
-Djavax.rmi.CORBA.UtilClass=com.iplanet.ias.util.orbutil.IasUtilDelegate
Application Server 8.2 では、デフォルトで ORB パフォーマンスの最適化がオンになっています。以前のシステムのシステムプロパティー参照を使用している場合は、デフォルトの最適化を干渉しないようにするために、これを削除してください。
Application Server 8.2 では、domain.xml がメインのサーバー設定ファイルです。Application Server 7 では、メインのサーバー設定ファイルは server.xml でした。domain.xml の DTD ファイルは lib/dtds/sun-domain_1_1.dtd にあります。Application Server 8.2 に含まれるアップグレードツールを使用すると、Application Server 7 の server.xml から Application Server 8.2 の domain.xml に移動できます。
Application Server 8.2 の lib/dtds/sun-domain_1_1.dtd ファイルは、Application Server 8 における対応ファイル ( sun-domain_1_0.dtd) に対して完全な下位互換を保っています。
通常、設定ファイルの形式は下位互換性がありません。次の設定ファイルはサポートされていません。
*.conf
*.acl
mime.types
server.xml (domain.xml に置き換え)
Application Server 7 における clsetup および cladmin スクリプトは、Application Server 8.2 ではサポートされていません。Application Server 8.2 では、 clsetup スクリプトは asadmin configure-ha-cluster コマンドに置き換わり、cladmin スクリプトによってサポートされていたコマンドは、クラスタを操作する asadmin コマンドに置き換わっています。asadmin コマンドの詳細については、『Sun Java System Application Server Enterprise Edition 8.2 Reference Manual 』を参照してください。
Application Server 7 では、管理コンソールで任意のフィールド、コマンド行インタフェース (CLI) で任意の属性を変更できました。Application Server 8.2 では、項目の主キーのフィールドや属性を変更することはできません。ただし、項目を削除して、新しい主キーの値で再作成することはできます。ほとんどの場合、主キーは名前、ID、参照、または JNDI 名のいずれかです。次の表は、変更することのできない主キーの一覧です。
domain.xml ファイルでは、フィールドまたは属性は attribute、項目は element と呼ばれています。domain.xml の詳細については、『Sun Java System Application Server Enterprise Edition 8.2 Administration Reference 』を参照してください。
項目 |
主キーのフィールドまたは属性 |
---|---|
admin-object-resource |
jndi-name |
alert-subscription |
name |
appclient-module |
name |
application-ref |
ref |
audit-module |
name |
auth-realm |
name |
cluster-ref |
ref |
cluster |
name |
config |
name |
connector-connection-pool |
name |
connector-module |
name |
connector-resource |
jndi-name |
custom-resource |
jndi-name |
ejb-module |
name |
external-jndi-resource |
jndi-name |
http-listener |
id |
iiop-listener |
id |
j2ee-application |
name |
jacc-provider |
name |
jdbc-connection-pool |
name |
jdbc-resource |
jndi-name |
jms-host |
name |
jmx-connector |
name |
lb-config |
name |
lifecycle-module |
name |
mail-resource |
jndi-name |
message-security-config |
auth-layer |
node-agent |
name |
profiler |
name |
element-property |
name |
provider-config |
provider-id |
resource-adapter-config |
resource-adapter-name |
resource-ref |
ref |
security-map |
name |
server |
name |
server-ref |
ref |
system-property |
name |
thread-pool |
thread-pool-id |
virtual-server |
id |
web-module |
name |
persistence-manager-factory-resource |
jndi-name |
次の表は、コマンド行ユーティリティー hadbm のサポートされなくなったオプションの一覧です。hadbm コマンドの詳細については、『Sun Java System Application Server Enterprise Edition 8.2 Reference Manual 』を参照してください。
表 1–2 サポートされていない hadbm オプション
オプション |
サポート対象でなくなったサブコマンド |
---|---|
--inetdsetup |
addnodes サブコマンドに対してサポートされなくなりました。 |
--inetd |
create サブコマンドに対してサポートされなくなりました。 |
--inetdsetupdir |
create サブコマンドに対してサポートされなくなりました。 |
--configpath |
create サブコマンドに対してサポートされなくなりました。 |
--set managementProtocol |
create サブコマンドに対してサポートされなくなりました。 |
--set DataDeviceSize --set TotalDatadeviceSizePerNode |
create または set サブコマンドに対してサポートされなくなりました。 |
start-appserv および stop-appserv コマンドは非推奨です。これらのコマンドを使用すると警告が表示されます。asadmin start-domain および asadmin stop-domain を代わりに使用してください。
Application Server 8.2 では、管理コンソールから「標準エラーへのログメッセージ」フィールドが削除されています。domain.xml ファイル内の log-to-console 属性は非推奨で無視されます。asadmin set コマンドは、 log-to-console 属性に対して無効です。asadmin start-domain コマンドの ---verbose オプションを使用して、asadmin start-domain コマンドを実行したウィンドウに対するメッセージを印刷します。このオプションが機能するのは、起動中のドメインのあるマシン上で asadmin start-domain コマンドを実行した場合のみです。
ここでは、コマンド行ユーティリティー asadmin に対する変更内容について説明します。
asadmin コマンドの詳細については、『Sun Java System Application Server Enterprise Edition 8.2 Reference Manual 』を参照してください。
サブコマンドは、次の示すものを除いて下位互換が保たれています。
reconfig サブコマンドは非推奨で、無視されます。
次のサブコマンドは Application Server 8.2 ではサポートされていません。
show-instance-status (list-instances を使用してください)
restart-instance (stop-instance の後に start-instance を続けて使用してください)
configure-session-persistence (configure-ha-persistence に名前変更されました)
create-session-store (create-ha-store に名前変更されました)
clear-session-store (clear-ha-store に名前変更されました)
次のサブコマンドは Application Server 8.2 ではサポートされなくなりました。ソフトウェアライセンスキーと Web コアが削除され、Application Server 8.2 では、Web サーバー機能からの制御関数はサポートされなくなりました。
install-license
display-license
create-http-qos
delete-http-qos
create-mime
delete-mime
list-mime
create-authdb
delete-authdb
list-authdbs
create-acl
delete-acl
list-acls
Application Server 7 では、asadmin コマンドの start および stop サブコマンドに対するエラーコードは、必要とされる END 状態に基づいていました。たとえば asadmin start-domain の場合、ドメインがすでに実行中であれば、終了コードは 0 (成功) でした。ドメインの起動に失敗すれば、終了コードは 1 (エラー) でした。
Application Server 8.2 の場合、終了コードはコマンドが期待どおりに実行されるかどうかに基づいています。たとえば、asadmin start-domain コマンドは、ドメインがすでに実行中であるか、ドメインの起動に失敗すれば、終了コード 1 を返します。同じように、asadmin stop-domain は、ドメインがすでに停止されたか、停止できなければ、終了コード 1 を返します。
次の表のオプションは、非推奨であるか、サポートされなくなったものです。
表 1–3 非推奨およびサポートされていない asadmin オプション
オプション |
サブコマンドで非推奨またはサポートされない |
---|---|
--acceptlang |
create-virtual-server サブコマンドに対して非推奨です。 |
--acls |
create-virtual-server サブコマンドに対して非推奨です。 |
--adminpassword |
関連するすべてのサブコマンドに対して非推奨です。--passwordfile を代わりに使用します。 |
--blockingenabled |
create-http-listener サブコマンドに対して非推奨です。 |
--configfile |
create-virtual-server サブコマンドに対して非推奨です。 |
--defaultobj |
create-virtual-server サブコマンドに対して非推奨です。 |
--domain |
stop-domain サブコマンドに対して非推奨です。 |
--family |
create-http-listener サブコマンドに対して非推奨です。 |
--instance |
すべてのリモートサブコマンドに対して非推奨です。--target を代わりに使用します。 |
--mime |
create-virtual-server サブコマンドに対して非推奨です。 |
--optionsfile |
すべてのコマンドに対してサポートされなくなりました。 |
--password |
すべてのリモートサブコマンドに対して非推奨です。--passwordfile を代わりに使用します。 |
--path |
create-domain サブコマンドに対して非推奨です。 --domaindir を代わりに使用します。 |
--resourcetype |
関連するすべてのサブコマンドに対して非推奨です。--restype を代わりに使用します。 |
--storeurl |
すべてのコマンドに対してサポートされなくなりました。 |
--target |
すべての jdbc-connection-pool、connector-connection-pool 、connector-security-map、および resource-adapter-config サブコマンドに対して非推奨です。 |
--type |
関連するすべてのサブコマンドに対して非推奨です。 |
asadmin get および set サブコマンドにおけるドット表記名の使用は、次の部分で下位互換ありません。
デフォルトサーバー名は、server1 ではなく server です。
server_instance.resource は domain.resources.resource になります。
server_instance.app-module は domain.applications.app-module になります。
属性名の形式が異なっています。たとえば、poolResizeQuantity は pool-resize-quantity になりました。
Application Server 7 でサポートされていたエイリアスの一部が Application Server 8.2 ではサポートされていません。
Application Server 8.2 では、asadmin コマンドの ---passwordfile オプションでは password.conf ファイルを読み取らないので、アップグレードツールによってこのファイルはアップグレードされません。Application Server 8.2 でパスワードファイルを作成する方法については、『Sun Java System Application Server Enterprise Edition 8.2 管理ガイド』を参照してください。
下の表は、Application Server 7 と 8.2 の間で互換性のないドット表記名を 1 対 1 で示したものです。この表には互換性のあるドット表記名は表示されていません。
表 1–4 バージョン間で互換性のないドット表記名
Application Server 7 のドット表記名 |
Application Server 8.2 のドット表記名 |
---|---|
server_instance.http-listener. listener_idserver_instance.http-service.http-listener. listener_id |
server_instance.http-service.http-listener. listener_idconfig_name .http-service.http-listener.listener_id |
server_instance.orb server_instance.iiop-service |
server_instance.iiop-service config_name .iiop-service |
server_instance.orblistener server_instance.iiop-listener |
server_instance.iiop-service.iiop-listener. listener_idconfig_name .iiop-service.iiop-listener.listener_id |
server_instance.jdbc-resource. jndi_name |
server_instance.resources.jdbc-resource. jndi_namedomain.resources.jdbc-resource. jndi_name |
server_instance.jdbc-connection-pool. pool_id |
server_instance.resources.jdbc-connection-pool. pool_iddomain.resources.jdbc-connection-pool. pool_id |
server_instance.external-jndi-resource. jndi_nameserver_instance.jndi-resource. jndi_name |
server_instance.resources.external-jndi-resource. jndi_namedomain.resources.external.jndi-resource. jndi_name |
server_instance.custom-resource. jndi_name |
server_instance.resources.custom-resource. jndi_namedomain.resources.custom-resource. jndi_name |
server_instance.web-container.logLevel (最後の注を参照) |
server_instance.log-service.module-log-levels.web-container config_name .log-service.module-log-levels.web-container |
server_instance.web-container.monitoringEnabled (最後の注を参照) |
server_instance.monitoring-service.module-monitoring-levels.web-container config_name .monitoring-service.module-monitoring-levels.web-container |
server_instance.j2ee-application. application_nameserver_instance.application. application_name |
server_instance.applications.j2ee-application. application_name domain.applications.j2ee-application. application_name |
server_instance.ejb-module. ejb-module_name |
server_instance.applications.ejb-module. ejb-module_namedomain.applications.ejb-module. ejb-module_name |
server_instance.web-module. web-module_name |
server_instance.applications.web-module. web-module_namedomain.applications.web-module. web-module_name |
server_instance.connector-module. connector_module_name |
server_instance.applications.connector-module. connector_module_name domain.applications.connector-module. connector_module_name |
server_instance.lifecycle-module. lifecycle_module_name |
server_instance.applications.lifecycle-module. lifecycle_module_name domain.application.lifecycle-module. lifecycle_module_name |
server_instance.virtual-server-class |
N/A* |
server_instance.virtual-server. virtual-server_id |
server_instance.http-service.virtual-server.virtual-server_id config_name.http-service.virtual-server.virtual-server_id |
server_instance.mime. mime_id |
N/A* |
server_instance.acl. acl_id |
N/A* |
server_instance.virtual-server .virtual-server_id.auth-db .auth-db_id |
N/A* |
server_instance.authrealm. realm_idserver_instance.security-service.authrealm .realm_id |
server_instance.security-service.auth-realm. realm_idconfig_name .security-service-auth-realm.realm_id |
server_instance.persistence-manager-factory-resource. jndi_nameserver_instance .resources.persistence-manager-factory-resource. jndi_name |
server_instance.resources.persistence-manager-factory-resource. jndi_namedomain.resources.persistence-manager-factory-resource. jndi_name |
server_instance.http-service.acl. acl_id |
N/A* |
server_instance.mail-resource. jndi_name |
server_instance.resources.mail-resource. jndi_namedomain.resources.mail-resource. jndi_name |
server_instance.profiler |
server_instance.java-config.profiler config_name .java-config.profiler |
* — Application Server 7 におけるこれらの属性名は、Application Server 8.2 のドット表記名に直接は対応していません。
Application Server 8 では asadmin get コマンドによって解決済みの値が表示されますが、Application Server 8.2 では未処理の値が表示されます。これらの未処理の値はトークンの場合があります。たとえば、次のコマンドを実行します。
asadmin get domain.log-root
上記のコマンドによって次の値が表示されます。
${com.sun.aas.instanceRoot}/logs
Application Server 8 では、値のない属性値には NULL が格納されていました。これが原因で、パスを指定する属性に問題が発生していました。Application Server 8.2 では、Application Server 7 の場合と同じように、値のない属性には空の文字列が格納されるようになりました。