<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://brwiki2.brulescorp.com/brwiki2/index.php?action=history&amp;feed=atom&amp;title=System_Limits</id>
	<title>System Limits - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://brwiki2.brulescorp.com/brwiki2/index.php?action=history&amp;feed=atom&amp;title=System_Limits"/>
	<link rel="alternate" type="text/html" href="https://brwiki2.brulescorp.com/brwiki2/index.php?title=System_Limits&amp;action=history"/>
	<updated>2026-04-17T03:06:32Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://brwiki2.brulescorp.com/brwiki2/index.php?title=System_Limits&amp;diff=5422&amp;oldid=prev</id>
		<title>Laura: Created page with &quot;As of 4.20 * Literals may be any length.  (in 4.18 they we&#039;re limited to 250 characters) * The 256 byte limit on compiled form statements is removed. Form stat...&quot;</title>
		<link rel="alternate" type="text/html" href="https://brwiki2.brulescorp.com/brwiki2/index.php?title=System_Limits&amp;diff=5422&amp;oldid=prev"/>
		<updated>2013-07-13T15:58:53Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;As of &lt;a href=&quot;/brwiki2/index.php?title=4.20&quot; title=&quot;4.20&quot;&gt;4.20&lt;/a&gt; * &lt;a href=&quot;/brwiki2/index.php?title=Literals&quot; class=&quot;mw-redirect&quot; title=&quot;Literals&quot;&gt;Literals&lt;/a&gt; may be any length.  (in 4.18 they we&amp;#039;re limited to 250 characters) * The 256 byte limit on compiled &lt;a href=&quot;/brwiki2/index.php?title=Form&quot; title=&quot;Form&quot;&gt;form&lt;/a&gt; &lt;a href=&quot;/brwiki2/index.php?title=Statements&quot; class=&quot;mw-redirect&quot; title=&quot;Statements&quot;&gt;statements&lt;/a&gt; is removed. Form stat...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;As of [[4.20]]&lt;br /&gt;
* [[Literals]] may be any length.  (in 4.18 they we&amp;#039;re limited to 250 characters)&lt;br /&gt;
* The 256 byte limit on compiled [[form]] [[statements]] is removed. Form statements are limited only to the length of a BR source statement. &lt;br /&gt;
* The maximum [[array]] elements is now [[99,999,999]].&lt;br /&gt;
* The maximum [[string]] length is 99,999,999.&lt;br /&gt;
* The maximum [[WorkStack]] size is 99,999,999.  Previously it was 65,535.&lt;br /&gt;
* [[External file]] [[Pos=]] allows up to 99,999,999.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Arrays===&lt;br /&gt;
*Maximum 7 dimensions (e.g., A(1,1,1,1,1,1,1)).&lt;br /&gt;
*Subscripts, smallest 0 (when OPTION BASE 0 is specified; otherwise the default is 1).&lt;br /&gt;
*Array size is limited by both memory allocation and number of entries.  (See also Errors [[0120]] and [[2082]])&lt;br /&gt;
*Arrays are limited to [[32,767]] (32K) entries.&lt;br /&gt;
*As of BR [[4.17]], arrays are limited to a maximum of 1024KB or 1MB ([[1,048,576]]) of allocated memory.&lt;br /&gt;
::As an example, you may dim an 512 byte array to a maximum of 2048 entries.&lt;br /&gt;
::DIM A$(2048)*512&lt;br /&gt;
::Prior releases had memory limits of 32K,64K or 512K.&lt;br /&gt;
*Initially arrays may not be [[dimmed]] larger than [[9,999]] elements, however you can [[Mat]] an array as high as [[32,767]].  Attempts to Mat higher than this will result in error [[0120]].&lt;br /&gt;
&lt;br /&gt;
===Dictionary===&lt;br /&gt;
The maximum [[dictionary]] size is 2MB.&lt;br /&gt;
&lt;br /&gt;
===Field Help Window===&lt;br /&gt;
Maximum size 1000 characters (100 is recommended).&lt;br /&gt;
&lt;br /&gt;
===Files===&lt;br /&gt;
:1.) Maximum file size varies according to operating system. Prior to version 4.13, file size maximums as were as follows-&lt;br /&gt;
{|&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=&amp;quot;10%&amp;quot;|&amp;#039;&amp;#039;&amp;#039;DOS&amp;#039;&amp;#039;&amp;#039;||32M (2**16 blocks of 512 bytes)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=&amp;quot;10%&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Unix&amp;#039;&amp;#039;&amp;#039;||1M&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=&amp;quot;10%&amp;quot;|&amp;#039;&amp;#039;&amp;#039;Linux&amp;#039;&amp;#039;&amp;#039;||2M (edit the /etc/default/login file to change this default)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
With BR Versions [[4.13]]+, large files (exceeding 2GB) are supported&lt;br /&gt;
&lt;br /&gt;
[[Option]] 33 must be on to invoke this feature. It has been tested using TCP/IP only. We expect NetBui and some versions of IPX to fail above 2GB. This option will fail in Windows 95, 98 and ME.&lt;br /&gt;
&lt;br /&gt;
:2.) Business Rules! internal limit: [[2147M]] (2**31).&lt;br /&gt;
&lt;br /&gt;
:3.) Maximum record length: [[32,000]] bytes (depends on size of your program, space required for data storage, version of Business Rules and available memory).&lt;br /&gt;
&lt;br /&gt;
:4.) Maximum # of files open at once:&lt;br /&gt;
{|&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=&amp;quot;15%&amp;quot;&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Before Rel 3.02&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|&lt;br /&gt;
|The limit was 20 open files per user for DOS, Unix and Linux. The operating system and Business Rules usually take up 5 files, leaving 15 usable opens.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=&amp;quot;15%&amp;quot;&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Rel 3.02+&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|&lt;br /&gt;
|It depends on your operating system; DOS and NetWorks have a limit of 100 files (95 usable).&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:5.) Available channel numbers, specified in [[OPEN statements]] have been expanded to 199.  e.g. OPEN #199: &amp;quot;......&amp;quot; In version [[4.14]] file number 300-999 may also be used.&lt;br /&gt;
&lt;br /&gt;
:6.) Keyed files use two opens (one for the master and one for the key file). Procedure files count as one. Help files which are being accessed count as one. Window files do not count against the operating system limit on open files. All other files use one, even when second and subsequent opens are made to the same file (e.g., a file, which is simultaneously open via two different OPEN statement still only counts as one open file to the operating system).&lt;br /&gt;
&lt;br /&gt;
:7.) With BR [[3.9]]+, long filenames are supported&lt;br /&gt;
&lt;br /&gt;
===Function calls===&lt;br /&gt;
The longest user-defined function name allowed is 30 characters including FN (not including $ for string functions).&lt;br /&gt;
&lt;br /&gt;
===Help===&lt;br /&gt;
# Maximum items per menu is Unlimited.  Number of related topics on a submenu is also unlimited.&lt;br /&gt;
# Maximum [[keyword]] length is 33 characters (no commas or spaces allowed).&lt;br /&gt;
# Maximum line width is 79 characters&lt;br /&gt;
# Maximum nested submenus is Unlimited&lt;br /&gt;
# Maximum successive menus recalled = Up to 15 successive (nested) menus are saved for later recall by the F2 key .&lt;br /&gt;
# Maximum topic description length is 60 characters (spaces, commas and all characters are allowed).&lt;br /&gt;
&lt;br /&gt;
===Indexes===&lt;br /&gt;
# Longest key [[field length]] is [[128]] adjacent or non-adjacent characters.&lt;br /&gt;
# Maximum key fields per file is One. (See &amp;quot;[[Files, maximum number open at once]]&amp;quot; for maximum number of index files.)&lt;br /&gt;
# Split keys: Up to 6 non-adjacent sections can be combined into one key field.&lt;br /&gt;
# The [[sort]] and [[index]] creation utilities now utilize significantly more memory than before, and yield significantly better performance.&lt;br /&gt;
&lt;br /&gt;
===Loop variables===&lt;br /&gt;
Default is maximum of 20 (see [[ForStack]] specification in [[BRConfig.sys]] for how to change this default).&lt;br /&gt;
&lt;br /&gt;
===Memory Available===&lt;br /&gt;
Business Rules! can access all memory available to Windows, and does not suffer from DOS [[640k]] limitations.&lt;br /&gt;
&lt;br /&gt;
===Numbers===&lt;br /&gt;
# Largest: This number varies according to your hardware (CPU). The system function [[Inf]] (e.g., type PRINT INF) returns the largest number. [[1.000000E+307]] is the largest number on all DOS, Unix and Linux versions at the time of publication of this manual.&lt;br /&gt;
# Longest constant 15 integer and 9 decimal digits&lt;br /&gt;
# Most significant digits 15 represented, but loss of intermediate results during calculations may limit accuracy to 14 digits or less.&lt;br /&gt;
# Considered equal in comparisons Controlled by the RD specification in BRConfig.sys. The default of 6 decimal places means that numbers within .0000005 of each other are considered equal in comparisons.&lt;br /&gt;
&lt;br /&gt;
===Printer Initialization Strings===&lt;br /&gt;
The maximum length of printer initialization strings is 64 bytes.&lt;br /&gt;
&lt;br /&gt;
===Procedures===&lt;br /&gt;
Nine nested procedures may be active at one time.&lt;br /&gt;
&lt;br /&gt;
===Program Lines===&lt;br /&gt;
*Largest line number is 99999.&lt;br /&gt;
*Smallest line number is 00001&lt;br /&gt;
*The maximum length of a BR statement is now [[2000]] characters.  Prior to [[4.20]], the longest line length is [[800]] characters in source code&lt;br /&gt;
*Longest line length is [[250]] characters in object code&lt;br /&gt;
*The maximum number of lines in a program is [[32000]].&lt;br /&gt;
*BR! [[4.18]] and before can handle no more than 35 libraries declared with a single [[Library (Statement)|Library statement]].  (See also Error [[1050]])&lt;br /&gt;
&lt;br /&gt;
===Sort===&lt;br /&gt;
Maximum combined sort key length is [[32,000]] bytes&lt;br /&gt;
&lt;br /&gt;
Maximum number of records is&lt;br /&gt;
# Limited only by disk space for a record-out sort (type R)&lt;br /&gt;
# 99,999 records for a type A (PD 3 format) address- out sort&lt;br /&gt;
# 2.147 billion (2**31-1) records for a type B (B 4 format) address-out sort&lt;br /&gt;
&lt;br /&gt;
The sort and index creation utilities now utilize significantly more memory than before, and yield significantly better performance.&lt;br /&gt;
&lt;br /&gt;
;Record selection rules for Sort&lt;br /&gt;
Up to 10 record selection rules can be combined with AND or OR.&lt;br /&gt;
&lt;br /&gt;
===Strings===&lt;br /&gt;
:1.) Longest [[constant]] is 250 characters.&lt;br /&gt;
:2.) Longest string length (variable) is 32,000 characters (depends on size of your program, space required for other variables and available memory).&lt;br /&gt;
:3.) Default length is 18 characters.&lt;br /&gt;
&lt;br /&gt;
===Subroutine or function calls===&lt;br /&gt;
Largest number of nested calls defaults to 50. (See [[FLOWSTACK]] specification in [[BRConfig.sys]] for how to change this default.)&lt;br /&gt;
&lt;br /&gt;
===Workstations===&lt;br /&gt;
&lt;br /&gt;
The maximum number of [[workstations]] was 127.  Now it is 999.&lt;br /&gt;
&lt;br /&gt;
===Variables===&lt;br /&gt;
Longest allowable [[variable]] name is 30 characters (not including $ at the end of string variable names).&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
Maximum size&lt;br /&gt;
:1.) When attributes do not occupy a space, the maximum size is 24 x 80. If a border is used, the maximum is 23 x 79.&lt;br /&gt;
:2.) When attributes do occupy a space, the maximum is 23 x 79. If a border is used, the maximum is 22 x 78.&lt;br /&gt;
&lt;br /&gt;
===Record Locking===&lt;br /&gt;
&lt;br /&gt;
BR [[3.8]] uses 31 bit locking. BR [[3.9]] heretofore used 30 bit locking to be compatible with CIFS / SMB products like [[Samba]] and [[SCO Vision]]. However this has proved to be an unacceptable limitation because files that are greater than 1 gigabyte can get random locked records for no apparent reason.&lt;br /&gt;
&lt;br /&gt;
As of release levels [[3.92i]]/[[4.02i]]/[[4.12i]] 31 bit locking is the default. This will take you to approx 1.8 GB without lockin conflicts.&lt;br /&gt;
&lt;br /&gt;
32 bit locking gives access to about 3.6 GB.&lt;br /&gt;
&lt;br /&gt;
Release [[4.03]] or [[4.13]] is required to go to 64 bit locking, and this is not possible on Windows 95, 98 and ME.&lt;br /&gt;
&lt;br /&gt;
In versions [[4.0]]+, new [[Option]] statement is provided to specify the number of bits to be used for locking:&lt;br /&gt;
&lt;br /&gt;
OPTION 33  ( 30 / 31 / 32 / 64 )     (default is 31)&lt;br /&gt;
&lt;br /&gt;
30 bit support is for compatibility with CIFS (e.g. Samba) when needed.&lt;br /&gt;
&lt;br /&gt;
31 bit locking allows for data files up to about 1.8 gig depending on record size. The larger the record size, the higher the boundary.&lt;br /&gt;
&lt;br /&gt;
32 and 64 BIT LOCKING ONLY WORK ON NT/W2K/XP systems. 32 bits support files up to approx 3.6 gig.&lt;br /&gt;
&lt;br /&gt;
32 and 64 bit support is currently only available in releases 4.03 and 4.13.+&lt;br /&gt;
&lt;br /&gt;
We are researching large file support on Unix/Linux.&lt;br /&gt;
&lt;br /&gt;
BR will not start two sessions using different lock bit requirements. A message box is produced when that is attempted.&lt;br /&gt;
&lt;br /&gt;
The record locking mechanism was substantially revised to enable record locking without actually locking records. This allows report writers and [[ODBC]] to access locked records without interference.&lt;br /&gt;
&lt;br /&gt;
[[Category:System limits]]&lt;/div&gt;</summary>
		<author><name>Laura</name></author>
	</entry>
</feed>