File handle structure mods (OpenInsight 64-bit)
At 20 DEC 2023 11:07:17AM Richard Hunt wrote:
I want to modify or upgrade the handling of file handles. I accomplished some of the my project, I just want some info on file handles.
I have this much on file handles…
pos 1 len 1 = char(13)
pos 2 len 12 = unique characters and numbers
pos 13 len … the path and file name and .lk
SAMPLE: CHAR(13):'010000000001\DATABASES\SYSTEM\CONTRACTS.LK
Works fine.
What I would like to do is to use the first 13 characters to identify the VOCOI record. The problem I have is that RTP57 seems to must have the first 13 and only the first 13 characters. So if the VOCOI record id is longer then it wont work. I was thinking the first character was the actual length of the open unique identifier with the rest being the OS path. The OS path part works, also does the changing the first 13 characters. Just cant change the length of the first 13 characters.
I even tried to call my own rtp57 and make the improvements and have it call the original rpt57. It works until you try to start the OI application. It definitely doesn't like me overwriting the rtp57 like the way you would modify the MSG.
This is part of the project of having OS file names be the actual file name. And be able to have files share dictionaries.
At 20 DEC 2023 11:31AM Andrew McAuley wrote:
Just change the name in the media map and let RTP57 do the heavy lifting. Got a draft blog article on this somewhere but thought it was a bit esoteric.
World leaders in all things RevSoft
At 20 DEC 2023 12:15PM bob carten wrote:
You could try a volume mfs. That would let you do whatever you want with the handles, so long as you handle strip off the additional information before calling rtp57.
Create a datasource using the designer or a sysptrs record, add your mfs to the file system list, then attach using the name of the datasource.
volume_mfs.png?rlkey=99du07870wf3lslm4tfe8tbqp&dl=0
OI will use the volume mfs when it opens any table attached via that volume. There is some code in OI to place SI.MFS and DICT.MFS first in the list of filing systems, which might cause an issue. But I expect that you can use something like this to share dictionaries.
A volume MFS is a way to put a contextual MFS on a table. For example, for batch reporting you could attach tables through an mfs which caches the data locally, something you would not do for data entry.
At 20 DEC 2023 01:31PM Andrew McAuley wrote:
And to share dictionaries the easiest way is to just replace the file name in the media map with the file you want. Just don't use indexes unless you want the same indexes on all files using the dictionary.
World leaders in all things RevSoft
At 21 DEC 2023 06:17AM Richard Hunt wrote:
Thank you for your responses.
I don't have to worry about SI_MFS, I designed my own indexing MFS. It is much faster on updating the index on reads, writes, deletes, ect. Also rebuilds are are way faster. No need for background indexing. It also sets the index rebuild flag on errors to let you know a rebuild is necessary, rarely happens.
Sharing dictionaries is handled thru the file pointers in my VOCOI file. And tweaking the file handle is working fine.
What I would like to do is to lengthen the first 13 characters of the file handle. Like I said the RTP57 mfs seems to not like that. I thought that the first character of the handle was used for determining the length. I am thinking that it was overlooked went RTP57 was designed way back in the AREV days to satisfy infopc users to be able to use indexing. So what I wanted to do was to make modifications to RTP57 by way of making my own RTP57 to make the mods and then call the original RTP57. Just like you would do to the MSG procedure to add "FATAL_CLOSE" and "FATAL_CLEAR". messages. That would allow me to make my updates all in one place.
The problem I have is that the application manager doesn't like any changes to RTP57. So currently I have to mod all my MFS, INDEX_MFS, ENCRYPT_MFS, alias files, my licensing rights, etc.
If I have to I will stick with what I currently got. I just waited too long, and got ignored for these upgrades so I finally did it my self. I am just having resistance from the OI software that I thought would be able to be resolved with your thoughts.