none
複数ワークワークフロー実行時、ワークフローが終了する。 RRS feed

  • 質問

  • ご教授のほどお願いします。

     

    Visual Studio 2008

    MOSS 2007 x86

     

    Visual Studioで作成したシーケンシャルワークフローを作成しています。

    アイテム作成時に動作するワークフローです。

    onWorkflowActivated

    →Replicator Activity

    →→CreateTask

    →→OnTaskChanged

    →→CompleteTask

     

    Replicatorによって、100個近くのワークフロータスクが作成されます。

    本来であれば、100個近くのワークフロータスクが作成され、OnTaskChangedにより、変更待ちになるのですが、

    並行して複数ワークフローが実行された場合、ワークフロータスクは作成されるのですが、そのままワークフローが終了してしまいます。

    ワークフローの状態も完了になり、エラーにもならない状態です。ワークフロータスクが作成される時間も遅くなります。

     

    単独でワークフローが実行された場合は、問題なく動作します。

     

    複数ワークフロー実行による複数タスク作成時のDB更新時のロックの問題なのか?

    キューの問題なのか?

    よくわかりません。

    ログには下記のようなエラーが発生しています。


    08/08/2008 09:55:06.43  w3wp.exe (0x08D8)                        0x0968 Windows SharePoint Services    Workflow Infrastructure        88xr Unexpected WinWF Internal Error, terminating workflow Id# d1acd43c-04f4-4c8a-9eaf-4f2152971a7e 
    08/08/2008 09:55:06.44  w3wp.exe (0x08D8)                        0x0458 Windows SharePoint Services    General                        0 Unexpected ERROR: request not found in the TrackedRequests. We might be creating and closing webs on different threads. ThreadId = 17, Free call stack =    場所 Microsoft.SharePoint.SPRequestManager.Release(SPRequest request)     場所 Microsoft.SharePoint.SPWeb.Invalidate()     場所 Microsoft.SharePoint.SPWeb.Close()     場所 Microsoft.SharePoint.SPWeb.Dispose()     場所 Microsoft.SharePoint.Workflow.SPWorkflowManager.RunWorkflow(SPWorkflow workflow, Collection`1 events, SPRunWorkflowOptions runOptions)     場所 Microsoft.SharePoint.Workflow.SPWorkflowManager.RunWorkflow(SPWorkflow workflow, Collection`1 events)     場所 Microsoft.SharePoint.Workflow.SPWinOEItemEventReceiver.RouteWorkflowEvent(SPItemEventProperties properties, SPWeb web, SPListItem item, Boolean fNeedTaskReset)     場所 Microsoft.SharePoint.Workflow... 
    08/08/2008 09:55:06.44* w3wp.exe (0x08D8)                        0x0458 Windows SharePoint Services    General                        0 Unexpected ....SPWinOEItemEventReceiver.ItemUpdated(SPItemEventProperties properties)     場所 Microsoft.SharePoint.SPEventManager.RunItemEventReceiver(SPItemEventReceiver receiver, SPItemEventProperties properties, SPEventContext context, String receiverData)     場所 Microsoft.SharePoint.SPEventManager.RunItemEventReceiverHelper(Object receiver, Object properties, SPEventContext context, String receiverData)     場所 Microsoft.SharePoint.SPEventManager.<>c__DisplayClass8`1.<InvokeEventReceivers>b__0()     場所 Microsoft.SharePoint.SPSecurity.CodeToRunElevatedWrapper(Object state)     場所 Microsoft.SharePoint.SPSecurity.RunAsUser(SPUserToken userToken, Boolean bResetContext, WaitCallback code, Object param)     場所 Microsoft.SharePoint.SPSecurity.RunAsUser(SPUserToken userToken, CodeToRunElevated code)     場所 Mi... 
    08/08/2008 09:55:06.44* w3wp.exe (0x08D8)                        0x0458 Windows SharePoint Services    General                        0 Unexpected ...crosoft.SharePoint.SPEventManager.InvokeEventReceivers[ReceiverType](SPUserToken userToken, RunEventReceiver runEventReceiver, Object receivers, Object properties, Boolean checkCancel)     場所 Microsoft.SharePoint.SPEventManager.InvokeEventReceivers[ReceiverType](Byte[] userTokenBytes, RunEventReceiver runEventReceiver, Object receivers, Object properties, Boolean checkCancel)     場所 Microsoft.SharePoint.SPEventManager.HandleEventCallback[ReceiverType,PropertiesType](Object callbackData)     場所 Microsoft.SharePoint.Utilities.SPThreadPool.WaitCallbackWrapper(Object state)     場所 System.Threading.ExecutionContext.runTryCode(Object userData)     場所 System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)     場所 Syst... 
    08/08/2008 09:55:06.44* w3wp.exe (0x08D8)                        0x0458 Windows SharePoint Services    General                        0 Unexpected ...em.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)     場所 System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)  , Allocation call stack (if present) null 


    08/08/2008 09:54:50.19  w3wp.exe (0x08D8)                        0x0968 Windows SharePoint Services    Workflow Infrastructure        72fg High     Error in persisting workflow: System.Transactions.TransactionAbortedException: トランザクションが中止されました。 ---> System.TimeoutException: トランザクションがタイムアウトしました。     --- 内部例外スタック トレースの終わり ---     場所 System.Transactions.TransactionStateAborted.CreateAbortingClone(InternalTransaction tx)     場所 System.Transactions.DependentTransaction..ctor(IsolationLevel isoLevel, InternalTransaction internalTransaction, Boolean blocking)     場所 System.Transactions.Transaction.DependentClone(DependentCloneOption cloneOption)     場所 System.Transactions.TransactionScope.SetCurrent(Transaction newCurrent)     場所 System.Transactions.TransactionScope.PushScope()     場所 System.Transactions.TransactionScope..ctor(TransactionScopeOption scopeOption)     場所 Microsoft.SharePoint.Workflow.SPWinOePersistenceService.Commit(Transactio... 
    08/08/2008 09:54:50.19* w3wp.exe (0x08D8)                        0x0968 Windows SharePoint Services    Workflow Infrastructure        72fg High     ...n transaction, ICollection items) 

     

    08/07/2008 18:25:45.45  OWSTIMER.EXE (0x05C4)                    0x0D24 Windows SharePoint Services    Workflow Infrastructure        936l High     Engine RunWorkflow: System.Workflow.Activities.EventDeliveryFailedException: インスタンス ID "3d82feb3-1a8d-4900-8b2a-0e37bb03d9f4" のインターフェイス型 "Microsoft.SharePoint.Workflow.ITaskService" のイベント "OnTaskChanged" は配信できません。 ---> System.InvalidOperationException: イベント キューの操作に失敗しました。キュー 'Message Properties  Interface Type:Microsoft.SharePoint.Workflow.ITaskService  Method NameSurprisenTaskChanged  CorrelationValues:  df5b625e-3e82-4d68-a1af-5635013158e3  ' の MessageQueueErrorCode QueueNotFound。     場所 System.Workflow.Runtime.WorkflowQueuingService.GetQueue(IComparable queueID)     場所 System.Workflow.Runtime.WorkflowQueuingService.EnqueueEvent(IComparable queueName, Object item)     場所 System.Workflow.Runtime.WorkflowExecutor.EnqueueItem(IComparable queueName, Object item, IPendingWork pendingWork, Object wo... 
    08/07/2008 18:25:45.45* OWSTIMER.EXE (0x05C4)                    0x0D24 Windows SharePoint Services    Workflow Infrastructure        936l High     ...rkItem)     場所 System.Workflow.Runtime.WorkflowInstance.EnqueueItem(IComparable queueName, Object item, IPendingWork pendingWork, Object workItem)     場所 System.Workflow.Activities.WorkflowMessageEventHandler.EventHandler(Object sender, ExternalDataEventArgs eventArgs)     --- 内部例外スタック トレースの終わり ---     場所 System.Workflow.Activities.WorkflowMessageEventHandler.EventHandler(Object sender, ExternalDataEventArgs eventArgs)     場所 Microsoft.SharePoint.Workflow.SPWinOETaskService.RaiseEvent(SPWinOeWorkflow workflow, SPWorkflowEvent workflowEvent, Object workItem, IPendingWork workHandler)     場所 Microsoft.SharePoint.Workflow.SPWinOeHostServices.Send(SPWinOeWorkflow winoeworkflow, SPWorkflowEvent e)     場所 Microsoft.SharePoint.Workflow.SPWinOeEngine.RunWorkflow(Guid trackingId, SPWorkflowHostServ... 

     

     

    もしわかる方がおられましたら、ご教示の程、よろしくお願いします。

    2008年8月12日 6:14

回答

  • いろいろ調査しましたところ、

    crateTask時のアクセス制御であるSpecialPermissionsを利用したところで、

    性能が劣化しているのが判明しました。ここで、トランザクションがタイムアウトしているようです。

    msdnにも記載してあったのですが、アイテムに対するアクセス制御(ACL)設定は

    パフォーマンスの劣化につながるとのことです。

     

    アイテム一つ一つに対するアクセス制御は仕様場逃れられないです。

    もっと、効率よい設定方法があるのか引き続き調査します。

     

    2008年8月20日 3:34

すべての返信

  • いろいろ調査しましたところ、

    crateTask時のアクセス制御であるSpecialPermissionsを利用したところで、

    性能が劣化しているのが判明しました。ここで、トランザクションがタイムアウトしているようです。

    msdnにも記載してあったのですが、アイテムに対するアクセス制御(ACL)設定は

    パフォーマンスの劣化につながるとのことです。

     

    アイテム一つ一つに対するアクセス制御は仕様場逃れられないです。

    もっと、効率よい設定方法があるのか引き続き調査します。

     

    2008年8月20日 3:34
  • こんにちは、フォーラムオペレーターの鈴木裕子です

     

    tako8ro さん、投稿からしばらく時間が経ちましたが、

    その後いかがですか。

     

    自力で解決に向かわれているようですので、

    もしよければ、こちらのスレッドのメッセージの種類を「コメント」にご変更いただけないでしょうか?

    未解決のままですと、tako8ro さんの貴重な情報が、埋もれてしまって大変もったいないのです。。。

     

    もちろん、引き続きの情報もお待ちしておりますので、よろしくお願いします!
    2008年9月29日 9:22
    モデレータ
  • こんにちは、フォーラムオペレータ大久保です。

     

    大変勝手ではありますが、tako8ro さんご自身の返信投稿に「回答済み」チェックをつけさせていただきました。

    もしよろしければですが、その後の調査でわかったことなどあれば追加で投稿いただけるとうれしいです。

     

    それでは、また何かありましたらフォーラムをご利用ください!

     

    2008年10月28日 8:33