intra-mart Accel Platform在5分钟内未启动时,JobScheduler将不启动。

 
在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
这篇文章有帮助吗?
0 人中有 0 人觉得有帮助
由 Zendesk 提供技术支持