Discussion:
Omnis 7 datafile
Cristina Heredia
2014-10-03 16:00:13 UTC
Permalink
Hi all,



I am having "Datafile is full" problems and I have read that it?s necessary add size to datafile.

How can I add size (not add segments) to omnis 7 datafile and how many is the maximum size that can I set?

It?s only necessary add size to the unique datafile or I need another segment.

Is there any problem with the datafile if I add it.



Thanks
Jean Marc Azerad
2014-10-03 16:06:40 UTC
Permalink
Hi Christina

The first segment auto-increases its size, so if you get this message with one segment only, it means you've reached the maximum size of 256 Megs.
You need to add a new segment (and give it a size, segments 2 and more do not autosize)

JM


Le 3 oct. 2014 ? 17:16, Cristina Heredia <***@hotmail.com> a ?crit :

> Hi all,
>
>
>
> I am having "Datafile is full" problems and I have read that it?s necessary add size to datafile.
>
> How can I add size (not add segments) to omnis 7 datafile and how many is the maximum size that can I set?
>
> It?s only necessary add size to the unique datafile or I need another segment.
>
> Is there any problem with the datafile if I add it.
>
>
>
> Thanks
> _____________________________________________________________
> Manage your list subscriptions at http://lists.omnis-dev.com
David Jobling
2014-10-03 16:53:09 UTC
Permalink
Hi Cristana

You will need access to the Utilities menu. If it is not already visible you should be able to install it by selecting the menus option on the file menu.

>From Utilities select Data file tools and from there select Examine Data file. This will display a list of all of the file formats in your database and also add a new menu called 'Data file'.

>From the data file menu select Change data file size and then Select 'Add segment'. Ok the prompt for the location and then I would suggest you change the default size of 50 (which is totally pointless) and change it to 524288. This is the maximum and will add another segment which is 250mb in size.

The maximum number of segments you can have is 15 giving you a maximum data file size of about 3.75gig.


Dave







-------------------------------------
David Jobling
Tynedale Computer Systems
Tel. 0191 3875230

-----Original Message-----
From: omnisdev-en-***@lists.omnis-dev.com [mailto:omnisdev-en-***@lists.omnis-dev.com] On Behalf Of Cristina Heredia
Sent: 03 October 2014 16:16
To: Omnisdev
Subject: Omnis 7 datafile

Hi all,



I am having "Datafile is full" problems and I have read that it?s necessary add size to datafile.

How can I add size (not add segments) to omnis 7 datafile and how many is the maximum size that can I set?

It?s only necessary add size to the unique datafile or I need another segment.

Is there any problem with the datafile if I add it.



Thanks
_____________________________________________________________
Manage your list subscriptions at http://lists.omnis-dev.com

-----
No virus found in this message.
Checked by AVG - www.avg.com
Version: 2012.0.2247 / Virus Database: 4031/7816 - Release Date: 10/03/14

-----
No virus found in this message.
Checked by AVG - www.avg.com
Version: 2012.0.2247 / Virus Database: 4031/7816 - Release Date: 10/03/14
Bruno Barthélemy
2014-10-05 17:41:15 UTC
Permalink
Hi Cristina,

In addition to previous contributions, my two cents :

- 1. Next time, as soon as the first segment has reached a size around 200 Mb or so (at some space below maximum 256 Mb = 524288 blocs) and you foresee it will still grow, add a new segment with a reasonable size to work smoothly for some time.
Save the new data size ($cdata.$disksize) in a constant of the data file,
and in Startup/0,
; compare the present $disksize at startup with the saved one
If $data().$disksize>MySavedStartingSize ;; if data size has increased, it means the second segment is full and Omnis is starting to expand the only one it can: segment number 1. The datafile size has to be increased.
OK message : "Call Cristina soon ! Your datafile has to be extended." *
end if

- 2. In case you have missed the situation 1:
After expanding your datafile by adding a new segment (that will not extend by himself), and to prevent your customer to be stuck with a alert message "Datafile is full" in the middle of his work :
In Startup/0 :
If $data().$freesize<=5000000 ;; check for less than five Mb free space
OK message : "Call Cristina soon ! Your datafile has to be extended." *
end if

* Automatized datafile extension might be called here (ask for details if needed)

HTH

Bruno

--
Bruno Barth?lemy
BB-Soft
Pavement 9
1018 Lausanne
Switzerland
T +41 21 312 29 49
F +41 21 312 45 54
E ***@bbsoft.ch



Le 3 oct. 2014 ? 17:16, Cristina Heredia <***@hotmail.com> a ?crit :

> Hi all,
>
>
>
> I am having "Datafile is full" problems and I have read that it?s necessary add size to datafile.
>
> How can I add size (not add segments) to omnis 7 datafile and how many is the maximum size that can I set?
>
> It?s only necessary add size to the unique datafile or I need another segment.
>
> Is there any problem with the datafile if I add it.
>
>
>
> Thanks
> _____________________________________________________________
> Manage your list subscriptions at http://lists.omnis-dev.com
Gary Connor, Ph.D.
2014-10-05 19:18:27 UTC
Permalink
Cristina -

If you search the list archives there are code examples to automatically maintain your data file size and add/extend segments as necessary. We check ours at each login to see how close it is to being full, and manually extend the datafile as necessary. By extending a datafile or segment when first created you avoid file fragmentation, but the main advantage is to avoid the ?data file full? message you?re seeing. Bruno mentions the automatic resize code at the end of his message, just letting you know that the code is in the list archives in several places.
__________________________
Gary Connor
DirectLine Technologies, Inc.
directline-tech.com



On Oct 5, 2014, at 9:57 AM, Bruno Barth?lemy <***@bbsoft.ch> wrote:

> Hi Cristina,
>
> In addition to previous contributions, my two cents :
>
> - 1. Next time, as soon as the first segment has reached a size around 200 Mb or so (at some space below maximum 256 Mb = 524288 blocs) and you foresee it will still grow, add a new segment with a reasonable size to work smoothly for some time.
> Save the new data size ($cdata.$disksize) in a constant of the data file,
> and in Startup/0,
> ; compare the present $disksize at startup with the saved one
> If $data().$disksize>MySavedStartingSize ;; if data size has increased, it means the second segment is full and Omnis is starting to expand the only one it can: segment number 1. The datafile size has to be increased.
> OK message : "Call Cristina soon ! Your datafile has to be extended." *
> end if
>
> - 2. In case you have missed the situation 1:
> After expanding your datafile by adding a new segment (that will not extend by himself), and to prevent your customer to be stuck with a alert message "Datafile is full" in the middle of his work :
> In Startup/0 :
> If $data().$freesize<=5000000 ;; check for less than five Mb free space
> OK message : "Call Cristina soon ! Your datafile has to be extended." *
> end if
>
> * Automatized datafile extension might be called here (ask for details if needed)
>
> HTH
>
> Bruno
>
> --
> Bruno Barth?lemy
> BB-Soft
> Pavement 9
> 1018 Lausanne
> Switzerland
> T +41 21 312 29 49
> F +41 21 312 45 54
> E ***@bbsoft.ch
>
>
>
> Le 3 oct. 2014 ? 17:16, Cristina Heredia <***@hotmail.com> a ?crit :
>
>> Hi all,
>>
>>
>>
>> I am having "Datafile is full" problems and I have read that it?s necessary add size to datafile.
>>
>> How can I add size (not add segments) to omnis 7 datafile and how many is the maximum size that can I set?
>>
>> It?s only necessary add size to the unique datafile or I need another segment.
>>
>> Is there any problem with the datafile if I add it.
>>
>>
>>
>> Thanks
>> _____________________________________________________________
>> Manage your list subscriptions at http://lists.omnis-dev.com
>
>
>
>
>
>
> _____________________________________________________________
> Manage your list subscriptions at http://lists.omnis-dev.com
Cristina Heredia
2014-10-06 22:09:14 UTC
Permalink
Thank you so much to all, I solved my problem.

Cristina Heredia

From: ***@directline-tech.com
Date: Sun, 5 Oct 2014 11:34:58 -0700
To: omnisdev-***@lists.omnis-dev.com
Subject: Re: Omnis 7 datafile sizing

Cristina -

If you search the list archives there are code examples to automatically maintain your data file size and add/extend segments as necessary. We check ours at each login to see how close it is to being full, and manually extend the datafile as necessary. By extending a datafile or segment when first created you avoid file fragmentation, but the main advantage is to avoid the ?data file full? message you?re seeing. Bruno mentions the automatic resize code at the end of his message, just letting you know that the code is in the list archives in several places.
__________________________
Gary Connor
DirectLine Technologies, Inc.
directline-tech.com



On Oct 5, 2014, at 9:57 AM, Bruno Barth?lemy <***@bbsoft.ch> wrote:

> Hi Cristina,
>
> In addition to previous contributions, my two cents :
>
> - 1. Next time, as soon as the first segment has reached a size around 200 Mb or so (at some space below maximum 256 Mb = 524288 blocs) and you foresee it will still grow, add a new segment with a reasonable size to work smoothly for some time.
> Save the new data size ($cdata.$disksize) in a constant of the data file,
> and in Startup/0,
> ; compare the present $disksize at startup with the saved one
> If $data().$disksize>MySavedStartingSize ;; if data size has increased, it means the second segment is full and Omnis is starting to expand the only one it can: segment number 1. The datafile size has to be increased.
> OK message : "Call Cristina soon ! Your datafile has to be extended." *
> end if
>
> - 2. In case you have missed the situation 1:
> After expanding your datafile by adding a new segment (that will not extend by himself), and to prevent your customer to be stuck with a alert message "Datafile is full" in the middle of his work :
> In Startup/0 :
> If $data().$freesize<=5000000 ;; check for less than five Mb free space
> OK message : "Call Cristina soon ! Your datafile has to be extended." *
> end if
>
> * Automatized datafile extension might be called here (ask for details if needed)
>
> HTH
>
> Bruno
>
> --
> Bruno Barth?lemy
> BB-Soft
> Pavement 9
> 1018 Lausanne
> Switzerland
> T +41 21 312 29 49
> F +41 21 312 45 54
> E ***@bbsoft.ch
>
>
>
> Le 3 oct. 2014 ? 17:16, Cristina Heredia <***@hotmail.com> a ?crit :
>
>> Hi all,
>>
>>
>>
>> I am having "Datafile is full" problems and I have read that it?s necessary add size to datafile.
>>
>> How can I add size (not add segments) to omnis 7 datafile and how many is the maximum size that can I set?
>>
>> It?s only necessary add size to the unique datafile or I need another segment.
>>
>> Is there any problem with the datafile if I add it.
>>
>>
>>
>> Thanks
>> _____________________________________________________________
>> Manage your list subscriptions at http://lists.omnis-dev.com
>
>
>
>
>
>
> _____________________________________________________________
> Manage your list subscriptions at http://lists.omnis-dev.com


_____________________________________________________________
Manage your list subscriptions at http://lists.omnis-dev.com
Doug Easterbrook
2014-10-06 17:15:50 UTC
Permalink
hi Christina (bruno), et al:


I've posted a link to some auto expanding code we used for years in omnis 7 as well as an automatic data base . Feel free to use any part of it or adapt it to your own use
https://www2.artsman.com/omnis/index.html



Our 'best practices' approach was to try to avoid support, so we'd do this:
- set up a database (empty and small on purpose) -- the .df1
- immediately add one segment at full size -- the .df2

and depending on potential growth, we might add .df2 etc.



Omnis was always smart. It:
-- adds new data to the fixed length segments, and
-- only when there is no space left, will it put it into the initial auto expanding .df1 segment.

thats probably because it looks for segments with free space, so we always made the first segment as small as possible. With nothing in it, it was always that way.



that means... new data went into other segments. our auto expansion code asked the user when there was a certain amount of space free across all the .DFx files if they wanted a new segment and we'd make a new one at full size.


that way we'd never hit out of space without at least some time to deal with it. And if we missed it at a client site for a day, then omnis would start auto-expanding the .df1 segment.


it saved our bacon a number of times because you don't want to get the database full message.



side note: we also built an automatic database copy tool --- and when that wrote to the new database, it put all the data into the fixed segments. Part of the recommendation, at that time, was to rebuild the database on some periodic basis to get omnis to make better use of the space, make the indexes contiguous and leave free space. it did make omnis go faster when the data inside the data files was contiguous and free space was allocated.





Doug Easterbrook
Arts Management Systems Ltd.
mailto:***@artsman.com
http://www.artsman.com
Phone (403) 536-1205 Fax (403) 536-1210

On Oct 6, 2014, at 10:00 AM, omnisdev-en-***@lists.omnis-dev.com wrote:

> In addition to previous contributions, my two cents :
>
> - 1. Next time, as soon as the first segment has reached a size around 200 Mb or so (at some space below maximum 256 Mb = 524288 blocs) and you foresee it will still grow, add a new segment with a reasonable size to work smoothly for some time.
> Save the new data size ($cdata.$disksize) in a constant of the data file,
> and in Startup/0,
> ; compare the present $disksize at startup with the saved one
> If $data().$disksize>MySavedStartingSize ;; if data size has increased, it means the second segment is full and Omnis is starting to expand the only one it can: segment number 1. The datafile size has to be increased.
> OK message : "Call Cristina soon ! Your datafile has to be extended." *
> end if
>
> - 2. In case you have missed the situation 1:
> After expanding your datafile by adding a new segment (that will not extend by himself), and to prevent your customer to be stuck with a alert message "Datafile is full" in the middle of his work :
> In Startup/0 :
> If $data().$freesize<=5000000 ;; check for less than five Mb free space
> OK message : "Call Cristina soon ! Your datafile has to be extended." *
> end if
>
> * Automatized datafile extension might be called here (ask for details if needed)
>
> HTH
>
> Bruno
Gary Connor, Ph.D.
2014-10-06 17:54:49 UTC
Permalink
Cristina -

I?m sure our code, although altered somewhat, and the code I mentioned as being in the archives, was originally based on Doug?s code.

Thanks Doug.
__________________________
Gary Connor, Ph.D., CIO
DirectLine Technologies, Inc.
directline-tech.com



On Oct 6, 2014, at 9:32 AM, Doug Easterbrook <***@artsman.com> wrote:

> hi Christina (bruno), et al:
>
>
> I've posted a link to some auto expanding code we used for years in omnis 7 as well as an automatic data base . Feel free to use any part of it or adapt it to your own use
> https://www2.artsman.com/omnis/index.html
>
>
>
> Our 'best practices' approach was to try to avoid support, so we'd do this:
> - set up a database (empty and small on purpose) -- the .df1
> - immediately add one segment at full size -- the .df2
>
> and depending on potential growth, we might add .df2 etc.
>
>
>
> Omnis was always smart. It:
> -- adds new data to the fixed length segments, and
> -- only when there is no space left, will it put it into the initial auto expanding .df1 segment.
>
> thats probably because it looks for segments with free space, so we always made the first segment as small as possible. With nothing in it, it was always that way.
>
>
>
> that means... new data went into other segments. our auto expansion code asked the user when there was a certain amount of space free across all the .DFx files if they wanted a new segment and we'd make a new one at full size.
>
>
> that way we'd never hit out of space without at least some time to deal with it. And if we missed it at a client site for a day, then omnis would start auto-expanding the .df1 segment.
>
>
> it saved our bacon a number of times because you don't want to get the database full message.
>
>
>
> side note: we also built an automatic database copy tool --- and when that wrote to the new database, it put all the data into the fixed segments. Part of the recommendation, at that time, was to rebuild the database on some periodic basis to get omnis to make better use of the space, make the indexes contiguous and leave free space. it did make omnis go faster when the data inside the data files was contiguous and free space was allocated.
>
>
>
>
>
> Doug Easterbrook
> Arts Management Systems Ltd.
> mailto:***@artsman.com
> http://www.artsman.com
> Phone (403) 536-1205 Fax (403) 536-1210
>
> On Oct 6, 2014, at 10:00 AM, omnisdev-en-***@lists.omnis-dev.com wrote:
>
>> In addition to previous contributions, my two cents :
>>
>> - 1. Next time, as soon as the first segment has reached a size around 200 Mb or so (at some space below maximum 256 Mb = 524288 blocs) and you foresee it will still grow, add a new segment with a reasonable size to work smoothly for some time.
>> Save the new data size ($cdata.$disksize) in a constant of the data file,
>> and in Startup/0,
>> ; compare the present $disksize at startup with the saved one
>> If $data().$disksize>MySavedStartingSize ;; if data size has increased, it means the second segment is full and Omnis is starting to expand the only one it can: segment number 1. The datafile size has to be increased.
>> OK message : "Call Cristina soon ! Your datafile has to be extended." *
>> end if
>>
>> - 2. In case you have missed the situation 1:
>> After expanding your datafile by adding a new segment (that will not extend by himself), and to prevent your customer to be stuck with a alert message "Datafile is full" in the middle of his work :
>> In Startup/0 :
>> If $data().$freesize<=5000000 ;; check for less than five Mb free space
>> OK message : "Call Cristina soon ! Your datafile has to be extended." *
>> end if
>>
>> * Automatized datafile extension might be called here (ask for details if needed)
>>
>> HTH
>>
>> Bruno
>
> _____________________________________________________________
> Manage your list subscriptions at http://lists.omnis-dev.com
Cristina Heredia
2014-10-06 22:05:18 UTC
Permalink
Thank you Doug for your code, I'll go use it for to implement in my application.

Cristina Heredia



From: ***@artsman.com
Date: Mon, 6 Oct 2014 10:32:26 -0600
To: omnisdev-***@lists.omnis-dev.com
Subject: Re: Omnis 7 datafile

hi Christina (bruno), et al:


I've posted a link to some auto expanding code we used for years in omnis 7 as well as an automatic data base . Feel free to use any part of it or adapt it to your own use
https://www2.artsman.com/omnis/index.html



Our 'best practices' approach was to try to avoid support, so we'd do this:
- set up a database (empty and small on purpose) -- the .df1
- immediately add one segment at full size -- the .df2

and depending on potential growth, we might add .df2 etc.



Omnis was always smart. It:
-- adds new data to the fixed length segments, and
-- only when there is no space left, will it put it into the initial auto expanding .df1 segment.

thats probably because it looks for segments with free space, so we always made the first segment as small as possible. With nothing in it, it was always that way.



that means... new data went into other segments. our auto expansion code asked the user when there was a certain amount of space free across all the .DFx files if they wanted a new segment and we'd make a new one at full size.


that way we'd never hit out of space without at least some time to deal with it. And if we missed it at a client site for a day, then omnis would start auto-expanding the .df1 segment.


it saved our bacon a number of times because you don't want to get the database full message.



side note: we also built an automatic database copy tool --- and when that wrote to the new database, it put all the data into the fixed segments. Part of the recommendation, at that time, was to rebuild the database on some periodic basis to get omnis to make better use of the space, make the indexes contiguous and leave free space. it did make omnis go faster when the data inside the data files was contiguous and free space was allocated.





Doug Easterbrook
Arts Management Systems Ltd.
mailto:***@artsman.com
http://www.artsman.com
Phone (403) 536-1205 Fax (403) 536-1210

On Oct 6, 2014, at 10:00 AM, omnisdev-en-***@lists.omnis-dev.com wrote:

> In addition to previous contributions, my two cents :
>
> - 1. Next time, as soon as the first segment has reached a size around 200 Mb or so (at some space below maximum 256 Mb = 524288 blocs) and you foresee it will still grow, add a new segment with a reasonable size to work smoothly for some time.
> Save the new data size ($cdata.$disksize) in a constant of the data file,
> and in Startup/0,
> ; compare the present $disksize at startup with the saved one
> If $data().$disksize>MySavedStartingSize ;; if data size has increased, it means the second segment is full and Omnis is starting to expand the only one it can: segment number 1. The datafile size has to be increased.
> OK message : "Call Cristina soon ! Your datafile has to be extended." *
> end if
>
> - 2. In case you have missed the situation 1:
> After expanding your datafile by adding a new segment (that will not extend by himself), and to prevent your customer to be stuck with a alert message "Datafile is full" in the middle of his work :
> In Startup/0 :
> If $data().$freesize<=5000000 ;; check for less than five Mb free space
> OK message : "Call Cristina soon ! Your datafile has to be extended." *
> end if
>
> * Automatized datafile extension might be called here (ask for details if needed)
>
> HTH
>
> Bruno


_____________________________________________________________
Manage your list subscriptions at http://lists.omnis-dev.com
Loading...