plate

plateとは

JVM上で複数のJavaプログラムを実行するためのミドルウェアです。
コンソールからライブラリやプログラムの登録と実行が可能です。
また、cronからtelnet接続で定期バッチの実行が可能です。

WEBサーバーとメールサーバー、SIPサーバー、ネットワークゲームサーバー、バッチのJavaプログラムを複数実行や、
それら全てを連携したアプリケーションの実行が可能です。※メモリが許す限り

ライセンス

Download

ソースコード

使用方法

VPS(Linux)へのインストール方法

  1. VPSでのLinuxインストール(各VPS提供業者のインストールマニュアルを参照してください。)
  2. javaをインストール
  3. plateのアップロード
  4. plate.shの実行
  5. telnetでplateにアクセス
  6. コンソール上でplateの設定を開始

plateコマンド一覧

※user,pass,exit,help以外はuserコマンドとpassコマンドが成功していないと実行できません。

user <管理者ユーザー名>
管理者ユーザー名の設定
pass <管理者パスワード>
管理者パスワードの設定
cuser <新しいユーザー名>
ユーザー名の変更
cpass <新しいパスワード>
パスワードの変更
add <実行キー> <完全クラス名> [<実行メソッド>]
実行プログラムの追加<実行メソッド>の指定が無い場合はデフォルトでmainが指定される
addcp <実行キー> <クラスパス>
クラスパスの追加
auto <実行キー>
自動リカバリー設定
manual <実行キー>
手動リカバリー設定
call <実行キー>
登録済プログラムの実行
disable <実行キー>
telnet接続時の呼び出し不可
edit <実行キー>
ユーザー名の設定
enable <実行キー>
telnet接続時の呼び出し可
remove <実行キー>
実行プログラムの除去
removecp <実行キー>
クラスパスの除去
stop <実行キー>
実行中のプログラムの停止
addportcp <クラスパス>
ポート毎のクラスパスの追加
close <ポート>
バッチプログラム用のポートをクローズする
create <ポート>
プログラムを登録するためのポートを作成する
drop <ポート>
プログラムを登録しているポートを削除する
open <ポート>
バッチプログラム用のポートをオープンする
removeportcp <クラスパス>
ポートのクラスパスを除去する
use <ポート名>
コンソール上でカレントポートを設定する
build [<ポート名>]
クラスローダーを再構築する
exit
コンソールを終了する
help
各コマンドのヘルプ情報を表示する
list
現在の設定・実行状況を表示する
load [<ファイル名>]
保存した設定ファイルを読み込む
save [<ファイル名>]
設定情報を保存する
purge <ポート名>
実行完了したプログラムを削除する
shutdown
サーバーを停止する

セキュリティについて

コンソール用のポートとバッチ用にポートは、
外部から実行できないようにlocalhostを使用する(デフォルト)かiptablesで制御してください。

使用上の注意

  1. 基本的に一つのJVMで実行するのでstatic変数での値の保持は明示的に更新しない限りサーバー稼働中は引き継がれます。
  2. exit関数は使用しないでください。※使用した場合はSecurityExceptionが発生します。
  3. ポートに設定したクラスパスは各キーに設定したクラスパスの親としてクラスローダーに設定されます。
  4. stopコマンドは出来る限り実行Threadを停止させようとしますが、shutdownを実装していなかったり、InterupptedExceptionが発生し得ない状況では、停止できません。

cronを使用したjavaプロセスダウンのリカバリー

cronにより、psコマンドでplateのプロセスが無い場合は、起動シェルを実行します。
※必ずテストを実行して、プロセスが存在しない場合にのみ起動されるようにしてください。毎回起動することによりリソースが枯渇してしまう可能性があります。


crontab -e
を実行し、下記を追加する。
*/1 * * * * if test -x `ps aux | grep java | grep -v grep | sed -e "s/^.*$/1/"`; then /plate.sh;fi;