Rem drv:
Rem
Rem $Header: target_data_upgrade.sql 08-sep-2005.01:33:42 neearora Exp $
Rem
Rem target_data_upgrade.sql
Rem
Rem Copyright (c) 2005, Oracle. All rights reserved.
Rem
Rem NAME
Rem target_data_upgrade.sql -
Rem
Rem DESCRIPTION
Rem
Rem
Rem NOTES
Rem
Rem
Rem MODIFIED (MM/DD/YY)
Rem neearora 09/08/05 - bug 4597635. compare emd_url on basis of name
Rem and port
Rem pmodi 08/24/05 - Bug:4569754 use is_fatally_broken function
Rem pmodi 07/22/05 - Created
Rem
-- Bug:4365302 - Log metric error for al broken target
--Script to log metric error for broken target. Only for agent side target.
DECLARE
l_agent_guid mgmt_targets.target_guid%TYPE;
l_response_metric_guid mgmt_metrics.metric_guid%TYPE;
l_coll_name mgmt_coll_items.coll_name%TYPE;
l_avail_marker_ts mgmt_availability.start_collection_timestamp%TYPE;
l_start_position NUMBER ;
l_end_position NUMBER ;
l_emd_url mgmt_targets.emd_url%TYPE;
BEGIN
FOR i IN (SELECT *
FROM mgmt_targets
WHERE emd_url IS NOT NULL
AND broken_reason != MGMT_GLOBAL.G_NOT_BROKEN) LOOP
IF EMD_LOADER.is_fatally_broken(i.broken_reason) THEN
l_start_position := INSTR(i.emd_url,':');
l_end_position := INSTR(i.emd_url,'/',l_start_position + 3);
l_emd_url := SUBSTR(i.emd_url,l_start_position + 3, l_end_position - l_start_position - 3);
l_emd_url := '%'|| l_emd_url ||'%';
SELECT target_guid
INTO l_agent_guid
FROM mgmt_targets
WHERE target_type = MGMT_GLOBAL.G_AGENT_TARGET_TYPE
AND emd_url like l_emd_url;
BEGIN
SELECT m.metric_guid
INTO l_response_metric_guid
FROM MGMT_METRICS m
WHERE m.target_type = i.target_type
AND m.type_meta_ver = i.type_meta_ver
AND (m.category_prop_1 = i.category_prop_1 OR m.category_prop_1 = ' ')
AND (m.category_prop_2 = i.category_prop_2 OR m.category_prop_2 = ' ')
AND (m.category_prop_3 = i.category_prop_3 OR m.category_prop_3 = ' ')
AND (m.category_prop_4 = i.category_prop_4 OR m.category_prop_4 = ' ')
AND (m.category_prop_5 = i.category_prop_5 OR m.category_prop_5 = ' ')
AND m.metric_name = MGMT_GLOBAL.G_AVAIL_METRIC_NAME
AND m.metric_column = ' '
AND ROWNUM = 1;
EXCEPTION
WHEN NO_DATA_FOUND THEN
l_response_metric_guid := NULL;
END;
IF l_response_metric_guid IS NOT NULL THEN
BEGIN
SELECT mci.coll_name
INTO l_coll_name
FROM mgmt_coll_items mci, mgmt_coll_item_metrics mcim
WHERE mcim.metric_guid = l_response_metric_guid
AND mcim.type_meta_ver = mci.type_meta_ver
AND mcim.type_meta_ver = i.type_meta_ver
AND mcim.target_type = mci.target_type
AND mcim.target_type = i.target_type
AND mcim.coll_name = mci.coll_name
AND (mci.category_prop_1 = i.category_prop_1 OR mci.category_prop_1 = ' ')
AND (mci.category_prop_2 = i.category_prop_2 OR mci.category_prop_2 = ' ')
AND (mci.category_prop_3 = i.category_prop_3 OR mci.category_prop_3 = ' ')
AND (mci.category_prop_4 = i.category_prop_4 OR mci.category_prop_4 = ' ')
AND (mci.category_prop_5 = i.category_prop_5 OR mci.category_prop_5 = ' ');
EXCEPTION
WHEN NO_DATA_FOUND THEN
l_coll_name := MGMT_GLOBAL.G_AVAIL_METRIC_NAME ;
END;
SELECT marker_timestamp INTO l_avail_marker_ts
FROM mgmt_availability_marker
WHERE target_guid = i.target_guid;
BEGIN
INSERT INTO MGMT_METRIC_ERRORS
(target_guid, metric_guid, coll_name,
agent_guid, collection_timestamp, metric_error_message, metric_error_type)
VALUES
(i.target_guid, l_response_metric_guid, l_coll_name,
l_agent_guid, GREATEST(MGMT_TARGET.sysdate_target(i.target_guid), l_avail_marker_ts),
'Target is in broken state. Reason - '||i.broken_str, MGMT_GLOBAL.G_METRIC_ERROR_TYPE_ERROR) ;
EXCEPTION
WHEN OTHERS THEN
MGMT_LOG.LOG_ERROR('LOADER', 0,
'Unable to log metric error for broken target (upgrade) : ' ||
'(target_guid : '||i.target_guid || ')' ||
'(agent_guid : '||l_agent_guid || ') ( broken_msg : '|| i.broken_str || ')' ||
'(Error : '||sqlerrm ||')' );
END;
END IF;
END IF;
END LOOP;
COMMIT;
END;
/