Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: send_message (timeout)

Re: send_message (timeout)

From: Vladimir M. Zakharychev <bob_at_dpsp-yes.com>
Date: Mon, 17 Mar 2003 17:52:12 +0300
Message-ID: <b54nql$f58$1@babylon.agtel.net>


"dbuckingham" <member8912_at_dbforums.com> wrote in message news:2650958.1047876861_at_dbforums.com...
>
> Can anyone explain to me how the "timeout" functionality in send
> message works?
> I understand that it relates to how long the process is willing to wait
> to put the message in the pipe, but I would like to know what the
> consequences are of making the timeout smaller (e.g. 10sec or even
> 0secs) if the pipe is full. Will the message be purged or does go back
> into the que to be tried again?

It doesn't go anywhere. If the timeout is expired and message was not sent due to lack of pipe buffer space, you just receive non-zero code from send_message(). You then decide whether you want to retry or ignore. The message remains packed in the DBMS_PIPE's local message buffer unless you call RESET_BUFFER to purge stale/expired messages (hmm... I think this is what you described as "goes back into the queue".) So, if you get non-zero return from send_message, you can retry send_message immediately - DBMS_PIPE will attempt to send all messages currently in the local message buffer again.

Hope I got it right - the documentation on DBMS_PIPE indeed lacks on inner workings of the feature. :)

-- 
Vladimir Zakharychev (bob@dpsp-yes.com)                http://www.dpsp-yes.com
Dynamic PSP(tm) - the first true RAD toolkit for Oracle-based internet applications.
All opinions are mine and do not necessarily go in line with those of my employer.
Received on Mon Mar 17 2003 - 08:52:12 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US