Solved

SharePoint 2007 File Lock on InfoPath forms lasting extended periods of time

Posted on 2014-09-18
8
318 Views
Last Modified: 2014-11-11
SharePoint configuration:
Windows Server 2003
Microsoft SQL Server 2005
MOSS 2007 with multiple WFEs (using Microsoft's NLB Manager)

Site Configuration:
Subsite with form library
InfoPath template published as default template to library

Forms Library Settings:
Content approval is not enabled
No versioning
Require Check Out turned off
Workflow attached to library set to start on item creation

Workflow Steps: (creates workflow history link for item)
Pause for 0 days, 0 hours, 1 minute
Create Dynamic Workflow Variable (stores URL)
Check item out
Update list item
Check item in
Log comment

Issue:
Intermittent issue with InfoPath forms being locked for editting. This happens when a user opens the form and submits/closes the form properly. This is not identical to the known 10 minute lock, per Microsoft KB89979. Files sometimes are locked for a few minutes, other times it is locked for an hour or longer.

To reiterate, clients are not having the application or their computer crash, and are able to submit the file successfully.

The error message is the expected message for this issue, "This form cannot be filled out because you do not have adequate permission, another user has the form open or the form is open in another program."

These file locks are not showing up as a checked out document, which is correct based on the settings of the library. If you open SharePoint Designer 2007, go to the document library and look at the files properties, the Summary tab has the information associated with who has the file "checked out." I can confirm from the user that they do not have the file open. The other condition of the error message that is not true is that the user doesn't have adequate permission, as this happens for any user - document owner, site owner, adminstrator.

Restrarting the PC does not affect the lock in question.

The ULS typically show a couple of messages, usually a few of each, that correlate with the times of submission:

w3wp.exe (0x0328)        0x0B80      Windows SharePoint Services         General    0      Unexpected     ERROR: request not found in the TrackedRequests. We might be creating and closing webs on different threads. ThreadId = 27, Free call stack =    at Microsoft.SharePoint.SPRequestManager.Release(SPRequest request)     at Microsoft.SharePoint.SPSite.Close()     at Microsoft.SharePoint.SPSite.Dispose()     at Microsoft.SharePoint.Workflow.SPWorkflowAutostartEventReceiver.AutoStartWorkflow(SPItemEventProperties properties, Boolean bCreate, Boolean bChange, AssocType atyp, ProcessWorkflowOperation processWorkflows)     at Microsoft.SharePoint.Workflow.SPWorkflowAutostartEventReceiver.AutoStartWorkflow(SPItemEventProperties properties, Boolean bCreate, Boolean bChange)     at Microsoft.SharePoint.Workflow.SPWorkflowAutostartEventReceiver.ItemAdded(SPItemEventProperties properties)     at Microsoft.SharePoint.SPEventManager.RunItemEventReceiver(SPItemEventReceiver receiver, SPItemEventProperties properties, SPEventContext context, String receiverData)     at Microsoft.SharePoint.SPEventManager.RunItemEventReceiverHelper(Object receiver, Object properties, SPEventContext context, String receiverData)     at Microsoft.SharePoint.SPEventManager.<>c__DisplayClass8`1.<InvokeEventReceivers>b__0()     at Microsoft.SharePoint.SPSecurity.CodeToRunElevatedWrapper(Object state)     at Microsoft.SharePoint.SPSecurity.RunAsUser(SPUserToken userToken, Boolean bResetContext, WaitCallback code, Object param)     at Microsoft.SharePoint.SPSecurity.RunAsUser(SPUserToken userToken, CodeToRunElevated code)     at Microsoft.SharePoint.SPEventManager.InvokeEventReceivers[ReceiverType](SPUserToken userToken, RunEventReceiver runEventReceiver, Object receivers, Object properties, Boolean checkCancel)     at Microsoft.SharePoint.SPEventManager.InvokeEventReceivers[ReceiverType](Byte[] userTokenBytes, RunEventReceiver runEventReceiver, Object receivers, Object properties, Boolean checkCancel)     at Microsoft.SharePoint.SPEventManager.HandleEventCallback[ReceiverType,PropertiesType](Object callbackData)     at Microsoft.SharePoint.Utilities.SPThreadPool.WaitCallbackWrapper(Object state)     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)     at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)     at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)  , Allocation call stack (if present)    at Microsoft.SharePoint.Library.SPRequest..ctor()     at Microsoft.SharePoint.SPGlobal.CreateSPRequestAndSetIdentity(Boolean bNotGlobalAdminCode, String strUrl, Boolean bNotAddToContext, Byte[] UserToken, String userName, Boolean bIgnoreTokenTimeout, Boolean bAsAnonymous)     at Microsoft.SharePoint.SPSite.GetSPRequest()     at Microsoft.SharePoint.SPSite.get_Request()     at Microsoft.SharePoint.SPWorkItemCollection.DeleteWorkItem(Guid workItemId)     at Microsoft.SharePoint.SPWorkItemCollection.DeleteWorkItem(Guid siteId, Guid workItemId)     at Microsoft.SharePoint.SPWorkItem.Delete()     at Microsoft.SharePoint.Workflow.SPWinOeHostServices.WorkItemDequeue(Transaction txn, Object[] transData)     at Microsoft.SharePoint.Workflow.SPPendingWork.PerformWorkNow(Transaction txn)     at Microsoft.SharePoint.Workflow.SPPendingWorkBatch.Commit(Transaction transaction, ICollection items)     at System.Workflow.Runtime.WorkBatch.PendingWorkCollection.Commit(Transaction transaction)     at System.Workflow.Runtime.WorkBatch.Commit(Transaction transaction)     at System.Workflow.Runtime.Hosting.WorkflowCommitWorkBatchService.CommitWorkBatch(CommitWorkBatchCallback commitWorkBatchCallback)     at System.Workflow.Runtime.Hosting.DefaultWorkflowCommitWorkBatchService.CommitWorkBatch(CommitWorkBatchCallback commitWorkBatchCallback)     at System.Workflow.Runtime.WorkflowExecutor.CommitTransaction(Activity activityContext)     at System.Workflow.Runtime.WorkflowExecutor.Persist(Activity dynamicActivity, Boolean unlock, Boolean needsCompensation)     at System.Workflow.Runtime.WorkflowExecutor.System.Workflow.ComponentModel.IWorkflowCoreRuntime.PersistInstanceState(Activity activity)     at System.Workflow.ComponentModel.Activity.MarkClosed()     at System.Workflow.ComponentModel.Activity.ReleaseLockOnStatusChange(IActivityEventListener`1 eventListener)     at System.Workflow.ComponentModel.FaultAndCancellationHandlingFilter.SafeReleaseLockOnStatusChange(ActivityExecutionContext context)     at System.Workflow.ComponentModel.FaultAndCancellationHandlingFilter.OnEvent(Object sender, ActivityExecutionStatusChangedEventArgs e)     at System.Workflow.ComponentModel.ActivityExecutorDelegateInfo`1.ActivityExecutorDelegateOperation.Run(IWorkflowCoreRuntime workflowCoreRuntime)     at System.Workflow.Runtime.Scheduler.Run()     at System.Workflow.Runtime.WorkflowExecutor.RunScheduler()     at System.Workflow.Runtime.WorkflowExecutor.RunSome(Object ignored)     at System.Workflow.Runtime.Hosting.DefaultWorkflowSchedulerService.WorkItem.Invoke(WorkflowSchedulerService service)     at System.Workflow.Runtime.Hosting.DefaultWorkflowSchedulerService.QueueWorkerProcess(Object state)     at System.Threading.ExecutionContext.runTryCode(Object userData)     at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)     at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)     at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)  

w3wp.exe (0x0328)        0x13E4      Windows SharePoint Services       General       8l1n      Monitorable     An SPRequest object was reclaimed by the garbage collector instead of being explicitly freed.  To avoid wasting system resources, dispose of this object or its parent (such as an SPSite or SPWeb) as soon as you are done using it.  Allocation Id: {28F8E5BE-3710-4D70-8466-114D6EC7A62F}  This SPRequest was allocated at    at Microsoft.SharePoint.Library.SPRequest..ctor()     at Microsoft.SharePoint.SPGlobal.CreateSPRequestAndSetIdentity(Boolean bNotGlobalAdminCode, String strUrl, Boolean bNotAddToContext, Byte[] UserToken, String userName, Boolean bIgnoreTokenTimeout, Boolean bAsAnonymous)     at Microsoft.SharePoint.SPSite.GetSPRequest()     at Microsoft.SharePoint.SPSite.get_Request()     at Microsoft.SharePoint.SPSite.OpenWeb(Guid gWebId, Int32 mondoHint)     at Microsoft.SharePoint.SPSite.OpenWeb(Guid gWebId)     at Microsoft.SharePoint.WorkflowActions.WorkflowContext.get_Web()     at Microsoft.SharePoint.WorkflowActions.Helper.GetListGuid(WorkflowContext context, String listNameOrId)     at Microsoft.SharePoint.WorkflowActions.Helper.LookupFriendlyString(WorkflowContext context, String listIdOrName, Int32 listItem, String fieldName)     at Microsoft.SharePoint.WorkflowActions.LookupActivity.Execute(ActivityExecutionContext provider)     at System.Workflow.ComponentModel.ActivityExecutor`1.Execute(T activity, ActivityExecutionContext executionContext)     at System.Workflow.ComponentModel.ActivityExecutor`1.Execute(Activity activity, ActivityExecutionContext executionContext)     at System.Workflow.ComponentModel.ActivityExecutorOperation.Run(IWorkflowCoreRuntime workflowCoreRuntime)     at System.Workflow.Runtime.Scheduler.Run()     at System.Workflow.Runtime.WorkflowExecutor.RunScheduler()     at System.Workflow.Runtime.WorkflowExecutor.RunSome(Object ignored)     at System.Workflow.Runtime.Hosting.DefaultWorkflowSchedulerService.WorkItem.Invoke(WorkflowSchedulerService service)     at System.Workflow.Runtime.Hosting.DefaultWorkflowSchedulerService.QueueWorkerProcess(Object state)     at System.Threading.ExecutionContext.runTryCode(Object userData)     at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)     at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)     at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)

w3wp.exe (0x0328)        0x13E4      Windows SharePoint Services       General        0              Potentially excessive number of SPRequest objects (9) currently unreleased on thread 25.  Ensure that this object or its parent (such as an SPWeb or SPSite) is being properly disposed. This object is holding on to a separate native heap. Allocation Id for this object: {4429BCFD-FFCE-4556-B7CE-A9C50B2CC931} Stack trace of current allocation:    at Microsoft.SharePoint.SPRequestManager.Add(SPRequest request, Boolean shareable)     at Microsoft.SharePoint.SPGlobal.CreateSPRequestAndSetIdentity(Boolean bNotGlobalAdminCode, String strUrl, Boolean bNotAddToContext, Byte[] UserToken, String userName, Boolean bIgnoreTokenTimeout, Boolean bAsAnonymous)     at Microsoft.SharePoint.SPWeb.InitializeSPRequest()     at Microsoft.SharePoint.SPWeb.EnsureSPRequest()     at Microsoft.SharePoint.SPWeb.get_Request()     at Microsoft.SharePoint.SPListCollection.EnsureListsData(Guid webId, String strListName)     at Microsoft.SharePoint.SPListCollection.EnsureListsData(String strListName)     at Microsoft.SharePoint.SPListCollection.ItemByInternalName(String strInternalName, Boolean bThrowException)     at Microsoft.SharePoint.SPListCollection.GetListById(Guid uniqueID, Boolean bThrowException)     at Microsoft.SharePoint.SPListCollection.get_Item(Guid uniqueID)     at DP.Sharepoint.Workflow.PermissionsService.<>c__DisplayClass4.<ProcessRevokeRequest>b__3()     at Microsoft.SharePoint.SPSecurity.CodeToRunElevatedWrapper(Object state)     at Microsoft.SharePoint.SPSecurity.<>c__DisplayClass4.<RunWithElevatedPrivileges>b__2()     at Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode)     at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(WaitCallback secureCode, Object param)     at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(CodeToRunElevated secureCode)     at DP.Sharepoint.Workflow.PermissionsService.ProcessRevokeRequest(PermissionRequest pr)     at DP.Sharepoint.Workflow.PermissionsService.Commit(Transaction transaction, ICollection items)     at System.Workflow.Runtime.WorkBatch.PendingWorkCollection.Commit(Transaction transaction)     at System.Workflow.Runtime.WorkBatch.Commit(Transaction transaction)     at System.Workflow.Runtime.Hosting.WorkflowCommitWorkBatchService.CommitWorkBatch(CommitWorkBatchCallback commitWorkBatchCallback)     at System.Workflow.Runtime.Hosting.DefaultWorkflowCommitWorkBatchService.CommitWorkBatch(CommitWorkBatchCallback commitWorkBatchCallback)     at System.Workflow.Runtime.WorkflowExecutor.CommitTransaction(Activity activityContext)     at System.Workflow.Runtime.WorkflowExecutor.Persist(Activity dynamicActivity, Boolean unlock, Boolean needsCompensation)     at System.Workflow.Runtime.WorkflowExecutor.System.Workflow.ComponentModel.IWorkflowCoreRuntime.PersistInstanceState(Activity activity)     at System.Workflow.ComponentModel.Activity.MarkClosed()     at System.Workflow.ComponentModel.Activity.ReleaseLockOnStatusChange(IActivityEventListener`1 eventListener)     at System.Workflow.ComponentModel.FaultAndCancellationHandlingFilter.SafeReleaseLockOnStatusChange(ActivityExecutionContext context)     at System.Workflow.ComponentModel.FaultAndCancellationHandlingFilter.OnEvent(Object sender, ActivityExecutionStatusChangedEventArgs e)     at System.Workflow.ComponentModel.ActivityExecutorDelegateInfo`1.ActivityExecutorDelegateOperation.Run(IWorkflowCoreRuntime workflowCoreRuntime)     at System.Workflow.Runtime.Scheduler.Run()     at System.Workflow.Runtime.WorkflowExecutor.RunScheduler()     at System.Workflow.Runtime.WorkflowExecutor.RunSome(Object ignored)     at System.Workflow.Runtime.Hosting.DefaultWorkflowSchedulerService.WorkItem.Invoke(WorkflowSchedulerService service)     at System.Workflow.Runtime.Hosting.DefaultWorkflowSchedulerService.QueueWorkerProcess(Object state)     at System.Threading.ExecutionContext.runTryCode(Object userData)     at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)     at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)     at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)

Searching for answers, I found a Stack Overflow article where the individual filed a Microsoft Support ticket. According to the individual, they say "Microsoft has confirmed this is a known issue that can be safely ignored. It will not be fixed in SP2007, but is no longer a problem in SP2010."

The most recent incident of this issue came up after the user submitted the form and then went back several hours later and updated the form. Upon the update and submission, it was locked for several hours. Due to this, there was no workflow actively running on the item, so that effectively rules it out as being the culprit, though I didn't anticipate it was, I have seen some strange things come out of using SPD workflows.

I have heavily searched for a solution to this issue, but the only way I understand to fix this is to wait or update the content database, which is not supported. Obviously waiting has not been an acceptable solution because the time between lock and unlock is inconsistent and sometimes lengthy.

A solution or insight into this issue would be appreciated.
0
Comment
Question by:l3com
  • 5
  • 3
8 Comments
 
LVL 9

Expert Comment

by:macarrillo1
ID: 40331913
You may have to introduce a wait for the Check Out and the Update list item in your workflow to allow enough time to register the change. This might be the result of other workflows and timer jobs that might be competing for resources. Hopefully you wont need more than a minute apiece.
0
 

Author Comment

by:l3com
ID: 40338451
macarrillo1,

Thank you for your prompt response. Sorry for the delay in mine.

If you take a look at the second to last paragraph, I mention that the lock did not occur when a workflow was running on the item, so I do not believe this to be the problem. The most recent incident of this happening was the result of the user opening the document, making a change, and submitting the document. No workflows running or started on submission (item change).

Also, I had added a pause to the workflow, but this occurred even with a pause for the autostarting workflow. I also saw other people posting and recommending that.

Any other thoughts?
0
 
LVL 9

Expert Comment

by:macarrillo1
ID: 40339180
Then I would recommend that you validate that SharePoint is not running in compatiblity mode.  This can occur if SharePoint is not fully updated accross the entire farm.  This can result in inconsistent behavior within SharePoint.

If you have Server Administrative permissions, you can validate that SharePoint is fully up to date in patches.  There has been some quirkerness with different Service Packs in the past.  In addition, when the updates were applied and the PowerShell command to update the database were not applied

ie:
PSConfig.exe -cmd upgrade -inplace b2b -force -cmd applicationcontent -install -cmd installfeatures

I have experienced inconsistent behaviour in SharePoint.  Some inconsistencies can be resolved by running SharePoint Configuration Wizard.  

CHECK THIS FIRST
You can also check Central Administration to ensure SharePoint is working properly:

Two places to check in Central Admin are:

Upgrade and Migration|Upgrade and Patch Management|Review Database Status
Do all the content databases have a status of 'No Action required'?

Upgrade and Migration|Upgrade and Patch Management|Check upgrade Status
Did the last upgrade have a status of 'Succeeded'?
0
 

Author Comment

by:l3com
ID: 40342866
macarrillo1,

Again, thanks for the response.

I accessed Central Administration and looked under Operations > Upgrade and Migration, however the two options you mention are not listed. The options listed are as follows:

Microsoft Content Management Server migration
Enable Enterprise Features
Enable features on existing sites
Convert license type

Are those options not available in 2007?

On that idea of running the configuration wizard, we actually just installed Language Pack SP3 and got all of the WFEs on the same version (12.0.0.6665). I am going to monitor the situation, as before this the WFEs were not all on the same version. Prior to this upgrade, two of the WFEs were on a newer version than the other.
0
Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

 
LVL 9

Expert Comment

by:macarrillo1
ID: 40344196
My apologies; What I described in Central Admin is for SharePoint 2010.  Unfortunately your options are more restrictive in SharePoint 2007.

The other area to check out is that the servers are fully up to date on patches.  Particularly office patches.

Another consideration in SharePoint 2007 is the users installed version of office on their system.  I have had users having trouble uploading, checking in, etc because of different Office versions or Office not fully patched.  Remember that InfoPath is an Office product so it can be affected. I would review the individuals that are reporting the problem and compare to those that dont have  the problem.

Another consideration is Authentication configuration in IIS on each of your WFE.  It might be that one of your WFE is configured slightly differently. Which would cause different users to have different experiences depending which WFE they got when browsing.
0
 

Author Comment

by:l3com
ID: 40350105
macarrillo1,

Thanks again for your responses. I will be investigating the points you have brought up this week to possibly identify any other potential issues. I have not seen the lock issue happen for a little bit, however it has not been a prominent problem. Mainly affects the users who are in and out of the form regularly. I suspect the issue may still be around, as it is intermittent in the first place.

At this point, beyond investigating the options you have presented, I am simply monitoring the situation and environment.

Since I do not have an actual solution listed at this point, as well as not knowing if the issue has been resolved, I will wait to mark any of your responses at this time and will revisit this later in the week. We have a deployment happening this week which may see this type of issue via InfoPath.

Regards,
l3com
0
 

Accepted Solution

by:
l3com earned 0 total points
ID: 40426999
The original request was specifically that they did not want check in/out turned on for this document library.

After not being able to pin point a reason for this behavior, nor a solution for it, I resorted to enforcing this feature to be activated on the forms library to handle the "locking" mechanism in SharePoint "manually" by the users. Since checking in and checking out essentially flips this lock on and off, turning this on has fixed the issue as expected.

I did not come up with a solution or answer as to why this issue is intermittent and only happens sometimes, with differing lock durations.

 macarrillo1, thanks again for all of your time and suggestions. Unfortunately I was not able to find a direct solution to the problem. Check In/Check Out was recommended in the beginning, but the end user was interested in saving as many mouse clicks as possible. In the end, this was causing more issues than having to check in and out the forms.

Regards,
l3com
0
 

Author Closing Comment

by:l3com
ID: 40434613
The expert involved, macarrillo1, provided sufficient help. However, the answers provided did not lead to a solution to the issue. After implementing my own solution and monitoring the situation, I wanted to post this information for future users that may run into a similar issue so they know how I was able to fix it.
0

Featured Post

Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

Join & Write a Comment

PaperPort has a feature called the "Send To Bar". It provides a convenient, drag-and-drop interface for using other installed software, such as Microsoft Office. However, this article shows that the latest Office 2016 apps (installed with an Office …
This article descibes how to create a connection between Excel and SAP and how to move data from Excel to SAP or the other way around.
The viewer will learn how to create a normally distributed random variable in Excel, use a normal distribution to simulate the return on an investment over a period of years, Create a Monte Carlo simulation using a normal random variable, and calcul…
Learn how to make your own table of contents in Microsoft Word using paragraph styles and the automatic table of contents tool. We'll be using the paragraph styles in Word’s Home toolbar to help you create a table of contents. Type out your initial …

747 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now