Skip to main content

Hello,

Our apps are written in SB+ which use a cached opened files, in named common block SBPLUS & SBFILES, of 30 + 750 = 780 filevars (result of OPEN file TO filevar from BASIC). Some of our app's files are indexed, dynamic or distributed. 

It means, with 780 cached filevars, we open more than 1000 os file. 

With release 11.x we are used to set MFILES 3000 without never a trouble. 

Now r12, r14 introduce SESSION_NFILES limit. Which is session's ActiveFileTable instance.

  • SESSION_NFILES is not defined in uvconfig.
  • CONFIG ALL report SESSION_NFILES = 800 ; aka. MFILES x 4)

Then, at basic runtime we encounter OPEN file to fv ELSE CRT STATUS() =  -25 which is Exceeded SESSION_NFILES file table resource

I try to push MFILES from 200 to 300 or set SESSION_NFILES to 2000 in uvconfig ... 

- uvregen accept it 

- at uv -admin -start I get  StartService failed (1068) 

minidumpexception* Unhandled Exception raised at address 0xE7261759 : Access violation.  Attempted to write to address 0xC04D0000. Process name: uvsmm.exe

I suppose a trouble with shm ? but which one ? 

I really need to push at minima MFILES 300SESSION_NFILES = 1200 

If anyone have an idea to configure correctly ?

Is it a windows11 trouble ? I haven't tried it on a Windows server yet. 

Thanks for any comment.

manu 

Hello,

Our apps are written in SB+ which use a cached opened files, in named common block SBPLUS & SBFILES, of 30 + 750 = 780 filevars (result of OPEN file TO filevar from BASIC). Some of our app's files are indexed, dynamic or distributed. 

It means, with 780 cached filevars, we open more than 1000 os file. 

With release 11.x we are used to set MFILES 3000 without never a trouble. 

Now r12, r14 introduce SESSION_NFILES limit. Which is session's ActiveFileTable instance.

  • SESSION_NFILES is not defined in uvconfig.
  • CONFIG ALL report SESSION_NFILES = 800 ; aka. MFILES x 4)

Then, at basic runtime we encounter OPEN file to fv ELSE CRT STATUS() =  -25 which is Exceeded SESSION_NFILES file table resource

I try to push MFILES from 200 to 300 or set SESSION_NFILES to 2000 in uvconfig ... 

- uvregen accept it 

- at uv -admin -start I get  StartService failed (1068) 

minidumpexception* Unhandled Exception raised at address 0xE7261759 : Access violation.  Attempted to write to address 0xC04D0000. Process name: uvsmm.exe

I suppose a trouble with shm ? but which one ? 

I really need to push at minima MFILES 300SESSION_NFILES = 1200 

If anyone have an idea to configure correctly ?

Is it a windows11 trouble ? I haven't tried it on a Windows server yet. 

Thanks for any comment.

manu 

Manu,

Checking the references:

  • MFILES reflects the number of physically open files, if the number is exceeded they are 'rotated' through a file pool.
  • SESSION_NFILES reflects the number of logical files that can be open - defaulting to MFILESx4 - and by the description this includes any files that might be rotated out - not just files physically open.


It's possible you are another limit and it's worth checking the SYSTEM_BUFFER setting and if set to 1 then set it to 0 and see if you get the same fault. 

Also this may cast some light:

Third mode

The SYSTEM_BUFFER uvconfig parameter allows for changing how UniVerse will use the System Buffer. When set to a value of 0, the UniVerse file headers are no longer saved to the AFT entry. Only some key information such as the inode number will be stored for concurrency control. Also when the SYSTEM_BUFFER parameter is set to 0, file activity will no longer be cached to the System Buffer pages and the file I/O will be applied directly to the physical file as it was done with prior releases of UniVerse.

When the SYSTEM_BUFFER parameter is set to 0, the UniVerse RFS functionality will not be available. This release can run with the System Buffer enabled (SYSTEM_BUFFER = 1) without using the RFS functionality. But, to use the RFS functionality (RFS_MODE = 1), the System Buffer must be enabled.

SYSTEM BUFFER RFS_MODE MODE Description
0 0 No System Buffer or RFS protection
0 1 Invalid configuration

An error is reported when executing uvregen.

1 0 System Buffer On, no RFS protection

This is the default mode.

1 1 System Buffer On, RFS protection

This is full protection mode.

Implications

There are certain implications you should be aware of when setting SYSTEM_BUFFER to 0.

  • On Linux and AIX, Universe will switch from the default two-process mode to single process mode.
    Note: Windows version 12.x always runs in single process mode by default.
  • The daemons used to manage the System Buffer will be disabled.
  • Shared memory will not be allocated for the System Buffer.
  • When the open count for a file reaches 0, the file entry will be removed from the AFT.
  • The uvunload listall command will display files with a minimum open count of 1.

Index commands and exclusive file access

  • When the SYSTEM_BUFFER parameter is set to 0, the exclusive access requirements for index commands, such as BUILD.INDEX, CREATE.INDEX, and DELETE.INDEX, revert to the previous behavior before version 12.1.1.
  • When the SYSTEM_BUFFER parameter is set to 1, these commands require exclusive access to the file to be executed. No other user can have the file open.

Hoping this casts some light - though it would be useful if the error was meaningful and not just a number.

Regtards

JJ


Hello,

Our apps are written in SB+ which use a cached opened files, in named common block SBPLUS & SBFILES, of 30 + 750 = 780 filevars (result of OPEN file TO filevar from BASIC). Some of our app's files are indexed, dynamic or distributed. 

It means, with 780 cached filevars, we open more than 1000 os file. 

With release 11.x we are used to set MFILES 3000 without never a trouble. 

Now r12, r14 introduce SESSION_NFILES limit. Which is session's ActiveFileTable instance.

  • SESSION_NFILES is not defined in uvconfig.
  • CONFIG ALL report SESSION_NFILES = 800 ; aka. MFILES x 4)

Then, at basic runtime we encounter OPEN file to fv ELSE CRT STATUS() =  -25 which is Exceeded SESSION_NFILES file table resource

I try to push MFILES from 200 to 300 or set SESSION_NFILES to 2000 in uvconfig ... 

- uvregen accept it 

- at uv -admin -start I get  StartService failed (1068) 

minidumpexception* Unhandled Exception raised at address 0xE7261759 : Access violation.  Attempted to write to address 0xC04D0000. Process name: uvsmm.exe

I suppose a trouble with shm ? but which one ? 

I really need to push at minima MFILES 300SESSION_NFILES = 1200 

If anyone have an idea to configure correctly ?

Is it a windows11 trouble ? I haven't tried it on a Windows server yet. 

Thanks for any comment.

manu 

Hi John, 

Yes, I re-read the doc 10 tomes, sorry but these release force SYSTEM_BUFFER to 0. And I confirm it is equsl 0.

I do not known where is the problem.

But I can't push up MFILES  and I can't define SESSION_NFILES... 

Thanks for your help. 


Hello,

Our apps are written in SB+ which use a cached opened files, in named common block SBPLUS & SBFILES, of 30 + 750 = 780 filevars (result of OPEN file TO filevar from BASIC). Some of our app's files are indexed, dynamic or distributed. 

It means, with 780 cached filevars, we open more than 1000 os file. 

With release 11.x we are used to set MFILES 3000 without never a trouble. 

Now r12, r14 introduce SESSION_NFILES limit. Which is session's ActiveFileTable instance.

  • SESSION_NFILES is not defined in uvconfig.
  • CONFIG ALL report SESSION_NFILES = 800 ; aka. MFILES x 4)

Then, at basic runtime we encounter OPEN file to fv ELSE CRT STATUS() =  -25 which is Exceeded SESSION_NFILES file table resource

I try to push MFILES from 200 to 300 or set SESSION_NFILES to 2000 in uvconfig ... 

- uvregen accept it 

- at uv -admin -start I get  StartService failed (1068) 

minidumpexception* Unhandled Exception raised at address 0xE7261759 : Access violation.  Attempted to write to address 0xC04D0000. Process name: uvsmm.exe

I suppose a trouble with shm ? but which one ? 

I really need to push at minima MFILES 300SESSION_NFILES = 1200 

If anyone have an idea to configure correctly ?

Is it a windows11 trouble ? I haven't tried it on a Windows server yet. 

Thanks for any comment.

manu 

The Third mode and SYSTEM_BUFFER uvconfig parameter no longer exist at the 14.1.1 release. As noted, at 14.1.1, the default behavior is that UV file I/O does not go thru the System Buffer. With that said, the MFILES and SESSION_NFILES parameters are per session parameters related to the number of open files and should be unrelated to whether the I/O is using the System Buffer. I have checked with Dev and it is unclear why changing one of the session based parameters would stop UV from being able to start. Will need to do some additional investigation to see if we can reproduce internally. 

Thanks.


Hello,

Our apps are written in SB+ which use a cached opened files, in named common block SBPLUS & SBFILES, of 30 + 750 = 780 filevars (result of OPEN file TO filevar from BASIC). Some of our app's files are indexed, dynamic or distributed. 

It means, with 780 cached filevars, we open more than 1000 os file. 

With release 11.x we are used to set MFILES 3000 without never a trouble. 

Now r12, r14 introduce SESSION_NFILES limit. Which is session's ActiveFileTable instance.

  • SESSION_NFILES is not defined in uvconfig.
  • CONFIG ALL report SESSION_NFILES = 800 ; aka. MFILES x 4)

Then, at basic runtime we encounter OPEN file to fv ELSE CRT STATUS() =  -25 which is Exceeded SESSION_NFILES file table resource

I try to push MFILES from 200 to 300 or set SESSION_NFILES to 2000 in uvconfig ... 

- uvregen accept it 

- at uv -admin -start I get  StartService failed (1068) 

minidumpexception* Unhandled Exception raised at address 0xE7261759 : Access violation.  Attempted to write to address 0xC04D0000. Process name: uvsmm.exe

I suppose a trouble with shm ? but which one ? 

I really need to push at minima MFILES 300SESSION_NFILES = 1200 

If anyone have an idea to configure correctly ?

Is it a windows11 trouble ? I haven't tried it on a Windows server yet. 

Thanks for any comment.

manu 

We have a customer running UniVerse 14.1.1 on Red Hat Linux 9 with uvconfig set with:

MFILES 8000

T30FILE 7992

SESSION_NFILES is commented out.

Users running our applications regularly exceed 250 open UniVerse files and 1,000 open OS-level file descriptors.

I have not seen the symptoms reported on Red Hat Linux, so perhaps the problem is Windows-specific.


Hello,

Our apps are written in SB+ which use a cached opened files, in named common block SBPLUS & SBFILES, of 30 + 750 = 780 filevars (result of OPEN file TO filevar from BASIC). Some of our app's files are indexed, dynamic or distributed. 

It means, with 780 cached filevars, we open more than 1000 os file. 

With release 11.x we are used to set MFILES 3000 without never a trouble. 

Now r12, r14 introduce SESSION_NFILES limit. Which is session's ActiveFileTable instance.

  • SESSION_NFILES is not defined in uvconfig.
  • CONFIG ALL report SESSION_NFILES = 800 ; aka. MFILES x 4)

Then, at basic runtime we encounter OPEN file to fv ELSE CRT STATUS() =  -25 which is Exceeded SESSION_NFILES file table resource

I try to push MFILES from 200 to 300 or set SESSION_NFILES to 2000 in uvconfig ... 

- uvregen accept it 

- at uv -admin -start I get  StartService failed (1068) 

minidumpexception* Unhandled Exception raised at address 0xE7261759 : Access violation.  Attempted to write to address 0xC04D0000. Process name: uvsmm.exe

I suppose a trouble with shm ? but which one ? 

I really need to push at minima MFILES 300SESSION_NFILES = 1200 

If anyone have an idea to configure correctly ?

Is it a windows11 trouble ? I haven't tried it on a Windows server yet. 

Thanks for any comment.

manu 

Hi,

My first attempt was done on a virtual W11 box.

I tested on a physical W11 and it works. 

I can set my MFILES / SESSION_NFILES / SESSION_AFT_BUCKET + AFT* as I need. 

I'll check on Virtual WindowsServer if it's ok.

With kind regards.

Manu