Rem drv:
Rem
Rem $Header: formsapp_data_upgrade.sql 03-may-2006.14:05:53 yxie Exp $
Rem
Rem formsapp_data_upgrade.sql
Rem
Rem Copyright (c) 2006, Oracle. All rights reserved.
Rem
Rem NAME
Rem formsapp_data_upgrade.sql -
Rem
Rem DESCRIPTION
Rem
Rem
Rem NOTES
Rem
Rem
Rem MODIFIED (MM/DD/YY)
Rem yxie 04/03/06 - Created
Rem
DECLARE
MODULE_NAME VARCHAR2(32);
-- value of homepageUrl property of the webapp
homepageUrl MGMT_TARGET_PROPERTIES.PROPERTY_VALUE%TYPE;
-- properties might be able to get migrated from webapp to formsapp
p_svc_props MGMT_TARGET_PROPERTY_LIST := MGMT_TARGET_PROPERTY_LIST ();
-- system name and type of the website target
p_system_name MGMT_TARGETS.TARGET_NAME%TYPE;
p_system_type MGMT_TARGETS.TARGET_TYPE%TYPE;
-- critical components
p_critical_components SMP_EMD_NVPAIR_ARRAY := SMP_EMD_NVPAIR_ARRAY();
-- function to evaluate availability
p_avail_eval_func MGMT_METRIC_DEPENDENCY.EVAL_FUNC%TYPE;
l_counter NUMBER := 0;
formsapp_guid MGMT_TARGETS.TARGET_GUID%TYPE;
region_guid MGMT_RT_REGIONS.REGION_GUID%TYPE;
formsapp_created BOOLEAN;
add_region_result INTEGER;
BEGIN
MODULE_NAME := 'Formsapp10203Upgrade';
mgmt_log.register_logging_module ( MODULE_NAME,
'Forms Application 10.2.0.3 Upgrade');
FOR each_webapp IN
(SELECT t.target_name,
t.target_type,
t.category_prop_1,
t.category_prop_2,
t.category_prop_3,
t.category_prop_4,
t.category_prop_5,
t.target_guid,
t.timezone_region,
t.display_name,
t.host_name,
t.emd_url
FROM mgmt_targets t, mgmt_target_properties tp
WHERE t.target_type = MGMT_GLOBAL.G_WEBSITE_TARGET_TYPE
AND t.target_guid = tp.target_guid
AND tp.property_name = 'app_type'
AND tp.property_value IN ('FORMS', 'is_form', 'forms'))
LOOP
BEGIN
-- First check if a formsapp with the same name as the webapp already exists
-- If it does, stop upgrade and return
formsapp_guid := null;
BEGIN
formsapp_guid := MGMT_TARGET.GET_TARGET_GUID(each_webapp.target_name, mgmt_global.G_FORMSAPP_TARGET_TYPE);
EXCEPTION
WHEN OTHERS THEN
formsapp_guid := null;
END;
IF (formsapp_guid IS NULL) THEN
-- get the possible common property of the webapp and formsapp
BEGIN
p_svc_props := MGMT_TARGET_PROPERTY_LIST ();
SELECT property_value
INTO homepageUrl
FROM mgmt_target_properties
WHERE target_guid = each_webapp.target_guid
AND property_name = 'homepageUrl';
p_svc_props.extend;
p_svc_props(1) := MGMT_TARGET_PROPERTY('homepageUrl', 'INSTANCE', homepageUrl);
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
MGMT_LOG.LOG_ERROR(MODULE_NAME, NULL, 'Getting Web Application ' || each_webapp.target_name || ' Homepage URL Exception: ' || SQLERRM);
END;
-- get system of the website target
MGMT_SERVICE.GET_SYSTEM(each_webapp.target_name, each_webapp.target_type, p_system_name, p_system_type);
-- get critical components list
l_counter := 0;
p_critical_components := SMP_EMD_NVPAIR_ARRAY();
FOR each_component IN
(SELECT assoc_t.target_name, assoc_t.target_type
FROM mgmt_targets assoc_t,
mgmt_target_assocs assoc
WHERE assoc.assoc_target_guid = assoc_t.target_guid
AND assoc.source_target_guid = each_webapp.target_guid
AND assoc.assoc_guid = MGMT_ASSOC.g_depends_on_guid)
LOOP
BEGIN
l_counter := l_counter + 1;
p_critical_components.extend;
p_critical_components(l_counter) := SMP_EMD_NVPAIR(each_component.target_name, each_component.target_type);
EXCEPTION
WHEN OTHERS THEN
MGMT_LOG.LOG_ERROR(MODULE_NAME, NULL, 'Getting Web Application ' || each_webapp.target_name || ' Critical Components Exception: ' || SQLERRM);
END;
END LOOP;
-- get evaluation fucntion for availability
p_avail_eval_func := NULL;
MGMT_SERVICE.GET_AVAIL_EVAL_FUNC(each_webapp.target_name,
each_webapp.target_type,
p_avail_eval_func);
-- create a Forms Application target with the same name,
-- properties and associations
BEGIN
formsapp_created := TRUE;
MGMT_SERVICE.CREATE_SERVICE(each_webapp.target_name,
mgmt_global.G_FORMSAPP_TARGET_TYPE,
each_webapp.display_name,
each_webapp.host_name,
each_webapp.emd_url,
each_webapp.timezone_region,
p_svc_props,
p_system_name,
p_system_type,
p_critical_components,
p_avail_eval_func, -- always system based?
'1.0',
each_webapp.category_prop_1,
each_webapp.category_prop_2,
each_webapp.category_prop_3,
each_webapp.category_prop_4,
each_webapp.category_prop_5,
1);
EXCEPTION
WHEN OTHERS THEN
MGMT_LOG.LOG_ERROR(MODULE_NAME, NULL, 'Create Service ' || each_webapp.target_name || ' Exception: ' || SQLERRM);
formsapp_created := FALSE;
END;
IF (formsapp_created) THEN
formsapp_guid := MGMT_TARGET.GET_TARGET_GUID(each_webapp.target_name, mgmt_global.G_FORMSAPP_TARGET_TYPE);
-- copy over the EUM watch list to the new formsapp
FOR watchlist_item IN
(SELECT url_guid, display_name, url_filename, description
FROM mgmt_rt_urls
WHERE target_guid = each_webapp.target_guid)
LOOP
BEGIN
INSERT INTO mgmt_rt_urls
(target_guid,
display_name,
url_filename,
description)
VALUES
(formsapp_guid,
watchlist_item.display_name,
watchlist_item.url_filename,
watchlist_item.description);
EXCEPTION
WHEN OTHERS THEN
MGMT_LOG.LOG_ERROR(MODULE_NAME, NULL, 'Copying Web Application ' || each_webapp.target_name || ' EUM Watchlist Exception: ' || SQLERRM);
END;
END LOOP;
-- copy over the EUM regions to the new formsapp
FOR regionEntry IN
(SELECT r.region_name, r.description, re.min_ip, re.max_ip, re.domain
FROM mgmt_rt_regions r, mgmt_rt_region_entries re,
mgmt_rt_region_mapping rm
WHERE r.target_guid = each_webapp.target_guid
AND r.region_guid = rm.region_guid
AND re.ID = rm.ID)
LOOP
BEGIN
INSERT INTO mgmt_rt_regions
(target_guid,
region_name,
description)
VALUES
(formsapp_guid,
regionEntry.region_name,
regionEntry.description);
-- Now get the region guid
SELECT region_guid INTO region_guid
FROM mgmt_rt_regions
WHERE target_guid = formsapp_guid
AND region_name = regionEntry.region_name;
-- Insert region component
add_region_result := EMD_MNTR_USER.addRegionEntry(region_guid, regionEntry.domain, regionEntry.min_ip, regionEntry.max_ip);
EXCEPTION
WHEN OTHERS THEN
MGMT_LOG.LOG_ERROR(MODULE_NAME, NULL, 'Copying Web Application ' || each_webapp.target_name || ' EUM Regions Exception: ' || SQLERRM);
END;
END LOOP;
END IF;
END IF;
EXCEPTION
WHEN OTHERS THEN
MGMT_LOG.LOG_ERROR(MODULE_NAME, NULL, 'Upgrading Web Application '||each_webapp.target_name||' to Forms Application Exception: ' || SQLERRM);
END;
END LOOP;
COMMIT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
MGMT_LOG.LOG_ERROR(MODULE_NAME, NULL, 'Upgrading Web Applications to Forms Applications Exception: ' || SQLERRM);
END;
/
show errors;