Re: Help: Oracle Database Pipes

From: Steve Yam <syam_at_axionet.com>
Date: 1995/06/11
Message-ID: <3rfnfu$6u0_at_blues.axionet.com>#1/1


In article <3rcdc9$i4v_at_newsbf02.news.aol.com>, stevemaho_at_aol.com says...
>
>Byron,
>
>The listener process can just be a PRO*C application that is polling the
>DBMS_PIPE stored procedure or another process that is polling the end of
>the pipe. As a request comes from the other end, the message is
 unpacked
>(ie. the arguments) and you can work with them internally.
>
>What ORACLE has done is something called RPC-lite in that all of the
>networking has been pulled up into Oracle's SGA and if you are using
>SQL*NET, the networking is transparent to you.
>
>We have found that this is good for simple requests, but when you have
 to
>push complex C data structures down the pipe, it is difficult to pack
 and
>unpack the PIPE beast. That is why we are looking at DCE.
>
>I'm surprised that ORACLE reacted in such a way when you called. I have
>seen a couple of postings whereby people are using this PIPE in
 PRODUCTION
>applications.
>
>Steve
>Federated Investors
>Pgh., PA.(We ain't a STEEL town anymore...)

Should take good care on using pipe for following areas.

  1. Pipe using multi-threaded oracle servers is resource consuming. Especially running in multi-servers on different machines. Don't forget SGA is per machines basis. SGAs in multi-machines must be passed through the lock manager to sync. And Oracle has a parameter PROPAGATION_DELAY which direct affect performance of this sync and may cause mutation on data retrieval from table on different machines.
  2. Pipe is reversible which means that you can rollback the pipe operation from sender, Pipe is recoverable which means that unread message is protected by system for whatever failure. In the other words, pipe operation just like a table insertion and deletion with the wake-up capability on receiver side. Don't forget Insert /Delete is the most resource intensive operation.

   We have lot of experience on using pipe, alert or signal. And signal is the most effective way but need lot of coding. Pipe is good if your machine is best. Alert - forget it. It is mutually exclusive and lock whole server till commitpoint.

Sy. Received on Sun Jun 11 1995 - 00:00:00 CEST

Original text of this message