HDTenEightyP/NetNews huggingface dataset:
From: anasaz!qip.naomi@enuucp.eas.asu.edu (Naomi Walker)
Newsgroups: comp.databases.informix
Subject: Fragmentation
Date: 21 Nov 1992 02:48:14 -0500
Organization: Mailing List Gateway
Distribution: world
Reply-To: anasaz!qip.naomi@enuucp.eas.asu.edu (Naomi Walker)
NNTP-Posting-Host: emory.mathcs.emory.edu
X-Informix-List-ID: <list.1632>

 > > 
 > > In the good old days of SE, a table with a high level of activity
 > > (i.e. deletions/inserts) became riddled with old data row slots 
 > > which were available for re-write, and the index began to look like
 > > swiss cheese.  To correct this periodic unload/loads or cluster
 > > manipulation or ALTER TABLE (same as an unload/load but more user-friendly)
 > > were needed to keep index and data table efficiency at peak.
 > > 
 > > Is this also true of Online?  Or does Online do this automagically?
 > > 
 > Raw Online space does get very fragmented, especially if you are short
 > of room in the partition.  Table extents become very small and numerous
 > and it causes performance problems.  Tables can generally have about
 > 240 extents, and it is possible to reach that value and come to a grinding
 > halt.  
 > 
 > We regularly monitor all our production systems extents and partition
 > fragmention.  Tbunloading and tbloading the database back typically puts
 > all the data for each table in the first extent (if there is enough 
 > contiguous room).  We then carefully set all the next extents on the
 > tables, to accomodate future growth.  If tbunloading is unreasonable
 > because of the database size, we will create an empty new table, with
 > the first extent set, and copy the data from the old table to the
 > new table.
 > 
 > 
 > 
 Thank you,  I got a slightly different answer yesterday to wit: 
 
 ->Online does automatic page compression when it writes disk.  the tbstat -p
 ->command will show the number of compresses that have been executed.  see
 ->page 2-117 in the dba manual (v5.0).  
 ->
 ->regards,
 
 It sounds like you are discussing disk fragmentation which is another HIGHLY 
 viable concern and I thank you for your note.  
 
 Your welcome.  I try to pass on what I have learned from actual experience
 with the beast.  We are currently running Online 4.1 on our production
 systems.  I wonder if 4.1 employs the same technique described in the 5.0
 manual.  I know there are many features 4.1 supports that were not documented
 until 5.0.  I have the 5.0 DBA manual for a preview and it *is* an outstanding
 manual.
 
 Upon reading the chapter on data compression, it appears to me that they
 are describing compression within a page, and that information is good
 to understand.  I was speaking in a larger sense about the entire partition.
 
 Have fun,
 
 Naomi
 
 

-- 
  Naomi Walker  (aka N7FSA)     naomi%anasaz.UUCP@asuvax.eas.asu.edu

  Enthusiasm is caught,         In tennis, 
  not taught.                   love means nothing.
From: davek@informix.com (David Kosenko)
Newsgroups: comp.databases.informix
Subject: Re: More than one backend ???
Date: 20 Nov 92 20:27:02 GMT
Organization: Informix Software, Inc.

In article <1eij0cINNdo@emory.mathcs.emory.edu> pp@q8.dk (Poul Pedersen) writes:
>
>        When will you for one frontend process have more than one
>        backend in an Informix online (v.5.0) system ?


Well, to be honest with you, we are actually trying to head in the other
direction (which is what most users want); i.e. we are working toward a
multi-threaded engine, which will have one "backend" (server, actually)
supporting many frontends.

Perhaps you could explain why > 1 server per client is needed?

Dave
-- 
Disclaimer: These opinions are not those of Informix Software, Inc.
**************************************************************************
"I look back with some satisfaction on what an idiot I was when I was 25,
 but when I do that, I'm assuming I'm no longer an idiot." - Andy Rooney
From: davek@informix.com (David Kosenko)
Newsgroups: comp.databases.informix
Subject: Re: tracking data changes (a request for advice/information)
Date: 18 Nov 92 22:41:55 GMT
Organization: Informix Software, Inc.

Jim Gordon writes:
>It is not possible to access the performance hit this will have on the
>application.  But the Stored Procedures seem to work fine in 5.0.
>Also you run the risks of bugs in the Trigger system.  Against this
>Informix have given themselves considerable extra time to get Triggers
>reasonably clean.  They were supposed to be in 5.0 but at release time
>were not stable enough so they left them out.

An interesting rumor, and like most of them, untrue.  Triggers *were*
scheduled for inclusion in 5.0, but there was not enough time to finish
coding and testing them and still make the 5.0 release date.  As a result,
they were pulled out of 5.0 long before they even reached the "coded"
state.  As such, I really don't think you could have called them "unstable".


Dave
-- 
Disclaimer: These opinions are not those of Informix Software, Inc.
**************************************************************************
"I look back with some satisfaction on what an idiot I was when I was 25,
 but when I do that, I'm assuming I'm no longer an idiot." - Andy Rooney
From: cris@bs1.dsg.ti.com (cris schramm)
Newsgroups: comp.databases.informix
Subject: tbinit processes on 5.0 (fwd)
Date: 17 Nov 1992 14:33:08 -0500
Organization: Mailing List Gateway
Distribution: world
Reply-To: cris@bs1.dsg.ti.com (cris schramm)
NNTP-Posting-Host: emory.mathcs.emory.edu
X-Informix-List-ID: <list.1614>

> From: pao@wam.umd.edu (Nikos Strifas)
> Subject: tbinit processes on 5.0
> Date: Tue, 17 Nov 1992 16:57:04 GMT
> 
> Informix Users,
> 
> I have a problem that our local guru is unable to answer. I just installed
> Informix 5.0 on my HP-700 & INCREASED some of the kernel parameters so I
> could run TUXEDO. Anyway, the problem is that when I start Informix I see
> 6 tbinit process running. We thought that 2 is the normal. Any suggestions?

This is due to Version 5.0 OnLine changes.  In your TBCONFIG file, you should
see a parameter CLEANERS which is probably set to 4.  This gives you the 2
tbinit processes you were seeing in the previous version of OnLine and 4 more
tbinit processes that are the CLEANER processes.

If you run the a tbstat -F you will see 4 flushers and their states.  These
tbinit processes are used to flush dirty pages from the shared memory
buffers back to disk.  On my system I have 6 cleaners and the tbstat -F 
looks like the following:

	RSAM Version 5.00.UD3   -- On-Line -- Up 4 days 01:49:20 -- 3136 Kbytes

	Fg Writes     LRU Writes    Idle Writes   Chunk Writes
	0             0             0             0

	address  flusher  snooze   state    data
	301894   0        60       I        0        = 0
	3018fc   1        60       I        0        = 0
	301964   2        60       I        0        = 0
	3019cc   3        60       I        0        = 0
	301a34   4        60       I        0        = 0
	301a9c   5        60       I        0        = 0
      		states: Exit Idle Chunk Lru

If you have the 5.0 OnLine Administrator's Guide, you will find information
about the OnLine daemon processes, including the page cleaners, in several
places, but 2-29 is a good starting point.  

If you don't have a copy of this book, I suggest you beg, borrow or, as a 
last resort, buy one :-).  It is the best book Informix has produced and
gives detailed information about all aspects of the OnLine engine.  

> 
> Thanx,
> Apostolos Dedes
> GE Information Services
> dedes@geis.geis.com
> 

Regards,
Cris Schramm    Texas Instruments, Inc. 	     	#include <disclaimers>
                Internet                cris@bs1.dsg.ti.com
		TI Telephone    	(512) 250-4424
		Fax Phone		(512) 250-6051
From: manmetha@gauss.rutgers.edu (Rajesh Malhotra)
Newsgroups: comp.databases.informix
Subject: Sharing structs between ESQL and 'C'
Keywords: Duplicate definitions of Structs.
Date: 18 Nov 92 19:57:51 GMT
Organization: Rutgers Univ., New Brunswick, N.J.


Fellow Informixers,

	Is there a way to share structure definitions between 'C' and
the ESQL definitions?
i.e. Say I have an ESQL definition of the type

	$typedef struct {
		char var1;
		int  var2
	} SQLstruct;

and I also need a 'C' struct

	typedef struct {
		char var1;
		int  var2;
	} Cstruct;

Must I have two definitions.  Is there a workaround that would help me get
by with a single declaration?

Any and all responses would be appreciated.

Thanx,

Raj.
-- 
===============================================================================
  __  __     .
 /   __/    /                               Raj Malhotra.
/   ( /_   /                                voice : (908)613 4313. 
        __/                                 email : manmetha@gauss.rutgers.edu

===============================================================================
From: anasaz!qip.naomi@enuucp.eas.asu.edu (Naomi Walker)
Newsgroups: comp.databases.informix
Subject: Re: your mail
Date: 20 Nov 1992 09:38:04 -0500
Organization: Mailing List Gateway
Distribution: world
Reply-To: anasaz!qip.naomi@enuucp.eas.asu.edu (Naomi Walker)
NNTP-Posting-Host: emory.mathcs.emory.edu
X-Informix-List-ID: <list.1629>

> 
> In the good old days of SE, a table with a high level of activity
> (i.e. deletions/inserts) became riddled with old data row slots 
> which were available for re-write, and the index began to look like
> swiss cheese.  To correct this periodic unload/loads or cluster
> manipulation or ALTER TABLE (same as an unload/load but more user-friendly)
> were needed to keep index and data table efficiency at peak.
> 
> Is this also true of Online?  Or does Online do this automagically?
> 
Raw Online space does get very fragmented, especially if you are short
of room in the partition.  Table extents become very small and numerous
and it causes performance problems.  Tables can generally have about
240 extents, and it is possible to reach that value and come to a grinding
halt.  

We regularly monitor all our production systems extents and partition
fragmention.  Tbunloading and tbloading the database back typically puts
all the data for each table in the first extent (if there is enough 
contiguous room).  We then carefully set all the next extents on the
tables, to accomodate future growth.  If tbunloading is unreasonable
because of the database size, we will create an empty new table, with
the first extent set, and copy the data from the old table to the
new table.



-- 
  Naomi Walker  (aka N7FSA)     naomi%anasaz.UUCP@asuvax.eas.asu.edu

  Enthusiasm is caught,         In tennis, 
  not taught.                   love means nothing.
From: gaukur@rhi.hi.is (Kristjan Gaukur Kristjansson)
Newsgroups: comp.databases.informix
Subject: Re: reports in 'if then' clauses (was: defer interupt)
Date: 16 Nov 92 10:19:38 GMT

In <1e0gm2INNppc@emory.mathcs.emory.edu> jerry@jerry.mendota.ingr.com (Jerry Jugovich) writes:

>-> I still also would like to know why I can't put the output section in a 
>-> IF THEN clause. If I could do that then those other duplicate reports 
>-> could be nuked. So because of the report functionality of I4gl I must create 
>-> and maintain at least two times the number of reports required. 
>->

Here is a case clause with 'different' calls to a report. "when H" and "when S"
send the same data ordered on different columns, but I got duplicate reports
anyways since I'm also having the third choice of "when L", but the point
being that 'if then' clauses (and 'case' clauses) can be used.

case
  when svar = "L" start report n_llisti to nafn_lista
  when svar matches "[HS]" start report n_hlisti to nafn_lista
end case
display "" at 1,1
display "N er g a skrifa sveitarflagalistann..." at 1,1 attribute(reverse)
foreach b_sveitir into r_sveitir.*
  case svar
    when "L" output to report n_llisti(r_sveitir.*)
    when "H" call islnafn(r_sveitir.hreppur) returning r_sveitir.nafn1
             call islnafn(r_sveitir.sveitarfelag) returning r_sveitir.nafn2
             output to report n_hlisti(r_sveitir.*)
    when "S" call islnafn(r_sveitir.hreppur) returning r_sveitir.nafn2
             call islnafn(r_sveitir.sveitarfelag) returning r_sveitir.nafn1
             output to report n_hlisti(r_sveitir.*)
  end case
  let fjoldi = fjoldi + 1
end foreach
message "Fjldi  rtaki = ", fjoldi
close b_sveitir free b_sveitir
case
  when svar = "L" finish report n_llisti
  when svar matches "[HS]" finish report n_hlisti
end case

				Gaukur.
Newsgroups: comp.databases.informix
From: jbaker@bluegrass-emh1.army.mil ("John Baker, Blue Grass Army Depot")
Newsgroups: comp.databases.informix
Subject: What is a prettyprinter?
Date: 19 Nov 1992 19:13:03 -0500
Organization: Mailing List Gateway
Distribution: world
Reply-To: jbaker@bluegrass-emh1.army.mil ("John Baker, Blue Grass Army Depot")
NNTP-Posting-Host: emory.mathcs.emory.edu
X-Informix-List-ID: <list.1627>

Jack Parker asked Joe Ryburn:

> Just for the rest of us, what is a prettyprinter or a vgrind?  
> Is prettyprinter in the eye of the beholder?
> is vgrind a new dancefloor thing?

I second his questions.  I've never heard of a "prettyprinter" and none of
our AT&T UNIX manuals have an entry for "vgrind."

Just curious.
---
John 
--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--
John Baker,  Directorate of Infor Mgt.  Blue Grass Army Depot, Lexington, KY
jbaker@bluegrass-emh1.army.mil    Phone: (606) 293-3644, 293-3743  DSN: 745-
--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--
From: obelix.informix.com!johnl@emory.mathcs.emory.edu (Jonathan Leffler)
Newsgroups: comp.databases.informix
Subject: Re:  Sharing structs between ESQL and 'C'
Date: 19 Nov 1992 18:08:09 -0500
Organization: Mailing List Gateway
Distribution: world
Reply-To: obelix.informix.com!johnl@emory.mathcs.emory.edu (Jonathan Leffler)
NNTP-Posting-Host: emory.mathcs.emory.edu
X-Informix-List-ID: <list.1626>


}From: uunet!gauss.rutgers.edu!manmetha (Rajesh Malhotra)
}Subject: Sharing structs between ESQL and 'C'
}Date: 18 Nov 92 19:57:51 GMT
}X-Informix-List-Id: <news.2157>
}
}Fellow Informixers,
}
}	Is there a way to share structure definitions between 'C' and
}the ESQL definitions?
}i.e. Say I have an ESQL definition of the type
}
}	$typedef struct {
}		char var1;
}		int  var2
}	} SQLstruct;
}
}and I also need a 'C' struct
}
}	typedef struct {
}		char var1;
}		int  var2;
}	} Cstruct;
}
}Must I have two definitions.  Is there a workaround that would help me get
}by with a single declaration?

This almost comes into the FAQ category, and I've had two previous goes at
answering it.  One of them is elegant and simple; t'other (the more recent,
I regret to say), was horrible and kludgy.  So, I enclose the whole elegant
solution, and the header of the grotesque solution.  I can't think why I
couldn't remember in October what I'd said in September...

Yours,
Jonathan Leffler (johnl@obelix.informix.com) #include <disclaimer.h>

Elegant solution posted in September:
}Date: Thu Sep 17 12:12:40 1992
}From: johnl (Jonathan Leffler)
}Subject: Re:  Declaring Host Variables with STRUCT
}
}>From: uunet!mprgate.mpr.ca!sandie (Bert Sandie)
}>Subject: Declaring Host Variables with STRUCT
}>Date: 16 Sep 92 19:38:52 GMT
}>X-Informix-List-Id: <news.1818>
}>
}> ...
}>
}>The reason I want to use the first method is that I have existing
}>structures which have many embedded STRUCT and I do not want to
}>have to redeclare these in ESQL/C for a second time.
}
}Ah, Easy, I thought.  No, better check it.  Checked it, and it didn't
}work, mainly because I was using a 4.00 ESQL compiler in which temp is
}a reserved word.  When tested on a machine with 5.00, it worked OK.
}
}This works under 5.00 (and probably 4.10, but I haven't proved that!).
}
}File temp.h:
}struct temp
}{
}  char t_l[15];
}  char t_f[15];
}};
}
}File temp.ec:
}EXEC SQL BEGIN DECLARE SECTION
}$include "temp.h";
}struct temp      temp1;
}EXEC SQL END DECLARE SECTION

Comment: it would be neater to use this:
EXEC SQL INCLUDE "temp.h";

Header from grotesque solution posted in October:
}Date: Wed, 28 Oct 92 21:21:46 GMT
}From: uunet!obelix.informix.com!johnl (Jonathan Leffler)
}Subject: Re: Definition techniques using ESQL-C
}X-Informix-List-Id: <list.1560>
}
}I'd be the last to claim it was elegant, but the solution in the
}shell archive seems to work
Newsgroups: comp.databases.informix
From: cdoe%peruvian.cs.utah.edu@cs.utah.edu (Carlton Doe)
Subject: tbunload/load bugs in OnLine 5.0???
Date: 22 Nov 92 22:17:59 MST
Organization: University of Utah CS Dept

11.22.1992

This weekend I ran into what appears to be a couple of bad bugs with the
tbunload/tbload utilities of OnLine 5.0.  I was wondering if anyone else
has seen the same thing.

problem 1:
I had a table containing a blob column in its schema that I needed to move
to another dbspace.  The blobs (type text) are stored in a blobspace.  
According to the 5.0 Administrators Guide (OAG), if you tbunload/load a
table containing blobs, and those blobs were stored in a blobspace, when
the table is re-loaded, you'll be prompted as to whether or not you want
to change blobspace for storing the blob.  As I only have one blobspace,I
didn't see the prompt.

The table unloaded without any errors and apparently loaded without a problem
.  When I went to grant permissions on the table under dbaccess, I got errors
back indicating an inability to access the table.  I pulled the table up
via info and the engine showed it there, with columns, but no rows.  I ran
a dbschema from the command line and got an error back indicating the table
could not be accessed.

I guess you can't tbunload/load tables with blobs.  


problem 2:
I set up a foreign key constraint on a single column within a table.  I needed
to move this table to another dbspace.  Again the tbunload/load ran fine.
There weren't any blobs in this table so the rows came across without any
problem.  The problem arose when I realized that the foreign key constraint
was partially corrupted.

The index on the table created by the engine during the constraint creation
was still there but there wasn't an entry in the sysconstraints table.  
I tried to just recreate the constraint but I got an error back saying the
index already existed on the column.  Because of the format of the index 
name created by the engine during constraint creation (a space in the first
position of the index name) I couldn't drop the index from dbaccess.  
Deleting the row from the sysindexes table corrupted the sysindexes table--
dumb thing to try I know but I was screwed already and would have to restore
from archive so why not try.

basically I'm stuck with an index I can't drop and a critical business rule
I can't enforce.  Any ideas on either of these two problems??  I'd appreciate
any e-mailed insight.  Thanks in advance.  In case it matters, I'm running
on an AT&T StarServer E running Sys V Rel 4, ver 2.1
-------------------------------------------------------------
Carlton Doe 
cdoe@sunset.utah.edu	
attmail: attmail!alexis!carlton
Newsgroups: comp.databases.informix
From: pmaggs@uxh.cso.uiuc.edu (Peter B. Maggs)
Subject: 386 vs. 486
Organization: University of Illinois at Urbana
Date: Mon, 23 Nov 1992 01:32:34 GMT

Is there a difference (other than price) in 386 and 486 Informix.
Will the 486 version run on 386 machines and vice versa?
From: pp@q8.dk (Poul Pedersen)
Newsgroups: comp.databases.informix
Subject: More than one backend ???
Date: 20 Nov 1992 06:43:08 -0500
Organization: Mailing List Gateway
Distribution: world
Reply-To: pp@q8.dk (Poul Pedersen)
NNTP-Posting-Host: emory.mathcs.emory.edu
X-Informix-List-ID: <list.1628>

        When will you for one frontend process have more than one
        backend in an Informix online (v.5.0) system ?

        Thanks
        -----------------------------------------------------------------
        Databaseadministrator Poul Pedersen
        Kuwait Petroleum (Denmark) A/S
        Hummeltoftevej 49                         Mail:   pp@q8.dk
        2830  Virum                               Voice:  +45 45 98 45 94
        Denmark                                   Fax:    +45 42 85 14 18
        -----------------------------------------------------------------
From: cris@bs1.dsg.ti.com (cris schramm)
Newsgroups: comp.databases.informix
Subject: Re:  tbinit processes on 5.0 (fwd)
Date: 18 Nov 1992 12:48:03 -0500
Organization: Mailing List Gateway
Distribution: world
Reply-To: cris@bs1.dsg.ti.com (cris schramm)
NNTP-Posting-Host: emory.mathcs.emory.edu
X-Informix-List-ID: <list.1618>

  Bob Baskett writes:
> 
> you wont see tbinit out there for each page cleaner - these show up as
> tbpgcl processes.  this is assuming that they have not timed out and the
> main deamon taken over for them.
> 

This depends on your port of OnLine.  The TI port does not show tbpgcl
processes for page cleaners.  Page cleaners on this port are shown as
tbinit processes.

Regards,
Cris Schramm    Texas Instruments, Inc. 	     	#include <disclaimers>

Newsgroups: comp.databases.informix
From: mlee@adaclabs.com (Mike Lee )
Subject: Re: Informix 4GL arrays
Organization: Adac Laboratories, Milpitas Ca
Date: Tue, 17 Nov 1992 19:39:00 GMT

Aaron Pelton writes:
> 
>     In my quest for the answer to Informix vs Progress I've come across
> a particular area, scrolling data on the screen, that Informix doesn't
> seem to handle well.
Not true! Not true I say 8^)

>    Given that I have a set of data that may be anywhere from 0 to n records
> that I want to place in a scrolling region on the screen, can it be done
> without a LOT of code to accomplish this?

There are few different ways to display scrolling information...
Assuming all you want to do is select information from a table and display
in a window that allows a user to scroll through and see the choices, this
is what I would do. 

Define an array to the size you want.
	DEFINE
		test_arr ARRAY[50] OF RECORD
			last_name
		END RECORD

Open your window with a form that has been defined as an array. Something
like this:
	[f1        ]
	[f1        ]
	[f1        ]
	[f1        ]
	[f1        ]
	[f1        ]
	.
	.
	.
	
	INSTRUCTIONS
		SCREEN RECORD scr_array[10]
			(
			FORMONLY.last_name
			)
	

Declare and Foreach each record into your array incrementing x

	DECLARE c1 CURSOR FOR
		SELECT last_name
		FROM names
		ORDER BY last_name

	FOREACH c1 INTO test_arr[x].last_name
		let x = x + 1
	END FOREACH

	LET x = x - 1
	CALL set_count(x)

	DISPLAY ARRAY test_arr TO scr_array.*

That's all you need to display scrolling information.  The user can scroll
down the information. If they want to select a value they can press the
ESC key to select the value by adding the following code.

    IF (int_flag = FALSE) THEN
		let choice = arr_curr()
		RETURN pop_phy_arr[choice].last_name
	END IF
		
I hope I read the question correctly, if not, send me some email...

Good Luck...

         ________________________________________________________
________| Mike Lee           | I like pigs. Dogs look up to us.  |_______
\       | ADAC Laboratories  | Cats look down on us. Pigs treat  |      /
 \      | mlee@adaclabs.com  | us as equals. - Churchill         |     /
 /      |________________________________________________________|     \
/__________)                                                  (_________\
From: yaron@ortarg.edu.ar (Yaron Zarfati)
Newsgroups: comp.databases.informix
Subject: help about datetime
Date: 23 Nov 1992 07:28:03 -0500
Organization: Mailing List Gateway
Distribution: world
Reply-To: yaron@ortarg.edu.ar
NNTP-Posting-Host: emory.mathcs.emory.edu
X-Informix-List-ID: <list.1634>

We are working in informix version 4 under unix, but with little previous 
training.
 
Also our english level is good enough to understand the manuals, but the
appendix that explains datetime, interval, etc. looks obscure to us.
 
Could somebody help us with datetime and interval variables, and the extend
function ?.
 
For instance, if we subtract two columns or memory variables defined as 
DATETIME YEAR TO MONTH, how can we get an INTERVAL result of the type yy-mm
and how can we use the result, if we need INTEGER variables containing the
year and the month part ?.

 We would apreciate examples, a commented piece of code, etc.
 
Thank you in advance.
Newsgroups: comp.databases.informix