2

I have created a custom timer service to create a list. It's scheduled in minute using FeatureActivated event. I was able to globally deploy the solution. But the my timer job is not running. It's showing last run time N/A. Is there any solution?

My Execute method

public override void Execute(Guid targetInstanceId) { ClientContext clientContext = new ClientContext("http://mymachine:0909"); Web site = clientContext.Web;

    ListCreationInformation listCreationInfo = new ListCreationInformation();
    listCreationInfo.Title = "Test Mailer List";
    listCreationInfo.TemplateType = (int)ListTemplateType.GenericList;
    List list = site.Lists.Add(listCreationInfo);

    Field field1 = list.Fields.AddFieldAsXml(
              @"<Field Type='Choice'
              DisplayName='Category'
              Format='Dropdown'>
         <Default>Specification</Default>
         <CHOICES>
           <CHOICE>Specification</CHOICE>
           <CHOICE>Development</CHOICE>
           <CHOICE>Test</CHOICE>
           <CHOICE>Documentation</CHOICE>
         </CHOICES>
       </Field>", true, AddFieldOptions.DefaultValue);
    Field field2 = list.Fields.AddFieldAsXml(
        @"<Field Type='Number'
              DisplayName='Estimate'/>", true, AddFieldOptions.DefaultValue);
    clientContext.ExecuteQuery();
}

And Event receiver class

public class Feature1EventReceiver : SPFeatureReceiver {

public const string jobName = "BdayTimer";
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
    SPWebApplication webApp = properties.Feature.Parent as SPWebApplication;
    DeleteJob(webApp.JobDefinitions);
    TimerJobTest myJob = new TimerJobTest(webApp);

    SPMinuteSchedule schedule = new SPMinuteSchedule();
    schedule.BeginSecond = 0;
    schedule.EndSecond = 59;
    schedule.Interval = 1;

    myJob.Schedule = schedule;
    myJob.Update();

}


// Uncomment the method below to handle the event raised before a feature is deactivated.

public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
{
    SPWebApplication webApp = properties.Feature.Parent as SPWebApplication;
    DeleteJob(webApp.JobDefinitions);
}

public void DeleteJob(SPJobDefinitionCollection job1)
{
    foreach (SPJobDefinition job in job1)
    {
        if (job.Name.Equals(jobName))
            job.Delete();
    }
5
  • Check out the ULS logs? Dec 6, 2012 at 12:50
  • Have you restarted the Timer Service (SPTimerV4) since deploying your WSP?
    – TZHX
    Dec 6, 2012 at 12:51
  • and are you sure properties.Feature.Parent is an SPWebApplication (rather than an SPSite?)
    – TZHX
    Dec 6, 2012 at 15:04
  • I have checked the ULS logs , also tried restarting its not executing. But its working fine in another server.
    – Ananthu
    Dec 10, 2012 at 9:46
  • Could it be the wrong system time on your server that does not work properly with your timer job? Jul 15, 2013 at 7:56

2 Answers 2

1

go through below link, its working perfectly...

http://www.thesharepointblog.net/Lists/Posts/Post.aspx?List=815f255a-d0ef-4258-be2a-28487dc9975c&ID=57

1
  • My code is working fine on another server. I cant figure out the issue.
    – Ananthu
    Dec 10, 2012 at 9:53
0

Can you try the following steps if you are doing it on dev VM:

After deployment of the WSP and activating the feature, restrat timer service. In Visual studio attach OWSTimer process and attach breakpoint at Execute method. Then go to the Timer Job definition and select the timer job and click Run Now.

2
  • I have done that too. Still no hope. Buts its working fine in another server.
    – Ananthu
    Dec 10, 2012 at 9:55
  • I'm facing the same issue. Difference is that on production server farm has 3 web applications, on dev one there is only 1
    – christof
    Dec 21, 2012 at 9:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.