[Logo] Terracotta Discussion Forums (LEGACY READ-ONLY ARCHIVE)
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 
[Expert]
Retrieving all job incredibly slow  XML
Forum Index -> Quartz
Author Message
sesker

neo

Joined: 12/03/2009 08:00:26
Messages: 3
Offline

We have an application that has around 60-70 quartz jobs defined and executing, many concurrently. The problem is we have an administration ui for the quartz job and when we attempt to retrieve all the jobs, via the prescribed way:

1. get all job groups names
2. get job names for group
3. get all job details for each name in group

The system hangs for many seconds while fetching the information. I have looked at the database logs, etc, and it looks like the is contention while quartz is updating job information and other things. Has anyone run into this? Is there a better method for getting all the jobs and their job details?
apaliwal

praetor

Joined: 01/05/2010 20:52:24
Messages: 223
Offline

Can you provide more information like which version of Quartz you are using, hardware configuration etc.

Also, whenever you execute the Admin UI, please take Thread dumps while executing the fetch operation. Thread dumps may provide useful information.

thanks
ashish

cheers
ashish
jhouse

seraphim
[Avatar]
Joined: 11/06/2009 15:29:56
Messages: 1703
Offline


Have you built indexes on the quartz tables?

Also, as ashish suggested, thread dumps may be useful.
sesker

neo

Joined: 12/03/2009 08:00:26
Messages: 3
Offline

No indexes... I used the standard DDL that was included with the product, and that had no indexes.. I will look into indexing the tables, but with 60-100 jobs, I wouldn't think that would make that big of difference...
sesker

neo

Joined: 12/03/2009 08:00:26
Messages: 3
Offline

What tables do you suggest to index, and on what columns?
jhouse

seraphim
[Avatar]
Joined: 11/06/2009 15:29:56
Messages: 1703
Offline


The documentation suggests these indexes at a minimum (note this is oracle syntax):

Code:
 create index idx_qrtz_j_req_recovery on qrtz_job_details(REQUESTS_RECOVERY);
 create index idx_qrtz_t_next_fire_time on qrtz_triggers(NEXT_FIRE_TIME);
 create index idx_qrtz_t_state on qrtz_triggers(TRIGGER_STATE);
 create index idx_qrtz_t_nft_st on qrtz_triggers(NEXT_FIRE_TIME,TRIGGER_STATE);
 create index idx_qrtz_t_volatile on qrtz_triggers(IS_VOLATILE);
 create index idx_qrtz_ft_trig_name on qrtz_fired_triggers(TRIGGER_NAME);
 create index idx_qrtz_ft_trig_group on qrtz_fired_triggers(TRIGGER_GROUP);
 create index idx_qrtz_ft_trig_nm_gp on qrtz_fired_triggers(TRIGGER_NAME,TRIGGER_GROUP);
 create index idx_qrtz_ft_trig_volatile on qrtz_fired_triggers(IS_VOLATILE);
 create index idx_qrtz_ft_trig_inst_name on qrtz_fired_triggers(INSTANCE_NAME);
 create index idx_qrtz_ft_job_name on qrtz_fired_triggers(JOB_NAME);
 create index idx_qrtz_ft_job_group on qrtz_fired_triggers(JOB_GROUP);
 create index idx_qrtz_ft_job_stateful on qrtz_fired_triggers(IS_STATEFUL);
 create index idx_qrtz_ft_job_req_recovery on qrtz_fired_triggers(REQUESTS_RECOVERY);
 
 
Forum Index -> Quartz
Go to:   
Powered by JForum 2.1.7 © JForum Team