trmicユーザマニュアル

trmicは、スタンドアロンのクラスのソースコードやバイトコードを入力し、分散環境で実行できるバイトコードを生成します.
複数のクラスをスペースで区切って同時に指定することも可能です.
ソースファイル名とクラス名を混合して指定することはできません.

コマンドの基本

trmic [option] サーバのソースファイル名またはクラス名

-a

アクティベーションを行うことを指定します.
アクティベーションを使用すると,サーバオブジェクトのバイトコードのサーバホストへの配備やサーバーオブジェクトの生成などが自動的に行われます.

例 アクティベーションを行うことを指定する場合

trmic -a Server.java

-accessor

-accessor オプションはpublicなインスタンス変数に対して,セッタ・ゲッタメソッドを自動生成します.
生成されるメソッドは以下の通りです.
変数の型 get_field_変数名()
void set_field_変数名(変数の型)

例 アクセッサを生成することを指定する場合

trmic -accessor Server.java

-async class1[:class2:...]

-async オプションは非同期のメソッド呼び出しを可能とします。
(a) 戻り値の無いメソッドを非同期で呼び出します.
(b) 非同期で呼び出されたメソッドの戻り値はゲッタメソッドで取得するように実装します.
(c) ゲッタメソッドは非同期で呼び出されたメソッドの終了を待って戻り値を取得します.
(d)ゲッタメソッドの名前は,メソッド名の最初の文字を大文字にして,その前にgetをつけたものとなります.
例えばメソッドhelloのゲッタメソッドはgetHelloとなります.

導入されたバージョン 0.7.9(6)

例 非同期のメソッド呼び出しを行うことを指定する場合

trmic -async Server Server.java

-asyncall class1[:class2:...]

-asyncall オプションは戻り値を持つメソッドの非同期メソッド呼び出しを可能とするため,async_メソッド名とgetAsync_メソッド名を生成します.

クライアントプログラム中でこれらのメソッドを呼び出すことができるようになります.

導入されたバージョン 0.8.6(1)

例 戻り値を持つメソッドの非同期のメソッド呼び出しを行うことを指定する場合

trmic -asyncall Server Server.java

-bcp パス名

-bcpオプションは,trmicがjavacを呼び出す際の-bootclasspathオプションの値を指定します.

導入されたバージョン 0.8.6(3)

例 JDK1.7をインストールしたMacOSXでJDK1.6を使用する場合

trmic -bcp /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Classes/classes.jar

-consult class1[:class2:...]

サーバオブジェクトを配備するサーバホストの選択をクライアントではなく,プライマリサーバが行うことを指定します.
プライマリサーバとは,confファイル中の最初のaddressで指定します.

導入されたバージョン 0.8.9(9)

例 プライマリサーバを使用して配備するサーバを選択する場合

trmic -consult Server Server.java

-cp パス名

trmicがクラスファイルを検索する際に使用するパス名を指定します.

複数のクラスパスは:で区切って指定できます.

例 /usr/mydirectoryを検索する場合

trmic -cp /usr/mydirectory Server.java

-d パス名

trmicがクラスファイルを生成するディレクトリを指定します.

例 /usr/mydirectoryに生成する場合

trmic -d /usr/mydirectory Server.java

-dep [on|off]

-depオプションは,サーバのスーパクラスに定義されているdeprecatedメソッドをリモート呼び出しできるようにすることを指定します.

導入されたバージョン 0.7.9(1)

例 deprecatedメソッドをリモート呼び出しすることを指定する場合

trmic -dep on Server.java

-gc

onetimeコンストラクタをもつオブジェクトを削除する際に,ガーベジコレクションを行うことを指定します.
-onetimeオプションと一緒に指定する必要があります.

導入されたバージョン 0.8.5(1)

例 OneTimeClassをonetimeコンストラクタを持つ分散オブジェクトに変換し,削除時にガーベジコレクションを行うことを指定する場合

trmic -gc -onetime OneTimeClass OneTimeClass.java

-ip

サーバオブジェクトを配置するサーバホストを指定します.
複数のホストを指定する場合には:で区切って指定します.
ホストはIPアドレスまたはドメイン名で指定します.

例 x.apple.comとy.apple.comに生成する場合

trmic -ip x.apple.com:y.apple.com Server.java

-javac

trmicがjavacを呼び出す場合に使用するオプションを指定します.

導入されたバージョン 0.7.7(2)

例 サーバのクラスがEUCで書かれていることを指定する場合

trmic -javac “-encoding euc” Server.java

-jmx

JMXを用いたサーバホストのJava仮想マシンの監視機能を有効にします.
監視はTrmiMonitorを用いて行います.
このオプションを指定しない場合は,TrmiMonitorによる監視は行えません.

導入されたバージョン 0.7.3(1)

例 サーバホストのJava仮想マシンの監視を行うことを指定する場合

trmic -jmx Server.java

-lazy class1[:class2:...]

trmicがlazyコンストラクタを生成するクラスを指定します.
Lazyコンストラクタは,サーバオブジェクトをインスタンス化時には生成しないで,最初のメソッドが呼び出されたときに生成します.
コロンで区切ることにより複数のクラス名を指定できます.

導入されたバージョン 0.8.2(9)

例 LazyClassをlazyコンストラクタを持つ分散オブジェクトに変換することを指定する場合

trmic -lazy LazyClass LaxyClass.java

-mt [on|off]

サーバオブジェクトが呼び出されたメソッドを並列に実行うるかどうかを指定します.

例 並列処理を行うことを指定する場合

trmic -mt on Server.java

-multiplex class1[:class2:...]

Multiplexスタブを生成することを指定します.
Multiplexスタブは複数のサーバに共通するスタブです.
コロンで区切ることにより複数のクラス名を指定できます.

導入されたバージョン 0.8.9(1)

例 ServerクラスのMultiplexスタブを生成したい場合

trmic -multiplex Server Server.java

-native class1[:class2:...]

メソッドがC言語で実装されているクラスを指定します.
Server.javaクラスのメソッドは,Server.cファイル中で実装します.
Java言語とC言語の型の対応はJNAに準じます.
Server.java中のJavaによるメソッドの実装は無視されます.
コロンで区切ることにより複数のクラス名を指定できます.

導入されたバージョン 0.8.2(7)

例 NativeClassのメソッドをCで実装したい場合

trmic -native NativeClass NativeClass.java

-onetime class1[:class2:...]

trmicがonetimeコンストラクタを生成するクラスを指定します.
Onetimeコンストラクタで生成されたサーバオブジェクトは最初のメソッドが終了した時に削除されます.
コロンで区切ることにより複数のクラス名を指定できます.

導入されたバージョン 0.8.2(9c)

例 OneTimeClassをonetimeコンストラクタを持つ分散オブジェクトに変換することを指定する場合

trmic -onetime OneTimeClass OneTimeClass.java

-port ポート番号

サーバと通信に使用するポート番号を指定します.

導入されたバージョン 0.7.2(0)

例 3456を指定する場合

trmic -port 3456 Server.java

-r [on|off]

引数で指定したサーバクラスのみでなく,関連するクラスも同時にtrmicで処理することを指定します.
関連するクラスとは,サーバクラスのメソッドの戻り値や引数のクラスです.

例 関連するクラスも同時に処理することを指定する場合

trmic -r on Server.java

-remote class1[:class2:...]

trmicが分散オブジェクトに変換するクラスを指定します.
Serializableクラスに対しても分散オブジェクトとすることを指定します.
コロンで区切ることにより複数のクラス名を指定できます.

導入されたバージョン 0.8.2(3)

例 SerializableなMySerializableClassを分散オブジェクトに変換することを指定する場合

trmic -remote MySerializableClass MySerializableClass.java

-self [on|off]

サーバが自分自身のメソッドを呼び出している場合,スタブ経由で呼び出すように指定します.
これにより,自分自身のメソッド呼び出しもスケジューラでスレッド制御できるようになります.
また,自分を参照する変数thisもスタブのアドレスに変更されます.

導入されたバージョン 0.7.9(1)

例 自分自信のメソッド呼び出しもスタブ経由で行うことを指定する場合

trmic -self on Server.java

-serialize class1[:class2:...]

trmicがSerializableに変換するクラスを指定します.
コロンで区切ることにより複数のクラス名を指定できます.

導入されたバージョン 0.8.2(3)

例 Server.javaを分散オブジェクトに変換する際に,そのクラスのメソッドの引数のクラスParameterをSerializableにすることを指定する場合

trmic -serialize Parameter Server.java

-shared class1[:class2:...]

サーバオブジェクトのひとつのインスタンスを複数のクライアントが共有するようなFactoryを生成することを指定します
このオプションを指定しない場合は,サーバオブジェクトのインスタンスを共有しなFactoryが生成されます.

導入されたバージョン 0.7.9(1)

例 サーバオブジェクトを共有することを指定する場合

trmic -shared Server.java

-source

ネットワーク部品のソースコードを生成することを指定します.
コンパイルはしません.
このオプションを指定しない場合は,バイトコードが生成されます.

例 ソースコードの生成を指定する場合

trmic -source Server.java

-sp パス名

trmicがクラスのソースファイルを検索する際に使用するパス名を指定します.
複数のソースパスは:で区切って指定できます.

例 /usr/mydirectoryを検索する場合

trmic -sp /usr/mydirectory Server.java

-target バージョン番号

trmicが生成するバイトコードのバージョンを指定します.
バージョン番号の指定は,javacの-targetオプションと同一の記法を使用します.

導入されたバージョン 0.8.1(3)

例 バージョン1.5のバイトコードを生成することを指定する場合

trmic -target 1.5 Server.java

-unified class1[:class2:...]

trmicがunifiedスタブを生成するクラスを指定します.
コロンで区切ることにより複数のクラス名を指定できます.

導入されたバージョン 0.8.2(3)

例 Server.javaに対してunifiedスタブを生成する場合

trmic -unified Server Server.java