boolean saveException = false;
Set<String> jobIDSet = callTreeMap.keySet();
for (String jobID : jobIDSet)
{
CallTree callTree = callTreeMap.get(jobID);
HadoopCallTreeNode node = callTreeNodeMap.get(jobID);
// CallTreeNode���擾�ł��Ȃ��ꍇ�͏����𒆒f����B
if (node == null)
return false;
// ��Ԓl�̍X�V���m�F����B
ArrayList<HadoopTaskStatus> taskStatusList = node
.getHadoopInfo().getTaskStatuses();
HadoopObjectAnalyzer.updateTaskStatuses(thisObject, taskStatusList);
// �v�����̕ۑ����s��
HadoopMeasurementInfo measurementInfo = HadoopMeasurementInfo.getInstance();
measurementInfo.addToTaskTrackerStatusList(node.getHadoopInfo());
SystemLogger.getInstance().debug("HadoopRecorder : node.getHadoopInfo() " + node.getHadoopInfo());
try
{
// �A���[���ʒm�����A�C�x���g�o�͏������s���B
recordAndAlarmEvents(callTree, callTreeRecorder, telegramId);
node.setEndTime(System.currentTimeMillis());
addEndVMStatus(node, null, callTreeRecorder);
if (cause != null && callTree.getCause() != cause)
{
callTreeRecorder.setExceptionOccured(true);
if (!saveException)
{
invocation.addThrowable(cause);
saveException = true;
}
callTree.setCause(cause);
if (config__.isAlarmException())
{
// ����������O���L�^������
node.setThrowable(cause);
node.setThrowTime(System.currentTimeMillis());
}
}
// JobID�ɑΉ�����TaskTrackerAction�������CallTreeNode�ɐݒ�
if (arrangedMap.containsKey(jobID))
{
node.getHadoopInfo().setTaskTrackerActions(arrangedMap.get(jobID));
// �㏈���̂��߂�Map����폜
arrangedMap.remove(jobID);
}
recorder.addCallTree(jobID, callTree);
if (invocation.getAlarmThreshold() != Invocation.THRESHOLD_NOT_SPECIFIED ||
invocation.getAlarmCpuThreshold() != Invocation.THRESHOLD_NOT_SPECIFIED)
{
// �ȉ��ACallTreeNode��root�̏ꍇ�A�܂���臒l���ʂɎw�肳��Ă���ꍇ�̏����B
// CallTreeNode��root�ŁA���v�l�L�^��臒l���Ă����ꍇ�ɁA�g�����U�N�V�������L�^����B
if (node.getAccumulatedTime() >= config__.getStatisticsThreshold())
recordTransaction(node);
// ���[�g�m�[�h�̏ꍇ�̏���
postProcessOnRootNode(callTree, node, callTreeRecorder);
}
}
catch (Throwable ex)
{
SystemLogger.getInstance().warn(ex);
return false;
}
}
}
// TaskTrackerStatus�̃W���uID�ɑΉ�����TaskTrackerAction��
// ������Ȃ������ꍇ�̌㏈��
Set<String> jobIDSet = arrangedMap.keySet();
for (String jobID : jobIDSet)
{
// �V�K�쐬����CallTreeNode��TaskTrackerAction��ݒ肵�Ď���
CallTree callTree = new CallTree();
initCallTree(callTree, methodName, callTreeRecorder);
HadoopCallTreeNode newNode = HadoopCallTreeRecorder.createNode(invocation, null, null, config__);
newNode.setDepth(0);
newNode.setTree(callTree);
callTree.setRootNode(newNode);
callTreeRecorder.setDepth(0);
// �J�n����VM��Ԃ��L�^
VMStatus vmStatus = createVMStatus(null, newNode, callTreeRecorder);
newNode.setStartTime(startTime);