OS2 World Community Forum
OS/2, eCS & ArcaOS - Technical => Storage => Topic started by: Dariusz Piatkowski on April 11, 2020, 04:30:43 pm
-
I want to be able to run an on-demand (scheduled most likely) forced refresh of a particular folder, is there a call in REXX that would allow me to do so?
Basically I'm thinking the equivalent of 'RMB=>Refresh Now'.
Reason being: the built-in logic of XWP refresh causes frequent traps here (not hard trap, but soft trap) where XWP folders stop populating, this always requires either a Desktop re-start, or a complete re-boot. Since shutting this feature OFF I have been able to maintain pretty good WPS stability and rarely have the need today to force a re-boot.
However, there are certain folders, like my NAS LOG directory (where I'm sending all the various system LOGs) which of course are being populated very frequently and which my machine has a hard time detecting on a timely basis. Result being that from CLI I can see LOG udpates having been done, but through WPS these updated entries do not show up.
My thinking therefore is to schedule a forced refresh, run every 5 mins (I will play around with this) so that such particular folders are always up-to-date.
The NAS box access is through NetDrive and is a Samba share, I am currently using RL Walsh's OO.EXE to set the default folder view on several NAS folders to XVIEW, but as best as I can tell there is no option there for me to do a folder refresh.
Thanks!
-
/**/
CALL RxFuncAdd 'SysLoadFuncs', 'REXXUTIL', 'SysLoadFuncs'
CALL SysLoadFuncs
Dir = STRIP( ARG( 1))
IF LEFT( Dir, 1) = '"' THEN
PARSE VAR Dir '"'Dir'"'
CALL SysSetObjectData Dir, 'MENUITEMSELECTED=503;'
EXIT
-
Hi Andreas,
/**/
CALL RxFuncAdd 'SysLoadFuncs', 'REXXUTIL', 'SysLoadFuncs'
CALL SysLoadFuncs
Dir = STRIP( ARG( 1))
IF LEFT( Dir) = '"' THEN
PARSE VAR Dir '"'Dir'"'
CALL SysSetObjectData Dir, 'MENUITEMSELECTED=503;'
EXIT
Thank you.
There is a small correction to the above, where you want to check for the presence of " character you need to pass number of places to the LEFT function, therefore what works here is:
IF LEFT( Dir,1) = '"' THEN
I assume 'MENUITEMSELECTED=503' references the 'Folder Refresh' function? If so, what's the best place for me to check to understand all these? I have the "OS/2 REXX from Bark to Byte" book here, so now that you've pointed me to the SysSetObjectData call I am able to go a bit further with this...
-
Hi Dariusz,
Don't create any rexx and just use the provide tool under ArcaOS.
See here:
https://www.arcanoae.com/wiki/arcaos/post-install-tips-hints/
Under chapter :
Shadows in Tree view folders are not immediately rendered at desktop startup
(this update followed a ticket I opened in the past due to folder not correctly refreshed etc...)
-
IF LEFT( Dir,1) = '"' THEN
Sure. Changed above.
If you still need the loop or scheduling function in REXX, even though Remy has made another suggestion, ask here.
-
I assume 'MENUITEMSELECTED=503' references the 'Folder Refresh' function? If so, what's the best place for me to check to understand all these?
It took a while, but I've found it in REXX Tips & Tricks:
start view /s rxtt36 "IDs for the setup string MENUITEMSELECTED"
-
Hi Remy,
...Don't create any rexx and just use the provide tool under ArcaOS.
See here:
https://www.arcanoae.com/wiki/arcaos/post-install-tips-hints/...
Good suggestion, but it is not quite the problem I am seeing. During re-boot all is good...but as the NAS located folder is updated at the source (NAS) the changes take a long time, or sometimes never get reflected on the OS/2 side of things (so WPS). This is the reason why I want to force the folder refresh to happen on on-going basis.
Your link did give me some other ideas though, the suggestion made there is to use OO.EXE to issue a listing of folder contents (where output goes to nul), thus forcing a refresh of the folder. Since I am already using OO.EXE that may keep things more consistent.
The thing is that the results I'm getting are somewhat incosistent, namely, I can point to that NAS folder through it's objectid or through the actual filesystem name:
[G:\util\misc]oo /I 0x36C68
36C68 ---- XFolder "V:\PUBLIC\SYSLOG"
[G:\util\misc]oo /I 0x3C7E6
3C7E6 ---- XFolder "V:\PUBLIC\SYSLOG\202004"
[G:\util\misc]oo /I v:\public\syslog\202004
3C7E6 ---- XFolder "V:\PUBLIC\SYSLOG\202004"
[G:\util\misc]oo /L v:\public\syslog\202004
0 objects in V:\PUBLIC\SYSLOG\202004
The attempt to list the contents "/L" shows 0 objects...but I certainly have files there:
[G:\]dir V:\PUBLIC\SYSLOG\202004
The volume label in drive V is NETDRIVE.
Directory of V:\PUBLIC\SYSLOG\202004
4-09-20 6:15a <DIR> 0 .
4-09-20 6:15a <DIR> 0 ..
4-07-20 11:58p 60644 0 192.168.1.1_20200407.txt
4-05-20 6:43p 33464 0 192.168.1.10_20200405.txt
4-03-20 10:52p 84015 0 192.168.1.1_20200403.txt
4-02-20 10:50p 7451 0 192.168.1.10_20200402.txt
4-09-20 6:15a 2351 0 192.168.1.10_20200409.txt
4-08-20 11:57p 72364 0 192.168.1.1_20200408.txt
4-08-20 10:47p 7053 0 192.168.1.10_20200408.txt
4-10-20 11:52p 2644 0 192.168.1.10_20200410.txt
4-06-20 11:34p 57043 0 192.168.1.1_20200406.txt
4-02-20 10:30p 82303 0 192.168.1.1_20200402.txt
4-09-20 11:24p 63599 0 192.168.1.1_20200409.txt
4-10-20 11:59p 56475 0 192.168.1.1_20200410.txt
4-05-20 11:59p 57198 0 192.168.1.1_20200405.txt
4-02-20 11:00p 2351 0 192.168.1.10_20200403.txt
4-04-20 10:57p 71024 0 192.168.1.1_20200404.txt
4-11-20 1:52p 3860 0 192.168.1.10_20200411.txt
4-01-20 9:58p 3468 0 192.168.1.10_20200401.txt
4-11-20 4:27p 56320 0 192.168.1.1_20200411.txt
4-01-20 10:48p 64493 0 192.168.1.1_20200401.txt
21 file(s) 788120 bytes used
2308202 M bytes free
Assuming that '/L' only shows non-file objects in folder (as the OO.EXE) help explains I thought I would test on the parent folder (V:\PUBLIC\SYSLOG) which certainly will show the data specific log folder (202004), still that returns 0 as well.
I will try this out though, maybe enough to force a refresh.
-
Andreas,
I assume 'MENUITEMSELECTED=503' references the 'Folder Refresh' function? If so, what's the best place for me to check to understand all these?
It took a while, but I've found it in REXX Tips & Tricks:
start view /s rxtt36 "IDs for the setup string MENUITEMSELECTED"
Yup, got it, I was able to find it, excellent pointer, thank you again!