<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-2022-JP">
</head>
<body text="#000000" bgcolor="#FFFFFF">
$B$3$s$K$A$O!#(B<br>
<a href="http://s2chronos.sandbox.seasar.org/ja/index.html"
target="_blank"><span class="highlight">s2chronos</span></a>$B$N%$%s%9%H!<(B
$B%k$r;n$_$F$$$k$N$G$9$,!"(B<br>
$BNI$$%A%e!<%H%j%"%k$N%Z!<%8$,8+$D$+$i$:!"<ALd$5$;$F$/$@$5$$!#(B<br>
<br>
<a class="moz-txt-link-freetext" href="http://d.hatena.ne.jp/gungnir_odin/20100421/1271856739">http://d.hatena.ne.jp/gungnir_odin/20100421/1271856739</a><br>
$B%Z!<%8$r;29M$K!"(BSAS$B#t(Bruts$B!\(BS2JDBC$B!\(BS2Chronos$B$NAH9~$_$r;n$_$F$$$^$9!#(B<br>
<br>
$B"!0J2<!"<j=g$G$9!#(B<br>
$B#1!%%W%m%8%'%/%H$r(BDolteng<a class="keyword"
href="http://d.hatena.ne.jp/keyword/Dolteng"></a>$B$G:n@.!#(B<br>
$B!!!!(BSAS$B#t(Bruts$B!\(BS2JDBC$B!\(BTomcat$B%W%i%0%$%s(B<br>
<br>
$B#2!%(Bsrc/main/webapp/WEB-INF/lib$B$K0J2<$N(Bjar$B$rDI2C!&%S%k%I%Q%9DI2C!#(B<br>
$B!!!!(Bs2chronos-core-1.0.0.jar <br>
$B!!!!(Bs2chronos-extension-1.0.0.jar <br>
<br>
$B#3!%(Bsrc/main/resources/chronosCustomize.dicon$B$rDI2C!#(B<br>
<span class="synComment"><?</span><span class="synType">xml
version</span>=<span class="synConstant">"1.0"</span><span
class="synType"> encoding</span>=<span class="synConstant">"UTF-8"</span><span
class="synComment">?></span><br>
<span class="synIdentifier"><!</span><span class="synStatement">DOCTYPE</span>
components <span class="synStatement">PUBLIC</span> <span
class="synConstant">"-//SEASAR//DTD S2Container 2.4//EN"</span> <span
class="synConstant"><a class="moz-txt-link-rfc2396E" href="http://www.seasar.org/dtd/components24.dtd">"http://www.seasar.org/dtd/components24.dtd"</a></span><span
class="synIdentifier">><br>
</span> <span class="synIdentifier"><components></span><br>
$B!!(B <span class="synIdentifier"><component </span><span
class="synType">name</span>=<span class="synConstant">"schedulerConfiguration"</span><span
class="synIdentifier"> </span><span class="synType">class</span>=<span
class="synConstant">"org.seasar.chronos.core.SchedulerConfiguration"</span><span
class="synIdentifier">></span><br>
$B!!!!(B <span class="synIdentifier"><property </span><span
class="synType">name</span>=<span class="synConstant">"daemon"</span><span
class="synIdentifier">></span>true<span class="synIdentifier"></property></span>
<span class="synIdentifier"><property </span><span
class="synType">name</span>=<span class="synConstant">"autoFinish"</span><span
class="synIdentifier">></span>false<span class="synIdentifier"></property><br>
$B!!!!(B </span><span class="synIdentifier"><property </span><span
class="synType">name</span>=<span class="synConstant">"autoFinishTimeLimit"</span><span
class="synIdentifier">></span>5000L<span class="synIdentifier"></property><br>
$B!!!!(B </span><span class="synIdentifier"><property </span><span
class="synType">name</span>=<span class="synConstant">"taskScanIntervalTime"</span><span
class="synIdentifier">></span>30000L<span class="synIdentifier"></property><br>
</span>$B!!!!(B <span class="synIdentifier"><property </span><span
class="synType">name</span>=<span class="synConstant">"threadPoolType"</span><span
class="synIdentifier">></span>@org.seasar.chronos.core.ThreadPoolType@CACHED<span
class="synIdentifier"></property><br>
$B!!(B</span> <span class="synIdentifier"></component></span><br>
<span class="synIdentifier"></components><br>
<br>
$B#4!%(B</span><span class="synIdentifier">src/main/resources/</span><span
class="synIdentifier">creator.dicon$B$rJT=8!#(B</span><span
class="synIdentifier"><span class="synIdentifier">$B!!!!!!"+DI2C(B<br>
</span> <component
class="org.seasar.chronos.core.creator.TaskCreator"/><br>
<component
class="org.seasar.chronos.core.creator.TriggerCreator"/></span><span
class="synIdentifier"><span class="synIdentifier"><br>
</span><br>
$B#5!%(B</span><span class="synIdentifier"><span class="synIdentifier">src/main/resources/</span></span><span
class="synIdentifier"><span class="synIdentifier">customizer</span><span
class="synIdentifier">.dicon$B$rJT=8!#(B</span></span><span
class="synIdentifier"><span class="synIdentifier"><span
class="synIdentifier"><span class="synIdentifier">$B!!(B</span><span
class="synIdentifier"><span class="synIdentifier">$B!!"+DI2C(B<br>
</span></span></span> </span></span><span
class="synIdentifier"><span class="synIdentifier"><span
class="synIdentifier"><component </span><span
class="synType">name</span>=<span class="synConstant">"taskSupportAspectCustomizer"</span><span
class="synIdentifier"> </span><span class="synType">class</span>=<span
class="synConstant">"org.seasar.framework.container.customizer.AspectCustomizer"</span><span
class="synIdentifier">></span> <span class="synIdentifier"><initMethod
</span><span class="synType">name</span>=<span
class="synConstant">"addInterceptorName"</span><span
class="synIdentifier">></span> <span class="synIdentifier"><arg></span>"aop.traceInterceptor"<span
class="synIdentifier"></arg></span> <span
class="synIdentifier"></initMethod></span> <span
class="synIdentifier"><property </span><span
class="synType">name</span>=<span class="synConstant">"pointcut"</span><span
class="synIdentifier">></span>"do.*, initialize, destroy"<span
class="synIdentifier"></property></span>
<span class="synIdentifier"></component></span>
<span class="synIdentifier"><component </span><span
class="synType">name</span>=<span class="synConstant">"taskCustomizer"</span><span
class="synIdentifier"> </span><span class="synType">class</span>=<span
class="synConstant">"org.seasar.framework.container.customizer.CustomizerChain"</span><span
class="synIdentifier">></span> <span class="synIdentifier"><initMethod
</span><span class="synType">name</span>=<span
class="synConstant">"addCustomizer"</span><span
class="synIdentifier">></span> <span class="synIdentifier"><arg></span>taskSupportAspectCustomizer<span
class="synIdentifier"></arg></span> <span
class="synIdentifier"></initMethod></span>
<span class="synIdentifier"></component></span>
<span class="synIdentifier"><component </span><span
class="synType">name</span>=<span class="synConstant">"triggerSupportAspectCustomizer"</span><span
class="synIdentifier"> </span><span class="synType">class</span>=<span
class="synConstant">"org.seasar.framework.container.customizer.AspectCustomizer"</span><span
class="synIdentifier">></span> <span class="synIdentifier"><initMethod
</span><span class="synType">name</span>=<span
class="synConstant">"addInterceptorName"</span><span
class="synIdentifier">></span> <span class="synIdentifier"><arg></span>"aop.traceInterceptor"<span
class="synIdentifier"></arg></span> <span
class="synIdentifier"></initMethod></span> <span
class="synIdentifier"><property </span><span
class="synType">name</span>=<span class="synConstant">"pointcut"</span><span
class="synIdentifier">></span>".*"<span
class="synIdentifier"></property></span>
<span class="synIdentifier"></component></span>
<span class="synIdentifier"><component </span><span
class="synType">name</span>=<span class="synConstant">"triggerCustomizer"</span><span
class="synIdentifier"> </span><span class="synType">class</span>=<span
class="synConstant">"org.seasar.framework.container.customizer.CustomizerChain"</span><span
class="synIdentifier">></span> <span class="synIdentifier"><initMethod
</span><span class="synType">name</span>=<span
class="synConstant">"addCustomizer"</span><span
class="synIdentifier">></span> <span class="synIdentifier"><arg></span>triggerSupportAspectCustomizer<span
class="synIdentifier"></arg></span> <span
class="synIdentifier"></initMethod></span>
<span class="synIdentifier"></component></span> </span><span
class="synIdentifier"><span class="synIdentifier"><br>
</span></span><br>
$B#6!%(B</span><span class="synIdentifier">src/main/resources/app.dicon$B$r(B</span><span
class="synIdentifier"><span class="synIdentifier"><span
class="synIdentifier">$BJT=8(B</span></span>$B!#(B<br>
<components><br>
<include path="convention.dicon"/><br>
<include path="aop.dicon"/><br>
<include path="j2ee.dicon"/><br>
<include path="s2jdbc.dicon"/><br>
<include path="chronos-extension.dicon"/></span><span
class="synIdentifier"><span class="synIdentifier"><span
class="synIdentifier"><span class="synIdentifier"><span
class="synIdentifier">$B!!(B</span><span class="synIdentifier"><span
class="synIdentifier">$B!!"+DI2C(B<br>
</span></span></span></span></span> <component
name="actionMessagesThrowsInterceptor"
class="org.seasar.struts.interceptor.ActionMessagesThrowsInterceptor"/><br>
</components><br>
<br>
$B#7!%(B</span>src/main/webapp/WEB-INF/web.xml$B$K0J2<$rDI2C!#(B<br>
<span class="synIdentifier"><servlet></span> <span
class="synIdentifier"><servlet-name></span>chronosServlet<span
class="synIdentifier"></servlet-name></span> <span
class="synIdentifier"><servlet-class></span>org.seasar.chronos.extension.servlet.<span
class="highlight">S2Chronos</span>Servlet<span
class="synIdentifier"></servlet-class></span> <span
class="synIdentifier"><load-on-startup></span>3<span
class="synIdentifier"></load-on-startup></span>
<span class="synIdentifier"></servlet></span><br>
<br>
$B#8!%%5%s%W%k(BTask$B%/%i%9$N:n@.!#(B<br>
<span class="synPreProc">package</span> jp.test.<span
class="highlight">s2chronos</span>.task;<br>
<span class="synPreProc">import</span>
org.seasar.chronos.core.annotation.task.Task;<br>
<span class="synPreProc">import</span>
org.seasar.chronos.core.annotation.trigger.CronTrigger;<br>
<span class="synPreProc">@Task</span>
<br>
<span class="synPreProc">@CronTrigger</span>(expression = <span
class="synConstant">"0 */1 * * * ?"</span>)
<span class="synType"><br>
public</span> <span class="synType">class</span> SampleTask {<br>
$B!!(B<span class="synType">public</span> <span class="synType">void</span>
doExecute() {<br>
$B!!!!(BSystem.out.println(<span class="synConstant">"CronTrigger$B$,(B1$BJ,$4$H$K<B9T$5(B
$B$l$^$9!#(B"</span>);<br>
$B!!(B}<br>
}
<br>
<br>
$B#9!%(BTomcat$B5/F0!#(B<br>
<br>
<br>
$B"!$3$N<j=g$G<B9T$7$?>l9g!"%3%s%=!<%k$r8+$k$H3N$+$K%9%1%8%e!<%i$,5/F0$7$F$$$k$h$&$K;W$&$N$G$9$,!"(B<br>
$B!!:n@.$7$?%5%s%W%k$N(BTask$B$,<B9T$5$l$^$;$s!#>e5-#8$N<j=g$G:n@.$7$?%/%i%9$rDj5A$7$J$$$H$$$1$J$$$N$G$7$g$&$+!)(B<br>
$B!!2<5-$,5/F0%m%0$G$9!#(B<br>
<br>
INFO 2013-03-20 07:21:54,667 [main] Loading validation rules file
from '/WEB-INF/validator-rules.xml'<br>
INFO 2013-03-20 07:21:54,787 [main] s2-framework$B$N%P!<%8%g%s$O(B2.4.43$B$G$9!#(B<br>
INFO 2013-03-20 07:21:54,787 [main] s2-extension$B$N%P!<%8%g%s$O(B2.4.43$B$G$9!#(B<br>
INFO 2013-03-20 07:21:54,787 [main] s2-tiger$B$N%P!<%8%g%s$O(B2.4.43$B$G$9!#(B<br>
DEBUG 2013-03-20 07:21:54,887 [main]
$B4D6-JQ?t(B#Env$B$K%U%!%$%k(B(env.txt)$B$+$iCM(B(ct)$B$,@_Dj$5$l$^$7$?(B<br>
DEBUG 2013-03-20 07:21:54,957 [main]
S2Container$B$r:n@.$7$^$9!#(Bpath=hotdeploy.dicon<br>
DEBUG 2013-03-20 07:21:54,967 [main]
S2Container$B$r:n@.$7$^$9!#(Bpath=convention.dicon<br>
DEBUG 2013-03-20 07:21:55,117 [main]
S2Container$B$r:n@.$7$^$7$?!#(Bpath=convention.dicon<br>
DEBUG 2013-03-20 07:21:55,117 [main]
S2Container$B$r:n@.$7$^$9!#(Bpath=customizer.dicon<br>
DEBUG 2013-03-20 07:21:55,127 [main]
S2Container$B$r:n@.$7$^$9!#(Bpath=default-customizer.dicon<br>
DEBUG 2013-03-20 07:21:55,127 [main]
S2Container$B$r:n@.$7$^$9!#(Bpath=std-customizer.dicon<br>
DEBUG 2013-03-20 07:21:55,137 [main]
S2Container$B$r:n@.$7$^$9!#(Bpath=std-customizer-tiger.dicon<br>
DEBUG 2013-03-20 07:21:55,177 [main]
S2Container$B$r:n@.$7$^$7$?!#(Bpath=std-customizer-tiger.dicon<br>
DEBUG 2013-03-20 07:21:55,187 [main]
S2Container$B$r:n@.$7$^$7$?!#(Bpath=std-customizer.dicon<br>
DEBUG 2013-03-20 07:21:55,197 [main]
S2Container$B$r:n@.$7$^$7$?!#(Bpath=default-customizer.dicon<br>
DEBUG 2013-03-20 07:21:55,217 [main]
S2Container$B$r:n@.$7$^$7$?!#(Bpath=customizer.dicon<br>
DEBUG 2013-03-20 07:21:55,217 [main]
S2Container$B$r:n@.$7$^$9!#(Bpath=creator.dicon<br>
DEBUG 2013-03-20 07:21:55,247 [main]
S2Container$B$r:n@.$7$^$7$?!#(Bpath=creator.dicon<br>
DEBUG 2013-03-20 07:21:55,247 [main]
S2Container$B$r:n@.$7$^$7$?!#(Bpath=hotdeploy.dicon<br>
DEBUG 2013-03-20 07:21:55,297 [main]
S2Container$B$r:n@.$7$^$9!#(Bpath=app.dicon<br>
DEBUG 2013-03-20 07:21:55,297 [main]
S2Container$B$r:n@.$7$^$9!#(Bpath=convention.dicon<br>
DEBUG 2013-03-20 07:21:55,317 [main]
S2Container$B$r:n@.$7$^$7$?!#(Bpath=convention.dicon<br>
DEBUG 2013-03-20 07:21:55,317 [main]
S2Container$B$r:n@.$7$^$9!#(Bpath=aop.dicon<br>
DEBUG 2013-03-20 07:21:55,357 [main]
S2Container$B$r:n@.$7$^$7$?!#(Bpath=aop.dicon<br>
DEBUG 2013-03-20 07:21:55,357 [main]
S2Container$B$r:n@.$7$^$9!#(Bpath=j2ee.dicon<br>
DEBUG 2013-03-20 07:21:55,357 [main]
S2Container$B$r:n@.$7$^$9!#(Bpath=jta.dicon<br>
DEBUG 2013-03-20 07:21:55,387 [main]
S2Container$B$r:n@.$7$^$7$?!#(Bpath=jta.dicon<br>
DEBUG 2013-03-20 07:21:55,387 [main]
S2Container$B$r:n@.$7$^$9!#(Bpath=jdbc.dicon<br>
DEBUG 2013-03-20 07:21:55,417 [main]
S2Container$B$r:n@.$7$^$7$?!#(Bpath=jdbc.dicon<br>
DEBUG 2013-03-20 07:21:55,417 [main]
S2Container$B$r:n@.$7$^$7$?!#(Bpath=j2ee.dicon<br>
DEBUG 2013-03-20 07:21:55,417 [main]
S2Container$B$r:n@.$7$^$9!#(Bpath=s2jdbc.dicon<br>
DEBUG 2013-03-20 07:21:55,427 [main]
S2Container$B$r:n@.$7$^$9!#(Bpath=s2jdbc-internal.dicon<br>
DEBUG 2013-03-20 07:21:55,437 [main]
S2Container$B$r:n@.$7$^$7$?!#(Bpath=s2jdbc-internal.dicon<br>
DEBUG 2013-03-20 07:21:55,497 [main]
S2Container$B$r:n@.$7$^$7$?!#(Bpath=s2jdbc.dicon<br>
DEBUG 2013-03-20 07:21:55,497 [main]
S2Container$B$r:n@.$7$^$9!#(Bpath=chronos-extension.dicon<br>
DEBUG 2013-03-20 07:21:55,497 [main]
S2Container$B$r:n@.$7$^$9!#(Bpath=chronos-core.dicon<br>
DEBUG 2013-03-20 07:21:55,507 [main]
S2Container$B$r:n@.$7$^$9!#(Bpath=chronos-base.dicon<br>
DEBUG 2013-03-20 07:21:55,518 [main]
S2Container$B$r:n@.$7$^$9!#(Bpath=chronosCustomize.dicon<br>
DEBUG 2013-03-20 07:21:55,518 [main]
S2Container$B$r:n@.$7$^$7$?!#(Bpath=chronosCustomize.dicon<br>
DEBUG 2013-03-20 07:21:55,618 [main]
S2Container$B$r:n@.$7$^$7$?!#(Bpath=chronos-base.dicon<br>
DEBUG 2013-03-20 07:21:55,678 [main]
S2Container$B$r:n@.$7$^$7$?!#(Bpath=chronos-core.dicon<br>
DEBUG 2013-03-20 07:21:55,678 [main]
S2Container$B$r:n@.$7$^$7$?!#(Bpath=chronos-extension.dicon<br>
DEBUG 2013-03-20 07:21:55,678 [main]
S2Container$B$r:n@.$7$^$7$?!#(Bpath=app.dicon<br>
DEBUG 2013-03-20 07:21:56,108 [main] BEGIN
org.seasar.chronos.core.impl.SchedulerImpl#setSchedulerConfiguration(org.seasar.chronos.core.SchedulerConfiguration@1461b5b)<br>
DEBUG 2013-03-20 07:21:56,108 [main] END
org.seasar.chronos.core.impl.SchedulerImpl#setSchedulerConfiguration(org.seasar.chronos.core.SchedulerConfiguration@1461b5b)
: null<br>
INFO 2013-03-20 07:21:56,118 [main] Running on [ENV]ct, [DEPLOY
MODE]Hot Deploy<br>
DEBUG 2013-03-20 07:21:56,128 [main] BEGIN
org.seasar.chronos.core.impl.SchedulerImpl#start()<br>
DEBUG 2013-03-20 07:21:56,138 [main] $B%9%1%8%e!<%i(B $B$r(B $B3+;O$7$^$9!%(B<br>
WARN 2013-03-20 07:21:56,138 [main]
$B%k!<%H%Q%C%1!<%8(B(app.task)$B$KBP1~$9$k%j%=!<%9$,%/%i%9%Q%9$+$i8+$D$+$j$^$;$s$G$7$?!#(B<br>
DEBUG 2013-03-20 07:21:56,138 [main] $B%9%1%8%e!<%i(B $B$r(B $B3+;O$7$^$7$?!%(B<br>
DEBUG 2013-03-20 07:21:56,138 [main] END
org.seasar.chronos.core.impl.SchedulerImpl#start() : null<br>
<br>
$B$465<(D:$1$l$P9,$$$G$9!#$h$m$7$/$*4j$$CW$7$^$9!#(B<br>
</body>
</html>