Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: Difference between Pipe and AQ
In article <a6642t$10q$1_at_bob.news.rcn.net>, "RKG" says...
>
>Ive been looking at these two packages and they seem fairly similiar. It
>just seems like AQ has more features. Would someone please tell me the
>differences?
>
>Also, yes I have read alot of the documentation.. I did not see any compare
>and contrast. Just some basic references.
>
>
They are really apples and oranges.
With a pipe -- you can put a message in there (very finite in size) and someone else can pull it off. Very much like a named pipe in Unix land. If the database is shut down -- message goes away. If no one takes the messages off the pipe, eventually the person putting the messages on will either block or get an error. This is a very very simple inter-process communication device.
Queues -- they are very different.
You can have specific message payloads (object types)
you are not restricted in size/amount (other then the amount of data you can store)
they survive database shutdown/restarts
they can be prioritized, routed, and dequeued by multiple consumers
they can propagate from instance to instance (queue a message on db1, dequeue on db2)
and so much more.
See:
http://technet.oracle.com/docs/products/oracle8i/doc_library/817_doc/appdev.817/a76938/toc.htm
there is an entire application developers guide dedicated to AQ -- pipes, its just a little utility package in comparison.
-- Thomas Kyte (tkyte@us.oracle.com) http://asktom.oracle.com/ Expert one on one Oracle, programming techniques and solutions for Oracle. http://www.amazon.com/exec/obidos/ASIN/1861004826/ Opinions are mine and do not necessarily reflect those of Oracle CorpReceived on Wed Mar 06 2002 - 19:14:35 CST