0

我不断得到

System.InvalidOperationException: This PersistenceManager is not currently checkpointing
   Stack Trace:
      at IdeaBlade.Persistence.PersistenceManager.RollbackCheckpoint(Int32 pCount)
      at Anubis.ViewModel.ReassignCases.ReassignCasesViewModel.Reassign_RunWorkerCompleted(Object sender, RunWorkerCompletedEventArgs e)
      at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
      at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)
      at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
      at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler) 

IdeaBlade.Persistence.PersistenceManagerSaveException: Save failed - Query timeout expired
IdeaBlade.Persistence.PersistenceServerException: Query timeout expired
System.Data.OleDb.OleDbException: Query timeout expired
Stack Trace:
  at IdeaBlade.Persistence.PersistenceManager.DoSaveDataSet(IEnumerable pDataRows, SaveOptions pSaveOptions)
  at IdeaBlade.Persistence.PersistenceManager.SaveChanges(IEnumerable pDataRows, SaveOptions pSaveOptions)
  at Anubis.ViewModel.ReassignCases.ReassignCasesViewModel.Reassign_RunWorkerCompleted(Object sender, RunWorkerCompletedEventArgs e)
  at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)

  at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)
  at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
  at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)

在使用 IdeaBlade DevForce 3.6.2.2 版本时。有什么方法可以解决这个问题或对可能发生的事情有任何建议吗?

我得到的其他错误:

IdeaBlade.Persistence.PersistenceServerException: Login timeout expired     
An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.
Named Pipes Provider: Could not open a connection to SQL Server [5]. 
  System.Data.OleDb.OleDbException: Login timeout expired
An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.
Named Pipes Provider: Could not open a connection to SQL Server [5].
    Stack Trace:
    at IdeaBlade.Persistence.PersistenceManager.HandlePersistenceServerException(Exception pException, Boolean pTryToHandle, PersistenceOperation pOperation)
    at IdeaBlade.Persistence.PersistenceManager.XFetchDataSet(IEntityQuery pEntityQuery)
    at IdeaBlade.Persistence.PersistenceManager.XFetch(IEntityFinder pEntityFinder, WorkState pWorkState)
    at IdeaBlade.Persistence.PersistenceManager.XGetEntities(IEntityQuery pEntityQuery, QueryStrategy pQueryStrategy, WorkState pWorkState)
    at IdeaBlade.Persistence.PersistenceManager.GetEntities[T](IEntityQuery pEntityQuery, QueryStrategy pQueryStrategy)
    at IdeaBlade.Persistence.PersistenceManager.GetEntities[T](IEntityQuery pEntityQuery)
    at Anubis.MainWindow.RefreshData()
    at Anubis.MainWindow.Save(Boolean DisplaySaveResult, String& error)
    at Anubis.MainWindow.Autosave(Object sender, EventArgs e)
    at System.Windows.Threading.DispatcherTimer.FireTick(Object unused)
    at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
    at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)

IdeaBlade.Persistence.PersistenceServerException: Communication link failure
   TCP Provider: The semaphore timeout period has expired.
 System.Data.OleDb.OleDbException: Communication link failure
TCP Provider: The semaphore timeout period has expired.
Stack Trace:
  at IdeaBlade.Persistence.PersistenceManager.HandlePersistenceServerException(Exception pException, Boolean pTryToHandle, PersistenceOperation pOperation)
  at IdeaBlade.Persistence.PersistenceManager.XFetchDataSet(IEntityQuery pEntityQuery)
  at IdeaBlade.Persistence.PersistenceManager.XFetch(IEntityFinder pEntityFinder, WorkState pWorkState)
  at IdeaBlade.Persistence.PersistenceManager.XGetEntities(IEntityQuery pEntityQuery, QueryStrategy pQueryStrategy, WorkState pWorkState)
  at IdeaBlade.Persistence.PersistenceManager.GetEntities[T](IEntityQuery pEntityQuery, QueryStrategy pQueryStrategy)
  at Anubis.MainWindow.RunMessageRetrieval(Object sender, EventArgs e)
  at System.Windows.Threading.DispatcherTimer.FireTick(Object unused)
  at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
  at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)

上述情况似乎非常频繁地发生,并使我们的系统停止运行。感谢您的输入社区

谢谢尼克

4

1 回答 1

0

如果您调用 PM.RollbackCheckpoint 并且 PersistenceManager 当前未设置检查点,则会引发 InvalidOperationException。您可以检查 PM.IsCheckpointing 标志以查看 PM 是否认为它正在检查点。如果您认为应该如此,请尝试确定您的代码和 PM 不同步的原因:您是否回滚得太远了?你之前有没有通过检查站?以前保存但没有开始新的检查点?不小心以非线程安全的方式使用 PM?

保存期间的查询超时有点奇怪。DevForce 将在保存后重新获取,但如果没有堆栈跟踪,则不清楚这就是问题所在。如果您已经实现了 IPersistenceServerSaving 或 IPersistenceServerSaved,请检查您是否在那里进行任何查询。

于 2014-05-06T23:31:57.230 回答