simBio分散計算パッケージ: 利用手順
projectの準備
simBio_privateプロジェクトを使うとき
cvsから、simBio_privateプロジェクトをチェックアウトします。
自分のプロジェクトを使うとき
- simBio, JavaSpace, JavaSpaceClientプロジェクトをチェックアウトします。
- JavaSpaceClient/build_dependencies.xmlを自分のプロジェクトにコピーします。
- build_dependencies.xmlを右クリック、[実行]→[Antビルド]で実行すると必要なファイルが作成されます。
- ビルドパスにsimBio, JavaSpace, JavaSpaceClientプロジェクトもしくはsimBio*.jarのどちらかを追加します。
Class Serverの起動
build_httpd.xmlを右クリック、[実行]→[Antビルド]で実行し、クラス配布サーバーを起動する。
jarの準備
MANIFEST.MFをsrc/main/resources/META-INFに作成します。 build.properties.sampleからbuild.propertiesを作成し、versionを更新します。 build_httpd.xmlのsetJarsターゲットを実行します。 target/libに生成されたjarを次のcodebaseに指定します。
version
javaソースを変更したら、必ずversionを更新します。
file名が同じjarはworkerが起動している間は最初の1回しか読み込まれません。
CodeBaseの設定
利用するべきクラス情報を含んだホストとディレクトリ情報をcodebaseといいます。 ワーカがClass Serverからクラスを取得するためには、codebaseをワーカに渡す必要があります。
設定はprotocol xmlに<codebase>を記述します。
- IPアドレスを自分のたてたClass Serverのアドレスとポート番号に
IP自分の端末のIPアドレスはコマンドプロンプトから"ipconfig"とコマンドを打つと表示されます。
- jarの名前を実際の名前に修正します。
<codebase> <URLset URL="http://192.168.0.249:8082/simBio_private/target/lib/simBio_httpd-x.x.x.jar" /> </codebase>
Note
次のように自分のプロジェクトのクラスがあるディレクトリを追加するとjarを作成しなくても、classを読んでくれます。
しかし、modelのinstanceの作成に失敗してWorkerが固まることがあるようです。
<URLset URL="http://192.168.0.249:8082/simBio_private/lib/simBio_JavaSpaceClient-x.x.x.jar;http://192.168.0.249:8082/simBio_private/target/classes/" />
複数のJavaSpaceサーバーを区別して使うときは
protocol xmlの<service URL="jini://10.238.63.40" />に接続するサーバーのIPを設定します。
jobを投げる
- Main class: org.heiankyoview.applet.simbioview.SimbioView
- 引数にメールアドレスと starter.xml
- VM引数に
-Djava.security.policy=policy.all
java.rmi.server.codebaseJavaSpaceに書き込まれた情報のクラス名をincaXから知るためには -Djava.rmi.server.codebase=http:// 192.168.0.153:8081/JavaSpace- x.x.x.jarをVM引数に追加します。 IPアドレスはJavaSpaceサーバーのアドレスを入れてください。
を指定して実行します。
投げる前に
引数にメールアドレスを入力しなければ、localで計算します。
MalformedXmlError
下記のようなエラーでxmlがワーカーに拒否された時は、basemodel xmlに文字化けが起こっていないか確認して下さい。
可能ならば日本語のコメントなどを削除してみてください。
Caused by: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence.
MANIFESTError
下記のようなエラーでxmlがワーカーに拒否された時は、MANIFEST.MFのClass-Pathに
simBio_JavaSpaceClient-x.x.jarが含まれていることを確認して下さい。
ERROR [Thread-1] (?) - cannot process the request from someone@somewhere:1194773049561 java.lang.ClassNotFoundException: org.simBio.sim.js.ProcessorImpl
ERROR [Thread-1] (?) - cannot process the request from someone@somewhere:1194773049561 java.lang.ClassNotFoundException: org.simBio.sim.js.ProcessorImpl