Programming/using OS/2 REXX (echo) Saturday, 20-Nov-1999 to Friday, 26-Nov-1999 +----------------------------------------------------------------------------+ From: Peter Knapper 20-Nov-99 13:36:25 To: All 20-Nov-99 08:40:00 Subj: Copying files and EA's... Hi Folks, I wanted to automate the copying of files from one machine to another using REXX when a thought struck me. If a file has EA's, does the OS/2 COPY command copy EA's - 1. Between a file copied to the SAME partition? 2. Between partitions/drives on the same machine? 3. Between machines connected using OS/2 Peer Services? I would expect 1 to be YES, 2 to be YES, 3 possibly... Can similar/better functionality be performed using REXX commands, ensuring that EA's are also copied in each of the above situations? NB: I do not want to split off EA's and re-combine them later... Cheers...............pk. --- Maximus/2 3.01 * Origin: Another Good Point About OS/2 (3:772/1.10) +----------------------------------------------------------------------------+ From: Eddy Thilleman 18-Nov-99 20:40:25 To: Wim Bijlenga 20-Nov-99 15:43:20 Subj: general open file routines Hello Wim, 16 Nov 99 08:23, Wim Bijlenga wrote to Eddy Thilleman: ET>> I've written some (I hope) general (ofcourse) REXX file routines, ET>> with internal checking for file errors, these can be used as ET>> functions. Is there interest? WB> Yes You're the first to ask for it. I've made these routines to make it easier to open, read/write and close files, and not have to code the checks, etc (write once, use many times). I just want to write something like openfile in the main code and not to have to think about all the hassle to handle error situations (like file not present, or file is present but (for some reason) it can't be opened, etc. /* file I/O subroutines */ /* search text in file and if found, returns that line */ Search: procedure parse arg file, text found = 0 check = stream( file, 'C', "seek =1" ) /* seek to begin of file */ do while (Lines( file ) = 1) & \found /* while not end of file and text not found */ Line = strip( LineIn( file ) ) /* read new line */ if Length( Line ) > 0 then do /* if Line not empty */ if pos( translate(text), translate(Line) ) > 0 then do found = 1 end /* if text is found */ end /* if Line not empty */ end /* while not end of file */ if \found then Line = "" /* if text not found, return empty line */ return Line /* function OpenFile( fname ) */ OpenFile: procedure parse arg fname check = stream( fname, 'c', 'query exists' ) if length( check ) > 0 then do check = stream( fname, 'c', 'open' ) if (check == 'READY') | (check == 'READY:') then result = 1 else do result = 0 say fname":" stream( InFile, 'D' ) /* display description about possible error */ end end else do say fname "not found" result = 0 end return result /* function OpenReadFile( fname ) */ OpenReadFile: procedure parse arg fname check = stream( fname, 'c', 'query exists' ) if length( check ) > 0 then do check = stream( fname, 'c', 'open read' ) if (check == 'READY') | (check == 'READY:') then result = 1 else do result = 0 say fname":" stream( InFile, 'D' ) /* display description about possible error */ end end else do say fname "not found" result = 0 end return result /* function OpenWriteFile( fname ) */ OpenWriteFile: procedure parse arg fname check = stream( fname, 'c', 'open write' ) if (check == 'READY') | (check == 'READY:') then result = 1 else do result = 0 say fname":" stream( InFile, 'D' ) /* display description about possible error */ end return result /* function OpenAppendFile( fname ) */ OpenAppendFile: procedure parse arg fname check = stream( fname, 'c', 'open write' ) if (check == 'READY') | (check == 'READY:') then do result = 1 check = stream( fname, 'C', 'seek <' 0 ) /* seek to end of file */ end else do result = 0 say fname":" stream( InFile, 'D' ) /* display description about possible error */ end return result /* function CloseFile( fname ) */ CloseFile: procedure parse arg fname check = stream( fname, 'C', 'close' ) if (check == 'READY') | (check == 'READY:') then result = 1 else do result = 0 say "Error closing" fname":" stream( InFile, 'D' ) /* display description about possible error */ end return ET>> Greetings -=Eddy=- email: eddy.thilleman@net.hcc.nl WB> net.hcc.nl ? My provider is hccnet.nl ! I've that account too. Greetings -=Eddy=- email: eddy.thilleman@net.hcc.nl ... OS/2: Taking the wind out of Windows. --- GoldED/2 3.0.1 * Origin: Windows98 is a graphic DOS extender (2:500/143.7) 3615/7 +----------------------------------------------------------------------------+ From: Harry Bush 20-Nov-99 18:25:13 To: Peter Knapper 20-Nov-99 20:10:06 Subj: Copying files and EA's... Hello Peter! Saturday November 20 1999 from Peter Knapper 3:772/1.10 to All: PK> If a file has EA's, does the OS/2 COPY command copy EA's - PK> 1. Between a file copied to the SAME partition? PK> 2. Between partitions/drives on the same machine? PK> 3. Between machines connected using OS/2 Peer Services? PK> I would expect 1 to be YES, 2 to be YES, 3 possibly... All three YES. #3 - not only using OS/2 Peer Services but also to/from Warp Server HPFS386 disks _and_, what's interesting, also to/from shared NTFS disks of WinNT 4 (Server or Workstation). Certainly WinNT itself doesn't know anything about OS/2 EA's, but it can store and retrieve EA's just OK. :-) For example, best OS/2 image viewer - PMView - forms so called thumbnails (small icon-like copies of image) inside EA of image file. It does that successfully even if image file at the moment happens to be on NTFS disk under WinNT system. Best wishes, Harry Saturday November 20 1999 18:25 --- GoldEd 1.1.1.2 * Origin: Info-Shelter (2:51/2) 209/7211 911 +----------------------------------------------------------------------------+ From: Peter Knapper 21-Nov-99 11:28:29 To: Harry Bush 20-Nov-99 23:27:09 Subj: Copying files and EA's... Hi Harry, PK> 3. Between machines connected using OS/2 Peer Services? PK> I would expect 1 to be YES, 2 to be YES, 3 possibly... HB> All three YES. #3 - not only using OS/2 Peer Services HB> but also to/from Warp Server HPFS386 disks _and_, HB> what's interesting, also to/from shared NTFS disks of HB> WinNT 4 (Server or Workstation). Certainly WinNT HB> itself doesn't know anything about OS/2 EA's, but it HB> can store and retrieve EA's just OK. :-) Ok, that leads to my next question......;-) If the handling of EA's CAN be replicated by other SMB environments, are they handled as part of SMB itself, or does it require a specific "add-on" to the SMB implementation to be able to do this? IE, can ANY SMB peer handle EA's as part of File Serving? Thanks..........pk. --- Maximus/2 3.01 * Origin: Another Good Point About OS/2 (3:772/1.10) +----------------------------------------------------------------------------+ From: Francois Massonneau 20-Nov-99 11:01:02 To: David Noon 21-Nov-99 06:12:05 Subj: FrontDoor/Mailer and Re Hello David! As I do not know whether or not the first message I posted has been sent (France is no longer connected to the rest of the world ;-( ), i post it again as I found another feed. I hope I will be sent this time. ------------------------------------------------------------------------------ /.. On (Le) 10-24-99 20:33, Subject (Sujet) : FrontDoor/Mailser and Re, David Noon wrote to (ecrivait a) Francois Massonneau ../ Hi David, Sorry for the delay, I'm just back home but for a few days only. DN> I would use = rather than == to compare the value to zero. DN> if files.0 = 0 then OK, I changed that. FM>I removed the "do forever" at the beginning and the "end" at the end of FM>the script. DN> This means it will terminate after one poll. Also, the conditional DN> leave statement (mentioned above for its IF part) will need to be DN> changed to: DN> if files.0 = 0 then DN> exit 0 /* was leave */ I did that, but it doesn't work as expected. If I put "exit 0", when no more files are in the subdirectory, the window is closed, but the windows that launched the script and the one where the dialer is running are still opened and wait for the signal the script must send to tell everything is done. so I left the "leave" statement. FM>And finally I removed those lines : FM> call SysSleep SleepTime FM> call stream SemaMailer, 'c', 'open write' FM> call lineout SemaMailer, 'inetmail semafore file' FM> call stream SemaMailer, 'c', 'close' DN> So you are no longer using a semphore file. It's no longer a semafore file, but the script sends a signal to HWAIT. FM>3) At the end of the script, I saw you write two times (one before and FM>one after the subroutine "StopDialler"), the following lines : FM> /* Reset elapsed time counter */ FM> CALL TIME 'R' FM>RETURN FM>I suppose one is for the subroutine StartDialler, and the second one is FM>for the subroutine StopDialler. Is it a code to give the time on line ? DN> It is part of that code. DN> There should be a TIME('E') call somewhere in the StopDialler DN> subroutine that should display the elapsed time. Where ? May I put at the beginning : CALL TIME('E') for example, just after the "CALL DIRECTORY DialerDir" statement and before the "ADDRESS 'CMD' KillDialer" line ? This is the subroutine you wrote : /* Subroutine to stop the dialer program and its related address spaces */ StopDialer: PROCEDURE EXPOSE DialupLogFile DialerDir KillDialer kill inetmail pop3d smtpd CurDir = DIRECTORY() CALL DIRECTORY DialerDir ADDRESS 'CMD' KillDialer CALL LogMsg 'dialer, if running, is killed.' CALL LogMsg 'Dialer disconnected after ' || TIME('E') || ' seconds.' CALL DIRECTORY CurDir ADDRESS 'CMD' kill inetmail CALL LogMsg 'inetmail, if running, is killed.' ADDRESS 'CMD' kill pop3d CALL LogMsg 'pop3d process, if running, is killed.' ADDRESS 'CMD' kill smtpd CALL LogMsg 'smtpd process, if running, is killed.' CALL SysSleep 2 /* just give it a little time to shut down... */ /* Reset elapsed time counter */ CALL TIME 'R' RETURN FM>If so, where in the log file do I find it ?? FM>22 Oct 1999 08:32:54 Dialler disconnected after 0 seconds. DN> Here. For some reason the elapsed timer has been reset again, giving a DN> time of zero seconds. FM>So the time on line is not 0 second, but about 8 minutes. DN> That would be about 480 seconds then. That is what should have been DN> returned by the TIME('E') call. Since there are 2 calls to StopDialler, DN> the second one should have the correct elapsed time logged. OK. Is it possible to add something to the routine to give the cost of the call. One parameter could be the cost for one minute on line "CostperMinute", and at the end of each run, the log could record the total time on line, and the resulting cost ? I saw a problem with the log generated. A file is created in my root directory, named DIALUPLOGFILE. In it I have all the sentences that should be put in the dialup.log file, but the sentences are the ones generated by the PingServer Procedure. It seems that a "CALL LogMsg ..." statement contained in the PingServer procedure is not written in the dialup.log file, but in a dialuplogfile file in my root directory. Is it because I have the beginning of the procedure written that way : PingServer: procedure call LogMsg 'PingServer starting' .../. instead of : PingServer: PROCEDURE EXPOSE DialupLogFile call LogMsg 'PingServer starting' .../. FM>4) From time to time Injoy (the dialler), gives me problems as I said FM>Is there a way to check what's going on with the dialler, FM>restart the BBS node ? DN> Not a good idea. You would then need this REXX program to monitor the DN> other REXX program. If InJoy can be monitored at all, you can do it DN> from within the current REXX program. Does InJoy write its output to DN> stdout, allowing it to be redirected? If so, you can use a REXX queue I don't know. I'm gonna try to find out. -------------------------------------------------------------------------- Bye, Francois! Email: fmas@celtes.com Web : http://www.worldnet.net/~island/ --- * Origin: Island's BBS, a Node in the Atlantic Ocean (2:326/2) 209/7211 911 +----------------------------------------------------------------------------+ From: Harry Bush 21-Nov-99 11:54:17 To: Peter Knapper 21-Nov-99 11:34:19 Subj: Copying files and EA's... Hello Peter! Sunday November 21 1999 from Peter Knapper 3:772/1.10 to Harry Bush: PK> Ok, that leads to my next question......;-) If the handling of EA's CAN be PK> replicated by other SMB environments, are they handled as part of SMB PK> itself, or does it require a specific "add-on" to the SMB implementation PK> to be able to do this? IE, can ANY SMB peer handle EA's as part of File PK> Serving? Could be, but I don't know for sure. Seems like question for OS2LAN echo ;-) Best wishes, Harry Sunday November 21 1999 11:54 --- GoldEd 1.1.1.2 * Origin: Info-Shelter (2:51/2) 209/7211 911 +----------------------------------------------------------------------------+ From: MIKE RUSKAI 20-Nov-99 19:55:00 To: PETER KNAPPER 21-Nov-99 21:30:15 Subj: Copying files and EA's... Some senseless babbling from Peter Knapper to All on 11-20-99 13:36 about Copying files and EA's...... PK> Hi Folks, PK> I wanted to automate the copying of files from one machine to another PK> using REXX when a thought struck me. PK> If a file has EA's, does the OS/2 COPY command copy EA's - PK> 1. Between a file copied to the SAME partition? PK> 2. Between partitions/drives on the same machine? PK> 3. Between machines connected using OS/2 Peer Services? PK> I would expect 1 to be YES, 2 to be YES, 3 possibly... PK> Can similar/better functionality be performed using REXX commands, PK> ensuring that EA's are also copied in each of the above situations? PK> NB: I do not want to split off EA's and re-combine them later... The answer to question one is always "yes". For question two, it depends on whether or not the destination file system supports EA's. For FAT and HPFS, there are no problems. But if you're using a different file system through an IFS, it depends entirely on what that file system supports. Question three has the same answer, though beyond the file system on the remote machine, the LAN protocol needs to provide for such a need. Between two OS/2 machines, EA's are preserved without incident. Between OS/2 and a Win95 machine, no EA preservation, even though that machine booted to OS/2 would support EA's. Mike Ruskai thannymeister@yahoo.com ... Hey Billy, are you sure they wrote Windoze in Basic? ___ Blue Wave/QWK v2.20 --- Platinum Xpress/Win/Wildcat5! v3.0pr2 * Origin: FIDO QWK MAIL & MORE! WWW.DOCSPLACE.ORG (1:3603/140) 209/7211 911 +----------------------------------------------------------------------------+ From: Tobias Ernst 21-Nov-99 18:27:24 To: Peter Knapper 22-Nov-99 07:24:19 Subj: Copying files and EA's... Hallo Peter! PK> Ok, that leads to my next question......;-) If the handling of EA's PK> CAN be replicated by other SMB environments, are they handled as part PK> of SMB itself, or does it require a specific "add-on" to the SMB PK> implementation to be able to do this? IE, can ANY SMB peer handle PK> EA's as part of File Serving? The Unix/Linux Samba server definitely cannot handle EAs. They are simply discarded, and the Samba docs also say so. The Workplace shell also tells you so (a warning message is issued that EAs will be lost when you try to move or copy a file via drag&drop to a Samba share). I think it would not be too hard to hack EA support into the Samba code if one invests the time to search for the specs, but then again, it was easier for me to just move the disk on which I needed EAs into my OS/2 Lan Server :-). Viele Gre, Tobias --- Msged/LNX TE 06 (pre) * Origin: Running Redhat Linux (2:2476/418) +----------------------------------------------------------------------------+ From: Roy J. Tellason 22-Nov-99 00:12:20 To: MIKE RUSKAI 22-Nov-99 07:24:20 Subj: Copying files and EA's... MIKE RUSKAI wrote in a message to PETER KNAPPER: MR> Some senseless babbling from Peter Knapper to All MR> on 11-20-99 13:36 about Copying files and EA's...... PK> Hi Folks, PK> I wanted to automate the copying of files from one machine to another PK> using REXX when a thought struck me. PK> If a file has EA's, does the OS/2 COPY command copy EA's - PK> 1. Between a file copied to the SAME partition? PK> 2. Between partitions/drives on the same machine? PK> 3. Between machines connected using OS/2 Peer Services? PK> I would expect 1 to be YES, 2 to be YES, 3 possibly... PK> Can similar/better functionality be performed using REXX commands, PK> ensuring that EA's are also copied in each of the above situations? PK> NB: I do not want to split off EA's and re-combine them later... MR> The answer to question one is always "yes". MR> For question two, it depends on whether or not the MR> destination file system supports EA's. For FAT and HPFS, MR> there are no problems. But if you're using a different file MR> system through an IFS, it depends entirely on what that file MR> system supports. MR> Question three has the same answer, though beyond the file MR> system on the remote machine, the LAN protocol needs to MR> provide for such a need. Between two OS/2 machines, EA's are MR> preserved without incident. Between OS/2 and a Win95 MR> machine, no EA preservation, even though that machine booted MR> to OS/2 would support EA's. How about between OS/2 and a Linux share using SAMBA? :-) --- * Origin: TANSTAAFL BBS 717-838-8539 (1:270/615) +----------------------------------------------------------------------------+ From: Peter Knapper 22-Nov-99 19:43:21 To: Harry Bush 22-Nov-99 07:24:20 Subj: Copying files and EA's... Hi Harry, PK> IE, can ANY SMB peer handle EA's as part of File Serving? HB> Could be, but I don't know for sure. Seems like HB> question for OS2LAN echo ;-) Hmmmmmm, that seems like a reasonable idea, however you can't duck that quickly....;-) So as far as REXX is concerned, I guess that using SysCopyObject() with full path/filenames for copying over the LAN would probably be reasonably safe, as far as copying EA's are concerned? Cheers.............pk. --- Maximus/2 3.01 * Origin: Another Good Point About OS/2 (3:772/1.10) +----------------------------------------------------------------------------+ From: Peter Knapper 22-Nov-99 19:54:12 To: Mike Ruskai 22-Nov-99 07:24:20 Subj: Copying files and EA's... Hi Mike, MR> Question three has the same answer, though beyond the file system on the MR> remote machine, the LAN protocol needs to provide for such a need. MR> Between two OS/2 machines, EA's are preserved without incident. Between MR> OS/2 and a Win95 machine, no EA preservation, even though that machine MR> booted to OS/2 would support EA's. See my other message, in that case I would expect SysCopyObject() to provide support for EA copying if BOTH source/destination systems are OS/2 on HPFS? Cheers...........pk. --- Maximus/2 3.01 * Origin: Another Good Point About OS/2 (3:772/1.10) +----------------------------------------------------------------------------+ From: Peter Knapper 22-Nov-99 23:21:11 To: Tobias Ernst 22-Nov-99 09:21:04 Subj: Copying files and EA's... Hi Tobias, PK> IE, can ANY SMB peer handle EA's as part of File Serving? TE> The Unix/Linux Samba server definitely cannot handle TE> EAs. They are simply discarded, and the Samba docs also TE> say so. The Workplace shell also tells you so (a TE> warning message is issued that EAs will be lost when TE> you try to move or copy a file via drag&drop to a Samba TE> share). Thanks for the confirmation, it was pretty much as I expected. Cheers............pk. --- Maximus/2 3.01 * Origin: Another Good Point About OS/2 (3:772/1.10) +----------------------------------------------------------------------------+ From: Harry Bush 22-Nov-99 19:54:16 To: Tobias Ernst 22-Nov-99 19:44:15 Subj: Copying files and EA's... Hello Tobias! Sunday November 21 1999 from Tobias Ernst 2:2476/418@fidonet to Peter Knapper: TE> it was easier for me to just move the disk on which I needed EAs into TE> my OS/2 Lan Server :-). Right. OS/2 does it's job very reliably - all that somebody might want from a file server. And it keeps EA's just in the right way! ;-) BTW, if somebody is interested, there is an IBM Redbook "Installing OS2 Warp Server on Warp4" (wsonw4.pdf). It is written in Germany in 1997. My main home Warp Server is installed exactly this way, plus IBM-made features to make server and shares visible for WinNT and Winxx machines etc. Best wishes, Harry Monday November 22 1999 19:54 --- GoldEd 1.1.1.2 * Origin: Info-Shelter (2:51/2) +----------------------------------------------------------------------------+ From: MIKE RUSKAI 22-Nov-99 11:32:00 To: ROY J. TELLASON 23-Nov-99 06:06:09 Subj: Copying files and EA's... Some senseless babbling from Roy J. Tellason to Mike Ruskai on 11-22-99 00:12 about Copying files and EA's...... RJT> MIKE RUSKAI wrote in a message to PETER KNAPPER: [snip] MR> Question three has the same answer, though beyond the file MR> system on the remote machine, the LAN protocol needs to MR> provide for such a need. Between two OS/2 machines, EA's are MR> preserved without incident. Between OS/2 and a Win95 MR> machine, no EA preservation, even though that machine booted MR> to OS/2 would support EA's. RJT> How about between OS/2 and a Linux share using SAMBA? :-) I'll let you know when I try it. Mike Ruskai thannymeister@yahoo.com ... Looks like I picked the wrong day to quit drinking. ___ Blue Wave/QWK v2.20 --- Platinum Xpress/Win/Wildcat5! v3.0pr2 * Origin: FIDO QWK MAIL & MORE! WWW.DOCSPLACE.ORG (1:3603/140) +----------------------------------------------------------------------------+ From: MIKE RUSKAI 22-Nov-99 11:32:00 To: PETER KNAPPER 23-Nov-99 06:06:09 Subj: Copying files and EA's... Some senseless babbling from Peter Knapper to Mike Ruskai on 11-22-99 19:54 about Copying files and EA's...... PK> Hi Mike, MR> Question three has the same answer, though beyond the file system on the MR> remote machine, the LAN protocol needs to provide for such a need. MR> Between two OS/2 machines, EA's are preserved without incident. Between MR> OS/2 and a Win95 machine, no EA preservation, even though that machine MR> booted to OS/2 would support EA's. PK> See my other message, in that case I would expect SysCopyObject() to PK> provide support for EA copying if BOTH source/destination systems are PK> OS/2 on HPFS? Anything at all which calls the DosCopy() API will work, between two OS/2 LAN machines. You don't need to be clever with REXX at all. Mike Ruskai thannymeister@yahoo.com ... 'If it ain't broke, you can probably still fix it.' - Tim Allen ___ Blue Wave/QWK v2.20 --- Platinum Xpress/Win/Wildcat5! v3.0pr2 * Origin: FIDO QWK MAIL & MORE! WWW.DOCSPLACE.ORG (1:3603/140) +----------------------------------------------------------------------------+ From: Harry Bush 23-Nov-99 08:58:19 To: Peter Knapper 23-Nov-99 09:10:04 Subj: Copying files and EA's... Hello Peter! Monday November 22 1999 from Peter Knapper 3:772/1.10 to Harry Bush: PK> So as far as REXX is concerned, I guess that using SysCopyObject() with PK> full path/filenames for copying over the LAN would probably be reasonably PK> safe, as far as copying EA's are concerned? Do you mean using full path name kinda \\computer\directory\file instead of Object ID? Don't know if it would work even between OS/2 machines, in general case. Haven't tried it that way. Taylor (the guy who was mainly in charge for writing WPS) several years ago told at one of conferences that he wanted to make WPS objects really shareable over networks, but AFAIK it wasn't done because of overall strangulation of OS/2 at IBM (poo to IBM forever). Pity because many nice things might result... just for example, dropping some scheme from my computer onto shared remote desktop would mean using scheme there. Best wishes, Harry Tuesday November 23 1999 08:58 --- GoldEd 1.1.1.2 * Origin: Info-Shelter (2:51/2) +----------------------------------------------------------------------------+ From: Eddy Thilleman 22-Nov-99 19:57:05 To: Francois Massonneau 23-Nov-99 20:10:11 Subj: FrontDoor/Mailer and Re Hello Francois, 20 Nov 99 11:01, Francois Massonneau wrote to David Noon: FM> As I do not know whether or not the first message I posted has been FM> sent (France is no longer connected to the rest of the world ;-( ), i FM> post it again as I found another feed. I hope I will be sent this FM> time. your message was already sent out on 11 November 1999. :) FM> but the windows that launched the script and the one where the dialer FM> is running are still opened and wait for if you start a program (including a REXX script) via the command processor with the /C parameter then if that program ends the command processor ends and (if it's not running under another program) that session is closed automatically. See also the online command book CMDREF.INF the CMD entry. you can let injoy quit automatically if nothing is going (checkout its timeout) FM> the signal the script must send to tell everything is done. so I left FM> the "leave" statement. I think the leave statement is not necessary, but I'm not sure in your case. DN>> If InJoy can be monitored at all, you can do it from within the DN>> current REXX program. Does InJoy write its output to stdout, allowing DN>> it to be redirected? If so, you can use a REXX queue You could check Injoy's trace option (look for "T R A C I N G" / "Capturing Tech Data" / "Trace setup" in the file userguid.txt in Injoy's docs directory), this can be output to Injoy's window and/or to a text file. This includes the date and time of events. stdout is not mentioned. Greetings -=Eddy=- email: eddy.thilleman@net.hcc.nl ... WindowError:016 Door locked. Try control-alt-delete --- GoldED/2 3.0.1 * Origin: Windows95 is a graphic DOS extender (2:500/143.7) +----------------------------------------------------------------------------+ From: Peter Knapper 24-Nov-99 20:29:28 To: Harry Bush 24-Nov-99 06:35:29 Subj: Copying files and EA's... Hi Harry, PK> So as far as REXX is concerned, I guess that using PK> SysCopyObject() with full path/filenames for copying PK> over the LAN would probably be reasonably PK> safe, as far as copying EA's are concerned? HB> Do you mean using full path name kinda HB> \\computer\directory\file instead of Object ID? Hmmm, I was actually thinking of copying using drive letters rather than a UNC, however I am now not sure that I would want EA's copied in all cases..;-) I see others have comented on this also, so I guess I need to actually do some tests myself to see what happens. For example, the EA's for a REXX script may contain machine specific data (EG: drive letters) that would probably need to change on another platform. Without EA's REXX would automatically re-build it anyway, but if the REXX code HAD to change then there is not much point in copying EA's... Cheers........pk. --- Maximus/2 3.01 * Origin: Another Good Point About OS/2 (3:772/1.10) +----------------------------------------------------------------------------+ From: Larry Snider 25-Nov-99 12:32:01 To: All 26-Nov-99 03:58:15 Subj: SysCopyObject Hi All, Could someone please provide me with a working example of SysCopyObject using fully specified file names? For some reason, I cannot get it to work. I've tried it this way: call SysCopyObject('e:\popuplog.os2', 'e:\SCO_popuplog.os2') and call SysCopyObject(test1, test2) and call SysCopyObject 'e:\popuplog.os2', 'e:\SCO_popuplog.os2' and call SysCopyObject test1, test2 I am running Object REXX and do load all of the RexxUtil functions. Larry Snider Larry.Snider@attglobal.net --- Terminate 5.00/Pro [OS/2] * Origin: OS/2: Not just another pretty program loader! (1:109/921.52) +----------------------------------------------------------------------------+ From: Larry Snider 25-Nov-99 13:05:28 To: All 26-Nov-99 03:58:15 Subj: SysCopyObject After reading the INF a little closer I noticed that destination can only be a folder. Since this is the case, how can I rename the copied file? 25-Nov-99 12:32:03, Larry Snider wrote to All Subject: SysCopyObject LS> Hi All, LS> Could someone please provide me with a working example of SysCopyObject LS> using fully specified file names? For some reason, I cannot get it to LS> work. LS> I've tried it this way: LS> call SysCopyObject('e:\popuplog.os2', 'e:\SCO_popuplog.os2') LS> and LS> call SysCopyObject(test1, test2) LS> and LS> call SysCopyObject 'e:\popuplog.os2', 'e:\SCO_popuplog.os2' LS> and LS> call SysCopyObject test1, test2 LS> I am running Object REXX and do load all of the RexxUtil functions. LS> Larry Snider LS> Larry.Snider@attglobal.net LS> -!- Terminate 5.00/Pro [OS/2] LS> - Origin: OS/2: Not just another pretty program loader! (1:109/921.52) Larry Snider Larry.Snider@attglobal.net --- Terminate 5.00/Pro [OS/2] * Origin: Researching:Plunckett,Seale,Sullivan,Brookshire,Jolly (1:109/921.52) +----------------------------------------------------------------------------+ From: David Noon 25-Nov-99 22:49:25 To: Francois Massonneau 26-Nov-99 12:58:17 Subj: FrontDoor/Mailer and Re Hi Francois, Replying to a message of Francois Massonneau to David Noon: FM> As I do not know whether or not the first message I posted has been FM> sent (France is no longer connected to the rest of the world ;-( ), i FM> post it again as I found another feed. I hope I will be sent this FM> time. I saw your earlier message last month and replied. DN>> This means it will terminate after one poll. Also, the conditional DN>> leave statement (mentioned above for its IF part) will need to be DN>> changed to: DN>> if files.0 = 0 then DN>> exit 0 /* was leave */ FM> I did that, but it doesn't work as expected. FM> If I put "exit 0", when no more files are in the subdirectory, the FM> window is closed, but the windows that launched the script and the FM> one where the dialer is running are still opened and wait for the FM> signal the script must send to tell everything is done. so I left the FM> "leave" statement. This should cause the REXX program to terminate in error. The LEAVE statement applies to the context of a DO group, and removing the DO FOREVER removes that context. FM>> And finally I removed those lines : FM>> call SysSleep SleepTime FM>> call stream SemaMailer, 'c', 'open write' FM>> call lineout SemaMailer, 'inetmail semafore file' FM>> call stream SemaMailer, 'c', 'close' DN>> So you are no longer using a semphore file. FM> It's no longer a semafore file, but the script sends a signal to FM> HWAIT. What kind of signal? Does it post an event semaphore (not a file) instead? FM>> 3) At the end of the script, I saw you write two times (one before FM>> and one after the subroutine "StopDialler"), the following lines : FM>> /* Reset elapsed time counter */ CALL TIME 'R' RETURN I suppose one FM>> is for the subroutine StartDialler, and the second one is for the FM>> subroutine StopDialler. Is it a code to give the time on line ? DN>> It is part of that code. DN>> There should be a TIME('E') call somewhere in the StopDialler DN>> subroutine that should display the elapsed time. FM> Where ? Down below ... FM> May I put at the beginning : FM> CALL TIME('E') FM> for example, just after the "CALL DIRECTORY DialerDir" statement and FM> before the "ADDRESS 'CMD' KillDialer" line ? This is the subroutine FM> you wrote : FM> /* Subroutine to stop the dialer program and its related address spaces */ FM> StopDialer: PROCEDURE EXPOSE DialupLogFile DialerDir KillDialer kill inetmail pop3d smtpd FM> CurDir = DIRECTORY() FM> CALL DIRECTORY DialerDir FM> ADDRESS 'CMD' KillDialer FM> CALL LogMsg 'dialer, if running, is killed.' FM> CALL LogMsg 'Dialer disconnected after ' || TIME('E') || ' seconds.' ... right here! (Above) FM> CALL DIRECTORY CurDir FM> ADDRESS 'CMD' kill inetmail FM> CALL LogMsg 'inetmail, if running, is killed.' FM> ADDRESS 'CMD' kill pop3d FM> CALL LogMsg 'pop3d process, if running, is killed.' FM> ADDRESS 'CMD' kill smtpd FM> CALL LogMsg 'smtpd process, if running, is killed.' FM> CALL SysSleep 2 /* just give it a little time to shut down... */ FM> /* Reset elapsed time counter */ FM> CALL TIME 'R' FM> RETURN FM>> If so, where in the log file do I find it ?? FM>> 22 Oct 1999 08:32:54 Dialler disconnected after 0 seconds. DN>> Here. For some reason the elapsed timer has been reset again, giving DN>> a time of zero seconds. FM>> So the time on line is not 0 second, but about 8 minutes. DN>> That would be about 480 seconds then. That is what should have been DN>> returned by the TIME('E') call. Since there are 2 calls to DN>> StopDialler, the second one should have the correct elapsed time DN>> logged. FM> OK. FM> Is it possible to add something to the routine to give the cost of the FM> call. One parameter could be the cost for one minute on line FM> "CostperMinute", and at the end of each run, the log could record the FM> total time on line, and the resulting cost ? If you know the cost per second (or minute) then you can use the result returned by the TIME('E') call to calculate the cost of the call. It should be simple multiplication. FM> I saw a problem with the log generated. FM> A file is created in my root directory, named DIALUPLOGFILE. In it I FM> have all the sentences that should be put in the dialup.log file, but FM> the sentences are the ones generated by the PingServer Procedure. It FM> seems that a "CALL LogMsg ..." statement contained in the PingServer FM> procedure is not written in the dialup.log file, but in a FM> dialuplogfile file in my root directory. Is it because I have the FM> beginning of the procedure written that way : FM> PingServer: procedure FM> call LogMsg 'PingServer starting' FM> .../. instead of : FM> PingServer: FM> PROCEDURE EXPOSE DialupLogFile FM> call LogMsg 'PingServer starting' FM> .../. It could be. I no longer have your code. If the variable DialpuLogFile contains the full path/filename of your log file then the PingServer subroutine will need to access it in order to write its results to the correct log file. In such a case you should either pass it as a parameter or expose it on the PROCEDURE statement. Regards Dave --- FleetStreet 1.24.1 * Origin: (2:257/609.5) +----------------------------------------------------------------------------+ From: Peter Knapper 27-Nov-99 09:25:14 To: David Noon 26-Nov-99 23:18:03 Subj: REXX FtpPing. Hi David, When talking to Francois Massonneau recently the subject of performing a PING came up, so you may have an answer for this. Most of the REXX FTP functions appear to be implemented with some quite lengthy timeouts, and it can take 1-2 minutes to decide that the remote end is not contactable. I tried to "test" for this using a single FtpPing, however if the destination/target system is not contactable, FtpPing suffers from the same long timeout. Do you know of a way to alter the REXX FTP timeout period to something like 10-20 seconds rather than 2 minutes? Alternatively, can you (or someone else) suggest some REXX Sockets code to perform the equivalent task, if the timeout periods can be controlled from there? Thanks.............pk. --- Maximus/2 3.01 * Origin: Another Good Point About OS/2 (3:772/1.10) +----------------------------------------------------------------------------+ +============================================================================+