Jsuiteクーロンサービスtutorial

Slides:



Advertisements
Similar presentations
年度 J2EE II 稚内北星学園大学 情報メディア学部 専任講師 安藤 友晴. 2 この講義の位置づけ 3年前期の「データベース論 (J2EE I) 」に続く講義。 「データベース論」の講義内容を理解 していることが前提。
Advertisements

オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也. 講義計画(あくまで予定) 第 1 回 プログラミング言語の種類と歴史 第 2 回 eclipse の基本操作 第 3 回 eclipse のデバッグ機能 第 4 回 構造化プログラミングの復習 第 5 回 演習 第 6 回 構造化指向からオブジェクト指向へ.
Cygwin 上の inetd /etc/inetd.conf /etc/inetd.conf 環境変数 CYGWIN と PATH の確認 環境変数 CYGWIN と PATH の確認 サービスへの登録と起動 サービスへの登録と起動 ftp サービスへのアクセスの確認 ftp サービスへのアクセスの確認.
WebサービスII (第12回)‏ 2007年12月19日 植田龍男.
Web アプリをユーザー毎に カスタマイズ可能にする AOP フレームワーク
社会人学習講座 「Javaプログラミング概論」
JXTA Shell (3) P2P特論 (ソフトウェア特論) 第6回 /
JavaScript プログラミング入門 2006/11/10 神津.
2006年11月22日 植田龍男 Webサービス II (第9回) 年11月22日 植田龍男.
IO - 入出力 小西 亨.
Applet 岡部 祐典 鈴木 敬幸.
背景 我々の研究室で開発しているJavaプログラム解析フレ ームワークでは,解析情報はメモリ上に保持される 問題点
第4回 iPhoneアプリ開発勉強会 Objective-C 基礎講座 -クラス- 鷲見政明.
Struts1.xの脆弱性(CVE ) に対するSDEの対処:wrapタイプ (パッチのご提供)
Log4netを使ったロギング機能 オガシン.
Log4netを使ったロギング機能 オガシン.
WebサービスII (第10回) 2007年11月28日 植田龍男.
Mavenによる プロジェクト管理 近畿大学理工学部 情報学科3年  小野実.
JSFによるWebアプリケーション開発 第11回
Servlet J2EE I 第8回 /
アプレット (Applet)について.
Iアプリプログラミング その1  鳥居秀徳.
実行時のメモリ構造(1) Jasminの基礎とフレーム内動作
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
ビューとコントローラ.
JavaBeans とJSP データベース論 第5回.
JSFによるWebアプリケーション開発 第6回
WSDL と JAX-RPC 年10月20日 Webサービス II (第4回) WSDL と JAX-RPC 年10月20日.
第20章 Flyweight ~同じものを共有して無駄をなくす~
JSPの作成 J2EE II 第3回 2005年4月10日.
応用プロジェクト後半 第2回(11/26) 担当:奥田教授
スクリプト言語を用いたPHITSの連続実行
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
RMI ソフトウェア特論 第6回 /
第6回独習Javaゼミ 第6章 セクション4~6 発表者 直江 宗紀.
Titanium Studioを使った アプリ開発 Vol.1
概要 Boxed Economy Simulation Platform(BESP)とその基本構造 BESPの設計・実装におけるポイント!
第12回 2007年7月13日 応用Java (Java/XML).
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
プログラミング言語入門 手続き型言語としてのJava
SPARS-J デモ 山本哲男 立命館大学 情報工学部 2018/12/1 SPARS-J デモ.
SQL パフォーマンス チューニング ~ プランガイドの利用~
第11回 2007年7月6日 応用Java (Java/XML).
理学部 情報科学科 指導教官 千葉 滋 助教授 学籍番号 03_03686 内河 綾
Windows PowerShell Cmdlet
EclipseでWekaのAPIを呼び出す
Javaによる Webアプリケーション入門 第6回
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
実行時情報に基づく OSカーネルのコンフィグ最小化
アスペクト指向に基づく 拡張可能な MDAモデルコンパイラ
Jakarta Struts (2) ソフトウェア特論 第11回.
Javaによる Webアプリケーション入門 第2回
応用プロジェクト後半 第2回(12/11) 担当:奥田教授
7.4 intanceof 演算子 7.5~7.9パッケージ 2003/11/28 紺野憲一
応用プロジェクト後半 第2回(12/5) 担当:奥田教授
JXTA Shell (1) P2P特論 (ソフトウェア特論) 第4回 /
応用プロジェクト後半 第2回 (12/1) 担当:橋本先生
Javaによる Webアプリケーション入門 第11回
ソフトウェア制作論 平成30年11月21日.
XMLゼミ 3.5 DTD M2 正木 裕一.
JXTA Shell (2) P2P特論 (ソフトウェア特論) 第5回 /
情報工学科 3年生対象 専門科目 システムプログラミング 第4回 シェルスクリプト 情報工学科 篠埜 功.
Javaによる Webアプリケーション入門 第8回
Javaによる Webアプリケーション入門 第4回
Jakarta Struts (1) ソフトウェア特論 第10回.
JSPの基本 J2EE I (データベース論) 第8回 /
プログラミング基礎a 第9回 Java言語による図形処理入門(1) Javaアプレット入門
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
2006年10月18日 植田龍男 Webサービス II (第4回) 年10月18日 植田龍男.
オブジェクト生成の観測に基づく プログラム実行の要約の抽出
Presentation transcript:

Jsuiteクーロンサービスtutorial Java application framework for Windows

Jsuite とは、、 動作環境 JavaService.EXE Jsuite JVM このチュートリアルでは... Windowsサービス Windowsで動作するJavaアプリケーションをWindowsサービス常駐化し、   ・UNIX cron 同等の機能を果たす定時刻起動要求   ・DB操作の為のJNDI の提供、   ・常駐Javaアプリケーション実行 を実現するフレームワークである。 動作環境 OS: WindowsXP or WindowsServer JDK: JDK1.6 以上 このチュートリアルでは... Jsuite の機能の中のクーロンサービスについて、使用方法を説明しています。 Windowsサービス サービス登録 cron 設定ファイル jcron.xml JavaService.EXE サービス開始 (常駐) Read Javaクラス Jsuite action batファイル JVM

jcron.xml 記述例 unix cron が、分単位の指定で規則であるように、クーロン設定 は、分単位の指定、記述規則を同様にし、実行するスクリプト、Javaクラスを指定する。 unix crontab の書式が、「分  時間  日  月  曜日  コマンド名」 であるところを以下XMLサンプルのように、起動対象グループを <request> で囲み、属性値で、起動時刻を表現する。 サンプル <?xml version="1.0" encoding="Shift_JIS"?> <Jcron> <!-- bat 起動 --> <request minute=“0-3” hour=“10,20” day=“1,20,23-25” month=“1-5"> <task type="bat" target="c:/Jsuite/cmd/A.bat" /> <task type="bat" target="c:/Jsuite/cmd/B.bat 11 2" /> </request> <request minute="0-59" hour="8" > <task type="bat" target="c:/Jsuite/cmd/C.bat" /> <task type="bat" target="c:/Jsuite/cmd/D.bat aaa vvv" /> <!-- Java class起動 --> <request minute="0-59" hour="13-15" week="2,4,7" > <task type="class" target="jp.sourceforge.jsuite.test.Foo" method="exec" > <param index="1" value="A"/> <param index="2" value="B"/> </task> <request minute="0,10,20,30,40,50" hour="20" > <task type="class" target="jp.sourceforge.jsuite.test.Mark" method="exec" /> </Jcron> minute =  分    1~59 hour =  時間 0~23 day = 日 1~31 month = 月 1~12 week = 曜日 7=Sunday 起動するbatスクリプトを記述する 起動する java クラスを記述する

タグの説明 jcron.xml 記述規則 タグ 説明 親となるタグ Jcron request task XMLルートタグ 起動スケジュール時刻を記述する。複数記述可 起動対象として <task> タグをネストに記述する。 属性は、起動時刻を表す以下を記述する。       minute   = 分、 0 〜 59    hour   = 時、 0 〜 23   day   = 日、 1 〜 31   month    = 月、 1 〜 12   week    = 曜日、1 〜 7 , 7=Sunday minute="10,20" → 毎時 10分と20分の起動 minute="10-20" → 毎時 10分から20分まで、1分周期で起動 hour="13-21" → 13時から21時まで minute属性は、必須で他は省略できる。 task 起動対象を表す。複数記述可 属性で、起動対象の種類、対象名、クラスの場合のメソッド名を表現する。     type = 起動対象の種類 “bat” バッチファイルの実行でtarget属性でバッチ実行文を記述する      “class” Javaクラスを実行する場合にクラス名を記述する target = 対象名、 type=“bat”であれば、batファイルのフルパスを記述する。                 type=“class”であれば、実行Java class フルパスを記述する。 method = メソッド名“ type=”class“の場合有効で起動メソッド名を記述する            staticメソッドを指定しなければならない。 メソッド引数は、String[] でなければならない            省略すると、"main" が指定されたものと解釈される

タグ 説明 親となるタグ param Initializer classpath log4j クラス実行パラメータ、task のネストタグとして記述する。(省略可) 親タグ、task のtype属性が、type=“class”の場合のみ有効、複数記述可 属性 index = 引数位置、1から開始    value = 固定値、String でしか渡らない。 task Initializer classpath <task> タグでJavaクラスが存在する場合、デフォルト以外のCLASSPATHを追加する場合に記述する (省略可、複数記述可) 属性に、追加したいクラスパスを1個記述できる。 属性  path = 追加CLASSPATH を記述 例)<classpath path="c:/Jsuite/lib/common/jakarta-oro-2.0.8.jar" /> Jcron サービス起動時、初期処理クラスを定義する。(省略可) 1つしか記述できない。 引数なしのデフォルトコンストラクタで生成されて属性が示すstatic でないメソッドを実行する。  属性  target = クラス名を記述、     method = メソッド名を記述、          メソッド引数は、String[] でなければならない log4j <task> タグでJavaクラスが存在する場合、起動されるアプリが使用するlog4j.xml のファイルパスを1つだけ記述することができる。 属性 config = log4j.xmlファイルパス クローンサービス機能のログではないことに注意 jcron.xml は、Windowsサービス開始時に読込まれ停止までの間に再読み込みされることはない。 すなわち、クーロン起動スケジュールもWindowsサービス停止→開始の手順を実行しないかぎり新しい設定スケジュールは有効にならない。

jcron.xml サンプル <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE Jcron SYSTEM "./resources/jcron/jcron.dtd"> <Jcron> <!-- 毎月、1,20日、10時 0分~3分 と 20時 0分~3分 1分周期、計6回起動 --> <request minute="0-3" hour="10,20" day="1,20"> <task type="bat" target="c:/Jsuite/cmd/A.bat" /> <task type="bat" target="c:/Jsuite/cmd/B.bat 111 222" /> </request> <!-- 毎日、8時 0分~59分、1分周期の起動 <request minute="0-59" hour="8" > <task type="bat" target="c:/Jsuite/cmd/C.bat" /> <!-- class起動 --> <request minute="0-59" hour="13-15" > <task type="class" target="jp.sourceforge.jsuite.test.SampleB" method="exec" > <param index="1" value="A"/> <param index="2" value="B"/> </task> <request minute="0,10,20,30,40,50" hour="20" > <task type="class" target="jp.sourceforge.jsuite.test.SampleC" method="exec" /> <!-- classpath 追加 --> <classpath path="c:/Jsuite/lib/common/jakarta-oro-2.0.8.jar" /> <classpath path="c:/Jsuite/resources/test" /> <!-- アプリケーション用 Log4J --> <log4j config="c:/Jsuite/resources/test/log4j.xml"/> <!-- アプリケーション初期処理 --> <Initializer target="jp.sourceforge.jsuite.test.Initprocess" method="init"> <param index="1" value="context_sample.xml"/> </Initializer> </Jcron>

サービス起動と停止 Windowsサービスに登録するために以下のような JavaService.exe を実行するスクリプトを用意して、サービス登録を実行してWindowsサービスを開始します。     install.bat set JAVA_HOME=C:\jdk1.6.0_13 set PROJECT_HOME=C:\Jsuite set JVMDIR=%JAVA_HOME%\jre\bin\server set COM_LIB=%PROJECT_HOME%\lib\common set PROCJECT_LIB=%PROJECT_HOME%\lib\application set JSEXE=%COM_LIB%\JavaService.exe set CLASSPATH=%PROJECT_HOME%\resources set CLASSPATH=%PROJECT_HOME%\resources\jcron set CLASSPATH=%CLASSPATH%;%COM_LIB%\log4j-1.2.15.jar set CLASSPATH=%CLASSPATH%;%COM_LIB%\commons-beanutils-1.7.0.jar set CLASSPATH=%CLASSPATH%;%COM_LIB%\commons-codec-1.3.jar set CLASSPATH=%CLASSPATH%;%COM_LIB%\commons-collections-3.2.jar set CLASSPATH=%CLASSPATH%;%COM_LIB%\commons-pool-1.3.jar set CLASSPATH=%CLASSPATH%;%COM_LIB%\commons-dbcp-1.2.2.jar set CLASSPATH=%CLASSPATH%;%COM_LIB%\commons-digester-1.8.jar set CLASSPATH=%CLASSPATH%;%COM_LIB%\commons-io-1.1.jar set CLASSPATH=%CLASSPATH%;%COM_LIB%\commons-lang-2.3.jar set CLASSPATH=%CLASSPATH%;%COM_LIB%\commons-logging-1.1.jar set CLASSPATH=%CLASSPATH%;%COM_LIB%\ojdbc14.jar set CLASSPATH=%CLASSPATH%;%COM_LIB%\ibatis-2.3.4.726.jar set CLASSPATH=%CLASSPATH%;%COM_LIB%\velocity-1.5.jar set CLASSPATH=%CLASSPATH%;%COM_LIB%\aopalliance.jar set CLASSPATH=%CLASSPATH%;%COM_LIB%\guice-1.0.jar set CLASSPATH=%CLASSPATH%;%PROCJECT_LIB%\jsuite-1.1.4.jar "%JSEXE%" -install "Jsuite" "%JVMDIR%\jvm.dll" -Djava.class.path="%CLASSPATH%" -Xms128M -Xmx512M -start jp.sourceforge.jsuite.cron.CronService -params start -stop jp.sourceforge.jsuite.cron.CronService -params stop -current "%PROJECT_HOME%" -manual ここで指定するCLASSPATHが、Jsuite から起動されるすべてのJavaクラスのクラスパスになります。追加したい場合、このスクリプトで記述するか、 jcon.xml で、追記する必要があります。

Windowsサービス削除のスクリプトは、以下のとおり。 install.bat を実行すると、Windowsサービスに、Jsuite という名称のサービスが登録されるので、 Windows→「スタート」→「コントロールパネル」 →「管理ツール」→「サービス」 をクリックして表示される Jsuite サービスを「開始」します。 DOSプロンプトから、開始する場合は、        sc start Jsuite 停止は、        sc stop Jsuite になります。 Windowsサービス削除のスクリプトは、以下のとおり。 set JAVA_HOME=C:\jdk1.6.0_13 set PROJECT_HOME=C:\Jsuite set JVMDIR=%JAVA_HOME%\jre\bin\server set JSEXE=%PROJECT_HOME%\lib\common\JavaService.exe "%JSEXE%" -uninstall "Jsuite"

秒周期処理へのサポート クーロンが分単位でしか起動時刻設定できないのに対し、秒周期起動の機能は、別途、jsuite.jar の中に、Javaプログラムとして 用意されています。    package : jp.sourceforge.jsuite.timer class :  CycleUtil  、  CycleManager CycleUtil で、TimerTaskを継承したインスタンスを秒周期実行で登録開始/停止  CycleManagerが、Jsuiteサービス停止時に、すべての秒周期起動タイマーを停止できるようにしている。 ログ ログは、Log4J が使用されており、配布する /resources/jcron/log4j.xml で、ログ出力設定されている。 ログの category 名 は、cron である。 jp.sourceforge.jsuite.log4j.DailyRollingFileAppender を使用しており、デフォルト10日分の起動状況がログ出力される。