Publisherin PL/SQL-funktiot voi määrittää ajettaviksi, kun yhteys JDBC-tietolähteeseen luodaan (esikäsittelyfunktio) tai suljetaan (jälkikäsittelyfunktio).
Funktion täytyy palauttaa totuusarvo. Tätä ominaisuutta tuetaan vain Oraclen tietokannoissa.
Näiden kahden kentän avulla pääkäyttäjä voi asettaa käyttäjän kontekstimääritteet ennen kuin tietokantayhteys luodaan ja poistaa määritteet käytöstä, kun poimintaohjelma on katkaissut yhteyden.
Järjestelmämuuttujaa :xdo_user_name voi käyttää sidosmuuttujana käyttäjätunnuksen välittämiseen PL/SQL-funktiokutsuille. Kirjautuneen käyttäjän kontekstin määrittäminen tällä tavalla auttaa suojaamaan tiedot tietolähteen tasolla (SQL-kyselyn tason sijaan).
Oletetaan esimerkiksi, että funktio on seuraava:
FUNCTION set_per_process_username (username_in IN VARCHAR2) RETURN BOOLEAN IS BEGIN SETUSERCONTEXT(username_in); return TRUE; END set_per_process_username
Voit kutsua tätä funktiota aina, kun tietokantayhteys muodostetaan, kirjoittamalla seuraavan komennon Esikäsittelyfunktio-kenttään: set_per_process_username(:xdo_user_name)
Toinen käyttötapa on lisätä rivi LOGTAB-tauluun aina, kun käyttäjä muodostaa tai katkaisee yhteyden:
CREATE OR REPLACE FUNCTION BIP_LOG (user_name_in IN VARCHAR2, smode IN VARCHAR2) RETURN BOOLEAN AS BEGIN INSERT INTO LOGTAB VALUES(user_name_in, sysdate,smode); RETURN true; END BIP_LOG;
Kirjoita Esikäsittelyfunktio-kenttään: BIP_LOG(:xdo_user_name)
Kun tietokantaan muodostetaan uusi yhteys, se kirjataan LOGTAB-tauluun. SMODE-arvo määrittää, koskeeko kirjaus alkavaa vai päättyvää yhteyttä. Jos tätä funktiota kutsutaan myös Jälkikäsittelyfunktio-kohdassa, se palauttaa alla olevassa taulukossa esitetyn kaltaisia tuloksia.