#include <i_job_impl.h>


Definition at line 82 of file i_job_impl.h.
| i_Job_i::i_Job_i | ( | job_Manager & | a_jobMgr, | |
| bool | a_completeOnExecFinished = false | |||
| ) |
Definition at line 42 of file i_job_impl.cpp.
References dbg_LOW, ipc_EXEC_m, job_Executor, job_NOT_STARTED, i_JobParams::jobID, ipc_Init::JobParamsInit(), log_DBG_m, log_FUNC_m, m_executor, m_iJobParams, m_jobParams_x, m_rm, i_JobParams::startTime, and i_JobParams::status.
00042 : 00043 m_status(i_UNKNOWN), 00044 m_jobValid(false), 00045 m_jobMgr(a_jobMgr), 00046 m_rm(m_jobMgr.GetRM()), 00047 m_executor(NULL), 00048 m_activate_c(&m_activate_x), 00049 m_registerBea_c(&m_registerBea_x), 00050 m_finished(false), 00051 m_aborted(false), 00052 m_dbAllocated(false), 00053 m_dbExist(false), 00054 m_dbReleased(false), 00055 m_completeOnExecFinished(a_completeOnExecFinished), 00056 m_execTheadStarted(false){ 00057 00058 log_FUNC_m(i_Job_i); 00059 cmn_MutexLock l(m_jobParams_x); 00060 ipc_Init::JobParamsInit(m_iJobParams); 00061 m_iJobParams.status = job_NOT_STARTED; 00062 00063 ipc_EXEC_m ( 00064 m_iJobParams.jobID = m_rm->GetNewJobID(); 00065 ) 00066 cmn_Time nowTime; 00067 00068 m_iJobParams.startTime = nowTime.GetTime_t(); 00069 00070 log_DBG_m(dbg_LOW, "Started new job: " << m_iJobParams.jobID); 00071 m_executor = new job_Executor(*this); 00072 00073 }

| i_Job_i::~i_Job_i | ( | ) | [protected, virtual] |
Definition at line 75 of file i_job_impl.cpp.
References bs_NOT_RUNNING, dbg_LOW, dbg_NORM, GetResources(), ipc_EXEC_m, ipc_ObjectExists(), i_JobParams::jobID, log_DBG_m, log_FUNC_m, log_WriteEvent(), log_WRN_m, m_aborted, m_activeBeas, m_beasStatus, m_beasStatus_x, m_execTheadStarted, m_executor, m_iJobParams, m_rm, m_threadCounter, NULL, ReleaseDiskBuffer(), SetBeaStatus(), and cmn_ThreadCounter::WaitAllEnd().
00075 { 00076 log_FUNC_m(~i_Job_i); 00077 00078 // Remove all Bea's which are still active 00079 for (UInt32_t i = 0; i < m_activeBeas.size(); i++) { 00080 00081 try { 00082 cmn_MutexLock l(m_beasStatus_x); 00083 /* Some jobs don't use WaitBeasToFinish method, 00084 therefore m_beasStatus is empty.*/ 00085 if (!m_beasStatus.empty()) { 00086 SetBeaStatus(i, bs_NOT_RUNNING); 00087 } 00088 if (ipc_ObjectExists(m_activeBeas[i])) { 00089 m_activeBeas[i]->Remove(); 00090 } 00091 else { 00092 log_DBG_m(dbg_NORM, "Bea not running. Skip m_activeBeas[" 00093 << i << "]->Remove()"); 00094 } 00095 00096 } catch (...) { 00097 //try to do as many cleanup as nesseccery 00098 log_DBG_m(dbg_LOW,"Error when trying to remove active Bea's " << endl); 00099 } 00100 } 00101 00102 //release any unreleased resources 00103 try { 00104 ipc_EXEC_m ( 00105 00106 i_ResourceList_t resources = GetResources(); 00107 //release just rows from beas that have not been release till then 00108 for (UInt32_t i = 0; i < resources.length(); i++){ 00109 if (resources[i].resAssigned && ! resources[i].resReleased){ 00110 00111 i_ResourceList_t relResource; 00112 relResource.length(1); 00113 relResource[0] = resources[i]; 00114 m_rm->ReleaseResource(m_iJobParams, relResource); 00115 } 00116 } 00117 ); 00118 } 00119 catch (ivd_Exception &e){ 00120 log_WRN_m("Releasing resources in Job Destructor " << endl << e); 00121 } 00122 00123 //delete any unreleased diskbuffer 00124 ReleaseDiskBuffer(); 00125 00126 if (m_execTheadStarted){ 00127 log_DBG_m(dbg_LOW,"Waiting for Exec thread to finish"); 00128 m_threadCounter.WaitAllEnd(); 00129 log_DBG_m(dbg_LOW,"Exec thread finished"); 00130 } else { 00131 if (m_executor != NULL) 00132 delete m_executor; 00133 } 00134 00135 if (m_aborted) { 00136 ostringstream msg; 00137 msg << "JOB " << m_iJobParams.jobID << " ABORTED."; 00138 log_DBG_m(dbg_LOW, msg.str()); 00139 log_WriteEvent(msg.str(), "JOB ", m_iJobParams.jobID); 00140 } 00141 }

| i_JobParams * i_Job_i::GetJobParams | ( | ) | [virtual] |
Definition at line 145 of file i_job_impl.cpp.
References dbg_NORM, ivd_BaseException::GetError(), ie_JOBNOTFOUND, ipc_CATCH_IVD_THROW_CORBA_m, ipc_EXEC_m, i_JobParams::jobID, log_DBG_m, log_FUNC_m, m_iJobParams, m_resource_x, m_resources, and m_rm.
00145 { 00146 log_FUNC_m(GetJobParams); 00147 00148 try { 00149 i_JobParams *params = new i_JobParams; 00150 *params = m_iJobParams; 00151 //log_DBG_m(dbg_DETAIL,"GetJobParams will return:" << endl << 00152 // ipc_Log::LogJobParams(*params) ); 00153 00154 00155 // refresh with newest params if some resources are waiting 00156 00157 00158 i_ResourceList_t_var resources; 00159 try { 00160 ipc_EXEC_m( 00161 resources = m_rm->GetJobResources(m_iJobParams.jobID); 00162 ); 00163 for (UInt32_t i(0); i < resources->length(); i++) { 00164 { 00165 cmn_MutexLock l(m_resource_x); 00166 m_resources[resources[i].resNum] = resources[i]; 00167 } 00168 } 00169 } catch (ivd_Exception &e) { 00170 if (e.GetError() == ie_JOBNOTFOUND) { 00171 //expected 00172 log_DBG_m(dbg_NORM, "No such job in rm queue."); 00173 } else { 00174 log_DBG_m(dbg_NORM, "Error: " << e.GetError() ); 00175 throw e; 00176 } 00177 } 00178 00179 return params; 00180 } ipc_CATCH_IVD_THROW_CORBA_m; 00181 }

| virtual void i_Job_i::GetNewResources | ( | i_Index_t | a_resNum | ) | [pure virtual] |
Implemented in i_AdminJob_i, i_BackupJob_i, i_MediumDupl_i, i_MaintFriJob_i, i_MigrationJob_i, i_RecallJob_i, i_EfficientRecallJob_i, i_RedundantCopyJob_i, i_ReorgJob_i, and i_ThreadJob_i.
| void i_Job_i::AllocateDiskBuffer | ( | i_FileSize_t | a_size | ) | [virtual] |
Reimplemented in i_AdminJob_i, and i_BackupJob_i.
Definition at line 1059 of file i_job_impl.cpp.
References ie_NYI, ivd_Error, and log_FUNC_m.
Referenced by AllocateDiskBuffer(), i_ReorgJob_i::Execute(), i_RedundantCopyJob_i::Execute(), and i_EfficientRecallJob_i::Execute().
01059 { 01060 log_FUNC_m(AllocateDiskBuffer); 01061 throw ivd_Error(ie_NYI, "Method not implemented."); 01062 01063 }

| virtual i_JobRequestList_t* i_Job_i::GetFiles | ( | ) | [pure virtual] |
Implemented in i_AdminJob_i, i_BackupJob_i, i_MediumDupl_i, i_MaintFriJob_i, i_MigrationJob_i, i_RecallJob_i, i_EfficientRecallJob_i, i_RedundantCopyJob_i, i_ReorgJob_i, and i_ThreadJob_i.
| i_JobID_t i_Job_i::GetJobId | ( | ) | [virtual] |
Definition at line 208 of file i_job_impl.cpp.
References dbg_DETAIL, i_JobParams::jobID, log_DBG_m, log_FUNC_m, and m_iJobParams.
Referenced by i_EfficientRecallJob_i::AbortRecallOnHsm(), job_Manager::AddJobToList(), pm_JobMgr::CheckFSCvsIVDFS(), i_ManagementInterface_i::CloseVolume(), pm_JobMgr::CreateCheckFSCvsMediaJob(), pm_JobMgr::CreateCheckFSCvsMediumJob(), mif_JobManager::CreateCloseVolumeJob(), pm_JobMgr::CreateCopyContentsJob(), pm_JobMgr::CreateDelExpiredFilesJob(), mif_JobManager::CreateDuplMedJob(), mif_JobManager::CreateFormatAndInitJob(), pm_JobMgr::CreateFSCRecoveryJob(), pm_JobMgr::CreateIVDFSRecoveryJob(), pm_JobMgr::CreateMigrationJob(), pm_JobMgr::CreateRecallJob(), mif_JobManager::CreateRecreateFriAndMicJob(), pm_JobMgr::CreateReorgJob(), pm_JobMgr::CreateReorgScanJob(), i_ManagementInterface_i::FormatAndInitMedium(), GetBeaStatus(), GetDiskBufferFileName(), i_MediumCheckJob_i::i_MediumCheckJob_i(), JobIDEqual::operator()(), operator==(), i_ManagementInterface_i::RecreateFriAndMic(), ReleaseDiskBuffer(), RequestDiskBuffer(), SetBeaStatus(), and WaitBeasToFinish().
00208 { 00209 log_FUNC_m(GetJobId); 00210 log_DBG_m(dbg_DETAIL, "Getting Job Id: " << m_iJobParams.jobID); 00211 return m_iJobParams.jobID; 00212 }

| virtual i_JobStatus_e i_Job_i::GetJobStatus | ( | ) | [inline, virtual] |
Definition at line 100 of file i_job_impl.h.
References m_iJobParams, and i_JobParams::status.
00100 { return m_iJobParams.status; };
| virtual i_FSC_ptr i_Job_i::GetFSC | ( | ) | [pure virtual] |
Implemented in i_AdminJob_i, i_BackupJob_i, i_MediumDupl_i, i_MaintFriJob_i, i_MigrationJob_i, i_RecallJob_i, i_EfficientRecallJob_i, i_RedundantCopyJob_i, i_ReorgJob_i, and i_ThreadJob_i.
| void i_Job_i::AssignResources | ( | const i_ResourceList_t & | a_resources | ) | [virtual] |
Reimplemented in i_MediumDupl_i, i_MigrationJob_i, and i_ThreadJob_i.
Definition at line 224 of file i_job_impl.cpp.
References cmn_Condition::Broadcast(), cmn_Num2Str(), dbg_LOW, ie_JOB_REMOVED, ie_NYI, ipc_CATCH_IVD_THROW_CORBA_m, IsAborted(), ivd_Error, i_JobParams::jobID, log_DBG_m, log_FUNC_m, ipc_Log::LogResources(), m_activate_c, m_activate_x, m_iJobParams, m_resource_x, and m_resources.
Referenced by i_MediumDupl_i::AssignResources().
00224 { 00225 log_FUNC_m(AssignResources); 00226 00227 try { 00228 log_DBG_m(dbg_LOW,"[" << m_iJobParams.jobID << 00229 "] " << "Job got Resources:" << endl << 00230 ipc_Log::LogResources(a_resources) ); 00231 00232 if (a_resources.length() != 1){ 00233 throw ivd_InternalError(ie_NYI, "Multiple assignment not possible"); 00234 } 00235 00236 if (IsAborted()){ 00237 cmn_MutexLock l(m_activate_x); 00238 m_activate_c.Broadcast(); 00239 throw ivd_Error(ie_JOB_REMOVED, 00240 cmn_Num2Str(m_iJobParams.jobID).c_str()); 00241 }; 00242 00243 { 00244 cmn_MutexLock l(m_resource_x); 00245 m_resources[a_resources[0].resNum] = a_resources[0]; 00246 m_resources[a_resources[0].resNum].resAssigned = true; 00247 } 00248 00249 00250 cmn_MutexLock l(m_activate_x); 00251 m_activate_c.Broadcast(); 00252 00253 } ipc_CATCH_IVD_THROW_CORBA_m; 00254 }


| i_ResourceList_t * i_Job_i::GetAllResource | ( | ) | [virtual] |
Definition at line 184 of file i_job_impl.cpp.
References ipc_CATCH_IVD_THROW_CORBA_m, log_FUNC_m, and m_resources.
00184 { 00185 log_FUNC_m(GetAllResource); 00186 00187 try { 00188 //log_FUNC_m(GetAllResource); 00189 i_ResourceList_t *resources = new i_ResourceList_t; 00190 *resources = m_resources; 00191 /*log_DBG_m(dbg_NORM,"GetAllResources will return:" << endl << 00192 ipc_Log::LogResources(*resources) );*/ 00193 return resources; 00194 } ipc_CATCH_IVD_THROW_CORBA_m; 00195 }
| void i_Job_i::SetResourceBusyStatus | ( | i_Index_t | a_resNum, | |
| i_ResourceBusy_e | a_resStatus | |||
| ) |
Reimplemented in i_AdminJob_i, i_MediumDupl_i, i_RedundantCopyJob_i, and i_ReorgJob_i.
Definition at line 197 of file i_job_impl.cpp.
References ipc_CATCH_IVD_THROW_CORBA_m, log_FUNC_m, m_resource_x, and m_resources.
00198 { 00199 log_FUNC_m(SetResourceBusyStatus); 00200 00201 try { 00202 cmn_MutexLock l(m_resource_x); 00203 m_resources[a_resNum].resourceBusyStatus = a_resStatus; 00204 } ipc_CATCH_IVD_THROW_CORBA_m; 00205 }
| void i_Job_i::RegisterBEA | ( | i_BackEndAgent_ptr | a_bea, | |
| i_Index_t | a_beaNum | |||
| ) | [virtual] |
Definition at line 279 of file i_job_impl.cpp.
References cmn_Condition::Broadcast(), dbg_DETAIL, ie_FATAL_ERROR, ipc_CATCH_IVD_THROW_CORBA_m, log_DBG_m, log_FUNC_m, m_activeBeas, m_registerBea_c, and m_registerBea_x.
00279 { 00280 log_FUNC_m(RegisterBEA); 00281 00282 try { 00283 00284 log_DBG_m(dbg_DETAIL,"Bea (" << a_beaNum << ") registering to Job"); 00285 00286 if (a_beaNum < static_cast<i_Index_t>(m_activeBeas.size()) ) { 00287 cmn_MutexLock l(m_registerBea_x); 00288 m_activeBeas[a_beaNum] = i_BackEndAgent::_duplicate(a_bea); 00289 m_registerBea_c.Broadcast(); 00290 } else { 00291 throw ivd_InternalError( 00292 ie_FATAL_ERROR, "Unexpected BEA wanted to be registered."); 00293 } 00294 00295 } ipc_CATCH_IVD_THROW_CORBA_m; 00296 }

| void i_Job_i::Remove | ( | ) | [virtual] |
Reimplemented from i_Component_i.
Reimplemented in i_BackupJob_i, and i_ThreadJob_i.
Definition at line 256 of file i_job_impl.cpp.
References cmn_Condition::Broadcast(), dbg_DETAIL, ipc_CATCH_IVD_THROW_CORBA_m, i_JobParams::jobID, log_DBG_m, log_FUNC_m, m_activate_c, m_activate_x, m_finished, m_finished_x, m_iJobParams, m_jobMgr, m_status, i_Component_i::Remove(), and job_Manager::RemoveFromList().
Referenced by i_ReorgJob_i::CompleteJob(), i_RedundantCopyJob_i::CompleteJob(), i_RecallJob_i::CompleteJob(), i_MigrationJob_i::CompleteJob(), i_MediumDupl_i::CompleteJob(), i_MaintFriJob_i::CompleteJob(), i_EfficientRecallJob_i::CompleteJob(), i_AdminJob_i::CompleteJob(), i_MediumDupl_i::MediumOperationComplete(), i_RecallJob_i::RecallRetry(), i_ThreadJob_i::Remove(), and i_BackupJob_i::Remove().
00256 { 00257 log_FUNC_m(Remove); 00258 00259 try { 00260 m_jobMgr.RemoveFromList(m_iJobParams.jobID, m_status); 00261 { 00262 log_DBG_m(dbg_DETAIL,"Locking m_finished_x "); 00263 cmn_MutexLock l(m_finished_x); 00264 m_finished = true; 00265 } 00266 log_DBG_m(dbg_DETAIL,"Unlocking m_finished_x "); 00267 { 00268 log_DBG_m(dbg_DETAIL,"Locking m_activate_x "); 00269 cmn_MutexLock l(m_activate_x); 00270 m_activate_c.Broadcast(); 00271 } 00272 log_DBG_m(dbg_DETAIL,"Unlocking m_activate_x "); 00273 00274 // Do any cleanup necessary 00275 i_Component_i::Remove(); 00276 } ipc_CATCH_IVD_THROW_CORBA_m; 00277 }


| virtual void i_Job_i::MediumOperationComplete | ( | i_Index_t | a_beaNum, | |
| i_CompletionStatus_e | a_status | |||
| ) | [pure virtual] |
Implemented in i_AdminJob_i, i_BackupJob_i, i_MediumDupl_i, i_MaintFriJob_i, i_MigrationJob_i, i_RecallJob_i, i_EfficientRecallJob_i, i_RedundantCopyJob_i, i_ReorgJob_i, and i_ThreadJob_i.
Referenced by CleanupAfterBeaCrash().

| i_FileLocationDataList_t * i_Job_i::GetNextRecallSet | ( | ) | [virtual] |
Reimplemented in i_RecallJob_i, i_EfficientRecallJob_i, i_RedundantCopyJob_i, and i_ReorgJob_i.
Definition at line 298 of file i_job_impl.cpp.
References ie_FATAL_ERROR, log_FUNC_m, and NULL.
00298 { 00299 log_FUNC_m(GetNextRecallSet); 00300 throw ivd_InternalError(ie_FATAL_ERROR, "method not implemented"); 00301 return NULL; 00302 }
| void i_Job_i::FRIReadSuccess | ( | i_Index_t | a_beaNum, | |
| i_Index_t | a_volNum, | |||
| i_BlkOffset_t | a_lastDataPos | |||
| ) | [virtual] |
Reimplemented in i_MaintFriJob_i.
Definition at line 304 of file i_job_impl.cpp.
References ie_NYI, ivd_Error, and log_FUNC_m.
00306 { 00307 log_FUNC_m(FRIReadSuccess); 00308 throw ivd_Error(ie_NYI, "Method not implemented."); 00309 }
| CORBA::Boolean i_Job_i::IsAborted | ( | ) |
Definition at line 392 of file i_job_impl.cpp.
References dbg_DETAIL, i_JobParams::jobID, log_DBG_m, log_FUNC_m, m_abort_x, m_aborted, and m_iJobParams.
Referenced by ActivateBea(), AssignResources(), i_AdminJob_i::CloseVolume(), i_MediumCheckJob_i::CompleteJob(), i_MaintFriJob_i::CompleteJob(), i_EfficientRecallJob_i::CompleteJob(), i_BackupJob_i::CompleteJob(), i_AdminJob_i::DetectVolumeHeader(), i_ReorgJob_i::Execute(), i_RedundantCopyJob_i::Execute(), i_RecallJob_i::Execute(), i_MigrationJob_i::Execute(), i_MediumDupl_i::Execute(), i_MediumCheckJob_i::Execute(), i_MaintFriJob_i::Execute(), i_EfficientRecallJob_i::Execute(), i_BackupJob_i::Execute(), i_AdminJob_i::Execute(), i_AdminJob_i::Format(), i_MaintFriJob_i::FRIReadSuccess(), i_ReorgJob_i::GetNewResources(), i_RedundantCopyJob_i::GetNewResources(), i_MigrationJob_i::GetNewResources(), i_AdminJob_i::Initialize(), i_ReorgJob_i::InitializeVolumes(), LoadUnload(), i_ReorgJob_i::MediumOperationComplete(), i_RedundantCopyJob_i::MediumOperationComplete(), i_RecallJob_i::MediumOperationComplete(), i_MigrationJob_i::MediumOperationComplete(), i_MediumDupl_i::MediumOperationComplete(), i_MaintFriJob_i::MediumOperationComplete(), i_EfficientRecallJob_i::MediumOperationComplete(), i_ReorgJob_i::MigrateFiles(), i_RedundantCopyJob_i::MigrateFiles(), i_AdminJob_i::OperateLA(), i_RecallJob_i::Process(), i_MigrationJob_i::Process(), i_MediumDupl_i::Process(), i_MaintFriJob_i::Process(), i_EfficientRecallJob_i::Process(), i_RedundantCopyJob_i::ReadSourceData(), i_ReorgJob_i::ReadSourceVolume(), i_ReorgJob_i::RecallFiles(), i_RedundantCopyJob_i::RecallFiles(), i_MaintFriJob_i::RecreateFRI(), i_AdminJob_i::RecreateFRIandMIC(), ReleaseDiskBuffer(), RequestDiskBuffer(), i_MaintFriJob_i::RequestResources(), job_Executor::Run(), i_AdminJob_i::StartBEA(), WaitBea(), i_AdminJob_i::~i_AdminJob_i(), i_MigrationJob_i::~i_MigrationJob_i(), i_RecoveryJob_i::~i_RecoveryJob_i(), and job_Executor::~job_Executor().
00392 { 00393 log_FUNC_m(IsAborted); 00394 00395 cmn_MutexLock l(m_abort_x); 00396 00397 if (m_aborted) { 00398 log_DBG_m(dbg_DETAIL, m_iJobParams.jobID << " aborted!"); 00399 } 00400 00401 return m_aborted; 00402 }
| void i_Job_i::Start | ( | ) |
Definition at line 314 of file i_job_impl.cpp.
References cmn_Num2Str(), ie_IMPOSSIBLE, job_STARTED, i_JobParams::jobID, log_FUNC_m, m_execTheadStarted, m_executor, m_iJobParams, m_jobParams_x, cmn_Thread::Start(), and i_JobParams::status.
Referenced by job_Manager::AddJobToList().
00314 { 00315 log_FUNC_m(Start); 00316 00317 cmn_MutexLock l(m_jobParams_x); 00318 00319 if (m_iJobParams.status == job_STARTED) { 00320 throw ivd_InternalError(ie_IMPOSSIBLE, 00321 "Job was already started: " + cmn_Num2Str(m_iJobParams.jobID) ); 00322 }; 00323 00324 m_iJobParams.status = job_STARTED; 00325 //m_executor->StartUndetached(); 00326 m_executor->Start(); 00327 m_execTheadStarted = true; 00328 }


| void i_Job_i::ActivateJob | ( | ) |
Definition at line 331 of file i_job_impl.cpp.
References ipc_EXEC_m, log_FUNC_m, and m_iJob.
Referenced by job_Manager::AddJobToList().
00331 { 00332 log_FUNC_m(ActivateJob); 00333 // Activate servant and store its reference 00334 ipc_EXEC_m( 00335 m_iJob = this->_this(); 00336 this->_remove_ref(); 00337 ); 00338 }

| bool i_Job_i::Started | ( | ) |
Definition at line 340 of file i_job_impl.cpp.
References GetStatus(), and job_NOT_STARTED.
00340 { 00341 return ( GetStatus() != job_NOT_STARTED); 00342 }

| void i_Job_i::SetStatus | ( | i_JobStatus_e | a_status | ) |
Definition at line 343 of file i_job_impl.cpp.
References m_iJobParams, m_jobParams_x, and i_JobParams::status.
Referenced by i_MediumDupl_i::CheckTargetMedium(), i_ReorgJob_i::Execute(), i_MigrationJob_i::Execute(), i_MediumDupl_i::Execute(), i_AdminJob_i::Execute(), i_BackupJob_i::GetNewResources(), i_RecallJob_i::MediumOperationComplete(), i_MigrationJob_i::MediumOperationComplete(), i_MediumDupl_i::MediumOperationComplete(), i_MaintFriJob_i::MediumOperationComplete(), i_EfficientRecallJob_i::MediumOperationComplete(), i_RedundantCopyJob_i::Prepare(), i_RecallJob_i::PrepareResource(), i_EfficientRecallJob_i::PrepareResource(), i_MaintFriJob_i::RequestResources(), and job_Executor::Run().
00343 { 00344 cmn_MutexLock l(m_jobParams_x); 00345 m_iJobParams.status = a_status; 00346 }

| i_JobStatus_e i_Job_i::GetStatus | ( | ) |
Definition at line 348 of file i_job_impl.cpp.
References m_iJobParams, m_jobParams_x, and i_JobParams::status.
Referenced by Started().
00348 { 00349 cmn_MutexLock l(m_jobParams_x); 00350 return m_iJobParams.status; 00351 }

| i_Job_ptr i_Job_i::GetJob | ( | ) |
Definition at line 353 of file i_job_impl.cpp.
References ipc_EXEC_m, log_FUNC_m, and m_iJob.
Referenced by mif_JobManager::CreateBackupJob(), i_PartitionManager_i::GetJob(), and i_ManagementInterface_i::ListJob().
00353 { 00354 log_FUNC_m(GetJob); 00355 00356 ipc_EXEC_m( 00357 i_Job_ptr tmpJob = i_Job::_duplicate(m_iJob); 00358 return tmpJob; 00359 ); 00360 }

| ivd_JobType_e i_Job_i::GetJobTypeEnum | ( | ) | const [inline] |
Definition at line 136 of file i_job_impl.h.
References i_JobParams::jobType, and m_iJobParams.
Referenced by job_Manager::AddJobToList(), and GetJobTypeText().
00136 { 00137 return static_cast<ivd_JobType_e>(m_iJobParams.jobType); 00138 }

| void i_Job_i::AbortJob | ( | ) | [virtual] |
Reimplemented in i_FSCCheckJob_i, i_RecreatedIVDFSJob_i, and i_ReorgScanJob_i.
Definition at line 362 of file i_job_impl.cpp.
References cmn_Condition::Broadcast(), dbg_NORM, ipc_EXEC_m, i_JobParams::jobID, log_DBG_m, log_FUNC_m, log_WRN_m, m_abort_x, m_aborted, m_activate_c, m_activate_x, m_iJobParams, and m_rm.
Referenced by i_ReorgScanJob_i::AbortJob(), i_RecreatedIVDFSJob_i::AbortJob(), and i_ManagementInterface_i::AbortJob().
00362 { 00363 log_FUNC_m(AbortJob); 00364 { 00365 cmn_MutexLock l(m_abort_x); 00366 if (m_aborted) { 00367 log_WRN_m("Job " << m_iJobParams.jobID << " already aborted."); 00368 return; 00369 } 00370 m_aborted = true; 00371 } 00372 00373 try { 00374 ipc_EXEC_m( 00375 if (!CORBA::is_nil(m_rm)){ 00376 log_DBG_m(dbg_NORM, "Cancelling active GetResource for Job:" << m_iJobParams.jobID); 00377 m_rm->CancelGetResource(m_iJobParams.jobID); 00378 } 00379 ); 00380 } 00381 catch (...) { 00382 //ignore any exceptions 00383 } 00384 00385 { 00386 cmn_MutexLock l(m_activate_x); 00387 m_activate_c.Broadcast(); 00388 } 00389 }


| void i_Job_i::Finished | ( | ) |
Definition at line 404 of file i_job_impl.cpp.
References IsFinished(), log_FUNC_m, m_finished, and m_finished_x.
Referenced by i_AdminJob_i::Execute(), and i_MediumDupl_i::MediumOperationComplete().
00404 { 00405 log_FUNC_m(IsFinished); 00406 cmn_MutexLock l(m_finished_x); 00407 m_finished = true; 00408 }


| bool i_Job_i::IsFinished | ( | ) |
Definition at line 410 of file i_job_impl.cpp.
References log_FUNC_m, m_finished, and m_finished_x.
Referenced by i_RecallJob_i::Execute(), i_MigrationJob_i::Execute(), i_MediumDupl_i::Execute(), i_MaintFriJob_i::Execute(), i_EfficientRecallJob_i::Execute(), i_BackupJob_i::Execute(), i_AdminJob_i::Execute(), and Finished().
00410 { 00411 log_FUNC_m(IsFinished); 00412 cmn_MutexLock l(m_finished_x); 00413 return m_finished; 00414 }

| void i_Job_i::StartBea | ( | string | a_hostName, | |
| UInt32_t | a_copyNum | |||
| ) |
Definition at line 416 of file i_job_impl.cpp.
References cmn_Num2Str(), i_IVDBEA, ipc_EXEC_m, log_FUNC_m, m_resource_x, m_resources, ipc_Corba::ResolveSvc(), and ipc_Corba::Singleton().
Referenced by ActivateBea(), and i_AdminJob_i::StartBEA().
00416 { 00417 log_FUNC_m(StartBea); 00418 00419 ipc_EXEC_m ( 00420 00421 // We use _ptr here so that it does not get released by _var destructor 00422 // at the end of this block. 00423 // The reference is passed to BEA. 00424 CORBA::Object_ptr ref = i_Job::_duplicate(this->_this()); 00425 CORBA::String_var ior(ipc_Corba::Singleton().m_orb->object_to_string(ref)); 00426 00427 //set arguments for calling BEA 00428 00429 i_StringList_t args; 00430 args.length(2); 00431 args[0] = ior; 00432 00433 i_Service_var iSvc; 00434 CORBA::Object_var objSVC = ipc_Corba::ResolveSvc(a_hostName); 00435 00436 iSvc = i_Service::_narrow(objSVC); 00437 00438 string copyNumStr = cmn_Num2Str( a_copyNum ); 00439 args[1] = CORBA::string_dup( copyNumStr.c_str() ); 00440 00441 iSvc->Execute(i_IVDBEA, args); 00442 00443 cmn_MutexLock l(m_resource_x); 00444 m_resources[a_copyNum].resBeaStarted = true; 00445 ); 00446 }


| void i_Job_i::ActivateBea | ( | UInt32_t | a_beaNum | ) |
Definition at line 448 of file i_job_impl.cpp.
References evt_ERROR, ivd_BaseException::GetFriendly(), GetJobTypeText(), GetResources(), ie_JOB_FAILED, ipc_EXEC_m, IsAborted(), ivd_Error, i_JobParams::jobID, log_ERR_m, log_FUNC_m, log_WriteEvent(), m_activeBeas, m_iJobParams, SetDriveProperties(), SetResBeaStarted(), StartBea(), and WaitBea().
Referenced by i_MediumDupl_i::CheckTargetMedium(), i_ReorgJob_i::InitializeSingleVolume(), i_ReorgJob_i::MigrateFiles(), i_RedundantCopyJob_i::MigrateFiles(), i_RecallJob_i::Process(), i_MigrationJob_i::Process(), i_MediumDupl_i::Process(), i_MaintFriJob_i::Process(), i_EfficientRecallJob_i::Process(), i_RedundantCopyJob_i::ReadSourceData(), and i_ReorgJob_i::ReadSourceVolume().
00448 { 00449 log_FUNC_m(ActivateBea); 00450 00451 if (IsAborted()){ 00452 return; 00453 } 00454 00455 SetDriveProperties(a_beaNum); 00456 00457 if (CORBA::is_nil(m_activeBeas[a_beaNum])) { //is bea already active? 00458 try { 00459 StartBea( string(GetResources()[a_beaNum].driveHost), 00460 a_beaNum); 00461 00462 WaitBea(a_beaNum); 00463 } 00464 catch (ivd_Exception& e) { 00465 ostringstream os; 00466 os << "Error while starting BEA. (" << e.GetFriendly() << ")."; 00467 log_WriteEvent( evt_ERROR, os.str(), 00468 GetJobTypeText(), m_iJobParams.jobID); 00469 00470 log_ERR_m( "[" << m_iJobParams.jobID << "] " << 00471 "Caught exception while starting BEA " << e); 00472 00473 throw ivd_Error(ie_JOB_FAILED, os.str()); 00474 } 00475 } 00476 else { 00477 SetResBeaStarted(a_beaNum); 00478 } 00479 00480 if (IsAborted()){ 00481 return; 00482 } 00483 00484 try { 00485 ipc_EXEC_m ( 00486 m_activeBeas[a_beaNum]->UseResources((GetResources())[a_beaNum]); 00487 ); 00488 } 00489 catch (ivd_Exception& e) { 00490 ostringstream os; 00491 os << "BEA error on invoking UseResources (" << e.GetFriendly() << ")."; 00492 log_WriteEvent( evt_ERROR, os.str(), 00493 GetJobTypeText(), m_iJobParams.jobID); 00494 00495 log_ERR_m( "[" << m_iJobParams.jobID << "] " << 00496 "Caught exception while invoking UseResources " << 00497 "on active BEA: " << e); 00498 00499 throw; 00500 // throw ivd_Error(ie_JOB_FAILED, os.str() ); // error code is not represent to callee. 00501 } 00502 }


| void i_Job_i::LoadUnload | ( | UInt32_t | a_copyNum | ) |
Definition at line 504 of file i_job_impl.cpp.
References rm_Resource_t::barcode, rm_Resource_t::Convert2Corba(), dbg_DETAIL, dbg_NORM, rm_Resource_t::driveIndex, evt_ERROR, ivd_BaseException::GetError(), ivd_BaseException::GetFriendly(), GetJobTypeText(), GetResources(), ie_JOB_FAILED, ie_SCSI_HWERR, ipc_EXEC_m, IsAborted(), ivd_Error, i_JobParams::jobID, rm_Resource_t::libraryHost, rm_Resource_t::libraryName, rm_Resource_t::load, rm_Resource_t::loadSlotAddr, log_DBG_m, log_ERR_m, log_FUNC_m, log_WriteEvent(), ipc_Log::LogResources(), m_iJobParams, ipc_Corba::ResolveLA(), SetResLoaded(), rm_Resource_t::unloadBarcode, and rm_Resource_t::unloadSlotAddr.
Referenced by i_MediumDupl_i::CheckTargetMedium(), i_ReorgJob_i::InitializeVolumes(), i_ReorgJob_i::MigrateFiles(), i_RedundantCopyJob_i::MigrateFiles(), i_AdminJob_i::OperateLA(), i_BackupJob_i::PrepareResource(), i_RecallJob_i::Process(), i_MigrationJob_i::Process(), i_MediumDupl_i::Process(), i_MaintFriJob_i::Process(), i_EfficientRecallJob_i::Process(), i_RedundantCopyJob_i::ReadSourceData(), and i_ReorgJob_i::ReadSourceVolume().
00504 { 00505 log_FUNC_m(LoadUnload); 00506 00507 rm_Resource_t resource; 00508 resource = (GetResources())[a_copyNum]; 00509 00510 if (resource.load) { //some tape moves have to be done 00511 i_LibraryAgent_var iLA; 00512 00513 if (IsAborted()) return; 00514 try { 00515 ipc_EXEC_m ( 00516 CORBA::Object_var objLA = ipc_Corba::ResolveLA( 00517 resource.libraryHost, 00518 resource.libraryName); 00519 00520 iLA = i_LibraryAgent::_narrow(objLA) 00521 ); 00522 } catch (ivd_Error &e) { 00523 00524 log_ERR_m("[" << m_iJobParams.jobID << "] " << 00525 "Caught exception when resolving LA" << e); 00526 00527 ostringstream os; 00528 os << "Failed, LA Resolve error (" << e.GetFriendly() << ")."; 00529 log_WriteEvent(evt_ERROR, os.str(), 00530 GetJobTypeText(), m_iJobParams.jobID); 00531 00532 throw ivd_Error(ie_JOB_FAILED, os.str()); 00533 } 00534 00535 if (IsAborted()) return; 00536 00537 if (resource.load) { //unload has to be done 00538 if (!resource.unloadBarcode.empty()) { //call Library Agent for unload 00539 log_DBG_m(dbg_DETAIL,"LA unload"); 00540 try { 00541 00542 ipc_EXEC_m (iLA->Unload( 00543 resource.driveIndex.c_str(), 00544 resource.unloadSlotAddr.c_str(), 00545 resource.unloadBarcode.c_str(), 00546 m_iJobParams.jobID 00547 ); 00548 ); 00549 } catch (ivd_Error &e) { 00550 i_Resource_t resourceToBePrinted = resource.Convert2Corba(); 00551 00552 log_ERR_m(ipc_Log::LogResources(resourceToBePrinted) << endl << 00553 "[" << m_iJobParams.jobID << "] " << 00554 "Caught exception on LA unload " << e); 00555 ostringstream os; 00556 os << "Failed, LA unload error (" << e.GetFriendly() << ")."; 00557 log_WriteEvent(evt_ERROR, os.str(), 00558 GetJobTypeText(), m_iJobParams.jobID); 00559 00560 if (e.GetError() == ie_SCSI_HWERR) { 00561 throw; 00562 } 00563 else { 00564 throw ivd_Error(ie_JOB_FAILED, os.str()); 00565 } 00566 } 00567 } 00568 } 00569 00570 if (IsAborted()) return; 00571 00572 if (!resource.barcode.empty()) { //call Library Agent load 00573 log_DBG_m(dbg_DETAIL,"LA Load"); 00574 try { 00575 ipc_EXEC_m (iLA->Load( 00576 resource.loadSlotAddr.c_str(), 00577 resource.driveIndex.c_str(), 00578 resource.barcode.c_str(), 00579 m_iJobParams.jobID 00580 ); 00581 ); 00582 } catch (ivd_Error &e) { 00583 log_ERR_m( "[" << m_iJobParams.jobID << "] " << 00584 "Caught exception on LA load " << e); 00585 ostringstream os; 00586 os << "Failed, LA load error (" << e.GetFriendly() << ")."; 00587 log_WriteEvent(evt_ERROR, os.str(), 00588 GetJobTypeText(), m_iJobParams.jobID); 00589 00590 throw ivd_Error(ie_JOB_FAILED, os.str()); 00591 } 00592 00593 } 00594 SetResLoaded(a_copyNum); 00595 } 00596 else { 00597 log_DBG_m(dbg_NORM,"[" << m_iJobParams.jobID << 00598 "] " << "Medium is already in drive, " 00599 "no need for load/unload"); 00600 } 00601 00602 }


| void i_Job_i::WaitBea | ( | UInt32_t | a_copyNum | ) |
Definition at line 604 of file i_job_impl.cpp.
References dbg_DETAIL, dbg_NORM, cmn_Thread::GetTime(), ie_JOB_FAILED, ie_TIMEOUT, IsAborted(), ivd_Error, ivd_USleep, i_JobParams::jobID, log_DBG_m, log_ERR_m, log_FUNC_m, m_activeBeas, m_iJobParams, m_registerBea_c, m_registerBea_x, MAX_WAIT_FOR_BEA_TO_START, and cmn_Condition::TimedWait().
Referenced by ActivateBea(), and i_AdminJob_i::StartBEA().
00604 { 00605 log_FUNC_m(WaitBea); 00606 00607 cmn_MutexLock l(m_registerBea_x); 00608 00609 // Check first if BEA registered in mean-time. 00610 if ( CORBA::is_nil(m_activeBeas[a_copyNum]) ) { 00611 log_DBG_m(dbg_NORM, "[" << m_iJobParams.jobID << "] " << 00612 "Waiting for BEA to start beaNum " << 00613 a_copyNum); 00614 m_registerBea_c.TimedWait(cmn_Thread::GetTime(MAX_WAIT_FOR_BEA_TO_START)); 00615 00616 if (IsAborted()){ 00617 return; 00618 } 00619 00620 if ( CORBA::is_nil(m_activeBeas[a_copyNum]) ) { 00621 throw ivd_Error(ie_JOB_FAILED, "BEA error occured, job failed"); 00622 } 00623 } 00624 00625 UInt32_t sleep(1); 00626 while(true) { 00627 try { 00628 if(!m_activeBeas[a_copyNum]->_non_existent()) { 00629 log_DBG_m(dbg_DETAIL, "BEA ready"); 00630 break; 00631 } 00632 if (sleep > 1000) { 00633 // Timeout elapsed. Will not continue. 00634 log_ERR_m("Timeout accessing BEA, most probably not available."); 00635 throw ivd_Error(ie_TIMEOUT, "BEA not responding, job failed"); 00636 } 00637 } 00638 catch (ivd_Error) { 00639 throw; 00640 } 00641 catch (...) { // corba exceptions 00642 // empty 00643 } 00644 ivd_USleep(sleep); 00645 sleep *= 10; 00646 } 00647 }


| void i_Job_i::SetResRequested | ( | UInt32_t | a_resNum | ) |
Definition at line 658 of file i_job_impl.cpp.
References ie_FATAL_ERROR, i_JobParams::jobID, log_FUNC_A_m, m_iJobParams, m_resource_x, and m_resources.
Referenced by i_MediumDupl_i::CheckTargetMedium(), i_MigrationJob_i::Execute(), i_MediumDupl_i::Execute(), i_AdminJob_i::Execute(), i_ReorgJob_i::GetNewResources(), i_RedundantCopyJob_i::GetNewResources(), i_MigrationJob_i::GetNewResources(), i_BackupJob_i::GetNewResources(), i_MediumDupl_i::MediumOperationComplete(), i_ReorgJob_i::MigrateFiles(), i_EfficientRecallJob_i::PrepareResource(), i_ReorgJob_i::RecallFiles(), i_RedundantCopyJob_i::RecallFiles(), and i_MaintFriJob_i::RequestResources().
00658 { 00659 log_FUNC_A_m(SetResRequested, "[" << m_iJobParams.jobID << "] a_resNum:" 00660 << a_resNum); 00661 cmn_MutexLock l(m_resource_x); 00662 if ( a_resNum >= m_resources.length() ) { 00663 throw ivd_InternalError(ie_FATAL_ERROR, 00664 "Accessing list member that does not exist"); 00665 } 00666 m_resources[a_resNum].resRequested = true; 00667 }

| void i_Job_i::SetResAllocatedd | ( | UInt32_t | a_resNum | ) |
Definition at line 669 of file i_job_impl.cpp.
References ie_FATAL_ERROR, i_JobParams::jobID, log_FUNC_A_m, m_iJobParams, m_resource_x, and m_resources.
00669 { 00670 log_FUNC_A_m(SetResAllocated, "[" << m_iJobParams.jobID << "] a_resNum:" 00671 << a_resNum); 00672 cmn_MutexLock l(m_resource_x); 00673 if ( a_resNum >= m_resources.length() ) { 00674 throw ivd_InternalError(ie_FATAL_ERROR, 00675 "Accessing list member that does not exist"); 00676 } 00677 m_resources[a_resNum].resAllocated = true; 00678 }
| void i_Job_i::SetResAssigned | ( | UInt32_t | a_resNum | ) |
Definition at line 680 of file i_job_impl.cpp.
References ie_FATAL_ERROR, i_JobParams::jobID, log_FUNC_A_m, m_iJobParams, m_resource_x, and m_resources.
00680 { 00681 log_FUNC_A_m(SetResAssigned, "[" << m_iJobParams.jobID << "] a_resNum:" 00682 << a_resNum); 00683 cmn_MutexLock l(m_resource_x); 00684 if ( a_resNum >= m_resources.length() ) { 00685 throw ivd_InternalError(ie_FATAL_ERROR, 00686 "Accessing list member that does not exist"); 00687 } 00688 m_resources[a_resNum].resAssigned = true; 00689 }
| void i_Job_i::SetResReleased | ( | UInt32_t | a_resNum | ) |
Definition at line 691 of file i_job_impl.cpp.
References ie_FATAL_ERROR, i_JobParams::jobID, log_FUNC_A_m, m_iJobParams, m_resource_x, and m_resources.
Referenced by ReleaseResource(), i_RecallJob_i::ReleaseResources(), i_MaintFriJob_i::ReleaseResources(), and i_EfficientRecallJob_i::ReleaseResources().
00691 { 00692 log_FUNC_A_m(SetResReleased, "[" << m_iJobParams.jobID << "] a_resNum:" 00693 << a_resNum); 00694 cmn_MutexLock l(m_resource_x); 00695 if ( a_resNum >= m_resources.length() ) { 00696 throw ivd_InternalError(ie_FATAL_ERROR, 00697 "Accessing list member that does not exist"); 00698 } 00699 m_resources[a_resNum].resReleased = true; 00700 }

| void i_Job_i::SetResBeaStarted | ( | UInt32_t | a_resNum | ) |
Definition at line 702 of file i_job_impl.cpp.
References ie_FATAL_ERROR, i_JobParams::jobID, log_FUNC_A_m, m_iJobParams, m_resource_x, and m_resources.
Referenced by ActivateBea(), i_ReorgJob_i::GetNewResources(), i_RedundantCopyJob_i::GetNewResources(), i_MigrationJob_i::GetNewResources(), i_ReorgJob_i::InitializeSingleVolume(), and i_RedundantCopyJob_i::MigrateFiles().
00702 { 00703 log_FUNC_A_m(SetResBeaStarted, "[" << m_iJobParams.jobID << "] a_resNum:" 00704 << a_resNum); 00705 cmn_MutexLock l(m_resource_x); 00706 if ( a_resNum >= m_resources.length() ) { 00707 throw ivd_InternalError(ie_FATAL_ERROR, 00708 "Accessing list member that does not exist"); 00709 } 00710 m_resources[a_resNum].resBeaStarted = true; 00711 }

| void i_Job_i::SetResProcessed | ( | UInt32_t | a_resNum | ) |
Definition at line 713 of file i_job_impl.cpp.
References ie_FATAL_ERROR, i_JobParams::jobID, log_FUNC_A_m, m_iJobParams, m_resource_x, and m_resources.
Referenced by i_MediumDupl_i::CheckTargetMedium(), i_MigrationJob_i::Execute(), i_MediumDupl_i::Execute(), i_MaintFriJob_i::Execute(), i_AdminJob_i::Execute(), i_ReorgJob_i::InitializeSingleVolume(), i_MediumDupl_i::MediumOperationComplete(), i_ReorgJob_i::MigrateFiles(), i_RedundantCopyJob_i::MigrateFiles(), i_BackupJob_i::PrepareResource(), i_RecallJob_i::Process(), i_MediumDupl_i::Process(), i_EfficientRecallJob_i::Process(), i_RedundantCopyJob_i::ReadSourceData(), i_ReorgJob_i::RecallFiles(), and i_MaintFriJob_i::ReleaseResources().
00713 { 00714 log_FUNC_A_m(SetResProcessed, "[" << m_iJobParams.jobID << "] a_resNum:" 00715 << a_resNum); 00716 cmn_MutexLock l(m_resource_x); 00717 if ( a_resNum >= m_resources.length() ) { 00718 throw ivd_InternalError(ie_FATAL_ERROR, 00719 "Accessing list member that does not exist"); 00720 } 00721 m_resources[a_resNum].resProcessed = true; 00722 }

| void i_Job_i::SetResMedOpComplete | ( | UInt32_t | a_resNum | ) |
Definition at line 724 of file i_job_impl.cpp.
References ie_FATAL_ERROR, i_JobParams::jobID, log_FUNC_A_m, m_iJobParams, m_resource_x, and m_resources.
Referenced by i_ReorgJob_i::InitializeSingleVolume(), i_ReorgJob_i::MediumOperationComplete(), i_RedundantCopyJob_i::MediumOperationComplete(), i_RecallJob_i::MediumOperationComplete(), i_MigrationJob_i::MediumOperationComplete(), i_MediumDupl_i::MediumOperationComplete(), i_MaintFriJob_i::MediumOperationComplete(), i_EfficientRecallJob_i::MediumOperationComplete(), i_ReorgJob_i::RecallFiles(), and i_MaintFriJob_i::RequestResources().
00724 { 00725 log_FUNC_A_m(SetResMedOpComplete, "[" << m_iJobParams.jobID << "] a_resNum:" 00726 << a_resNum); 00727 cmn_MutexLock l(m_resource_x); 00728 if ( a_resNum >= m_resources.length() ) { 00729 throw ivd_InternalError(ie_FATAL_ERROR, 00730 "Accessing list member that does not exist"); 00731 } 00732 m_resources[a_resNum].resMedOpComplete = true; 00733 }

| bool i_Job_i::IsResMedOpComplete | ( | UInt32_t | a_resNum | ) |
Definition at line 746 of file i_job_impl.cpp.
References ie_FATAL_ERROR, i_JobParams::jobID, log_FUNC_A_m, m_iJobParams, m_resource_x, and m_resources.
00746 { 00747 log_FUNC_A_m(IsResMedOpComplete, "[" << m_iJobParams.jobID << "] a_resNum:" 00748 << a_resNum); 00749 00750 cmn_MutexLock l(m_resource_x); 00751 if ( a_resNum >= m_resources.length() ) { 00752 throw ivd_InternalError(ie_FATAL_ERROR, 00753 "Accessing list member that does not exist"); 00754 } 00755 return m_resources[a_resNum].resMedOpComplete; 00756 }
| void i_Job_i::ResetResMedOpComplete | ( | UInt32_t | a_resNum | ) |
Definition at line 735 of file i_job_impl.cpp.
References ie_FATAL_ERROR, i_JobParams::jobID, log_FUNC_A_m, m_iJobParams, m_resource_x, and m_resources.
Referenced by i_MaintFriJob_i::MediumOperationComplete().
00735 { 00736 log_FUNC_A_m(ResetResMedOpComplete, "[" << m_iJobParams.jobID << "] a_resNum:" 00737 << a_resNum); 00738 cmn_MutexLock l(m_resource_x); 00739 if ( a_resNum >= m_resources.length() ) { 00740 throw ivd_InternalError(ie_FATAL_ERROR, 00741 "Accessing list member that does not exist"); 00742 } 00743 m_resources[a_resNum].resMedOpComplete = false; 00744 }

| void i_Job_i::WaitBeasToFinish | ( | UInt64_t | a_waitTimeOut | ) |
Definition at line 1150 of file i_job_impl.cpp.
References crashBeaInfo_t::beaNum, bs_PROCESSING, CleanupAfterBeaCrash(), cmn_Thread::Create(), dbg_DETAIL, dbg_NORM, GetBeaStatus(), GetJobId(), cmn_Thread::GetTime(), ipc_ObjectExists(), ivd_BeaStatusToText(), crashBeaInfo_t::jobPtr, log_DBG_m, log_FUNC_m, m_activate_c, m_activeBeas, m_beasStatus, cmn_Thread::PRIO_NORM, cmn_Condition::TimedWait(), and TIMEXPIRE_d.
Referenced by i_RecallJob_i::Execute(), i_MigrationJob_i::Execute(), i_MediumDupl_i::Execute(), i_MaintFriJob_i::Execute(), i_EfficientRecallJob_i::Execute(), i_ReorgJob_i::MigrateFiles(), i_RedundantCopyJob_i::MigrateFiles(), i_ReorgJob_i::RecallFiles(), and i_RedundantCopyJob_i::RecallFiles().
01150 { 01151 log_FUNC_m(WaitBeasToFinish); 01152 01153 try { 01154 01155 vector<UInt32_t> crashedBea; 01156 while (1) { 01157 vector<ivd_BeaStatus_e> activeBeasStatus(m_beasStatus); 01158 log_DBG_m(dbg_DETAIL,"Job:" << GetJobId() 01159 << " waiting(a_waitTimeOut: " 01160 << a_waitTimeOut << ")..."); 01161 int status(m_activate_c.TimedWait(cmn_Thread::GetTime(a_waitTimeOut))); 01162 01163 log_DBG_m(dbg_DETAIL,"TimedWait status: " << status); 01164 for (UInt32_t i(0); i < activeBeasStatus.size(); ++i) { 01165 bool beaRunning = ipc_ObjectExists(m_activeBeas[i]); 01166 log_DBG_m(dbg_DETAIL, "BEA " << i << " previous status: " 01167 << ivd_BeaStatusToText(activeBeasStatus[i])); 01168 log_DBG_m(dbg_DETAIL, "BEA " << i << " current status: " 01169 << ivd_BeaStatusToText(GetBeaStatus(i))); 01170 01171 if ( (activeBeasStatus[i] == bs_PROCESSING) 01172 && (GetBeaStatus(i) == bs_PROCESSING) 01173 && (!beaRunning)) { 01174 01175 bool cleanupAlreadyDone(false); 01176 if (!crashedBea.empty()) { 01177 for (UInt32_t j(0); j < crashedBea.size(); ++j) { 01178 if (crashedBea[j] == i) { 01179 cleanupAlreadyDone = true; 01180 break; 01181 } 01182 } 01183 } 01184 01185 if (cleanupAlreadyDone) { 01186 log_DBG_m(dbg_DETAIL, "MediumOperationComplete already started for BEA: " 01187 << i); 01188 } 01189 else { 01190 crashedBea.push_back(i); 01191 log_DBG_m(dbg_DETAIL, "Added BEA: " << i << " to crashed bea list"); 01192 //beaInfo will be deleted in CleanupAfterBeaCrash method. 01193 crashBeaInfo_t *beaInfo = new crashBeaInfo_t; 01194 log_DBG_m(dbg_DETAIL, "Set beaInfo."); 01195 beaInfo->jobPtr = this; 01196 log_DBG_m(dbg_DETAIL, "beaInfo->jobPtr: " << beaInfo->jobPtr); 01197 beaInfo->beaNum = i; 01198 log_DBG_m(dbg_DETAIL, "beaInfo->beaNum: " << beaInfo->beaNum); 01199 cmn_Thread::Create(CleanupAfterBeaCrash, 01200 (void*)beaInfo, 01201 cmn_Thread::PRIO_NORM); 01202 log_DBG_m(dbg_DETAIL, "MediumOperationComplete started for BEA: " << i); 01203 } 01204 } 01205 } // for (UInt32_t i(0); i < activeBeasStatus.size(); ++i) 01206 01207 if (status == TIMEXPIRE_d) { 01208 log_DBG_m(dbg_DETAIL,"Wait time expired."); 01209 } 01210 else { 01211 log_DBG_m(dbg_DETAIL,"Signaled to cotinue"); 01212 break; 01213 } 01214 } // while (1) 01215 01216 } 01217 catch (ivd_Error) { 01218 log_DBG_m(dbg_NORM, "Catch ivd_Error while waiting BEA to finish. Continuing..."); 01219 } 01220 catch (ivd_Exception) { 01221 log_DBG_m(dbg_NORM, "Catch ivd_Exception while waiting BEA to finish. Continuing..."); 01222 } 01223 catch (std::exception) { 01224 log_DBG_m(dbg_NORM, "Catch std::exception while waiting BEA to finish. Continuing..."); 01225 } 01226 catch (...) { 01227 log_DBG_m(dbg_NORM, "Catch unknown exception while waiting BEA to finish. Continuing..."); 01228 } 01229 }


| void i_Job_i::SetBeaStatus | ( | UInt32_t | a_beaNum, | |
| ivd_BeaStatus_e | a_status | |||
| ) |
Definition at line 1231 of file i_job_impl.cpp.
References dbg_DETAIL, GetJobId(), ie_FATAL_ERROR, ivd_BeaStatusToText(), log_DBG_m, log_FUNC_m, and m_beasStatus.
Referenced by i_MediumDupl_i::CheckTargetMedium(), i_ReorgJob_i::GetNewResources(), i_RedundantCopyJob_i::GetNewResources(), i_MigrationJob_i::GetNewResources(), i_ReorgJob_i::InitializeSingleVolume(), i_ReorgJob_i::MediumOperationComplete(), i_RedundantCopyJob_i::MediumOperationComplete(), i_RecallJob_i::MediumOperationComplete(), i_MigrationJob_i::MediumOperationComplete(), i_MediumDupl_i::MediumOperationComplete(), i_MaintFriJob_i::MediumOperationComplete(), i_EfficientRecallJob_i::MediumOperationComplete(), i_ReorgJob_i::MigrateFiles(), i_RedundantCopyJob_i::MigrateFiles(), i_RecallJob_i::Process(), i_MigrationJob_i::Process(), i_MediumDupl_i::Process(), i_MaintFriJob_i::Process(), i_EfficientRecallJob_i::Process(), i_RedundantCopyJob_i::ReadSourceData(), i_ReorgJob_i::ReadSourceVolume(), i_RecallJob_i::RecallRetry(), i_MaintFriJob_i::RecreateFRI(), and ~i_Job_i().
01231 { 01232 log_FUNC_m(SetBeaStatus); 01233 01234 if (a_beaNum >= m_beasStatus.size()) { 01235 throw ivd_InternalError(ie_FATAL_ERROR, 01236 "Job wants to set status for non existing BEA."); 01237 } 01238 01239 log_DBG_m(dbg_DETAIL, "Job: " << GetJobId()); 01240 log_DBG_m(dbg_DETAIL, "Changing status for BEA: " << a_beaNum); 01241 log_DBG_m(dbg_DETAIL, "Previous status: " 01242 << ivd_BeaStatusToText(m_beasStatus[a_beaNum])); 01243 01244 m_beasStatus[a_beaNum] = a_status; 01245 01246 log_DBG_m(dbg_DETAIL, "New status: " 01247 << ivd_BeaStatusToText(m_beasStatus[a_beaNum])); 01248 }


| ivd_BeaStatus_e i_Job_i::GetBeaStatus | ( | UInt32_t | a_beaNum | ) |
Definition at line 1250 of file i_job_impl.cpp.
References dbg_DETAIL, GetJobId(), ie_FATAL_ERROR, ivd_BeaStatusToText(), log_DBG_m, log_FUNC_m, and m_beasStatus.
Referenced by WaitBeasToFinish().
01250 { 01251 log_FUNC_m(GetBeaStatus); 01252 01253 if (a_beaNum >= m_beasStatus.size()) { 01254 throw ivd_InternalError(ie_FATAL_ERROR, 01255 "Job requesting status of non existing BEA."); 01256 } 01257 log_DBG_m(dbg_DETAIL, "Job: " << GetJobId()); 01258 log_DBG_m(dbg_DETAIL, "Status of BEA: " << a_beaNum << " is " 01259 << ivd_BeaStatusToText(m_beasStatus[a_beaNum])); 01260 01261 return m_beasStatus[a_beaNum]; 01262 01263 }


| void i_Job_i::InitBeaStatus | ( | UInt32_t | a_numOfElements, | |
| ivd_BeaStatus_e | a_status = bs_NOT_RUNNING | |||
| ) |
Definition at line 1265 of file i_job_impl.cpp.
References dbg_DETAIL, ivd_BeaStatusToText(), log_DBG_m, log_FUNC_m, and m_beasStatus.
Referenced by i_EfficientRecallJob_i::i_EfficientRecallJob_i(), i_MaintFriJob_i::i_MaintFriJob_i(), i_MediumDupl_i::i_MediumDupl_i(), i_MigrationJob_i::i_MigrationJob_i(), i_RecallJob_i::i_RecallJob_i(), i_RedundantCopyJob_i::i_RedundantCopyJob_i(), and i_ReorgJob_i::i_ReorgJob_i().
01265 { 01266 log_FUNC_m(InitBeaStatus); 01267 01268 log_DBG_m(dbg_DETAIL, "m_beasStatus resized to " 01269 << a_numOfElements 01270 << " elements and init to " 01271 << ivd_BeaStatusToText(a_status)); 01272 m_beasStatus.resize(a_numOfElements); 01273 for (UInt32_t i(0); i < a_numOfElements; ++i) { 01274 m_beasStatus[i] = a_status; 01275 } 01276 }


| void i_Job_i::SetResLoaded | ( | UInt32_t | a_resNum | ) |
Definition at line 786 of file i_job_impl.cpp.
References ie_FATAL_ERROR, i_JobParams::jobID, log_FUNC_A_m, m_iJobParams, m_resource_x, and m_resources.
Referenced by LoadUnload().
00786 { 00787 log_FUNC_A_m(SetResLoaded, "[" << m_iJobParams.jobID << "] a_resNum:" 00788 << a_resNum); 00789 cmn_MutexLock l(m_resource_x); 00790 if ( a_resNum >= m_resources.length() ) { 00791 throw ivd_InternalError(ie_FATAL_ERROR, 00792 "Accessing list member that does not exist"); 00793 } 00794 m_resources[a_resNum].load = false; 00795 }

| void i_Job_i::ClearResStatus | ( | UInt32_t | a_resNum | ) |
Definition at line 758 of file i_job_impl.cpp.
References ie_FATAL_ERROR, i_JobParams::jobID, log_FUNC_A_m, m_iJobParams, m_resource_x, and m_resources.
Referenced by i_ReorgJob_i::GetNewResources(), i_RedundantCopyJob_i::GetNewResources(), i_MigrationJob_i::GetNewResources(), i_RedundantCopyJob_i::MediumOperationComplete(), and i_ReorgJob_i::RecallFiles().
00758 { 00759 log_FUNC_A_m(ClearResStatus, "[" << m_iJobParams.jobID << "] a_resNum:" 00760 << a_resNum); 00761 cmn_MutexLock l(m_resource_x); 00762 if ( a_resNum >= m_resources.length() ) { 00763 throw ivd_InternalError(ie_FATAL_ERROR, 00764 "Accessing list member that does not exist"); 00765 } 00766 m_resources[a_resNum].resRequested = false; 00767 m_resources[a_resNum].resAllocated = false; 00768 m_resources[a_resNum].resReleased = false; 00769 m_resources[a_resNum].resAssigned = false; 00770 m_resources[a_resNum].resBeaStarted = false; 00771 m_resources[a_resNum].resProcessed = false; 00772 m_resources[a_resNum].resMedOpComplete = false; 00773 m_resources[a_resNum].load = false; 00774 }

| bool i_Job_i::NeedsProcess | ( | UInt32_t | a_resNum | ) |
Definition at line 776 of file i_job_impl.cpp.
References dbg_NORM, i_JobParams::jobID, log_DBG_m, log_FUNC_A_m, ipc_Log::LogResources(), m_iJobParams, m_resource_x, and m_resources.
Referenced by i_MediumDupl_i::CheckTargetMedium(), i_RecallJob_i::Execute(), i_MigrationJob_i::Execute(), i_MediumDupl_i::Execute(), i_MaintFriJob_i::Execute(), i_EfficientRecallJob_i::Execute(), i_AdminJob_i::Execute(), i_ReorgJob_i::MigrateFiles(), and i_RedundantCopyJob_i::MigrateFiles().
00776 { 00777 log_FUNC_A_m(NeedsProcess, "[" << m_iJobParams.jobID << "] a_resNum:" 00778 << a_resNum); 00779 cmn_MutexLock l(m_resource_x); 00780 log_DBG_m(dbg_NORM,"NeedsProcess:" << endl << 00781 ipc_Log::LogResources(m_resources[a_resNum]) ); 00782 return (m_resources[a_resNum].resAssigned && 00783 !m_resources[a_resNum].resProcessed); 00784 }


| void i_Job_i::SetResources | ( | i_ResourceList_t | a_resource | ) |
Definition at line 650 of file i_job_impl.cpp.
References m_resource_x, and m_resources.
Referenced by i_MediumDupl_i::CompleteJob(), i_BackupJob_i::i_BackupJob_i(), i_EfficientRecallJob_i::i_EfficientRecallJob_i(), i_MediumDupl_i::i_MediumDupl_i(), i_MigrationJob_i::i_MigrationJob_i(), i_RecallJob_i::i_RecallJob_i(), i_RedundantCopyJob_i::i_RedundantCopyJob_i(), i_ReorgJob_i::i_ReorgJob_i(), i_ReorgJob_i::InitializeSingleVolume(), i_ReorgJob_i::InitializeVolumes(), i_AdminJob_i::InitJob(), i_RecallJob_i::MediumOperationComplete(), i_MediumDupl_i::MediumOperationComplete(), i_ReorgJob_i::MigrateFiles(), i_RedundantCopyJob_i::MigrateFiles(), i_MaintFriJob_i::PrepareMedium(), i_RecallJob_i::PrepareResource(), i_EfficientRecallJob_i::PrepareResource(), i_BackupJob_i::PrepareResource(), i_RecallJob_i::Process(), i_MediumDupl_i::Process(), i_EfficientRecallJob_i::Process(), i_ReorgJob_i::RecallFiles(), i_RedundantCopyJob_i::RecallFiles(), i_RecallJob_i::RecallRetry(), i_ReorgJob_i::SetResourceBusyStatus(), i_RedundantCopyJob_i::SetResourceBusyStatus(), i_MediumDupl_i::SetResourceBusyStatus(), and i_AdminJob_i::SetResourceBusyStatus().
00650 { 00651 // log_FUNC_m(SetResources); 00652 cmn_MutexLock l(m_resource_x); 00653 // log_DBG_m(dbg_DETAIL,"" << endl << "Want to set resource:" << endl << ipc_Log::LogResources(a_resource)); 00654 m_resources = a_resource; 00655 // log_DBG_m(dbg_DETAIL,"" << endl << "Resource was set to:" << endl << ipc_Log::LogResources(m_resources)); 00656 }

| void i_Job_i::SetResources | ( | i_Resource_t | a_resource | ) |
Definition at line 797 of file i_job_impl.cpp.
References ie_FATAL_ERROR, m_resource_x, m_resources, and i_Resource_t::resNum.
00797 { 00798 //log_FUNC_m(SetResources); 00799 cmn_MutexLock l(m_resource_x); 00800 /*log_DBG_m(dbg_DETAIL,"" << endl << "Want to set resource:" << endl << 00801 ipc_Log::LogResources(a_resource));*/ 00802 00803 if ( static_cast<unsigned int>(a_resource.resNum) >= m_resources.length() ) { 00804 throw ivd_InternalError(ie_FATAL_ERROR, 00805 "Accessing list member that does not exist"); 00806 } 00807 m_resources[a_resource.resNum] = a_resource; 00808 /*log_DBG_m(dbg_DETAIL,"[" << m_iJobParams.jobID << "] " << "Resource set to:" 00809 << endl << ipc_Log::LogResources(m_resources));*/ 00810 }
| const i_ResourceList_t i_Job_i::GetResources | ( | ) |
Definition at line 813 of file i_job_impl.cpp.
References log_FUNC_m, m_resource_x, and m_resources.
Referenced by ActivateBea(), i_MediumDupl_i::AssignResources(), i_MediumDupl_i::CheckTargetMedium(), i_AdminJob_i::CloseVolume(), i_RecallJob_i::CompleteJob(), i_MigrationJob_i::CompleteJob(), i_MediumDupl_i::CompleteJob(), i_MaintFriJob_i::CompleteJob(), i_MigrationJob_i::Execute(), i_MediumDupl_i::Execute(), i_MaintFriJob_i::Execute(), i_BackupJob_i::Execute(), i_AdminJob_i::Execute(), i_MaintFriJob_i::FRIReadSuccess(), i_ReorgJob_i::GetNewResources(), i_RedundantCopyJob_i::GetNewResources(), i_MigrationJob_i::GetNewResources(), i_MaintFriJob_i::GetNewResources(), i_BackupJob_i::GetNewResources(), i_AdminJob_i::GetNewResources(), i_BackupJob_i::i_BackupJob_i(), i_MaintFriJob_i::i_MaintFriJob_i(), i_MediumCheckJob_i::i_MediumCheckJob_i(), i_MediumDupl_i::i_MediumDupl_i(), i_MigrationJob_i::i_MigrationJob_i(), i_RecoveryJob_i::i_RecoveryJob_i(), i_RedundantCopyJob_i::i_RedundantCopyJob_i(), i_ReorgJob_i::i_ReorgJob_i(), i_ReorgJob_i::InitializeSingleVolume(), i_ReorgJob_i::InitializeVolumes(), i_AdminJob_i::InitJob(), LoadUnload(), i_ReorgJob_i::MediumOperationComplete(), i_RedundantCopyJob_i::MediumOperationComplete(), i_RecallJob_i::MediumOperationComplete(), i_MigrationJob_i::MediumOperationComplete(), i_MediumDupl_i::MediumOperationComplete(), i_MaintFriJob_i::MediumOperationComplete(), i_EfficientRecallJob_i::MediumOperationComplete(), i_ReorgJob_i::MigrateFiles(), i_RedundantCopyJob_i::MigrateFiles(), i_RecallJob_i::PrepareResource(), i_EfficientRecallJob_i::PrepareResource(), i_BackupJob_i::PrepareResource(), i_RecallJob_i::Process(), i_MediumDupl_i::Process(), i_MaintFriJob_i::Process(), i_EfficientRecallJob_i::Process(), i_RecoveryJob_i::ProcessFRI(), i_MediumCheckJob_i::ProcessFRI(), i_ReorgJob_i::ReadSourceVolume(), i_ReorgJob_i::RecallFiles(), i_RedundantCopyJob_i::RecallFiles(), ReleaseResource(), i_RecallJob_i::ReleaseResources(), i_MaintFriJob_i::ReleaseResources(), i_EfficientRecallJob_i::ReleaseResources(), i_MaintFriJob_i::RequestResources(), pm_RecallClientThread::Run(), i_ReorgJob_i::SetResourceBusyStatus(), i_RedundantCopyJob_i::SetResourceBusyStatus(), i_MediumDupl_i::SetResourceBusyStatus(), i_AdminJob_i::SetResourceBusyStatus(), i_AdminJob_i::StartBEA(), and ~i_Job_i().
00813 { 00814 log_FUNC_m(GetResources); 00815 cmn_MutexLock l(m_resource_x); 00816 return m_resources; 00817 }
| void i_Job_i::SetPriority | ( | CORBA::Long | a_modifier | ) |
Definition at line 820 of file i_job_impl.cpp.
References m_iJobParams, m_jobParams_x, and i_JobParams::priorityModifier.
00820 { 00821 cmn_MutexLock l(m_jobParams_x); 00822 m_iJobParams.priorityModifier = a_modifier; 00823 }
| void i_Job_i::SetDriveProperties | ( | UInt32_t | a_copyNum | ) |
Definition at line 825 of file i_job_impl.cpp.
References i_Resource_t::driveCtrlDevice, i_Resource_t::driveHost, i_Resource_t::driveKey, g_cmn, ipc_EXEC_m, log_FUNC_m, cmn_SysInfo::m_hostName, m_resource_x, m_resources, m_rm, i_Resource_t::mediumFamily, mf_DISK, and cmn_Global::si.
Referenced by ActivateBea(), i_AdminJob_i::Execute(), and i_BackupJob_i::PrepareResource().
00825 { 00826 log_FUNC_m(SetDriveProperties); 00827 00828 cmn_MutexLock l(m_resource_x); 00829 i_Resource_t &tmpRes = m_resources[a_copyNum]; 00830 if (tmpRes.mediumFamily == mf_DISK){ 00831 tmpRes.driveHost = CORBA::string_dup(g_cmn.si.m_hostName.c_str()); 00832 } else { 00833 i_DriveHost_t_var dh; 00834 ipc_EXEC_m( 00835 dh = m_rm->GetHost(tmpRes.driveKey); 00836 ); 00837 tmpRes.driveCtrlDevice = dh->controlDevice; 00838 tmpRes.driveHost = dh->host; 00839 } 00840 }

| void i_Job_i::ReleaseResource | ( | UInt32_t | a_beaNum | ) |
Definition at line 842 of file i_job_impl.cpp.
References dbg_LOW, dbg_NORM, GetResources(), ie_PRECONDITION, ipc_EXEC_m, ivd_Error, i_JobParams::jobID, log_DBG_m, log_ERR_m, log_FUNC_m, m_iJobParams, m_rm, i_JobParams::phase, and SetResReleased().
Referenced by i_MediumDupl_i::CheckTargetMedium(), i_ReorgJob_i::MediumOperationComplete(), i_RedundantCopyJob_i::MediumOperationComplete(), i_MigrationJob_i::MediumOperationComplete(), i_MediumDupl_i::MediumOperationComplete(), and i_ReorgJob_i::RecallFiles().
00842 { 00843 log_FUNC_m(ReleaseResource); 00844 00845 i_ResourceList_t relResource; 00846 relResource.length(1); 00847 relResource[0] = (GetResources())[a_beaNum]; 00848 if (!relResource[0].resAllocated){ 00849 throw ivd_Error(ie_PRECONDITION, "Resource were not allocated."); 00850 } 00851 SetResReleased(a_beaNum); 00852 00853 try { 00854 ipc_EXEC_m( 00855 00856 try { 00857 m_rm->SetPhase(m_iJobParams.jobID, m_iJobParams.phase++); 00858 } catch (...){ 00859 //ignore any exceptions here 00860 } 00861 00862 log_DBG_m(dbg_LOW, "[" << m_iJobParams.jobID << 00863 "] " << "ReleaseResource for jobId:" ); 00864 m_rm->ReleaseResource(m_iJobParams, relResource); 00865 ); 00866 00867 } catch (ivd_Exception& e) { 00868 log_ERR_m("Caught exception in ReleaseResource: " << e); 00869 } catch (...){ 00870 log_ERR_m("Caught UNKNOWN EXCEPTION " ); 00871 } 00872 00873 log_DBG_m(dbg_NORM, "Resources Released for jobId" << 00874 m_iJobParams.jobID); 00875 00876 00877 }


| string i_Job_i::GetJobTypeText | ( | ) | const |
Definition at line 881 of file i_job_impl.cpp.
References GetJobTypeEnum(), and ivd_JobTypeToText().
Referenced by i_FSCCheckJob_i::AbortJob(), ActivateBea(), i_MaintFriJob_i::CheckReadFri(), i_ThreadJob_i::CompleteJob(), i_ReorgJob_i::CompleteJob(), i_MigrationJob_i::CompleteJob(), i_MediumCheckJob_i::CompleteJob(), i_MaintFriJob_i::CompleteJob(), i_ReorgScanJob_i::Execute(), i_RecallJob_i::Execute(), i_MigrationJob_i::Execute(), i_EfficientRecallJob_i::i_EfficientRecallJob_i(), i_MediumCheckJob_i::i_MediumCheckJob_i(), i_MigrationJob_i::i_MigrationJob_i(), i_RecallJob_i::i_RecallJob_i(), i_ThreadJob_i::i_ThreadJob_i(), LoadUnload(), i_ThreadJob_i::MediumOperationComplete(), i_MigrationJob_i::MediumOperationComplete(), i_MaintFriJob_i::MediumOperationComplete(), i_EfficientRecallJob_i::MediumOperationComplete(), i_MaintFriJob_i::PrepareMedium(), i_MediumDupl_i::Process(), i_MaintFriJob_i::Process(), i_RecoveryJob_i::ProcessFRI(), i_MediumCheckJob_i::ProcessFRI(), RequestDiskBuffer(), pm_RecallClientThread::Run(), i_MaintFriJob_i::~i_MaintFriJob_i(), i_MigrationJob_i::~i_MigrationJob_i(), and i_RedundantCopyJob_i::~i_RedundantCopyJob_i().
00881 { 00882 return ivd_JobTypeToText(GetJobTypeEnum()); 00883 }


| void i_Job_i::RequestDiskBuffer | ( | UInt64_t | a_minDBSize, | |
| UInt64_t | a_maxDBSize, | |||
| UInt64_t & | a_allocDBSize, | |||
| UInt64_t | a_maxDBFileSytem, | |||
| job_dbgDiskBuf_e | a_deleteFiles = job_DISKBUFNONE | |||
| ) |
Definition at line 887 of file i_job_impl.cpp.
References cfg_MEGABYTE, dbg_LOW, dbg_NORM, i_JobParams::diskBufferFS, evt_WARNING, GetJobId(), GetJobTypeText(), i_RESOURCE_ERROR, ie_IMPOSSIBLE, ie_NO_DISK_SPACE, ipc_EXEC_m, IsAborted(), ivd_Error, ivd_Sleep, i_JobParams::jobID, i_JobParams::jobType, log_DBG_m, log_FUNC_A_m, log_WriteEvent(), m_dbAllocated, m_dbDeleteFiles, m_dbReleased, m_dbSize, m_iJobParams, m_rm, m_status, and TIMEOUT_NOT_ENOUGH_SPACE_DISKBUFFER.
Referenced by AllocateDiskBuffer(), i_BackupJob_i::AllocateDiskBuffer(), i_MigrationJob_i::Execute(), i_MediumDupl_i::Execute(), and i_RecallJob_i::PrepareResource().
00891 { 00892 00893 log_FUNC_A_m(RequestDiskBuffer, 00894 "min: " << a_minDBSize << " max: " << a_maxDBSize 00895 << " maxDBFS: " << a_maxDBFileSytem); 00896 00897 if ( (a_maxDBSize ==0 ) || (a_minDBSize == 0) ) { 00898 throw ivd_InternalError(ie_IMPOSSIBLE, 00899 "Job requested 0 bytes of disk buffer."); 00900 } 00901 00902 if (a_minDBSize > a_maxDBFileSytem){ 00903 00904 log_DBG_m(dbg_NORM, "a_minDBSize: " << a_minDBSize << 00905 ", a_maxDBSize: " << a_maxDBSize); 00906 m_status = i_RESOURCE_ERROR; 00907 ostringstream sstr; 00908 sstr << "Job [" << m_iJobParams.jobID << 00909 "]: Disk buffer allocation failed. See error.log for details. "; 00910 log_WriteEvent(sstr.str()); 00911 00912 sstr.str(""); 00913 sstr << "Job [" << m_iJobParams.jobID << 00914 "]: Disk buffer allocation failed. " << endl << 00915 "Job requested from " << a_minDBSize/cfg_MEGABYTE << "MB" << 00916 " to " << a_maxDBSize/cfg_MEGABYTE << "MB." << 00917 " The size of the biggest diskbuffer file system is: " << 00918 a_maxDBFileSytem/cfg_MEGABYTE << "MB."; 00919 00920 throw ivd_Error(ie_NO_DISK_SPACE, sstr.str()); 00921 } 00922 00923 m_dbDeleteFiles = a_deleteFiles; 00924 bool reported(false); 00925 try { 00926 ipc_EXEC_m( 00927 m_iJobParams.diskBufferFS = m_rm->ReserveDiskBuffer( 00928 GetJobId(), 00929 a_minDBSize, 00930 a_maxDBSize, 00931 a_allocDBSize, 00932 m_iJobParams.jobType); 00933 00934 m_dbSize = a_allocDBSize; 00935 00936 while (m_dbSize == 0) { 00937 if (!reported){ 00938 log_WriteEvent( 00939 evt_WARNING, 00940 "Not enough disk buffer space to allocate. Waiting...", 00941 GetJobTypeText(), 00942 m_iJobParams.jobID); 00943 reported = true; 00944 } 00945 00946 log_DBG_m(dbg_LOW, "[" << m_iJobParams.jobID << 00947 "] " << 00948 "Waiting for space for DiskBuffer ..."); 00949 ivd_Sleep(TIMEOUT_NOT_ENOUGH_SPACE_DISKBUFFER); 00950 00951 if (IsAborted()){ 00952 return; 00953 } 00954 m_iJobParams.diskBufferFS = m_rm->ReserveDiskBuffer( 00955 GetJobId(), 00956 a_minDBSize, 00957 a_maxDBSize, 00958 a_allocDBSize, 00959 m_iJobParams.jobType); 00960 m_dbSize = a_allocDBSize; 00961 00962 } 00963 00964 m_dbAllocated = true; 00965 m_dbReleased = false; 00966 log_DBG_m(dbg_LOW, "Allocated: " << m_iJobParams.diskBufferFS); 00967 ); //ipc_EXEC_m 00968 } catch (ivd_Exception){ 00969 log_DBG_m(dbg_NORM, "[" << m_iJobParams.jobID << 00970 "] " << "RM->ReserveDiskBuffer failed."); 00971 00972 m_status = i_RESOURCE_ERROR; 00973 throw; 00974 } 00975 }//RequestDiskBuffer


| void i_Job_i::ReleaseDiskBuffer | ( | ) |
Definition at line 980 of file i_job_impl.cpp.
References dbg_LOW, dbg_NORM, dt_DISKBUF, g_cmn, GetDiskBufferFileName(), GetJobId(), i_DATA_ERROR, ipc_EXEC_m, IsAborted(), job_DISKBUFALL, job_DISKBUFCORRUPT, job_DISKBUFNONE, i_JobParams::jobID, log_DBG_m, log_ERR_m, log_FUNC_m, log_WRN_m, m_dbAllocated, m_dbDeleteFiles, m_dbExist, m_dbReleased, cmn_SysInfo::m_hostName, m_iJobParams, m_rm, m_status, ipc_Corba::ResolveSvc(), and cmn_Global::si.
Referenced by i_EfficientRecallJob_i::CompleteJob(), i_ReorgJob_i::DiskBufferCleanup(), i_MigrationJob_i::Execute(), i_RedundantCopyJob_i::MediumOperationComplete(), i_EfficientRecallJob_i::MediumOperationComplete(), i_RecallJob_i::RecallRetry(), ~i_Job_i(), i_MediumDupl_i::~i_MediumDupl_i(), i_MigrationJob_i::~i_MigrationJob_i(), i_RecallJob_i::~i_RecallJob_i(), and i_RedundantCopyJob_i::~i_RedundantCopyJob_i().
00980 { 00981 00982 log_FUNC_m(ReleaseDiskBuffer); 00983 00984 switch (m_dbDeleteFiles){ 00985 case(job_DISKBUFALL): 00986 log_DBG_m(dbg_NORM, "" << GetJobId() << 00987 " Skipping deleting of all diskbuffer."); 00988 break; 00989 case(job_DISKBUFCORRUPT): 00990 if (m_status == i_DATA_ERROR) { 00991 log_DBG_m(dbg_NORM, "" << GetJobId() << 00992 " Skipping deleting of diskbuffer w/i_DATA_ERROR."); 00993 break; 00994 }; 00995 case(job_DISKBUFNONE): 00996 default: 00997 try { 00998 ipc_EXEC_m( 00999 if (m_dbExist || IsAborted()){ 01000 log_DBG_m(dbg_NORM, "" << GetJobId() << 01001 " will delete diskbuffer."); 01002 CORBA::Object_var obj = 01003 ipc_Corba::ResolveSvc(g_cmn.si.m_hostName); 01004 i_Service_var svc = i_Service::_narrow(obj); 01005 01006 svc->DeleteFile(dt_DISKBUF, 01007 GetDiskBufferFileName().c_str()); 01008 m_dbExist = false; 01009 } else { 01010 log_DBG_m(dbg_NORM, "" << GetJobId() << 01011 " Diskbuffer does not exist."); 01012 }; 01013 ); 01014 } 01015 catch (ivd_Exception &e){ 01016 //ignore 01017 log_DBG_m(dbg_LOW, "[" << m_iJobParams.jobID << 01018 "] " << "Error Erasing disk buffer." << endl << e); 01019 } 01020 try { 01021 ipc_EXEC_m ( 01022 if (m_dbAllocated & !m_dbReleased) { 01023 m_rm->ReleaseDiskBuffer(GetJobId()); 01024 m_dbReleased = true; 01025 } 01026 ); 01027 } catch (ivd_Exception &e){ 01028 log_WRN_m("Error while releasing DiskBuffer space. " << e) 01029 } catch (...){ 01030 log_ERR_m("Unknown error while releasing DiskBuffer space."); 01031 01032 } 01033 } 01034 }


| void i_Job_i::SetDiskBufferWritten | ( | ) |
Definition at line 1036 of file i_job_impl.cpp.
References log_FUNC_m, and m_dbExist.
Referenced by i_MigrationJob_i::Execute(), i_RecallJob_i::MediumOperationComplete(), i_EfficientRecallJob_i::MediumOperationComplete(), i_RedundantCopyJob_i::ReadSourceData(), and i_ReorgJob_i::ReadSourceVolume().
01036 { 01037 log_FUNC_m(SetDiskBufferWritten); 01038 m_dbExist = true; 01039 }

| virtual void i_Job_i::CompleteJob | ( | i_CompletionStatus_e | a_status | ) | [pure virtual] |
Implemented in i_AdminJob_i, i_BackupJob_i, i_MediumDupl_i, i_MaintFriJob_i, i_MediumCheckJob_i, i_MigrationJob_i, i_RecallJob_i, i_EfficientRecallJob_i, i_RedundantCopyJob_i, i_ReorgJob_i, and i_ThreadJob_i.
Referenced by job_Executor::~job_Executor().

| virtual void i_Job_i::Execute | ( | ) | [pure virtual] |
Implemented in i_AdminJob_i, i_BackupJob_i, i_MediumDupl_i, i_DelExpiredFilesJob_i, i_FSCCheckJob_i, i_MaintFriJob_i, i_MediumCheckJob_i, i_MigrationJob_i, i_RecallJob_i, i_EfficientRecallJob_i, i_RecoveryJob_i, i_RecreatedIVDFSJob_i, i_RedundantCopyJob_i, i_ReorgJob_i, i_ReorgScanJob_i, and i_ThreadJob_i.
Referenced by job_Executor::Run().

| void i_Job_i::InitJob | ( | ) | [virtual] |
Reimplemented in i_AdminJob_i.
Definition at line 1041 of file i_job_impl.cpp.
References log_FUNC_m, and SetJobValid().
Referenced by job_Manager::AddJobToList().
01041 { 01042 log_FUNC_m(InitJob); 01043 SetJobValid(); 01044 }


| void i_Job_i::CheckJobValid | ( | ) |
Definition at line 1046 of file i_job_impl.cpp.
References ie_PRECONDITION, log_FUNC_m, and m_jobValid.
Referenced by job_Manager::AddJobToList().
01046 { 01047 log_FUNC_m(CheckJobValid); 01048 if (!m_jobValid){ 01049 throw ivd_InternalError(ie_PRECONDITION, 01050 "Job was not initialized properly.", true); 01051 } 01052 }

| void i_Job_i::SetJobValid | ( | ) |
Definition at line 1054 of file i_job_impl.cpp.
References log_FUNC_m, and m_jobValid.
Referenced by InitJob(), and i_AdminJob_i::InitJob().
01054 { 01055 log_FUNC_m(SetJobValid); 01056 m_jobValid = true; 01057 }

| void i_Job_i::SetCompletionStatus | ( | i_CompletionStatus_e | a_completionStatus | ) |
Definition at line 1065 of file i_job_impl.cpp.
References m_status.
Referenced by i_BackupJob_i::i_BackupJob_i().
01065 { 01066 m_status = a_completionStatus; 01067 }

| UInt64_t i_Job_i::AllocateDiskBuffer | ( | UInt64_t | a_currentSplitSize, | |
| UInt64_t | a_remainingSplitSize, | |||
| UInt64_t | a_maxDiskBuffSize, | |||
| UInt32_t | a_blockSize, | |||
| UInt64_t | a_maxDiskBuff | |||
| ) |
Definition at line 1069 of file i_job_impl.cpp.
References AllocateDiskBuffer(), dbg_DETAIL, log_DBG_m, log_FUNC_m, RequestDiskBuffer(), and RoundUp2BlockSize().
01073 { 01074 log_FUNC_m(AllocateDiskBuffer); 01075 01076 ostringstream msg; 01077 01078 log_DBG_m(dbg_DETAIL, "Max disk buffer space: " << a_maxDiskBuffSize); 01079 01080 UInt64_t diskBufferSpace5 = (a_maxDiskBuffSize / 20); // 5% 01081 UInt64_t diskBufferSpace50 = (a_maxDiskBuffSize / 2); // 50% 01082 UInt64_t maxSpace2Allocate = diskBufferSpace50; 01083 UInt64_t minSpace2Allocate = diskBufferSpace5; 01084 01085 UInt64_t currentSplitSize = RoundUp2BlockSize( 01086 a_currentSplitSize, 01087 a_blockSize); 01088 01089 UInt64_t remainingSplitSize = RoundUp2BlockSize( 01090 a_remainingSplitSize, 01091 a_blockSize); 01092 01093 // Check if size of first file in list is greather than minSpace2Allocate 01094 // If so allocate at least size of first file 01095 if (currentSplitSize > minSpace2Allocate) { 01096 minSpace2Allocate = currentSplitSize; 01097 } 01098 01099 // Check if size of remaining split is less than maxSpace2Allocate 01100 // No need to allocate more then we need 01101 if (maxSpace2Allocate > remainingSplitSize) { 01102 maxSpace2Allocate = remainingSplitSize; 01103 } 01104 // If remaining split size is less than 5% 01105 // No need to allocate more then we need 01106 if (maxSpace2Allocate < diskBufferSpace5) { 01107 minSpace2Allocate = maxSpace2Allocate; 01108 } 01109 // If size of first file in list is greather than 50% of disk buffer 01110 if (minSpace2Allocate > diskBufferSpace50) { 01111 maxSpace2Allocate = minSpace2Allocate; 01112 } 01113 01114 log_DBG_m(dbg_DETAIL, "Min disk buffer space to allocate: " << 01115 minSpace2Allocate); 01116 log_DBG_m(dbg_DETAIL, "Max disk buffer space to allocate: " << 01117 maxSpace2Allocate); 01118 01119 UInt64_t diskBufferSpaceAllocated(0); 01120 RequestDiskBuffer( minSpace2Allocate, 01121 maxSpace2Allocate, 01122 diskBufferSpaceAllocated, 01123 a_maxDiskBuff); 01124 01125 return diskBufferSpaceAllocated; 01126 }

Definition at line 1128 of file i_job_impl.cpp.
References dbg_DETAIL, log_DBG_m, and log_FUNC_m.
Referenced by AllocateDiskBuffer().
01129 { 01130 log_FUNC_m(RoundUp2BlockSize); 01131 01132 01133 log_DBG_m(dbg_DETAIL,"Size to roundup: " << a_size << 01134 "Block size: " << a_blockSize); 01135 01136 01137 UInt64_t remainder(a_size % a_blockSize); 01138 if (remainder != 0) { 01139 a_size += a_blockSize - remainder; 01140 log_DBG_m(dbg_DETAIL,"Rounded to: " << a_size); 01141 return a_size; 01142 } 01143 else { 01144 log_DBG_m(dbg_DETAIL,"Allready rounded to: " << a_size); 01145 return a_size; 01146 } 01147 01148 }

| cmn_Path i_Job_i::GetDiskBufferFileName | ( | ) |
Definition at line 214 of file i_job_impl.cpp.
References cmn_Num2Str(), dbg_DETAIL, i_JobParams::diskBufferFS, GetJobId(), log_DBG_m, log_FUNC_m, and m_iJobParams.
Referenced by i_MigrationJob_i::Execute(), i_EfficientRecallJob_i::MediumOperationComplete(), ReleaseDiskBuffer(), and pm_RecallClientThread::Run().
00214 { //relative 00215 log_FUNC_m(GetDiskBufferFileName); 00216 00217 cmn_Path tmpName(m_iJobParams.diskBufferFS); 00218 tmpName += cmn_Num2Str(GetJobId()); 00219 00220 log_DBG_m(dbg_DETAIL, "GetDiskBufferFileName: " << tmpName); 00221 return tmpName; 00222 }


| bool i_Job_i::operator== | ( | UInt64_t | a_jobID | ) | [inline] |
Definition at line 208 of file i_job_impl.h.
References GetJobId().
00208 { 00209 return this->GetJobId() == a_jobID; 00210 }

friend class job_Executor [friend] |
| vector<i_BackEndAgent_var> i_Job_i::m_activeBeas |
Definition at line 204 of file i_job_impl.h.
Referenced by ActivateBea(), i_MediumDupl_i::CheckTargetMedium(), i_AdminJob_i::CloseVolume(), i_EfficientRecallJob_i::CompleteJob(), i_AdminJob_i::DetectVolumeHeader(), i_AdminJob_i::DoInitialize(), i_AdminJob_i::Format(), i_MaintFriJob_i::GetFRI(), i_BackupJob_i::i_BackupJob_i(), i_EfficientRecallJob_i::i_EfficientRecallJob_i(), i_MaintFriJob_i::i_MaintFriJob_i(), i_MediumDupl_i::i_MediumDupl_i(), i_MigrationJob_i::i_MigrationJob_i(), i_RecallJob_i::i_RecallJob_i(), i_RedundantCopyJob_i::i_RedundantCopyJob_i(), i_ReorgJob_i::i_ReorgJob_i(), i_AdminJob_i::Initialize(), i_ReorgJob_i::InitializeSingleVolume(), i_AdminJob_i::InitJob(), i_MediumDupl_i::MediumOperationComplete(), i_MaintFriJob_i::MediumOperationComplete(), i_ReorgJob_i::MigrateFiles(), i_RedundantCopyJob_i::MigrateFiles(), i_MediumDupl_i::PreFormat(), i_RecallJob_i::Process(), i_MigrationJob_i::Process(), i_MediumDupl_i::Process(), i_EfficientRecallJob_i::Process(), i_RedundantCopyJob_i::ReadSourceData(), i_ReorgJob_i::ReadSourceVolume(), i_RecallJob_i::RecallRetry(), i_MaintFriJob_i::RecreateFRI(), i_AdminJob_i::RecreateFRIandMIC(), RegisterBEA(), i_AdminJob_i::StartBEA(), WaitBea(), WaitBeasToFinish(), and ~i_Job_i().
Definition at line 212 of file i_job_impl.h.
Referenced by i_MediumDupl_i::CheckTargetMedium(), i_ThreadJob_i::CompleteJob(), i_ReorgJob_i::CompleteJob(), i_RedundantCopyJob_i::CompleteJob(), i_MigrationJob_i::CompleteJob(), i_MaintFriJob_i::CompleteJob(), i_ReorgScanJob_i::Execute(), i_ReorgJob_i::Execute(), i_RedundantCopyJob_i::Execute(), i_RecreatedIVDFSJob_i::Execute(), i_RecallJob_i::Execute(), i_MigrationJob_i::Execute(), i_MediumDupl_i::Execute(), i_MediumCheckJob_i::Execute(), i_MaintFriJob_i::Execute(), i_FSCCheckJob_i::Execute(), i_EfficientRecallJob_i::Execute(), i_DelExpiredFilesJob_i::Execute(), i_AdminJob_i::Execute(), i_BackupJob_i::GetNewResources(), i_MigrationJob_i::MediumOperationComplete(), i_MediumDupl_i::MediumOperationComplete(), i_MaintFriJob_i::MediumOperationComplete(), i_EfficientRecallJob_i::MediumOperationComplete(), i_ReorgJob_i::MigrateFiles(), i_RedundantCopyJob_i::MigrateFiles(), i_RedundantCopyJob_i::Prepare(), i_RecallJob_i::PrepareResource(), i_EfficientRecallJob_i::PrepareResource(), i_BackupJob_i::PrepareResource(), i_ReorgJob_i::RecallFiles(), i_RedundantCopyJob_i::RecallFiles(), ReleaseDiskBuffer(), Remove(), i_BackupJob_i::Remove(), RequestDiskBuffer(), i_MaintFriJob_i::RequestResources(), pm_FriProcessor::Run(), job_Executor::Run(), SetCompletionStatus(), i_RecoveryJob_i::~i_RecoveryJob_i(), i_RedundantCopyJob_i::~i_RedundantCopyJob_i(), i_ReorgScanJob_i::~i_ReorgScanJob_i(), job_Executor::~job_Executor(), and pm_FriProcessor::~pm_FriProcessor().
bool i_Job_i::m_jobValid [protected] |
Reimplemented in i_AdminJob_i.
Definition at line 217 of file i_job_impl.h.
Referenced by CheckJobValid(), and SetJobValid().
job_Manager& i_Job_i::m_jobMgr [protected] |
i_JobParams i_Job_i::m_iJobParams [protected] |
Definition at line 219 of file i_job_impl.h.
Referenced by AbortJob(), i_FSCCheckJob_i::AbortJob(), i_EfficientRecallJob_i::AbortRecallOnHsm(), ActivateBea(), i_MigrationJob_i::AssignResources(), i_MediumDupl_i::AssignResources(), AssignResources(), i_MaintFriJob_i::CheckReadFri(), i_MediumDupl_i::CheckTargetMedium(), ClearResStatus(), i_AdminJob_i::CloseVolume(), i_ThreadJob_i::CompleteJob(), i_ReorgJob_i::CompleteJob(), i_RecallJob_i::CompleteJob(), i_MigrationJob_i::CompleteJob(), i_MediumDupl_i::CompleteJob(), i_MediumCheckJob_i::CompleteJob(), i_MaintFriJob_i::CompleteJob(), i_EfficientRecallJob_i::CompleteJob(), i_AdminJob_i::DeleteMedVolFromRMDB(), i_AdminJob_i::DetectVolumeHeader(), i_ReorgJob_i::DiskBufferCleanup(), i_AdminJob_i::DoInitialize(), i_ReorgScanJob_i::Execute(), i_ReorgJob_i::Execute(), i_RedundantCopyJob_i::Execute(), i_RecallJob_i::Execute(), i_MigrationJob_i::Execute(), i_MediumDupl_i::Execute(), i_MaintFriJob_i::Execute(), i_EfficientRecallJob_i::Execute(), i_BackupJob_i::Execute(), i_AdminJob_i::Execute(), i_AdminJob_i::Format(), GetDiskBufferFileName(), GetJobId(), GetJobParams(), GetJobStatus(), GetJobTypeEnum(), i_ReorgJob_i::GetNewResources(), i_RedundantCopyJob_i::GetNewResources(), i_MigrationJob_i::GetNewResources(), i_BackupJob_i::GetNewResources(), i_RecallJob_i::GetNextRecallSet(), i_EfficientRecallJob_i::GetNextRecallSet(), GetStatus(), i_AdminJob_i::i_AdminJob_i(), i_BackupJob_i::i_BackupJob_i(), i_EfficientRecallJob_i::i_EfficientRecallJob_i(), i_Job_i(), i_MaintFriJob_i::i_MaintFriJob_i(), i_MediumCheckJob_i::i_MediumCheckJob_i(), i_MediumDupl_i::i_MediumDupl_i(), i_MigrationJob_i::i_MigrationJob_i(), i_RecallJob_i::i_RecallJob_i(), i_RecoveryJob_i::i_RecoveryJob_i(), i_RedundantCopyJob_i::i_RedundantCopyJob_i(), i_ReorgJob_i::i_ReorgJob_i(), i_ThreadJob_i::i_ThreadJob_i(), i_AdminJob_i::Initialize(), i_ReorgJob_i::InitializeSingleVolume(), i_AdminJob_i::InitializeSingleVolume(), i_ReorgJob_i::InitializeVolumes(), i_AdminJob_i::InitJob(), IsAborted(), IsResMedOpComplete(), LoadUnload(), i_ThreadJob_i::MediumOperationComplete(), i_ReorgJob_i::MediumOperationComplete(), i_RedundantCopyJob_i::MediumOperationComplete(), i_RecallJob_i::MediumOperationComplete(), i_MigrationJob_i::MediumOperationComplete(), i_MediumDupl_i::MediumOperationComplete(), i_MaintFriJob_i::MediumOperationComplete(), i_EfficientRecallJob_i::MediumOperationComplete(), i_ReorgJob_i::MigrateFiles(), i_RedundantCopyJob_i::MigrateFiles(), NeedsProcess(), i_AdminJob_i::OperateLA(), i_MediumDupl_i::PreFormat(), i_RedundantCopyJob_i::Prepare(), i_MaintFriJob_i::PrepareMedium(), i_EfficientRecallJob_i::PrepareRecallListSeq(), i_RecallJob_i::PrepareResource(), i_EfficientRecallJob_i::PrepareResource(), i_RecallJob_i::Process(), i_MediumDupl_i::Process(), i_MaintFriJob_i::Process(), i_EfficientRecallJob_i::Process(), i_RecoveryJob_i::ProcessFRI(), i_MediumCheckJob_i::ProcessFRI(), i_RedundantCopyJob_i::ReadSourceData(), i_ReorgJob_i::ReadSourceVolume(), i_ReorgJob_i::RecallFiles(), i_RedundantCopyJob_i::RecallFiles(), i_RecallJob_i::RecallRetry(), i_AdminJob_i::RecreateFRIandMIC(), ReleaseDiskBuffer(), ReleaseResource(), i_RecallJob_i::ReleaseResources(), i_MaintFriJob_i::ReleaseResources(), i_EfficientRecallJob_i::ReleaseResources(), Remove(), i_BackupJob_i::Remove(), i_ReorgJob_i::ReorgStatusCleanup(), RequestDiskBuffer(), i_MaintFriJob_i::RequestResources(), ResetResMedOpComplete(), job_Executor::Run(), pm_RecallClientThread::Run(), pm_AssignResThread::Run(), SetPriority(), SetResAllocatedd(), SetResAssigned(), SetResBeaStarted(), SetResLoaded(), SetResMedOpComplete(), SetResProcessed(), SetResReleased(), SetResRequested(), SetStatus(), i_AdminJob_i::SetSysVolIdx(), Start(), i_AdminJob_i::StartBEA(), WaitBea(), i_AdminJob_i::~i_AdminJob_i(), ~i_Job_i(), i_MaintFriJob_i::~i_MaintFriJob_i(), i_MediumDupl_i::~i_MediumDupl_i(), i_MigrationJob_i::~i_MigrationJob_i(), i_RedundantCopyJob_i::~i_RedundantCopyJob_i(), and i_ThreadJob_i::~i_ThreadJob_i().
i_ResourceManager_var i_Job_i::m_rm [protected] |
Definition at line 221 of file i_job_impl.h.
Referenced by AbortJob(), i_BackupJob_i::AllocateDiskBuffer(), i_AdminJob_i::CheckMedium(), i_AdminJob_i::CheckPartition(), i_AdminJob_i::CheckPool(), i_MediumDupl_i::CheckTargetMedium(), i_AdminJob_i::CheckVolumesForFriMicJob(), i_AdminJob_i::CloseVolume(), i_MigrationJob_i::CompleteJob(), i_MaintFriJob_i::CompleteJob(), i_AdminJob_i::DeleteMedVolFromRMDB(), i_AdminJob_i::DoInitialize(), i_ReorgScanJob_i::Execute(), i_MigrationJob_i::Execute(), i_MediumDupl_i::Execute(), i_AdminJob_i::Execute(), i_AdminJob_i::Format(), GetJobParams(), i_ReorgJob_i::GetNewResources(), i_RedundantCopyJob_i::GetNewResources(), i_MigrationJob_i::GetNewResources(), i_BackupJob_i::GetNewResources(), i_BackupJob_i::i_BackupJob_i(), i_Job_i(), i_MediumDupl_i::i_MediumDupl_i(), i_RedundantCopyJob_i::i_RedundantCopyJob_i(), i_ReorgJob_i::i_ReorgJob_i(), i_AdminJob_i::Initialize(), i_ReorgJob_i::InitializeSingleVolume(), i_AdminJob_i::InitializeSingleVolume(), i_ReorgJob_i::InitializeVolumes(), i_ReorgJob_i::MediumOperationComplete(), i_RecallJob_i::MediumOperationComplete(), i_MigrationJob_i::MediumOperationComplete(), i_MediumDupl_i::MediumOperationComplete(), i_ReorgJob_i::MigrateFiles(), i_RedundantCopyJob_i::MigrateFiles(), i_AdminJob_i::OperateLA(), i_MediumDupl_i::PreFormat(), i_RedundantCopyJob_i::Prepare(), i_MaintFriJob_i::PrepareMedium(), i_RecallJob_i::PrepareResource(), i_EfficientRecallJob_i::PrepareResource(), i_BackupJob_i::PrepareResource(), i_MaintFriJob_i::PrepareVolumes(), i_RecallJob_i::Process(), i_EfficientRecallJob_i::Process(), i_RecoveryJob_i::ProcessFRI(), i_ReorgJob_i::ReadSourceVolume(), i_ReorgJob_i::RecallFiles(), i_RedundantCopyJob_i::RecallFiles(), ReleaseDiskBuffer(), ReleaseResource(), i_RecallJob_i::ReleaseResources(), i_MaintFriJob_i::ReleaseResources(), i_EfficientRecallJob_i::ReleaseResources(), i_ReorgJob_i::ReorgStatusCleanup(), RequestDiskBuffer(), i_MaintFriJob_i::RequestResources(), SetDriveProperties(), i_RecoveryJob_i::SetRecoveryFlagOnVolumes(), i_AdminJob_i::SetVolumes(), i_ReorgJob_i::UpdateMediumStatus(), i_AdminJob_i::~i_AdminJob_i(), ~i_Job_i(), i_RedundantCopyJob_i::~i_RedundantCopyJob_i(), and i_ReorgJob_i::~i_ReorgJob_i().
i_Job_var i_Job_i::m_iJob [protected] |
Definition at line 222 of file i_job_impl.h.
Referenced by ActivateJob(), i_MediumDupl_i::CheckTargetMedium(), i_MigrationJob_i::Execute(), i_MediumDupl_i::Execute(), i_DelExpiredFilesJob_i::Execute(), GetJob(), i_ReorgJob_i::GetNewResources(), i_RedundantCopyJob_i::GetNewResources(), i_MigrationJob_i::GetNewResources(), i_ReorgJob_i::InitializeVolumes(), i_RecallJob_i::MediumOperationComplete(), i_MediumDupl_i::MediumOperationComplete(), i_ReorgJob_i::MigrateFiles(), i_RedundantCopyJob_i::MigrateFiles(), i_RecallJob_i::PrepareResource(), i_EfficientRecallJob_i::PrepareResource(), i_ReorgJob_i::RecallFiles(), i_RedundantCopyJob_i::RecallFiles(), and i_MaintFriJob_i::RequestResources().
job_Executor* i_Job_i::m_executor [protected] |
cmn_Mutex i_Job_i::m_jobParams_x [protected] |
Definition at line 226 of file i_job_impl.h.
Referenced by GetStatus(), i_Job_i(), SetPriority(), SetStatus(), and Start().
cmn_Mutex i_Job_i::m_activate_x [protected] |
Definition at line 228 of file i_job_impl.h.
Referenced by AbortJob(), i_MigrationJob_i::AssignResources(), AssignResources(), i_MediumDupl_i::CheckTargetMedium(), i_RecallJob_i::Execute(), i_MigrationJob_i::Execute(), i_MediumDupl_i::Execute(), i_MaintFriJob_i::Execute(), i_EfficientRecallJob_i::Execute(), i_BackupJob_i::Execute(), i_AdminJob_i::Execute(), i_ReorgJob_i::GetNewResources(), i_RedundantCopyJob_i::GetNewResources(), i_MigrationJob_i::GetNewResources(), i_ReorgJob_i::InitializeVolumes(), i_ReorgJob_i::MediumOperationComplete(), i_RedundantCopyJob_i::MediumOperationComplete(), i_RecallJob_i::MediumOperationComplete(), i_MigrationJob_i::MediumOperationComplete(), i_MediumDupl_i::MediumOperationComplete(), i_MaintFriJob_i::MediumOperationComplete(), i_EfficientRecallJob_i::MediumOperationComplete(), i_ReorgJob_i::MigrateFiles(), i_RedundantCopyJob_i::MigrateFiles(), i_ReorgJob_i::RecallFiles(), i_RedundantCopyJob_i::RecallFiles(), Remove(), i_BackupJob_i::Remove(), and i_ReorgJob_i::Wait().
cmn_Condition i_Job_i::m_activate_c [protected] |
Definition at line 229 of file i_job_impl.h.
Referenced by AbortJob(), AssignResources(), i_MediumDupl_i::CheckTargetMedium(), i_BackupJob_i::Execute(), i_AdminJob_i::Execute(), i_ReorgJob_i::GetNewResources(), i_RedundantCopyJob_i::GetNewResources(), i_MigrationJob_i::GetNewResources(), i_ReorgJob_i::InitializeVolumes(), i_ReorgJob_i::MediumOperationComplete(), i_RedundantCopyJob_i::MediumOperationComplete(), i_RecallJob_i::MediumOperationComplete(), i_MigrationJob_i::MediumOperationComplete(), i_MediumDupl_i::MediumOperationComplete(), i_MaintFriJob_i::MediumOperationComplete(), i_EfficientRecallJob_i::MediumOperationComplete(), i_ReorgJob_i::MigrateFiles(), i_RedundantCopyJob_i::MigrateFiles(), i_ReorgJob_i::RecallFiles(), i_RedundantCopyJob_i::RecallFiles(), Remove(), i_BackupJob_i::Remove(), i_ReorgJob_i::Wait(), and WaitBeasToFinish().
cmn_Mutex i_Job_i::m_registerBea_x [protected] |
cmn_Condition i_Job_i::m_registerBea_c [protected] |
cmn_Mutex i_Job_i::m_abort_x [protected] |
cmn_Mutex i_Job_i::m_finished_x [protected] |
bool i_Job_i::m_finished [protected] |
bool i_Job_i::m_aborted [protected] |
Definition at line 238 of file i_job_impl.h.
Referenced by AbortJob(), i_ThreadJob_i::CompleteJob(), i_ReorgJob_i::CompleteJob(), i_MigrationJob_i::CompleteJob(), i_MaintFriJob_i::CompleteJob(), IsAborted(), i_BackupJob_i::Remove(), ~i_Job_i(), and i_RedundantCopyJob_i::~i_RedundantCopyJob_i().
bool i_Job_i::m_dbAllocated [protected] |
Definition at line 240 of file i_job_impl.h.
Referenced by ReleaseDiskBuffer(), and RequestDiskBuffer().
bool i_Job_i::m_dbExist [protected] |
Definition at line 241 of file i_job_impl.h.
Referenced by ReleaseDiskBuffer(), and SetDiskBufferWritten().
bool i_Job_i::m_dbReleased [protected] |
Definition at line 242 of file i_job_impl.h.
Referenced by ReleaseDiskBuffer(), and RequestDiskBuffer().
job_dbgDiskBuf_e i_Job_i::m_dbDeleteFiles [protected] |
Definition at line 243 of file i_job_impl.h.
Referenced by ReleaseDiskBuffer(), and RequestDiskBuffer().
UInt64_t i_Job_i::m_dbSize [protected] |
cmn_ThreadCounter i_Job_i::m_threadCounter [protected] |
Definition at line 247 of file i_job_impl.h.
Referenced by job_Executor::job_Executor(), ~i_Job_i(), and job_Executor::~job_Executor().
bool i_Job_i::m_completeOnExecFinished [protected] |
Definition at line 248 of file i_job_impl.h.
Referenced by job_Executor::Run(), and job_Executor::~job_Executor().
bool i_Job_i::m_execTheadStarted [protected] |
cmn_Mutex i_Job_i::m_beasStatus_x [protected] |
Definition at line 250 of file i_job_impl.h.
Referenced by i_MediumDupl_i::CheckTargetMedium(), i_ReorgJob_i::GetNewResources(), i_RedundantCopyJob_i::GetNewResources(), i_MigrationJob_i::GetNewResources(), i_ReorgJob_i::InitializeSingleVolume(), i_ReorgJob_i::MediumOperationComplete(), i_RedundantCopyJob_i::MediumOperationComplete(), i_RecallJob_i::MediumOperationComplete(), i_MigrationJob_i::MediumOperationComplete(), i_MediumDupl_i::MediumOperationComplete(), i_MaintFriJob_i::MediumOperationComplete(), i_EfficientRecallJob_i::MediumOperationComplete(), i_ReorgJob_i::MigrateFiles(), i_RedundantCopyJob_i::MigrateFiles(), i_RecallJob_i::Process(), i_MigrationJob_i::Process(), i_MediumDupl_i::Process(), i_MaintFriJob_i::Process(), i_EfficientRecallJob_i::Process(), i_RedundantCopyJob_i::ReadSourceData(), i_ReorgJob_i::ReadSourceVolume(), i_RecallJob_i::RecallRetry(), i_MaintFriJob_i::RecreateFRI(), and ~i_Job_i().
i_Job_i::log_CLASSID_m [private] |
Reimplemented from i_Component_i.
Reimplemented in i_AdminJob_i, i_BackupJob_i, i_MediumDupl_i, i_DelExpiredFilesJob_i, i_FSCCheckJob_i, i_MaintFriJob_i, i_MediumCheckJob_i, i_MigrationJob_i, i_RecallJob_i, i_EfficientRecallJob_i, i_RecoveryJob_i, i_RecreatedIVDFSJob_i, i_RedundantCopyJob_i, i_ReorgJob_i, i_ReorgScanJob_i, and i_ThreadJob_i.
Definition at line 253 of file i_job_impl.h.
i_ResourceList_t i_Job_i::m_resources [private] |
Definition at line 257 of file i_job_impl.h.
Referenced by AssignResources(), ClearResStatus(), GetAllResource(), GetJobParams(), GetResources(), IsResMedOpComplete(), NeedsProcess(), ResetResMedOpComplete(), SetDriveProperties(), SetResAllocatedd(), SetResAssigned(), SetResBeaStarted(), SetResLoaded(), SetResMedOpComplete(), SetResourceBusyStatus(), SetResources(), SetResProcessed(), SetResReleased(), SetResRequested(), and StartBea().
vector<ivd_BeaStatus_e> i_Job_i::m_beasStatus [private] |
Definition at line 258 of file i_job_impl.h.
Referenced by GetBeaStatus(), InitBeaStatus(), SetBeaStatus(), WaitBeasToFinish(), and ~i_Job_i().
Definition at line 261 of file i_job_impl.h.
Referenced by AssignResources(), ClearResStatus(), GetJobParams(), GetResources(), IsResMedOpComplete(), NeedsProcess(), ResetResMedOpComplete(), SetDriveProperties(), SetResAllocatedd(), SetResAssigned(), SetResBeaStarted(), SetResLoaded(), SetResMedOpComplete(), SetResourceBusyStatus(), SetResources(), SetResProcessed(), SetResReleased(), SetResRequested(), and StartBea().
1.5.6