【现象】
执行JobNet时发生以下错误。
//----
[ERROR] j.c.i.s.j.q.l.LifecycleListener - 执行JobNet的过程中发生非预期的系统错误。
java.lang.IllegalArgumentException: [E.IWP.DATETIME.00002] 不能在参数的时区中指定null 。
at jp.co.intra_mart.foundation.i18n.datetime.DateTime.<init>(DateTime.java:58) ~[im_core_base-8.0.3-main.jar:na]
at jp.co.intra_mart.system.job_scheduler.context.JobAccountContextBuilder.getFireTime(JobAccountContextBuilder.java:96) ~[im_job_scheduler_impl-8.0.3-main.jar:na]
at jp.co.intra_mart.system.job_scheduler.context.JobAccountContextBuilder.create(JobAccountContextBuilder.java:62) ~[im_job_scheduler_impl-8.0.3-main.jar:na]
at jp.co.intra_mart.foundation.context.core.ContextBuilderSupport.build(ContextBuilderSupport.java:51) ~[im_core_base-8.0.3-main.jar:na]
at jp.co.intra_mart.system.context.impl.command.LifecycleBeginOperation.buildContext(LifecycleBeginOperation.java:96) ~[im_core_impl-8.0.3-main.jar:na]
at jp.co.intra_mart.system.context.impl.command.LifecycleBeginOperation.execute(LifecycleBeginOperation.java:64) ~[im_core_impl-8.0.3-main.jar:na]
at jp.co.intra_mart.system.context.impl.LifecycleImpl.begin(LifecycleImpl.java:76) ~[im_core_impl-8.0.3-main.jar:na]
at jp.co.intra_mart.system.job_scheduler.quartz.listener.LifecycleListener.triggerFired(LifecycleListener.java:35) ~[im_job_scheduler_impl-8.0.3-main.jar:na]
at org.quartz.core.QuartzScheduler.notifyTriggerListenersFired(QuartzScheduler.java:1830) [quartz-2.1.7.jar:na]
at org.quartz.core.JobRunShell.notifyListenersBeginning(JobRunShell.java:317) [quartz-2.1.7.jar:na]
at org.quartz.core.JobRunShell.run(JobRunShell.java:180) [quartz-2.1.7.jar:na]
at jp.co.intra_mart.system.job_scheduler.quartz.threadpool.ExecutorThreadPool$WorkerThread.run(ExecutorThreadPool.java:566) [im_job_scheduler_impl-8.0.3-main.jar:na]
//----
【条件】
将时区主文件(=WEB-INF/conf/time-zone-config/im-time-zone-config.xml)中不存在的时区设置为Tenant的默认时区时会发生此现象。
通常在将时区主文件中不存在的时区指定为JavaVM的默认时区的状态下,进行Tenant初始设置(=第一次部署war时的Tenant环境安装)时会发生此现象。
例如,在JavaVM的默认时区中指定“-Duser.timezone=JST”的状态下,进行Tenant初始设置时,Tenant默认的时区将设置为“JST”,并发生此现象。
【原因】
将时区主文件中不存在的时区设置为了Tenant的默认时区。
【规避方法】
请设置Tenant的默认时区 。
1. 作为Tenant管理员登录。
2. 点击“网站地图”→“Tenant管理”→“Tenant信息”→“时区”。
3. 选择任意一个时区后,点击“更改”。
【备注】
安装指南中记述了对应用服务器指定时区时的注意事项。
intra-mart Accel Platform / 安装指南 “独立/分布式通用设置” 注解
http://www.intra-mart.jp/download/product/iap/setup/iap_setup_guide/texts/setting/resin_configuration_file.html
另外,在intra-mart Accel Platform 2013 Autumn及之后的版本中进行Tenant初始设置的环境下,不会发生此现象。
(因为在进行Tenent初始设置时,采用了从时区主文件中的已定义时区中选择Tenant默认时区的方式)
需求[3744]
https://issue.intra-mart.jp/issues/3744
-- 适用対象 ---------------------------------------------------------------
iAP/Accel Platform/2013 Summer (Damask) 及之前版本
-------------------------------------------------------------------------------
FAQID:13
执行JobNet时发生“[E.IWP.DATETIME.00002] 不能在参数的时区中指定null”。