Job not processing records captured in SQL table

Feb 8, 2010 at 5:53 PM
Edited Feb 8, 2010 at 6:07 PM

Hi Steve,

The timesheetautostatusplus is capturing the timesheet information in the sql table, but it is not being processed.  Is there a way to force the job to process the records in the SQL table?

We received this message over the weekend from our Project Server -

Log Name:      Application
Source:        Windows SharePoint Services 3
Date:          2/8/2010 1:51:00 PM
Event ID:      6398
Task Category: Timer
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      HBM001GRVPRJ06.CompanyNet.org
Description:
The Execute method of job definition MSPE.Public.FOSS.AutoStatusPlus.TimerJob.StatusingTimerJob (ID 25724eca-6776-496a-bc02-368f34f174bf) threw an exception. More information is included below.

Cannot access a disposed object.
Object name: 'EventLog'.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Windows SharePoint Services 3" />
    <EventID Qualifiers="0">6398</EventID>
    <Level>2</Level>
    <Task>964</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2010-02-08T18:51:00.000Z" />
    <EventRecordID>34948759</EventRecordID>
    <Channel>Application</Channel>
    <Computer>HBM001GRVPRJ06.CompanyNet.org</Computer>
    <Security />
  </System>
  <EventData>
    <Data>MSPE.Public.FOSS.AutoStatusPlus.TimerJob.StatusingTimerJob</Data>
    <Data>25724eca-6776-496a-bc02-368f34f174bf</Data>
    <Data>Cannot access a disposed object.
Object name: 'EventLog'.</Data>
  </EventData>
</Event>

 

Any idea what would cause this type of failure?

 

Thanks,

Jim

Feb 8, 2010 at 6:12 PM

Here is an additional error message we received:

 

Log Name:      Application
Source:        AutoStatusPlus StatusingTimerJob
Date:          2/8/2010 2:05:27 PM
Event ID:      9681
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      HBM001GRVPRJ06.CompanyNet.org
Description:
FAILED due to a SoapException: ==============================
Error:

System.Web.Services.Protocols.SoapException: ProjectServerError(s) LastError=GeneralUnhandledException Instructions: Pass this into PSClientError constructor to access all error information
   at Microsoft.Office.Project.Server.WebService.Statusing.ImportTimesheet(Guid periodUID)
==============================
PSClientErrorOutput:

GeneralUnhandledException


Exception InnerXML:

<errinfo><general><class name="An unhandled exception occurred in Statusing.ImportTimesheet."><error id="42" name="GeneralUnhandledException" uid="71eabc47-f114-4903-b473-dfc7250444ed" /></class></general></errinfo>
============================
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="AutoStatusPlus StatusingTimerJob" />
    <EventID Qualifiers="0">9681</EventID>
    <Level>2</Level>
    <Task>0</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2010-02-08T19:05:27.000Z" />
    <EventRecordID>34948840</EventRecordID>
    <Channel>Application</Channel>
    <Computer>HBM001GRVPRJ06.CompanyNet.org</Computer>
    <Security />
  </System>
  <EventData>
    <Data>FAILED due to a SoapException: ==============================
Error:

System.Web.Services.Protocols.SoapException: ProjectServerError(s) LastError=GeneralUnhandledException Instructions: Pass this into PSClientError constructor to access all error information
   at Microsoft.Office.Project.Server.WebService.Statusing.ImportTimesheet(Guid periodUID)
==============================
PSClientErrorOutput:

GeneralUnhandledException


Exception InnerXML:

&lt;errinfo&gt;&lt;general&gt;&lt;class name="An unhandled exception occurred in Statusing.ImportTimesheet."&gt;&lt;error id="42" name="GeneralUnhandledException" uid="71eabc47-f114-4903-b473-dfc7250444ed" /&gt;&lt;/class&gt;&lt;/general&gt;&lt;/errinfo&gt;
============================</Data>
  </EventData>
</Event>

 

Feb 9, 2010 at 12:29 PM
Edited Feb 9, 2010 at 12:30 PM

We've run across a solution to this issue.  It appears we have a single user whose timesheet submission causes the service to hang.  All other timesheet submissions were then collected in the table but not processed.  In your PWA Reporting database have a look for a records that do not have a dateProcessed timestamp or a dateFailed timestamp.  This indicates the record has not been processed.  Sort these records by the ID field using an order by statement, and find the record meeting the criteria with the lowest number.  Delete this row from the table.  I've posted the query below to find the record.

--Find the Record

SELECT [ID]
      ,[siteGuid]
      ,[tsGuid]
      ,[lcid]
      ,[userName]
      ,[dateCreated]
      ,[dateProcessed]
      ,[dateFailed]
  FROM [EPM_HBMPWA_Reporting].[dbo].[tsAutoStatusPlusData]
  where dateProcessed is NULL and dateFailed is NULL
  order by id

--Delete the record

delete
    FROM [EPM_HBMPWA_Reporting].[dbo].[tsAutoStatusPlusData]
    where ID=1100

Wait a few minutes and ensure that the query below is moving toward zero records, this ensures the queue is moving.

--Check queue length

SELECT Count(ID)
  FROM [EPM_HBMPWA_Reporting].[dbo].[tsAutoStatusPlusData]
  where dateProcessed is NULL and dateFailed is NULL

 

We haven't fully identified what caused the timesheet to hang, but as I know more I'll post an update.

Coordinator
Feb 10, 2010 at 5:09 PM

Hey, sorry for not replying sooner.

It looks like the error is getting cut off because I'm calling a disposed object somewhere in the error routine. Let me try to find that bug... hopefully that'll give us a usable error message.

Off the top of my head for potential causes, does the user have unverified lines in his timesheet (meaning lines not tied to a specific assignment)?

Steve

Coordinator
Feb 25, 2010 at 5:54 PM

Are there any additional errors in the application log file (stored on disk, not in the event log)?

Feb 26, 2010 at 4:36 AM

I am getting the same behaviour but the error message seems to be different.  I Googled and it seemed like the Enterprise Library services weren't installed so I installed them but no luck.  Any ideas what could be causing this error?

Cheers,
Ozan.

------------------------------------------------------------------

Log Name:      Application
Source:        Windows SharePoint Services 3
Date:          26/02/2010 3:34:00 PM
Event ID:      6398
Task Category: Timer
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      SCBNEAPP3.shortcut.local
Description:
The Execute method of job definition MSPE.Public.FOSS.AutoStatusPlus.TimerJob.StatusingTimerJob (ID f6554a2a-031b-4ded-9836-ec537ae2bd56) threw an exception. More information is included below.

The source was not found, but some or all event logs could not be searched.  Inaccessible logs: Security.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Windows SharePoint Services 3" />
    <EventID Qualifiers="0">6398</EventID>
    <Level>2</Level>
    <Task>964</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2010-02-26T05:34:00.000Z" />
    <EventRecordID>224800</EventRecordID>
    <Channel>Application</Channel>
    <Computer>SCBNEAPP3.shortcut.local</Computer>
    <Security />
  </System>
  <EventData>
    <Data>MSPE.Public.FOSS.AutoStatusPlus.TimerJob.StatusingTimerJob</Data>
    <Data>f6554a2a-031b-4ded-9836-ec537ae2bd56</Data>
    <Data>The source was not found, but some or all event logs could not be searched.  Inaccessible logs: Security.</Data>
  </EventData>
</Event>

Feb 26, 2010 at 4:36 PM

Managed to solve this... created a C# application to create the event source that is need (found it by looking through the source code).

Mar 5, 2010 at 9:40 PM

Hi Steve,

I apologize for taking so long to get back to you.  Here is the error I'm seeing in the text logs for AutoStatusPlus:

<errinfo><general><class name="An unhandled exception occurred in Statusing.ImportTimesheet."><error id="42" name="GeneralUnhandledException" uid="4229621c-94c7-4e50-8f1a-8d5f0215556f" /></class></general></errinfo>
============================
5:37:00 PM: SubmitStatus: True; timesheet URL: http://epm.hearstbusinessmedia.com/HBMPWA/_vti_bin/PSI/Timesheet.asmx; statusing URL: http://epm.hearstbusinessmedia.com:56737/SSPEPM/PSI/Statusing.asmx
5:37:00 PM: Timesheet: My Timesheet; Resource: Green Anitra; Creator: Green Anitra, Period: 148f60a9-4c8f-4554-bc0d-b239218a642a
5:38:00 PM: STEP 1 - Initialize Web Service References
5:38:00 PM: STEP 2 - Start event override for timesheet UID: 99a3b177-b461-44cd-bafd-815317f6a85a
5:38:00 PM: STEP 3 - Statusing Impersonation for RES_UID: 27a00112-9323-4fa0-82ec-8c7b63fda7c7
5:38:00 PM: FAILED due to an exception: ==============================
Error:

System.Web.Services.Protocols.SoapException: ProjectServerError(s) LastError=GeneralUnhandledException Instructions: Pass this into PSClientError constructor to access all error information
   at Microsoft.Office.Project.Server.WebService.Statusing.ImportTimesheet(Guid periodUID)
==============================
PSClientErrorOutput:

GeneralUnhandledException


Exception InnerXML:

<errinfo><general><class name="An unhandled exception occurred in Statusing.ImportTimesheet."><error id="42" name="GeneralUnhandledException" uid="af4088e5-3237-4eae-a8a5-21bb5b87f403" /></class></general></errinfo>
============================
5:38:00 PM: SubmitStatus: True; timesheet URL: http://epm.hearstbusinessmedia.com/HBMPWA/_vti_bin/PSI/Timesheet.asmx; statusing URL: http://epm.hearstbusinessmedia.com:56737/SSPEPM/PSI/Statusing.asmx
5:38:00 PM: Timesheet: My Timesheet; Resource: Fisher Mike; Creator: Fisher Mike, Period: 9f7fbb66-ced5-49aa-bc0b-aa46ef3583a4
5:38:00 PM: STEP 1 - Initialize Web Service References
5:38:01 PM: STEP 2 - Start event override for timesheet UID: 22b02fc1-c9aa-4e14-97cf-198e3e908799
5:38:01 PM: STEP 3 - Statusing Impersonation for RES_UID: 6ee7cea5-479d-44a7-85f9-4d9fbaadde67
5:38:01 PM: FAILED due to an exception: ==============================
Error:

System.Web.Services.Protocols.SoapException: ProjectServerError(s) LastError=GeneralUnhandledException Instructions: Pass this into PSClientError constructor to access all error information
   at Microsoft.Office.Project.Server.WebService.Statusing.ImportTimesheet(Guid periodUID)
==============================
PSClientErrorOutput:

GeneralUnhandledException


Exception InnerXML:

<errinfo><general><class name="An unhandled exception occurred in Statusing.ImportTimesheet."><error id="42" name="GeneralUnhandledException" uid="82eb7e1c-f7dc-45ed-9342-56acf6343357" /></class></general></errinfo>
============================
5:38:01 PM: SubmitStatus: True; timesheet URL: http://epm.hearstbusinessmedia.com/HBMPWA/_vti_bin/PSI/Timesheet.asmx; statusing URL: http://epm.hearstbusinessmedia.com:56737/SSPEPM/PSI/Statusing.asmx
5:38:01 PM: Timesheet: My Timesheet; Resource: Green Anitra; Creator: Green Anitra, Period: 148f60a9-4c8f-4554-bc0d-b239218a642a

Coordinator
Mar 17, 2010 at 11:46 AM

No problem -- I'm sorry as well :)

Can you use the contact form (click on my username and then click Contact) to send me your email address? I have a patch I'd like you to try.

Coordinator
Mar 18, 2010 at 7:53 PM
ssanderlin wrote:

No problem -- I'm sorry as well :)

Can you use the contact form (click on my username and then click Contact) to send me your email address? I have a patch I'd like you to try.

FYI, I'm doing final testing on a patch that should, if nothing else, permit the timer job to continue even after encountering an exception -- and should also resolve the disposed object error.

I also think I've identified the issue -- can you tell me if you have "Allow unverified timesheet line items" checked in Server Settings > Timesheet Settings and Defaults?

THanks -- Steve

Coordinator
Mar 18, 2010 at 10:45 PM

Ozan,

I believe I've fixed this issue in 1.0.1.0 -- everything tested out fine. Please let me know if you still encounter the problem.

Steve

Oct 17, 2011 at 2:38 PM

Hi,

My customer is using the latest solution and now he is expiencing exactly the same issue as reported by azjimwoodny Mar 5 2010 at 11:40 PM. This is after a number of months in use.

Most timesheets are imprted correctly, but some generate this error. What could be the issue.

Can you please help me out?

Thanks,

Peter van den Borne

Coordinator
Oct 18, 2011 at 1:53 PM

pvdborne: The problem is caused by invalid data in the timesheet, generally because of rows that were once associated with an assignment but the assignment was deleted or shortened. Try deleting and recreating the timesheet, that generally fixes it.

Oct 19, 2011 at 11:58 AM

Thanks Steve, I will give it a try..and let you know the result