Size lock (OpenInsight 32-Bit)
At 18 SEP 2007 04:49:06PM Bruce Cameron wrote:
Can I make the assumption that if no users are in/on a system and I listed all the sizelocks they should all be zero (0) or one (1)?
If that is true, can I safely use the FIX_LH utility to change them to a 0 or 1?
At 18 SEP 2007 05:35PM Richard Hunt wrote:
Not that I am an expert…
Your logic is exactly what I do and it works for me. Actually I have programmed a procedure to do it for me.
At 18 SEP 2007 07:32PM Bruce Cameron wrote:
Richard,
"Can I make the assumption that if no users are in/on a system and I listed all the sizelocks they should all be zero (0) or one (1)?"
At 19 SEP 2007 02:23AM support@sprezzatura.com wrote:
Should all be zero UNLESS someone has DECIDED to make them otherwise.
support@sprezzatura.com
The Sprezzatura Group Web Site
World Leaders in all things RevSoft
At 19 SEP 2007 10:21AM Bruce Cameron wrote:
Hmmm,
If I go to table builder in 7.2.2 and create new table then go to the syseditor and RUN GET_LH_INFO "NEWTABLE" it is…
1102420180CMDATA\DATAVOL2\REV76122.LK2
nobody DECIDED to make sizelock a one (1), the OENGINE/INSIGHT just did it.
At 19 SEP 2007 11:09AM [url=http://www.sprezzatura.com]The Sprezzatura Group[/url] wrote:
Had you finished defining the table?
World leaders in all things RevSoft
At 19 SEP 2007 11:15AM Bruce Cameron wrote:
Not sure I understand what you mean by "finished" defining.
Normally we just go to the Table builder, click 'New' choose the data directory, a tablename, adjust the approx. number of records and avg. size and create it.
Is the protocol, to then go into the LH table info and adjust the 1 to a 0 ???
At 19 SEP 2007 12:02PM Richard Hunt wrote:
I am a little slow on responding sometimes…
In short, that is correct. Just change them to 0 unless you have decided to have one of them to be 1. Otherwise all should be 0 when no one is on the system.
I "think" that is a common belief with most developers.
At 19 SEP 2007 01:57PM Dave Harmacek wrote:
Old timer remembers:
"How a new table gets a sizelock of ZERO"
Makefile automatically sets sizelock value to 1 (allowing only expansion).
First occurrence of unindexed SELECT changes sizelock to 2 or a multiple of 2. When done, subtract 2. Why, well an unindexed SELECT (READNEXT) needed to stop expansion/reduction so that the keys in a group didn't change to another group and were missed.
Now you can see how a frozen session or a user powering down a machine without closing Arev would leave sizelock values above 1.
Dave
At 19 SEP 2007 09:03PM Barry Stevens wrote:
As tablebuilder asks for approx no of records and record size, it preallocates the table size. To allow this size to stay, the size lock is set to 1….expand but dont contract. In tables where records are being added/deleted, this would make the operation faster as less time resizing the file space.
This is my memory from Arev days, that I think would still apply.
SizeLocks ]1 must be checked and changed (0 or 1 as above) as I THINK this would cause unnecessary "overflows".
A reporting utility would be handy
At 19 SEP 2007 10:49PM Warren Auyong wrote:
Stephan Thomas wrote a utility ages ago for ARev when he was with Dunbar & Co that would list what the sizelock was set to for each file with an option to set them to what ever.
Not difficult to do as all you need to do is a osbread/osbwrite of the appropriate byte in the file header. Not something you'd want to do with other users on the files though.
Somebody no doubt has a copy of this utility. I might even have a copy somewhere.
At 19 SEP 2007 11:23PM Bruce Cameron wrote:
Here is a utility I created last night. It uses a radio button to display 'types' of tables. Remember to run when one is in your app.
1=!tables 2=DICT. 3=SYS??? 4=Data and 5=All
1. create new form - non-bound
2. add radio button control called TYPE
3. add button and add following code to CLICK event
I used the Popup function this way it can be selected (for changes) sorted, searched and printed.
Cheers!
BUTTON CLICK EVENT
Type=.type-]value
Declare function get_lh_info,msg
clearselect
open "SYSTABLES" to systables then
select systableseoj=0rows="cnt=0down=msg("","Please hold...":@FM:"U")loopreadnext id else eoj=1until eoj=1 dobegin casecase type=1 ; If id1,1=!" then gosub getinfocase type=2 ; If id1,5=DICT." then gosub getinfocase type=3 ; If id1,3=SYS" then gosub getinfocase type=4 ;If id1,1=!" elseif id1,5=DICT." elseif id1,3=SYS" elsegosub getinfoendendendcase type=5 ; gosub getinfoend caserepeatcall msg("",down)Convert @VM to @SVM in rowsConvert @FM to @VM in Rowsgosub setuppopupCall popup("",P,"")end
RETURN 0
*
GetInfo:*
*
row=get_lh_info(id)
convert @FM to @VM in row
rows=id:@VM:row
return
*
setuppopup:*
*
a=1 20 L C TableName"
b=2 4 C C #Frames"
c=3 4 C C FrameSize"
d=4 4 C C Percent%"
e=5 10 R C #Records"
f=6 4 C C SizeLock"
g=7 4 C C Threshold"
h=8 33 L C OSFilename"
i=9 4 C C FType"
FormatX=A:@VM:B:@VM:C:@VM:D:@VM:E:@VM:F:@VM:G:@VM:H:@VM:I
CONVERT " " TO @SVM IN FormatX
P="
P=25
P="
P=Rows
P=FormatX
P=L"
P=2
P=Database Information"
P=1
P=C"
P=1
P=1
P=1
P=1
P=1
P=1
P=1
P=12189625
P=16777215
return
At 20 SEP 2007 12:29PM Richard Hunt wrote:
I have found that if you are selecting from the SYSTABLES table, you might want to exclude the following tables…
SYSLOGINS
SYSWORKSTATION_SETTINGS
SYSREPOSMENUCONTEXT
DICT.SYSREPOSMENUCONTEXT
I find that these tables seem to not want to be bothered.