3 Replies Latest reply on Dec 20, 2013 10:30 PM by skwan

    Abacus/AF Analysis and renamed AF Server

    ee.ashley

      I had the AF 2014 beta working great with Abacus in my vCampus dev system. I recently renamed my system to avoid confusion/conflicts with another coworker's VM and after doing this, I can't seem to get the Analysis service working again, even after an uninstall and reinstall of the Analysis Service package.

       

      When trying to work with an analysis, the text "Could not connect to the PI Analysis Service" appears in the bottom left corner of PSE.

       

      I also ran into some issues earlier where PSE was crashing if the Analysis Manager service was running and there were analyses "enabled" (though nothing actually runs anymore) due to an exception related to duplicate keys (it looked like it was trying to add the same server twice:

       

      System.ArgumentException: An item with the same key has already been added.
         at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
         at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
         at OSIsoft.AN.Service.ANServiceStatus.CheckForServiceStatusChanges()
         at OSIsoft.AN.Service.ANServiceStatus.QueryForUpdates()
         at OSIsoft.AN.Service.ANServiceStatus.<RequestUpdate>b__2()
         at System.Threading.Tasks.Task.InnerInvoke()
         at System.Threading.Tasks.Task.Execute()

       

      I have since deleted the offending AF databases and no longer get this unhandled exception, but still find the "Could not connect to the PI Analysis Service" even in newly created databases.

       

      I did notice this exception from the PI Analysis Service in the Event Viewer:

       

      ANCalculationGroupStatusManager.SaveStatusForCalculationGroups[]: Failed to save calculation group status to configuration stores and peer hosts
      System.AggregateException: One or more errors occurred. ---> System.NullReferenceException: Object reference not set to an instance of an object.
         at OSIsoft.AN.WCF.ANWCFClientBase`1.InvalidateProxy()
         at OSIsoft.AN.WCF.ANWCFClientBase`1.TryProxyCall(Action`1 proxyMethod, Boolean catchCommonErrors)
         at OSIsoft.AN.WCF.ANManagerToManagerWCFClient.UpdateCalculationGroupStatus(ANCalculationGroupStatusList statusList)
         at OSIsoft.AN.Service.ANCalculationGroupStatusManager.<>c__DisplayClassa.<UpdateCalculationGroupStatusForPeerHosts>b__8(Int32 managerIndex)
         at System.Threading.Tasks.Parallel.<>c__DisplayClassf`1.<ForWorker>b__c()
         at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
         at System.Threading.Tasks.Task.<>c__DisplayClass10.<ExecuteSelfReplicating>b__f(Object param0)
         --- End of inner exception stack trace ---
         at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
         at System.Threading.Tasks.Task.Wait()
         at System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally)
         at System.Threading.Tasks.Parallel.For(Int32 fromInclusive, Int32 toExclusive, Action`1 body)
         at OSIsoft.AN.Service.ANCalculationGroupStatusManager.SaveStatusForCalculationGroups(Boolean updatePeerHosts, Boolean updateGlobalStore, Boolean updateLocalStore)
      ---> (Inner Exception #0) System.NullReferenceException: Object reference not set to an instance of an object.
         at OSIsoft.AN.WCF.ANWCFClientBase`1.InvalidateProxy()
         at OSIsoft.AN.WCF.ANWCFClientBase`1.TryProxyCall(Action`1 proxyMethod, Boolean catchCommonErrors)
         at OSIsoft.AN.WCF.ANManagerToManagerWCFClient.UpdateCalculationGroupStatus(ANCalculationGroupStatusList statusList)
         at OSIsoft.AN.Service.ANCalculationGroupStatusManager.<>c__DisplayClassa.<UpdateCalculationGroupStatusForPeerHosts>b__8(Int32 managerIndex)
         at System.Threading.Tasks.Parallel.<>c__DisplayClassf`1.<ForWorker>b__c()
         at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
         at System.Threading.Tasks.Task.<>c__DisplayClass10.<ExecuteSelfReplicating>b__f(Object param0)<---

       

      Was wondering if anyone had any ideas?