[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