Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.misc -> Re: dbms_pipe
Godfrey:
I'm at home now, and I only have here an old Oracle 8.1.7 personal, so I'm talking from (my bad) memory ;-).
>>With pack_message it tells me that there is no more room on the pipe.
Actually, you need to pack_message before you send it. (And it
appears that the 'packing area' and the 'pipe area' are the same place,
which strikes me as odd.)
No. I think the 'packing area' (and the buffer) is in the PGA, whereas the 'pipe area' is in the SGA.
>>By the way, how do you know about this table?
metalink is your friend ;-)
>>Again, what I think is happening is that Oracle makes note of when a
reader attaches to pipe. It makes note of it ONCE, and doesn't seem to
care if the reader goes down or when it 're-attaches'.
Don't think so, at least for public pipes. Pipes are memory areas in the SGA that work in a FIFO manner. Anyone can push in messages, anyone can pull out messages. (BTW the PIPE that you are using is a public one isn't it?)
In my old java app (which I reviewed) what I did was to create a master process that instantiates classes very similiar to 'your process'. This way I could have one, many or zero ('non-listening') PIPE readers dynamically. But the mechanism seems the same that the one you are using: create a connection, open a session and beggining to READ the pipe (and a lot o other tasks: sending mails, notify with pop-ups, and so on...). With the normal error handling, never experienced the problems you are facing.
hth
Carlos. Received on Sat Apr 09 2005 - 03:15:12 CDT