原典情報: $ORACLE_HOME/javavm/doc/readme.txt
目次
11g(11.1および11.2) Oracle JVMの新機能
URLおよびマシン名でのInternet Protocol Version 6(IPv6)アドレスのサポートが追加されました。(11.2から追加。11.1では未対応)
Oracle JVMのシステムクラスがJDK 1.4.2レベルからJDK 1.5にアップグレードされました。
パフォーマンスと使いやすさで以前のJAccelerator(ncomp)に比べて大幅な改善を可能にする、まったく新しいJust-In-Time(JIT)コンパイラが導入されました。以前のJAcceleratorは11.1以降では非推奨です。
よりよいセキュリティとパフォーマンスを提供するためにJava2権限システムが改訂されました。
Java Management Extensions(JMX)のサポートにより、JConsoleなど標準のJMX対応コンソールを使用してOracle JVMの監視や制御が可能になりました。
Javaのセッション状態の2層の期間のサポートが追加されました。
データベース常駐JARのサポートが追加され、データベースにロードしたJARを表すデータベース・オブジェクトの作成が可能になりました。
クラスがロードされた新しいユーザー・クラス・メタデータ機能を使用して、プライベート・クラスのメタデータが共有可能になりました。
出力のリダイレクションを可能にするサポートが追加されました。
システム・プロパティの設定、取得、削除、表示を行うために、PL/SQL DBMS_JAVAパッケージに関数セットが追加されました。
新しいrunjava関数(PL/SQL DBMS_JAVAパッケージまたはojvmjavaツールから起動可能)により、JDK/JRE Javaシェル・コマンドに似たコマンドライン・インタフェースが提供されます。
ユーティリティが改善されました。
新しいojvmtcツールは外部参照の解決に役立ちます。
URLを使用してリモート・サーバーからクラスやjarをロードできるようにloadjavaツールがリライトされました。
リスト・ベースの操作をサポートするためにdropjavaツールが機能拡張されました。
このリリースは、Sun社のJava Compatibility Kit for JDK 1.5を使用して詳細なテストが完了しています。オラクル社は、Oracle JVMがJavaおよびその他のインターネット標準に対応するよう努めています。
『Oracle Java開発者ガイド』(Oracle JVM製品のドキュメント)はオンラインで利用できます。
Oracle JVMに慣れていない場合は、まずドキュメントの指示に従って製品を正しくインストール、構成することが重要です。始めるにあたって、ドキュメントに記載されている例に従うことをお薦めします。$ORACLE_HOME/javavm/demoにあるデモと例には、HelloWorldの例が含まれています。
HelloWorldと他の例を実行すると、インストールが正常に完了していることと、Oracle JVMがデータベースで正常に有効化されていることを確認できます。
Javaアプリケーションの開発とデプロイメントに使用されるメモリー・リソースには、様々なものがあります。デプロイメント時間および実行時の操作が正しいことを確認するには、メモリー・パラメータを構成して要件を満たす方法について理解しておく必要があります。製品のドキュメントには、Javaのメモリー使用量について詳細な説明があります。
通常、エラーはトレース・ファイルでレポートされます。問題を明確にする第1歩として、トレース・ファイルを調べてください。
コール仕様部の定義と実際のJavaメソッドの不一致は、実行時にのみ検出されます。
package.procedureのDESCRIBEは、メソッドがPL/SQL実装ではなくJavaを含む場合に、「オブジェクトが存在しない」ことを示します。パッケージのDESCRIBEでは、PL/SQLプロシージャのみがリストされ、Javaストアド・プロシージャは除外されます。
推奨されるワークフローは、まずクライアント側のコンパイラでJavaのソースをコンパイルしてから、結果のクラス・バイナリをデータベースにロードすることです。このワークフローによって、全体的なコンパイルとロードの時間が節約できます。
ソース(.java)とバイナリ(.class)を1つのjarファイルにロードすることは、推奨できません。同じクラスのソース・ファイルとバイナリ・ファイルを、同じjarファイルでロードすることはできません。
最初にロードするときと同じようにして、Javaスキーマ・オブジェクトを削除する必要があります。たとえば、Jarオブジェクトから個々のクラスを削除することはできません。-jarsasresourceコマンド・オプションを使用して、Jar全体を削除する必要があります。
大きいJarファイルのロードで問題があるときは、SHARED_POOL_SIZEの値を大きくすることを検討してください。Javaスキーマ・オブジェクトの作成には、共有プール・メモリーが使用されます。
クラスが正しくロードおよび解決されていない恐れがある場合は、クラスをロードして実行したユーザーとして接続することにより、ロードされたクラスの状態を調べることができます。
SELECT * FROM user_objects;
SELECT * FROM user_errors;
正常にロードされて解決されたクラスの場合は、user_objectsビューでステータスがVALIDと表示されます。
runjavaは、アプリケーション開発およびプロトタイピングのワークフローで使用するために設計されています。デプロイメントでの使用には非効率的です。
クライアント側のJDBC使用は、一般的にrunjavaの下で透過的に機能します。特にサーバーでサポートされていないJDBC-OCIドライバの場合が当てはまります。