[mapguide-commits] r4857 - in sandbox/adsk/2.1/Server/src: Common/Manager Core

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Wed May 12 11:32:59 EDT 2010


Author: brucedechant
Date: 2010-05-12 11:32:57 -0400 (Wed, 12 May 2010)
New Revision: 4857

Modified:
   sandbox/adsk/2.1/Server/src/Common/Manager/ServerManager.cpp
   sandbox/adsk/2.1/Server/src/Common/Manager/ServerManager.h
   sandbox/adsk/2.1/Server/src/Core/OperationThread.cpp
Log:
Fix for trac ticket 1354 - GetSiteInfo is returning bad values for AverageOperationTime and TotalOperationTime
http://trac.osgeo.org/mapguide/ticket/1354

Notes:
- Fixed time code to use INT64 throughout
- Updated TotalOperationTime to be in seconds to match schema


Modified: sandbox/adsk/2.1/Server/src/Common/Manager/ServerManager.cpp
===================================================================
--- sandbox/adsk/2.1/Server/src/Common/Manager/ServerManager.cpp	2010-05-12 08:34:19 UTC (rev 4856)
+++ sandbox/adsk/2.1/Server/src/Common/Manager/ServerManager.cpp	2010-05-12 15:32:57 UTC (rev 4857)
@@ -477,8 +477,9 @@
     pProperties->Add(pProperty);
 
     // Add the TotalOperationTime
-    INT32 nTotalOperationTime = GetTotalOperationTime();
-    pProperty = new MgInt32Property(MgServerInformationProperties::TotalOperationTime, nTotalOperationTime);
+    // This value needs to be returned in seconds according to the schema
+    INT64 nTotalOperationTime = GetTotalOperationTime() / 1000;
+    pProperty = new MgInt64Property(MgServerInformationProperties::TotalOperationTime, nTotalOperationTime);
     pProperties->Add(pProperty);
 
     // Add the AverageOperationTime
@@ -835,12 +836,12 @@
     return m_totalProcessedOperations.value();
 }
 
-INT32 MgServerManager::GetTotalOperationTime()
+INT64 MgServerManager::GetTotalOperationTime()
 {
     return m_totalOperationTime.value();
 }
 
-void MgServerManager::IncrementOperationTime(INT32 operationTime)
+void MgServerManager::IncrementOperationTime(INT64 operationTime)
 {
     m_totalOperationTime += operationTime;
 }
@@ -1146,7 +1147,7 @@
 ///
 /// EXCEPTIONS:
 /// MgConnectionNotOpenException
-INT32 MgServerManager::GetUptime()
+INT64 MgServerManager::GetUptime()
 {
     ACE_Time_Value upTime(0);
 
@@ -1156,7 +1157,7 @@
 
     MG_CATCH_AND_THROW(L"MgServerManager.GetUptime");
 
-    return (INT32)upTime.sec();
+    return (INT64)upTime.sec();
 }
 
 ///////////////////////////////////////////////////////////////////////////////////
@@ -1169,7 +1170,7 @@
 ///
 /// EXCEPTIONS:
 /// MgConnectionNotOpenException
-INT32 MgServerManager::GetAverageOperationTime()
+INT64 MgServerManager::GetAverageOperationTime()
 {
     double avgTime = 0.0;
 
@@ -1177,13 +1178,13 @@
 
     if (GetTotalProcessedOperations() > 0)
     {
-        avgTime = ((double)(GetTotalOperationTime()) * 1000.0) / (double)(GetTotalProcessedOperations());
+        avgTime = ((double)(GetTotalOperationTime())) / (double)(GetTotalProcessedOperations());
     }
 
 
     MG_CATCH_AND_THROW(L"MgServerManager.GetAverageOperationTime")
 
-    return (INT32)avgTime;
+    return (INT64)avgTime;
 }
 
 ///////////////////////////////////////////////////////////////////////////////////

Modified: sandbox/adsk/2.1/Server/src/Common/Manager/ServerManager.h
===================================================================
--- sandbox/adsk/2.1/Server/src/Common/Manager/ServerManager.h	2010-05-12 08:34:19 UTC (rev 4856)
+++ sandbox/adsk/2.1/Server/src/Common/Manager/ServerManager.h	2010-05-12 15:32:57 UTC (rev 4857)
@@ -36,6 +36,7 @@
 class MgWorkerThread;
 
 typedef ACE_Atomic_Op<ACE_Thread_Mutex, INT32>  SAFE_INT32;
+typedef ACE_Atomic_Op<ACE_Thread_Mutex, INT64>  SAFE_INT64;
 
 class MG_SERVER_MANAGER_API MgServerManager : public MgGuardDisposable
 {
@@ -99,9 +100,9 @@
     ACE_Time_Value GetStartTime();
     INT32 GetTotalReceivedOperations();
     INT32 GetTotalProcessedOperations();
-    INT32 GetTotalOperationTime();
+    INT64 GetTotalOperationTime();
 
-    void IncrementOperationTime(INT32 operationTime);
+    void IncrementOperationTime(INT64 operationTime);
     void IncrementReceivedOperations();
     void IncrementProcessedOperations();
 
@@ -116,8 +117,8 @@
     INT32 GetClientOperationsQueueCount();
     INT32 GetSiteOperationsQueueCount();
 
-    INT32 GetUptime();
-    INT32 GetAverageOperationTime();
+    INT64 GetUptime();
+    INT64 GetAverageOperationTime();
 
     INT64 GetTotalPhysicalMemory();
     INT64 GetAvailablePhysicalMemory();
@@ -175,7 +176,7 @@
     INT32 m_nSiteThreads;
 
     ACE_Time_Value m_startTime;
-    SAFE_INT32 m_totalOperationTime;        // This value is tracked in seconds
+    SAFE_INT64 m_totalOperationTime;        // This value is tracked in milliseconds
     SAFE_INT32 m_totalReceivedOperations;
     SAFE_INT32 m_totalProcessedOperations;
 

Modified: sandbox/adsk/2.1/Server/src/Core/OperationThread.cpp
===================================================================
--- sandbox/adsk/2.1/Server/src/Core/OperationThread.cpp	2010-05-12 08:34:19 UTC (rev 4856)
+++ sandbox/adsk/2.1/Server/src/Core/OperationThread.cpp	2010-05-12 15:32:57 UTC (rev 4857)
@@ -309,7 +309,8 @@
     MG_TRY()
 
     {
-        ACE_Time_Value operationTime(0);
+        ACE_Time_Value operationStartTime(0);
+        operationStartTime = ACE_OS::gettimeofday();
         ACE_ASSERT( pData );
         if ( pData )
         {
@@ -396,6 +397,8 @@
                     stat = pServiceHandler->ProcessOperation();
 
                     m_timer.stop();
+                    ACE_Time_Value operationTime(0);
+                    operationTime = ACE_OS::gettimeofday() - operationStartTime;
                     m_timer.elapsed_time(operationTime);
 
                     delete pServiceHandler;
@@ -408,8 +411,11 @@
             // We increment operations processed for successful operations only.
             if (IMgServiceHandler::mpsDone == stat)
             {
-                INT32 opTime = operationTime.sec();
+                ACE_Time_Value operationTime(0);
+                operationTime = ACE_OS::gettimeofday() - operationStartTime;
 
+                unsigned long opTime = operationTime.msec();
+
                 pConnection->IncrementProcessedOperations();
                 pConnection->SetCurrentOperationTime(opTime);
 



More information about the mapguide-commits mailing list