protected void closeJobManagerConnection ( JobID jobId , Exception cause ) { JobManagerRegistration jobManagerRegistration = jobManagerRegistrations . remove ( jobId ) ; if ( jobManagerRegistration != null ) { final ResourceID jobManagerResourceId = jobManagerRegistration . getJobManagerResourceID ( ) ; final JobMasterGateway jobMasterGateway = jobManagerRegistration . getJobManagerGateway ( ) ; final JobMasterId jobMasterId = jobManagerRegistration . getJobMasterId ( ) ; log . info ( "Disconnect job manager {}@{} for job {} from the resource manager." , jobMasterId , jobMasterGateway . getAddress ( ) , jobId ) ; jobManagerHeartbeatManager . unmonitorTarget ( jobManagerResourceId ) ; jmResourceIdRegistrations . remove ( jobManagerResourceId ) ; // tell the job manager about the disconnect jobMasterGateway . disconnectResourceManager ( getFencingToken ( ) , cause ) ; } else { log . debug ( "There was no registered job manager for job {}." , jobId ) ; } }
This method should be called by the framework once it detects that a currently registered job manager has failed .