mohan@ihuxf.UUCP (Palat) (08/24/85)
Consider the following: An application opens an Ingres database through an equel program. It then forks a child process. 1. Can the parent process fork a child with the database open? 2. If 1. can be done, is the database open to the child? 3. Again, if 2. can be done, are the ranges of the relations (##range) declared before the child was forked valid for the child too? Mohan Palat AT&T Network Systems
anton@ucbvax.ARPA (Jeff Anton) (08/26/85)
In article <2673@ihuxf.UUCP> mohan@ihuxf.UUCP (Palat) writes: > Consider the following: > An application opens an Ingres database through an > equel program. It then forks a child process. > 1. Can the parent process fork a child with the > database open? > 2. If 1. can be done, is the database open to the child? > 3. Again, if 2. can be done, are the ranges of the relations > (##range) declared before the child was forked valid for the > child too? > > Mohan Palat > AT&T Network Systems 1. Sure, you can fork. However, the '## exit' will not return until all the procs have closed their descriptors. I'd suggect not to put it in your programs. 2. If you do an exec then you've lost what file descriptors talk to the backend. Unless you're knowledgeable about equel internals it's hopeless to talk to the backend after an exec. I'm not sure but those file descriptors should be close on exec. In the child before an exec you could conceivably talk sucessfully to the backend IF ONLY ONE PROCESS USES THE BACKEND DURRING A XACT. You could build some kind of locking convention yourself to allow this. This is very shakey ground; I don't suggest this for the week of heart. 3. The 'range' statement just passes to the backend which remembers it. In this forked user process environment we have many procs at one end of some pipes and the backend at the other end of those pipes, If one proc changes a range variable all the user proc will be affected. I can think of a few more problems that might occur. Again, you'll be exceeding the manufacturers recommendations doing this stuff so don't attempt the above unless you understand what is going on. -- C knows no bounds. Jeff Anton U.C.Berkeley Ingres Group ucbvax!anton anton@BERKELEY.EDU
lar@inuxc.UUCP (L Reid) (09/03/86)
I'm *attempting* to write a report using the INGRES report writer (we have the AT&T version of INGRES but this question is basic?). I've set up a header on a column that will start a new page and write headers when a new value for this column has been received. The problem is when the number of records for a value in this column exceeds one page, the subsequent pages have no column headings. If I define a "page header", I receive two sets of headers on pages where a new column value is detected. Can anyone help me? Or is it a "no-can-do" situation. Thanks in advance! Laura Reid 317-845-6135