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 |
リスニングを有効にして、使用するホストを指定します。この引数のデフォルト値は |