ヘッダーをスキップ
Oracle® Databaseプラットフォーム共通日本語README
12cリリース1 (12.1)
B71333-12
  目次
目次

前
 
次
 
 

Oracle JVM README

原典情報: <ORACLE_HOME>/relnotes/readmes/README_javavm.txt


目次

12.1.0.1 Oracle JVMの新機能

Javaの互換性

スタート・ガイド

役に立つヒント


12.1.0.1 Oracle JVMの新機能

複数のJDK:

  • デフォルトのJava VMランタイムおよびコンパイラは、JDK 5からJDK 6 Update 37にアップグレードされています。
  • JDK 7 Update 9に対応するランタイムおよびコンパイラも提供されています。
  • JDKのアップグレード/ダウングレード: データベース内の有効なJDKはJDK 6 (デフォルト)からJDK 7にアップグレード、またはJDK 7からJDK 6にダウングレードできます。詳しい情報は、Oracle Database Java開発者ガイド12.1を参照してください。

デフォルトのJavaセキュリティのカスタマイズ:

  • データベース内のjava.security設定をカスタマイズするために、java.security代替ファイルが追加されました。詳細は、Java開発者ガイドを参照してください。
  • 前のリリースで追加された新しいルーチンdbms_java.set_runtime_exec_credentialsが、Java開発者ガイドに記載されました。Runtime.execの安全な使用に関する項も追加されました。ルーチンdbms_java.set_runtime_exec_credentialsにより、DBAおよびセキュリティ管理者は制限された権限でRuntime.execのプロセスをOSアカウントにバインドできます。

より堅牢なデバッガ:

Javaデバッガ・バックエンドでの一部の問題が修正され、Javaデバッガ・バックエンドはより堅牢になりました。

Java Directory Service Namespace Provider (OJDS)によるJNDIサポート:

オブジェクトおよびオブジェクト参照を格納するための、汎用ディレクトリ・サービス。格納されているすべてのオブジェクトは、java.io.Serializableインタフェースを実装する必要があります。

拡張LogManager APIによるロギング・サポート。

Javaの互換性

このリリースでのJDK 6とJDK 7の互換性は、OracleのJava Compatibility Kits 6および7を使用して詳細なテストが完了しています。オラクル社は、Oracle JVMがJavaおよびその他のインターネット標準に対応するよう努めています。

スタート・ガイド

『Oracle Java開発者ガイド』(Oracle JVM製品のドキュメント)はオンラインで利用できます。

Oracle JVMに慣れていない場合は、まずドキュメントの指示に従って製品を正しくインストール、構成することが重要です。始めるにあたって、ドキュメントに記載されている例に従うことをお薦めします。ORACLE_HOME/javavm/demoにあるデモと例には、HelloWorldの例が含まれています。

HelloWorldと他の例を実行すると、インストールが正常に完了していることと、Oracle JVMがデータベースで正常に有効化されていることを確認できます。

Javaアプリケーションの開発とデプロイメントに使用されるメモリー・リソースには、様々なものがあります。デプロイメント時間および実行時の操作が正しいことを確認するには、メモリー・パラメータを構成して要件を満たす方法について理解しておく必要があります。製品のドキュメントには、Javaのメモリー使用量について詳細な説明があります。

役に立つヒント

トラブルシューティングのヒント

通常、エラーはトレース・ファイルでレポートされます。問題を明確にする第1歩として、トレース・ファイルを調べてください。

Javaストアド・プロシージャ

コール仕様部の定義と実際のJavaメソッドの不一致は、実行時にのみ検出されます。

package.procedureのDESCRIBEは、メソッドがPL/SQL実装ではなくJavaを含む場合に、「オブジェクトが存在しない」ことを示します。パッケージのDESCRIBEでは、PL/SQLプロシージャのみがリストされ、Javaストアド・プロシージャは除外されます。

LoadjavaとDropjava

推奨されるワークフローは、まずクライアント側のコンパイラでJavaのソースをコンパイルしてから、結果のクラス・バイナリをデータベースにロードすることです。このワークフローによって、全体的なコンパイルとロードの時間が節約できます。 クライアント側のJavaコンパイラはOracle JVMと互換性のあるJava SEレベルである必要があります。また、Javaソースをデータベースにロードして、Oracle JVMでコンパイルすることもできます。

ソース(.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

runjavaは、アプリケーション開発およびプロトタイピングのワークフローで使用するために設計されています。デプロイメントでの使用には非効率的です。

データベースでのクライアント側JDBC-OCIドライバの使用はサポートされておらず、runjavaで使用すると失敗します。JDBC-THINドライバを使用するために、権限の付与が必要になることもあります。詳細は、Oracle JDBCおよびJava開発者ガイドを参照してください。