13.8 ojvmjavaツール
ojvmjavaツールは、データベース・インスタンスのセッション・ネームスペースとの対話型インタフェースです。ojvmjavaツールを起動するときは、データベース接続引数を指定します。これによって、プロンプトが表示され、コマンドを入力できる状態になります。
シェルは実行可能プログラム、つまり、static main()メソッドを持つクラスを起動できます。起動するには、コマンドライン・インタフェースを使用するか、データベース常駐クラスをコールします。データベース常駐クラスをコールする場合、実行可能ファイルは、loadjavaツールを使用してロードしておく必要があります。
この項の内容は次のとおりです。
13.8.1 ojvmjavaツールの構文
ojvmjavaツールのコマンド構文は次のとおりです。
ojvmjava {-user user[/password@database ] [options]
[@filename]
[-batch]
[-c | -command command args]
[-debug]
[-d | -database conn_string]
[-fileout filename]
[-o | -oci | -oci8]
[-oschema schema]
[-t | -thin]
[-version | -v]
-runjava [server_file_system]
-jdwp port [host]
-verbose
13.8.2 ojvmjavaツールの引数の概要
表13-4は、ojvmjavaツールの引数の一覧です。
表13-4 ojvmjavaの引数の概要
| 引数 | 説明 |
|---|---|
|
|
データベースに接続するためのユーザー名を指定します。この名前は大/小文字の区別がありません。名前は常に大文字に変換されます。データベース情報を指定した場合、デフォルトで使用される構文はOCIです。また、デフォルト・データベースを指定することもできます。 |
|
|
データベースに接続するためのパスワードを指定します。 |
|
|
実行する |
|
|
スクリーンに表示されたすべてのメッセージを無効にします。ヘルプ・メッセージまたはプロンプトは表示されません。入力したコマンドへの応答のみが表示されます。 |
|
|
任意のコマンドを実行します。 |
|
|
デバッグ情報を表示します。 |
|
|
データベース接続文字列を指定します。 |
|
|
出力を指定のファイルにリダイレクトします。 |
|
|
JDBC OCIドライバを使用します。OCIドライバがデフォルトです。このフラグを使用して、 |
|
|
このスキーマを使用してクラスを参照します。 |
|
|
JDBC Thinドライバ用のデータベース構文を使用するように指定します。データベース接続文字列は、 |
|
|
接続情報を表示します。 |
|
|
バージョンを表示します。 |
|
|
Javaコマンドを実行する際に |
|
|
接続が、指定のポートおよびホストでデバッガ接続をリスニングするようにします。ホストのデフォルト値は |
13.8.3 ojvmjavaツールの例
次に示すように、データベースorclのセッション・ネームスペース上のシェルを、ホストdbserverのリスナー・ポート2481に対してオープンします。
ojvmjava -thin -user HR@dbserver:2481:orcl
Password: password
13.8.4 ojvmjavaツールの機能
ojvmjavaツールのコマンドには様々なタイプの機能があり、次のようにグループ化されます。
13.8.4.1 ojvmjavaツールのコマンドライン・オプション
この項では、ojvmjavaツールのコマンドで使用できる次のオプションについて説明します。
@filenameオプションでのojvmjavaツール・コマンドのスクリプト
この@filenameオプションは、1つ以上のojvmjavaツール・コマンドを含むスクリプト・ファイルを指定します。指定されたスクリプト・ファイルは、クライアント上に配置されます。ojvmjavaツールはファイルを読み取り、指定されたサーバー上ですべてのコマンドを実行します。さらに、スクリプト・ファイルはサーバー上で実行されるため、ファイルへの出力のリダイレクトや別のスクリプトの実行など、そのスクリプト・ファイルでのオペレーティング・システムとの対話はすべてサーバー上で行われます。別のスクリプト・ファイルを実行するようにojvmjavaツールに指示する場合、そのファイルはサーバー上の$ORACLE_HOMEに存在する必要があります。
ojvmjavaツール・コマンドの後に任意のオプションと必要な入力引数を入力する必要があります。スクリプト・ファイルには、ojvmjavaツール・コマンドおよびそれに続くオプションと入力パラメータが含まれています。入力パラメータは、コマンドラインでojvmjavaツールに渡すことができます。ojvmjavaツールは、既知のオプションをすべて処理し、その他のオプションと引数をスクリプト・ファイルに渡します。
次の例は、スクリプト・ファイルexecShellの内容を示します。
java myclass a b c
このファイルを実行するには、次のコマンドを使用します。
ojvmjava -user HR -thin -database dbserver:2481:orcl @commands
Password: password
ojvmjavaツールは既知のオプションをすべて処理し、スクリプト・ファイル内のコマンドが使用する他の入力パラメータを渡します。次の例では、パラメータは、スクリプト・ファイル内のjavaコマンドに渡されます。
スクリプト・ファイルには、ハッシュ記号(#)を使用してコメントを追加できます。コメントはojvmjavaツールでは無視されます。次に例を示します。
#this whole line is ignored by ojvmjava
-runjava
このオプションは、ojvmjavaツールのシェル・コマンドJavaがコマンドライン・インタフェースまたはデータベース常駐クラスのどちらを使用して実行可能なクラスを実行するかを制御します。-runjavaオプションが存在する場合、コマンドライン・インタフェースが使用されます。それ以外の場合、実行可能ファイルはloadjavaツールで以前にロードされたデータベース常駐クラスになります。オプションの引数server_file_systemを使用する場合、-classpath表現がOracleサーバーを実行するマシンのファイルシステム上にあることを意味します。それ以外の場合、ojvmjavaツールを実行するマシンのファイルシステム上にあるものとして解析されます。
-jdwp
このオプションは、シェル・コマンドjavaが実行可能ファイルの実行に使用される場合にリスニングするデバッガ接続を指定します。実行可能ファイルのデバッグを許可します。引数はポートおよびホストを指定します。ホストの引数のデフォルト値はlocalhostです。これらを使用して、実行可能ファイルが実行されるRDBMSセッションからDBMS_DEBUG_JDWP.CONNECT_TCPのコールを実行します。
関連トピック
13.8.4.2 ojvmjavaツールのシェル・コマンド
この項では、ojvmjavaシェル内で使用できる次のコマンドについて説明します。
注意:
サポートされていないコマンドを入力すると、エラーがレポートされます。
次の表に、1つ以上の共通オプションを共有するコマンドの概要を示します。
表13-5 ojvmjavaコマンドの共通オプション
| オプション | 説明 |
|---|---|
|
|
ツールの操作方法を要約表示します。 |
|
|
ツールの構文を要約表示します。 |
|
|
バージョンを表示します。 |
echo
このコマンドは、指定された対象を正確にstdoutに表示します。これは、ほとんどの場合、スクリプト・ファイルで使用します。
構文は次のとおりです。
echo [echo_string] [args]
echo_stringは、シェル・スクリプトの起動時にスクリーンに書き込むテキストが含まれる文字列で、argsは、ユーザーが指定する入力引数です。たとえば、次のコマンドは通知を表示します。
echo "Adding an owner to the schema" &1
入力引数がHRの場合、出力は次のようになります。
Adding an owner to the schema HR
exit
このコマンドは、ojvmjavaを終了します。構文は次のとおりです。
exit
たとえば、シェルを終了するには次のコマンドを使用します。
$ exit %
help
このコマンドは、シェル・コマンドの構文の要約を表示します。また、helpコマンドを使用すると、特定のコマンドについてオプションの要約も表示できます。構文は次のとおりです。
help [command]
java
このコマンドは、JDKのjavaコマンドに類似しています。これは、クラスのstatic main()メソッドをコールします。これを行うには、runjavaモードの設定に応じて、コマンドライン・インタフェースを使用するか、データベース常駐クラスを使用します。後者の場合、クラスはloadjavaツールを使用して以前にロードしたものである必要があります。このコマンドは、データベースで実行されるJavaコードのテストに便利です。特に、このコマンドは例外を捕捉し、クラスの標準出力と標準エラーをシェルにリダイレクトして、他のコマンド出力の場合と同様に表示します。データベース内で実行されるJavaクラスの標準出力と標準エラーの出力先は、データベース・サーバー・プロセスの1つ以上のトレース・ファイルで、これは読みにくく、また読むためにはDBA権限が必要な場合があります。
runjavaモードがoffのコマンドの構文は次のとおりです。
java [-schema schema] class [arg1 ... argn]
runjavaモードがonのコマンドの構文は次のとおりです。
java [command-line options] class [arg1 ... argn]
コマンドライン・オプションは、表3-1で説明したいずれかのオプションになります。
次の表に、このコマンドの引数の概要を示します。
表13-6 javaの引数の概要
| 引数 | 説明 |
|---|---|
|
|
実行するJavaクラス・スキーマ・オブジェクトの名前を指定します。 |
|
|
実行するクラスを含むスキーマ名を指定します。デフォルトは実行者のスキーマです。スキーマ名は、大/小文字の区別があります。 |
|
|
クラスの |
次のJavaファイルWorld.javaについて考えます。
package hello;
public class World
{
public World()
{
super();
}
public static void main(String[] argv)
{
System.out.println("Hello from Oracle Database");
if (argv.length != 0)
System.out.println("You supplied " + argv.length + " arguments: ");
for (int i = 0; i < argv.length; i++)
System.out.println(" arg[" + i + "] : " + argv[i]);
}
}
次のように、クラスをコンパイル、ロード、公開および実行します。
% javac hello/World.java
% loadjava -r -user HR@localhost:2481:orcl hello/World.class
Password: password
% ojvmjava -user HR -database localhost:2481:orcl
Password: password
$ java hello.World alpha beta
Hello from Oracle Database
You supplied 2 arguments:
arg[0] : alpha
arg[1] : beta
バージョン
このコマンドは、ojvmjavaツールのバージョンを表示します。また、指定したコマンドのバージョンも表示できます。このコマンドの構文は次のとおりです。
version [options] [command]
たとえば、次のように、シェルのバージョンを表示できます。
$ version 1.0
whoami
このコマンドは、カレント・セッションにログインしているユーザーのユーザー名を表示します。このコマンドの構文は次のとおりです。
whoami
connect
このコマンドを使用すると、クライアントで現在の接続を削除し、別の接続の説明でojvmjavaツールを再起動せずに別のデータベースに接続できます。
このコマンドの構文は次のとおりです。
connect [-service service] [-user user][-password password]
このコマンドは、次の例のように使用できます。
connect -s thin@locahost:5521:orcl -u HR/<password> connect -s oci@locahost:5521:orcl -u HR -p <password>
次の表は、このコマンドの引数の一覧です。
表13-7 connectの引数の概要
| 引数 | 説明 |
|---|---|
|
-service | -s |
有効なJDBCドライバのURL(oci @<connection descriptor>およびthin@<host:port:db>) |
|
|
接続するユーザー |
|
-password | -p |
接続に使用するパスワード |
runjava
このコマンドは、runjavaモードの問合せや変更を行います。runjavモードは、javaコマンドがコマンドライン・インタフェースを使用して実行可能ファイルを実行するかどうかを決定します。javaコマンドは次のように動作します。
-
runjavaモードがonの場合はコマンドライン・インタフェースを使用します。 -
runjavaモードがoffの場合はデータベース常駐の実行可能ファイルを使用します。
引数を指定せずにrunjavaコマンドを使用すると、runjavaモードの現在の設定が表示されます。
次の表は、このコマンドの引数の一覧です。
表13-8 runjavaの引数の概要
| 引数 | 説明 |
|---|---|
|
|
|
|
|
|
|
|
|
jdwp
このコマンドは、実行可能ファイルがJavaコマンドで実行される場合にデバッガ接続がリスニングされるかどうか、およびそのリスニングの状況の問合せや変更を行います。
注意:
RDBMSセッションは、実行可能ファイルを起動する前に、指定のポートおよびホストでDBMS_DEBUG_JDWP.CONNECT_TCPコールを実行します。これはリスニングと呼ばれます。
引数を指定せずにこのコマンドを使用すると、現在の設定が表示されます。
次の表は、このコマンドの引数の一覧です。
表13-9 jdwpの引数の概要
| 引数 | 説明 |
|---|---|
|
off |
今後の実行可能ファイルでのリスニングを停止します。 |
|
|
リスニングを有効にして、使用するポートを指定します。 |
|
host |
リスニングを有効にして、使用するホストを指定します。この引数のデフォルト値は |