在2015 Winter(Lydia) 的需求[21747]中已解决。在无法启动的情况下,版本更新之后可以进行设置。
https://issue.intra-mart.jp/issues/21747
设置的详细信息请参阅配置文件参考的JobScheduler的设置。
https://www.intra-mart.jp/document/library/iap/public/configuration/im_configuration_reference/texts/im_job_scheduler/im-job-scheduler-config/index.html#im-job-scheduler_delay-start
【发生条件】
启动intra-mart Accel Platform(以下称iAP)耗时5分钟及以上时。
使用了intra-mart Accel Platform 2015 Summer(Karen)及之后版本,或者,使用了以下”Bug#5015“补丁模块中所记载的im_job_scheduler补丁
【原因】
存在使用了以下移动框架的Job时,在初始化前如果执行Job将发生错误,因此JobScheduler将延迟启动。
・SAStruts
・Spring Frame Work
・ 脚本开发模式
https://issue.intra-mart.jp/issues/5015
因为延迟启动,在应用程序的初始化处理中发生错误时,存在着JobScheduler的等待启动线程将会残留的问题,作为此问题的解决方法,在耗时5分钟及以上时,JobScheduler将不启动。
https://issue.intra-mart.jp/issues/4911
由于上述原因,在启动用户程序或所使用的应用程序时,如果进行初始化处理需要时间,则很可能发生此现象。
【解决方法】
请根据环境,更改在iAP启动处理中等待启动JobScheduler的限制时间(默认是5分钟)。
1. 下载2015 Summer(Karen)的java文件(仅维护合同的用户可以下载)。
从下载库(https://www.intra-mart.jp/download/library/)下载产品开放源代码(iap-src-2015_summer.zip)。
※使用了补丁时也一样。
2.编辑im_job_scheduler_impl-main.zip中的AbstractJobSchedulerWorker.java。
请根据客户环境,更改进行iAP启动确认的时间。单位是分钟。
AbstractJobSchedulerWorker.java 中的
private void waitForApplicationInitialize() throws JobSchedulerException {
final long waitTime = Env.getSystemDate().getTimeInMillis() + TimeUnit.MINUTES.toMillis(5); // 更改的地方
}
3. 编译已更改的java文件,创建包含生成的class文件的用户模块,并将其编入到IM-Juggling的对象项目中。
请在模块/项目的webapp下级,创建WEB-INF/classes/jp/co/intra_mart/system/job_scheduler/quartz/worker目录来放置class文件。class文件将被放置到被部署环境的WEB-INF/classes/jp/co/intra_mart/system/job_scheduler/quartz/worker中。
有关用户模块,请参阅以下文档。
https://www.intra-mart.jp/document/library/ebuilder/public/e_builder_user_guide/text/common_function/index.html
4.通过IM-Juggling创建WAR文件并执行重新部署。
5.从启动开始如果在设置值的时间内完成启动,则JobScheduler将启动。
如果在设置值的时间内未完成启动,则JobScheduler将不启动,因此请重新设置。
【使用Resin时】
使用Resin时,如果将java文件直接放置在IM-Juggling的项目中,则可以在启动应用程序时对其进行编译并反映修复内容。
1.在IM-Juggling的项目中放置修复文件。
请在IM-Juggling的项目中,创建classes/jp/co/intra_mart/system/job_scheduler/quartz/worker目录来放置已编辑的AbstractJobSchedulerWorker.java。
2.创建WAR文件并执行部署。
启动应用程序时,一个文件将被编译并作为class文件被放置。
目录构成如下。
WEB-INF/classes/jp/co/intra_mart/system/job_scheduler/quartz/worker
AbstractJobSchedulerWorker$1.class
AbstractJobSchedulerWorker.class
AbstractJobSchedulerWorker.java
-- 适用对象 ---------------------------------------------------------------
iAP/Accel Platform/所有更新版本
-------------------------------------------------------------------------------
FAQID:577
intra-mart Accel Platform在5分钟内未启动时,JobScheduler将不启动。