Attaching SYSTABLES and SYSVOLUMES (OpenInsight 32-bit)
At 23 SEP 2020 09:38:47AM Donald Bakke wrote:
I inadvertently detached SYSTABLES and SYSVOLUMES and then saved the database. This meant those tables were no longer available when I logged back in (which surprised me…I figured they were always created on-the-fly).
Is there a way to use Attach_Table to add them back? I haven't found a way to do that.
BTW, this isn't a show-stopper for me. I was able to restore the DBT file but this exercise got me curious.
At 23 SEP 2020 10:27AM bob carten wrote:
which surprised me…I figured they were always created on-the-fly).Surprised me too!
I did not know those tables could be detached. The program LOAD_SYSPROGDBT should be modified load them regardless of what the dbt indicates.
You might get away with calling attach table in "volume pointer on the fly" mode passing in path:@fm:bfs:@fm:control_info
location = "MEMORY_RESIDENT":@FM:"RTP50" tables = "SYSVOLUMES":@fm:"SYSTABLES" call attach_Table(location, tables, "GLOBAL")BTW, The ability to use attach_Table to create effectively create a sysptr on the fly offers opportunities
For example, you can attach a volume with temporary volume mfs
mycontrolInfo = "" ; * information that the mfs needs location = "myfolder":@FM:"MYMFS":@vm:"RTP57":@fm:mycontrolinfo tables = "" call attach_Table(location, tables, "")if you are using the UD5, you can pass a semi-colon delimited revparam connectionstring on the fly
This should let you consume data from more than one UD
connectionString = "ServerOnly=1;ServerName=172.16.21.101;TcpipPort=1234;NamedPipeName=None;UDVERSION=5" location = "myfolder":@FM:":"RTP57":@fm:mycontrolinfo tables = "" call attach_Table(location, tables, "")
At 23 SEP 2020 10:29AM Carl Pates wrote:
Hi Don,
How did you manage to detach them? Detach_Table has a checklist of tables not to detach, and those two are the first in the list :)
At 23 SEP 2020 10:45AM Donald Bakke wrote:
Hi Don,
How did you manage to detach them? Detach_Table has a checklist of tables not to detach, and those two are the first in the list :)
Hi Carl - I was creating a POC BFS using our in-memory hashtable utility and I passed in "MEMORY_RESIDENT" as the location in Create_Volume (which I got from following the TEST_RTI_MEMBFS code). For the moment, this appears to do what was expected:
On a lark, I decided to save the database (even though I knew the table was virtual), and upon getting back in I saw my SYSTABLES and SYSVOLUMES tables were no longer attached:
So, I didn't detach them per se, but my actions created the same effect.
At 23 SEP 2020 11:11AM Carl Pates wrote:
Fair enough :)
At 30 SEP 2020 10:40AM Donald Bakke wrote:
You might get away with calling attach table in "volume pointer on the fly" mode passing in path:@fm:bfs:@fm:control_info
location = "MEMORY_RESIDENT":@FM:"RTP50" tables = "SYSVOLUMES":@fm:"SYSTABLES" call attach_Table(location, tables, "GLOBAL")FYI, this didn't seem to work. I received an FS130 error (BFS code not implemented ; code ; BFS name) when attempting this.