Hi Gert,
Actually even after my re-scheduling, the original trigger fires and after
that none gets fired. As in DefaultQuartzMarshaller, I add the following in
my CustomMarshaller class
Document document = getTransformer().createDocument();
Element root = document.createElement("timer");
document.appendChild(root);
DOMUtil.addChildElement(root, "name",
context.getTrigger().getName());
DOMUtil.addChildElement(root, "group", Scheduler.DEFAULT_GROUP);
DOMUtil.addChildElement(root, "fullname", jobName);
DOMUtil.addChildElement(root, "description",
context.getTrigger().getDescription());
DOMUtil.addChildElement(root, "fireTime", startDate);
DOMUtil.addChildElement(root, "nextFireTime", new
Date(startDate.getTime() + 300*1000));
message.setContent(new DOMSource(document));
I added the "nextFireTime" property, and my message shows
DEBUG - SedaQueue -
[EMAIL PROTECTED] dequeued
exchange: InOnly[
id: ID:10.30.9.159-11d5353726d-16:3
status: Active
role: provider
service: {http://com.mycompany.esb/moextract}moeExtractSvc
endpoint: endpoint
in: <?xml version="1.0" encoding="UTF-8"?><timer><name>(inner
bean)</name><group>DEFAULT</group><fullname>DEFAULT.{http://com.mycompany.esb}moeQuartzScheduler:mo
eqrtzSchEndpoint</fullname><description/><fireTime>Fri Oct 31 10:22:11 CDT
2008</fireTime><nextFireTime>Fri Oct 31 10:22:41 CDT
2008</nextFireTime></timer>
]
But still, the quartz component doesnot fire at the above scheduled
<nextFireTime/>.
rgds
subh
Gert Vanthienen wrote:
>
> L.S.,
>
> Inside ServiceMix, there's nothing that prohibits you from using the
> Scheduler object to schedule a new job, so I guess it should be possible
> somehow. Are you sure you aren't showing the data from the original
> trigger at the time it is being fired, because it would be normal that the
> nextFireTime is null (since you are only rescheduling it after it has been
> fired) at that point in time? Could you add some logging after you're
> done rescheduling to see what the effect is at that point.
>
> Regards,
>
> Gert
>
>
> subh wrote:
>>
>> Hi,
>>
>> Is it possible to reschedule a quartz trigger? I have defined my Simple
>> trigger as follows
>>
>> XBEAN:
>> ======
>> <quartz:endpoint service="esb:moeQuartzScheduler"
>> endpoint="moeqrtzSchEndpoint"
>> targetService="moeextract:moeExtractSvc">
>>
>> <quartz:trigger>
>> <quartz:simple repeatCount="0" repeatInterval="10000" />
>> </quartz:trigger>
>>
>> <quartz:marshaler>
>> <bean class="com.esb.quartz.scheduler.CustomQuartzMarshaler" />
>> </quartz:marshaler>
>>
>> </quartz:endpoint>
>>
>> In my custom marshaller I extended extends DefaultQuartzMarshaler and
>> added the following code to reschedule the job, but it doesnot work and
>> shows the 'nextFireTime' as NULL.
>>
>> Am I doing it right? Can it be done in servicemix?
>>
>> CODE:
>> ======
>> public void populateNormalizedMessage(NormalizedMessage message,
>> JobExecutionContext context) throws JobExecutionException,
>> MessagingException {
>> super.populateNormalizedMessage(message, context);
>> String fireTime = "<JobFireTime>" +
>> context.getScheduledFireTime() + "</JobFireTime>";
>> try {
>> //context.getScheduler().shutdown();
>>
>> Scheduler sched = context.getScheduler();
>> //Scheduler sched = StdSchedulerFactory.getDefaultScheduler();
>>
>> Date startDate = new java.util.Date();
>> long runEveryInMilliseconds = 900*1000; // every 15 minutes
>> String jobName = context.getTrigger().getFullJobName();
>>
>> //SimpleTrigger trigger = new SimpleTrigger(jobName,
>> Scheduler.DEFAULT_GROUP, startDate, null,
>> SimpleTrigger.REPEAT_INDEFINITELY, runEveryInMilliseconds);
>>
>> SimpleTrigger trigger = (SimpleTrigger)context.getTrigger();
>> trigger.setGroup(Scheduler.DEFAULT_GROUP);
>> trigger.setStartTime(startDate);
>> trigger.setRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY);
>> trigger.setRepeatInterval(runEveryInMilliseconds);
>> trigger.setJobName(jobName);
>> trigger.setJobGroup(Scheduler.DEFAULT_GROUP);
>> sched.rescheduleJob(jobName, Scheduler.DEFAULT_GROUP, trigger);
>> }
>> catch (SchedulerException e) {
>> // TODO Auto-generated catch block
>> e.printStackTrace();
>> }
>> message.setContent(new StringSource(fireTime));
>> }
>>
>>
>> CONSOLE:
>> ========
>>
>> 14:59:04,283 | DEBUG | DefaultQuartzScheduler_Worker-7 | QuartzComponent
>>
>> | rvicemix.quartz.QuartzEndpoint 134 | Firing Quartz Job with context:
>> JobExecutionContext: trigger: 'DEFAULT.(inner bean) job:
>> DEFAULT.{http://com.mycompany.esb}moeQuartzScheduler:moeqrtzSchEndpoint
>> fireTime: 'Thu Oct 30 14:59:04 CDT 2008 scheduledFireTime: Thu Oct 30
>> 14:59:02 CDT 2008 previousFireTime: 'null nextFireTime: null
>> isRecovering: false refireCount: 0
>>
>>
>>
>
>
--
View this message in context:
http://www.nabble.com/Re-scheduling-a-servicemix-quartz-trigger-tp20255573p20268458.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.