DBMS_PIPE
The DBMS_PIPE package provides a non-secure mechanism for inter-session messaging. It is considered non-secure because messages can be lost from the pipe if the instance crashes or is shutdown before they are processed. Advanced Queues are arguably a better mechanism when secure messaging and greater flexibility are required.
There are two types of pipes:
- Implicit Pipes - These are created automatically when a message is sent with an unknown pipename using the SEND_MESSAGEfunction. Implicit pipes disappear when they are empty.
- Explicit Pipes - These are created using the CREATE_PIPE function. Explicitly created pipes must be removed using theREMOVE_PIPE function.
There are two levels of security for pipes:
- Public Pipes - These are accessible by any user with EXECUTE permission on the DBMS_PIPE package. Implicit pipes are always public, but they can also be created explicitly by calling the CREATE_PIPE function with the private parameter set to FALSE.
- Private Pipes - These are only accessible by sessions with the same ownerid as the pipe creator, stored programs owned by the pipe creator or by users connected as SYSDBA
Advertising