1.65.  failednode2( integer, integer, integer, bigint, bigint )

Propriétés de la fonction
Langage: PLPGSQL
Type du code retour: bigint

Sur le nœud qui a le numéro de séquence le plus élevé sur le nœud en échec, contrefait un événement FAILOVER_SET.

declare
        p_failed_node           alias for $1;
        p_backup_node           alias for $2;
        p_set_id                        alias for $3;
        p_ev_seqno                      alias for $4;
        p_ev_seqfake            alias for $5;
        v_row                           record;
begin
        -- ----
        -- Grab the central configuration lock
        -- ----
        lock table sl_config_lock;

        select * into v_row
                        from sl_event
                        where ev_origin = p_failed_node
                        and ev_seqno = p_ev_seqno;
        if not found then
                raise exception 'Slony-I: event %,% not found',
                                p_failed_node, p_ev_seqno;
        end if;

        insert into sl_event
                        (ev_origin, ev_seqno, ev_timestamp,
                        ev_minxid, ev_maxxid, ev_xip,
                        ev_type, ev_data1, ev_data2, ev_data3)
                        values 
                        (p_failed_node, p_ev_seqfake, CURRENT_TIMESTAMP,
                        v_row.ev_minxid, v_row.ev_maxxid, v_row.ev_xip,
                        'FAILOVER_SET', p_failed_node::text, p_backup_node::text,
                        p_set_id::text);
        insert into sl_confirm
                        (con_origin, con_received, con_seqno, con_timestamp)
                        values
                        (p_failed_node, getLocalNodeId('_schemadoc'),
                        p_ev_seqfake, CURRENT_TIMESTAMP);
        notify "_schemadoc_Event";
        notify "_schemadoc_Confirm";
        notify "_schemadoc_Restart";

        perform failoverSet_int(p_failed_node,
                        p_backup_node, p_set_id, p_ev_seqfake);

        return p_ev_seqfake;
end;