| Oracle Databaseプラットフォーム共通日本語README 10g リリース2(10.2) B19227-09 |
|
![]() 戻る |
![]() 次へ |
原典情報: $ORACLE_HOME/nls/gdk/README.txt
目次
Language and Character Set Detectionユーティリティが拡張され、次の機能がサポートされるようになりました。
1つのInputStreamソースに対して2つの独立したストリーム操作が必要な場合(たとえば、1つのストリームは言語とキャラクタ・セットを検出し、もう1つのストリームは実際の目的を実行する場合)、DualInputStreamBuilderクラスを使用できます。このクラスは、1つのInputStreamソースに対して2つのInputStreamラッパー・オブジェクトを生成します。
LCSDストリームとreaderクラスは、検出結果に基づいて入力ストリームで追加操作を実行する場合に使用できます。
UTF-8バイト・シーケンスには、アプリケーションのセキュリティを損なう可能性がある無効なデータが含まれている場合があります。UTF8ValidationFilterクラスを使用すると、JDK変換が実行される前に無効なUTF-8シーケンスを検出できます。無効なUTF-8バイト・シーケンスが検出されると、フィルタによって例外が発生するか、または置換文字に置き換えられます。
より正確に検出処理を実行するために、HTML入力をサポートしてHTMLタグを廃棄するためのGDKの2つの拡張クラス(LCSDetectionHTMLInputStreamとLCSDetectionHTMLReader)が用意されています。HTML入力ファイルの場合、入力に対して正確な検出が実行され、ユーザーは検出結果を検証できます。LCSDはHTML 4.01仕様をサポートしています。
GDK Javaライブラリは、クラスをロードする際のパフォーマンスを改善するために、9つのjarファイルに分割されています。通常、すべてのjarファイルは同じディレクトリ下にインストールされ、orai18n.jarのみをCLASSPATHに含める必要があります。そうでない場合は、9つすべてのjarファイルをCLASSPATHに含める必要があります。
GDK for Javaは9つのjarファイルで構成され、Oracleデータベースに同梱されています。
orai18n.jar
orai18n-mapping.jar
orai18n-utility.jar
orai18n-collation.jar
orai18n-translation.jar
orai18n-net.jar
orai18n-servlet.jar
orai18n-tools.jar
orai18n-lcsd.jar
GDKを使用するアプリケーションのホストがデータベースと同じマシンでない場合、アプリケーションを実行するには、GDKファイルがアプリケーション・サーバーにコピーされてCLASSPATHに含まれる必要があります。Javaアプリケーション内でGDKを実行可能にするために、Oracleデータベースをアプリケーション・サーバーにインストールする必要はありません。GDKは、すべてのプラットフォームで実行できるPure Javaライブラリです。Oracleクライアント・パラメータNLS_LANGおよびORACLE_HOMEは必要ありません。
GDKアプリケーションは、サード・パーティのJ2EE準拠アプリケーション・サーバーに配置することも可能です。J2EE用のGDKフレームワークはXMLパーサーと依存関係があるため、Oracle以外の環境にアプリケーションを配置するとき、oracle/xml/parser/v2/のクラスに対してNoClassDefFoundErrorが発生した場合は、GDKと同じリリースのOracle XML Parser(xmlparserv2.jar)を配置用ディレクトリにインストールする必要があります。このファイルは、Oracle XML Developers Kit(XDK)for Javaの一部としてOTNからダウンロードできます。既存のOracle環境に配置する場合、つまり、OracleデータベースとOracle Application Serverの両方にXMLパーサーがすでに含まれている場合、この手順は不要です。
GDK 10.1から10.2にアップグレードする場合、特別な手順は必要ありません。すべてのjarファイルが同じディレクトリにコピーされる場合、アプリケーションのCLASSPATHを変更する必要はありません。
次のリストに、既知の問題または制限事項を示します。
BUG#4085200(OC4Jクラスのロードに関する問題)
GDKアプリケーションをバインドするとorg/apache/regexp/RESyntaxExceptionのNoClassDefFoundErrorがスローされ、OraResourceBundle.getBundle()を使用してアプリケーション・メッセージ・バンドルをロードするとMissingResourceExceptionがスローされます。これはOC4J 10.1.2でのみ発生し、9.0.4では発生しません。解決するには、アプリケーションの配置時に次の手順を実行します。
アプリケーションを配置します。
$ java -jar admin.jar ormi://localhost/ admin <admin passwd> -deploy \
-file <path>/gdkdemo.ear -deploymentName gdkdemo
次の行のコメントを解除します。
$J2EE_HOME/application-deployments/gdkdemo/gdkdemo/orion-web.xml
<web-app-class-loader search-local-classes-first="true"
include-war-manifest-class-path="true" />
アプリケーションをバインドします。
$ java -jar admin.jar ormi://localhost/ admin <admin passwd> \
-bindWebApp gdkdemo gdkdemo http-web-site /gdkdemo
BUG#4115579(ユーザー・ロケールのキャッシュ)
これは、GDKショップ・デモの不具合です。 デモのドロップダウン・メニューを使用してユーザーを切り替えた場合、ブラウザの「戻る」ボタンを使用すると、セッションでキャッシュされた前のユーザーのDBLocaleSourceオブジェクトがかわりに使用されます。このようなキャッシュが正常に機能するのは、ユーザーの変更時に(ログアウトによって)セッションが無効になった場合のみです。 デモのこの不具合は修正されました。ロケール・ソース別のデフォルトのキャッシュ・ポリシーは次のとおりです。
oracle.i18n.servlet.localesource.DBLocaleSource
このロケール・ソースは、デフォルトでセッション・オブジェクトにキャッシュされます。このキャッシュはユーザーIDに基づいていないため、1つのセッション(ユーザーのログインからログアウトまで)につきユーザーが1名のアプリケーションに適しています。ほとんどの場合はこれに該当します。
oracle.i18n.servlet.localesource.UserInput
このロケール・ソースは、デフォルトでキャッシュされません。要求ごとに処理されて、現行ユーザーの入力ロケールが取得されます。
oracle.i18n.servlet.localesource.HttpAcceptLanguage
このロケール・ソースは、デフォルトでキャッシュされません。要求ごとに処理されて、現行のロケール設定が取得されます。
oracle.i18n.servlet.localesource.ApplicationDefault
このロケール・ソースは、ApplicationContextにキャッシュされます。ロケール・ソースが変更(つまり、構成ファイルが変更)された場合は、サーバーを再起動する必要があります。