упрощенно выглядит так - на клиенте открыт на прослушивание tcp/ip сокет. В базе есть таблица в которой хранятся сообщения для клиента. Когда появляется новая запись срабатывает триггер, который определяет есть ли клиент в онлайн и с помощью расширенной хранимой процедуры отсылает пакет...
demav, ИМХО, проще всего клиентскому приложению слушать сокет, а из базы, например, из триггера посылать сообщение о том что для него что то есть. По крайней мере, в нашем проекте, мгновенные оповещения об изменении статуса задачи сделаны именно так.