Re: Sharing data between sessions
Chuck, Depending on the intensity with which they'd be using this form of inter-process communication, using a table may be the easiest and fastest implementation method. Other possibilities include (depending on desired functionality): * DBMS_PIPE package (i.e. semantics involve simple FIFO pipes for transmittal to one or more consumers) * DBMS_AQ (advanced queuing) package (i.e. handles much more complex business rules, multiple consumers, etc) * DBMS_APPLICATION_INFO packaged procedures READ_CLIENT_INFO and SET_CLIENT_INFO This last idea involves the DBMS_APPLICATION_INFO package and its ability to set the value of the column CLIENT_INFO in the V$SESSION view. This column is VARCHAR2(64), so a session could place information there and then other sessions could read it by querying from V$SESSION... Don't discount the easiest solution (i.e. a table) so quickly... Hope this helps... -Tim - Original Message - To: "Multiple recipients of list ORACLE-L" <[EMAIL PROTECTED]> Sent: Monday, March 03, 2003 1:43 PM > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA1 > > One of my developers wants to share data between sessions inside a > package. Specifically he wants to set some sort of global variable in > a package that session 1 executes, and when sessions 2,3...n fire a > trigger he wants them to be able to read that variable. Is there an > easy way to do this other than by using a table? I was thinking that > java might have this ability but I don't know java at all. I know you > can link a C program to a trigger and since this is on unix you could > theoretically create a shared memory segment that the trigger would > read but this sounds like to a lot of hoops to jump through. > > Any suggestions? > - -- > Chuck > > -BEGIN PGP SIGNATURE- > Version: PGP 8.0 - not licensed for commercial use: www.pgp.com > > iQA/AwUBPmO+jlVYIIV9CtSHEQKU1gCg01qayq76M7fZt07ffVQuPJXucIIAoKzn > hO4Qrd/tk2mrJd6TYufjwejv > =G56o > -END PGP SIGNATURE- > > > -- > Please see the official ORACLE-L FAQ: http://www.orafaq.net > -- > Author: Chuck Hamilton > INET: [EMAIL PROTECTED] > > Fat City Network Services-- 858-538-5051 http://www.fatcity.com > San Diego, California-- Mailing list and web hosting services > - > To REMOVE yourself from this mailing list, send an E-Mail message > to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in > the message BODY, include a line containing: UNSUB ORACLE-L > (or the name of mailing list you want to be removed from). You may > also send the HELP command for other information (like subscribing). > -- Please see the official ORACLE-L FAQ: http://www.orafaq.net -- Author: Tim Gorman INET: [EMAIL PROTECTED] Fat City Network Services-- 858-538-5051 http://www.fatcity.com San Diego, California-- Mailing list and web hosting services - To REMOVE yourself from this mailing list, send an E-Mail message to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).
RE: Sharing data between sessions
Title: RE: Sharing data between sessions > From: Chuck Hamilton [mailto:[EMAIL PROTECTED]] > > One of my developers wants to share data between sessions > inside a package. Specifically he wants to set some sort of > global variable in a package that session 1 executes, and > when sessions 2,3...n fire a trigger he wants them to be able > to read that variable. Is there an easy way to do this other > than by using a table? I was thinking that java might have > this ability but I don't know java at all. I know you can > link a C program to a trigger and since this is on unix you > could theoretically create a shared memory segment that the > trigger would read but this sounds like to a lot of hoops to > jump through. > > Any suggestions? First, define "session". A variable inside a package header is the usual solution to this.
RE: Sharing data between sessions
Title: RE: Sharing data between sessions In Oracle all data is session specific ... even package data ... sessions share the package code. 1. Use a small table to share the data. or 2. Use dbms_pipe to receive request and send out data ... this will act as a pseudo package header for all sessions. These are the easiest ways ... of course I could just implement the dbms_pipe interface using dbms_alert as well to make it transactional. Raj - Rajendra dot Jamadagni at espn dot com Any views expressed here are strictly personal. QOTD: Any clod can have facts, having an opinion is an art !! -Original Message- From: Chuck Hamilton [mailto:[EMAIL PROTECTED]] Sent: Monday, March 03, 2003 3:44 PM To: Multiple recipients of list ORACLE-L Subject: Sharing data between sessions -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 One of my developers wants to share data between sessions inside a package. Specifically he wants to set some sort of global variable in a package that session 1 executes, and when sessions 2,3...n fire a trigger he wants them to be able to read that variable. Is there an easy way to do this other than by using a table? I was thinking that java might have this ability but I don't know java at all. I know you can link a C program to a trigger and since this is on unix you could theoretically create a shared memory segment that the trigger would read but this sounds like to a lot of hoops to jump through. Any suggestions? - -- Chuck -BEGIN PGP SIGNATURE- Version: PGP 8.0 - not licensed for commercial use: www.pgp.com iQA/AwUBPmO+jlVYIIV9CtSHEQKU1gCg01qayq76M7fZt07ffVQuPJXucIIAoKzn hO4Qrd/tk2mrJd6TYufjwejv =G56o -END PGP SIGNATURE- -- Please see the official ORACLE-L FAQ: http://www.orafaq.net -- Author: Chuck Hamilton INET: [EMAIL PROTECTED] Fat City Network Services -- 858-538-5051 http://www.fatcity.com San Diego, California -- Mailing list and web hosting services - To REMOVE yourself from this mailing list, send an E-Mail message to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing). *This e-mail message is confidential, intended only for the named recipient(s) above and may contain information that is privileged, attorney work product or exempt from disclosure under applicable law. If you have received this message in error, or are not the named recipient(s), please immediately notify corporate MIS at (860) 766-2000 and delete this e-mail message from your computer, Thank you.*1