1.50. enablenode( integer )

関数特性

言語: PLPGSQL

戻り値: bigint

no_id - ノード識別子番号 ノード no_id に対し ENABLE_NODE 事象を生成

declare
	p_no_id			alias for $1;
	v_local_node_id		int4;
	v_node_row		record;
begin
	-- ----
	-- 中枢構成にロックを取得
	-- ----
	lock table sl_config_lock;

	-- ----
	-- 私たちは活動的になるノードであるが
	-- 現在は動作しないようになっている事の検査
	-- ----
	v_local_node_id := getLocalNodeId('_schemadoc');
	select * into v_node_row
			from sl_node
			where no_id = p_no_id
			for update;
	if not found then 
		raise exception 'Slony-I: node % not found', p_no_id;
	end if;
	if v_node_row.no_active then
		raise exception 'Slony-I: node % is already active', p_no_id;
	end if;

	-- ----
	-- このノードを活性化し、ENABLE_NODE 事象を生成
	-- ----
	perform enableNode_int (p_no_id);
	return  createEvent('_schemadoc', 'ENABLE_NODE',
									p_no_id);
end;