RE: [U2] fixtool
I read somewhere that all it does is fix the broken link (fixing the file but losing the data that the broken link pointed to). This may be all that can be done. A backward link error often means that two groups apparently own the same overflow block. The data of one will have overwritten the other. There is no way that any recovery tool could ever get back the lost data. Yes, data truncated. Fix, as in when you get your dog fixed: snip, snip. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[UV] printer memory segment. was: [U2] Available printer memory exceeded
Does anyone know the history of that printer memory segment nomenclature? It seems that all memory errors are printer memory errors on Universe. Jerry That's true. Generally doesn't have much to do with printers, but a UV process's private memory. Examples: See POST.STATUS's 3rd column for phantoms. unix icps -map | grep 0xaceb. See smat -p (aka ANALYZE.SHM -p) Look up printer memory segment in UV docs. Undoubtedly, there was a reason for calling it that way back when. Was it originally only a spot where printer output was buffered? Sounds like a question for David Meeks or Glen Herbert, answer to be archived by historian Dawn Wolthuis. cds --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Available printer memory exceeded
Jerry, 1. 1st thing I'd do is look in the recent changes for a construct functionally something like this: X cleared (wrong place for X to be initialized.) Start-outer-loop * X should be cleared here, but isn't. Start-inner-loop X:= [stuff](X grows) end-inner-loop End-inner-loop You say it runs fine by itself, but not in it's rightful setting, so maybe the var is in common and persists through multiple executions w/o proper reinitialization. 2. I recently had a memory leak where executions got slower slower, until the uv process aborted. Different error message from yours. Unix's ps -l was interesting. Size column showed it growing. It turned out ULIMIT config param was set too high. Joel Yates @ IBM had me reset it to the default. Hadn't been an issue until we changed from HP-Risc/HPUX11.11/UV10.1.16 to HP-itanium/HPUX11.23/UV10.2.6. Thank-you, Joel. cds -Original Message- Last night during our month end batch process it aborted the proc when we got Available printer memory exceeded during one of the programs. I ran the program this morning and it ran without getting the error, same program, same data files. Can anyone tell me where I could look to keep it from doing this? It has always run without problems in the past, it only runs at month end, but there were some minor changes made to the program that shouldn't have caused any problems and don't when run by itself. Jerry Banker --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Re: Going to U2 University 2008?
One of Janet Oswald's email ad broadcasts for U2U indicated that there would be pre-conference chargeable tutorials the day before each of the 4 editions of the conference. The list of tutorials and their charges are not yet on the web-site, but she tells me they should be there tomorrow. These tutorials have been worthwhile in years past. I'm holding off on registering for San Diego until I can see those. I think the regional conference idea is a good one. I attended the San Francisco one 2 prior pan-IBM ones, as well as others off and on dating back to Infocus/VMark days. Pluses: + Cheaper. + Shorter. 2 nights lodging only. + More targeted. (That 2006 Anaheim Information on Demand event for all IBM software users was ghastly. Sure, we got to see Gladys Knight and the Pips and got in free one night to part of Disneyland where the music blared that you couldn't network (the primary purpose for the social events), provided you could even find any fellow U2 users amid the AIX, Tivoli, DB2, etc. users, almost half of whom seemed to be IBM employees.) + If you attend the later venues, the presenters have honed their show a bit. + The audience seemed a bit more technical last year. I'm guessing the lower price shorter time span allowed companies to send technical people other than the mucky-mucks who see these conferences like junkets. + More content, less junket. Minuses: - You don't see some users from other parts of the world. I miss that. - Almost all sessions are presented by IBM staff, since not many independent presenters want to commit to 4 such events. I have always appreciated the presentations by users independent consultant groups, myself, so I miss that. - More content, less junket. (Some people will see that as a minus, anyway.) cds P.S. Pardon me if some of this has already been discussed. I've been unsubscribed for a month long vacation. -Original Message- From: Louie Bergsagel Ah, found the U2 University session abstracts: http://www-306.ibm.com/software/info/u2/university/index3.jsp --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Printer errors in the error log
From: [EMAIL PROTECTED] We're logging many errors in the UV error log that say Too many PRINTER channels open. I know the channel numbers themselves are limited to 0-255, but I didn't know there was a limit on how many could be open at one time. What is the limit? Is there a configuration parameter somewhere that I'm missing? I vaguely remember encountering this about 10 years ago in a Sequoia/UV conversion. I think there is/was a limit of 14 or so that can be open at one time. I don't think there is/was a config param work around. If you do: SETPTR n,... SETPTR n+1,... SETPTR n+2,... Etc. I think you'll find that error message once you hit about n+14. I don't recall how to explicitly close a particular channel so you can open another. Anyone? In our case, I think we didn't need to actually print to more than 14 printers at once. We converted the pick code so that a program would call a utility subroutine to map the particular printers it needed onto one of the channels 0-14. If you have to print to more than 14 at once, probably writeseq to files spool later. If you have to print to more than 14 at once, may the Lord's mercy be upon you. Or Clif Oliver's. I think he sells a print environment handler designed to make up for UniVerse's inadequacies. Chuck S --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] version control
From: Brian Leach ...The key was to appoint someone who was responsible for it. If it is anything more than trivial, it needs someone charged to administer it, Conan the Librarian not just left to the whims of developers!... Which brings us to the 2nd key: Build in perks for the developers for using version control. It shouldn't be another layer of management that slows them down. Properly implemented, it should be a programmer productivity tool. The more that it helps them be able to compare versions, track what change happened when by whom, lump segregate work, coordinate activity between programmers, do status reporting . . ., the more it directly helps programmers do those tasks, the more enthusiastic they will be, the less likely to circumvent or resent enforcement. I recall implementing it one time where the practice had been to never delete old code, just comment it out and surround changes with date and project numbers comment lines. It got so that a source file had more commented out stuff than actual compilable code. Very difficult to read. When we implemented version control, I suggested that this practice was no longer necessary because they could easily reconstruct pretty pictures of change history. They insisted on doing it the old way, too. Several months later the staff violently revolted against their own conservatism and wanted a special internal project just to clean out all that old stuff because version control was so good to them. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Guaranteed unique sequential keys
That's very good, but DICT NEXT.AVAILABLE sure is ugly. It means you can't make a dictionary read-only. Dictionaries should be under source control. And a data file can have multiple dictionaries. A better answer would be to embed the next-id in the file header. Then give a utility to edit it similar to how SET.INDEX can edit the file header's path to it's index dir. If one were to set up an SQL table like that, what would you consider a good UV/Basic coding practice for writing to it? Explicit, low-level readu increment of the next id record? -Original Message- From: Ray Wurlod Here is a UniVerse/SQL answer. Create the primary key with a default value of NEXT AVAILABLE. CREATE TABLE MyTable ( MyKey INTEGER NOT NULL PRIMARY KEY DEFAULT NEXT AVAILABLE, Column1 VARCHAR, Column2 VARCHAR, Column3 VARCHAR NOT NULL MULTIVALUED, Column4 VARCHAR MULTIVALUED, ASSOCIATION MyASSOC(Column3 KEY, Column4) ); Whenever you insert a row without supplying a key value, the next available key value will be used. This uses the same mechanism as REVISE, namely an item called NEXT.AVAILABLE in the file dictionary. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
FW: [U2] UV: LOOP;EXECUTE cmd CAPTURING X; REPEAT fatal memory fault.
Resolved, thanks to Joel Yates at IBM for nailing this for me. My uvconfig ULIMIT parameter was way way too big. The default is 128000, ours was 800. I changed it to 128000 and the memory leak got plugged. It's one of those things where it was set big when I took over and didn't seem broke so I didn't fix. Except the HP-Itanium / HPUX 11.23 / UV 10.2.6 combo apparently didn't agree. I can't say I completely understand this. Or even why there is a UV config parameter for ULIMIT. Or why it matters on EXECUTE...CAPTURING... Thank-you everyone who took a look on their system. Especially Richard Lewis, who is soon hopping down the same Itanium bunny path. cds --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] UV: LOOP;EXECUTE cmd CAPTURING X; REPEAT fatal memory fault.
I hear IBM was finally able to reproduce my problem. I don't know any other details yet. After I learn more, maybe I'll come back at you, Richard, and ask to compare our 2 systems's configurations. Thanks, cds -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of rbl000 Sent: Wednesday, March 19, 2008 11:28 AM To: u2-users@listserver.u2ug.org Subject: RE: [U2] UV: LOOP;EXECUTE cmd CAPTURING X; REPEAT fatal memory fault. Charles, One of the guys in our shop tested this on one of our machines (HP Itanium, HPUX 11.23, UV 10.2.6) and couln't see any problem. He ran this code for 3,572,053 iterations with no increase in memory (not even a byte): 0001: CNT = 0 0002: LOOP 0003: CNT +=1 0004: CRT OCONV(CNT, MR0,) 0005: EXECUTE TIME CAPTURING TIME.GOO 0006: UNTIL @FALSE DO 0007: REPEAT He the following code 288,448 times with no increase in memory: 0001: CNT = 0 0002: LOOP 0003: CNT +=1 0004: CRT OCONV(CNT, MR0,) 0005: EXECUTE * anything CAPTURING TIME.GOO 0006: REPEAT Best Regards, Richard Lewis Nu Skin Enterprises --- On Mon 03/17, Stevenson, Charles [EMAIL PROTECTED] wrote: This is on HP Itanium, HPUX11.23, UV10.2.6 Anticipating some of your questions: * My simple case fails at about 1/4 million iterations to fail on my smaller dev system, 1 million on the 2 larger production system. * The memory leak applies to the session, not the program. If I limit the number of iterations in the program, but repeatedly execute it from TCL, eventually it fails. This fails just the same: VOC M.LOOP O1 PA 02 LOOP 03 EXECUTE RUN CDS.BP M 04 SH -cps -lp $$PID 05 REPEAT where M is limited to 100,000: CDS.BP M 01 FOR I = 1 TO 10 02 EXECUTE * comment CAPTURING X 03 REPEAT Thank-you in advance, Charles Stevenson Getronics --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ ___ No banners. No pop-ups. No kidding. Make My Way your home on the Web - http://www.myway.com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] UV: LOOP;EXECUTE cmd CAPTURING X; REPEAT fatal memory fault.
From: Ray Wurlod Just out of curiosity, because EXECUTE is (may be) handled differently, what is the account flavor in each case? And have you set any compiler options such as EXEC.EQ.PERFORM ? Primarilly tested in Pick-flavoured account, but IDEAL, too. I've tried $OPTIONS EXEC.EQ.PERFORM $OPTIONS PIOPEN.EXECUTE $OPTIONS DEFAULT $OPTIONS PIOPEN All have the same result. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] UV: LOOP;EXECUTE cmd CAPTURING X; REPEAT fatal memory fault.
I would love it if someone else using Itanium would tell me if they do/don't see this. My guess is similar to Tony's. The child process does disappear after the execute. Here's a snippet from where I monitored one of my problem processes (pid 5783) by looping 1x/sec: date; ps -flu cds33896|grep -v pts/| grep -e 5783 You can see the child caught at various stages of execution. Notice that the SZ column for the parent grows. Notice that the parent's memory is duplicated(?) for the child. I edited out a few columns to make it easy to read in an email: F S UID PID PPID SZSTIME TIME COMD Sun Mar 16 22:18:37 EDT 2008 401 S cds33896 57831 253057 Mar 15 688:35 phantom RUN BP MF 401 R cds33896 26712 5783 251568 22:18:37 0:00 phantom RUN BP MF Sun Mar 16 22:18:38 EDT 2008 401 S cds33896 57831 253057 Mar 15 688:35 phantom RUN BP MF 401 R cds33896 26990 5783116 22:18:38 0:00 SH -c # comment Sun Mar 16 22:18:40 EDT 2008 401 R cds33896 57831 253061 Mar 15 688:36 phantom RUN BP MF Sun Mar 16 22:18:41 EDT 2008 401 S cds33896 57831 253061 Mar 15 688:36 phantom RUN BP MF 401 R cds33896 27484 5783 251572 22:18:41 0:00 phantom RUN BP MF --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] UV: LOOP;EXECUTE cmd CAPTURING X; REPEAT fatal memory fault.
IBM can't reproduce this. I'm hoping someone else can. That didn't come out right. I don't really want to you have this problem. That would be mean. I just hope this august body can help. Simplest case: CDS.BP M 01 LOOP 02 EXECUTE '* anything' CAPTURING X 03 REPEAT RUN CDS.BP M Memory fault(coredump) 3046$ls -l core -rw--- 1 cds33896 tech 279499648 Mar 17 17:11 core This is on HP Itanium, HPUX11.23, UV10.2.6 Anticipating some of your questions: * If I get rid of CAPTURING X it works fine. * PERFORM works fine. * It doesn't matter what the command executed is. I executed a comment ('* anything')above, because what is more benign? * ps -l shows memory increasing (SZ column) as the process executes. (Monitoring it from a 2nd session.) * EXECUTE SH -c'[any unix command]' CAPTURING X gets slower slower each iteration. ( Because ever increasing memory is duplicated for child process? ) * Other flavours of the CAPTURING syntax are the same: EXECUTE cmd CAPTURING X EXECUTE cmd,OUTX EXECUTE cmd,/OUT.X They compile identically. * Behaviour is the same in IDEAL- PICK-flavoured accounts. * It doesn't matter if I null out X. X = '' EXECUTE cmd CAPTURING X * It doesn't matter if I assign X to an unassigned variable. X = Y ;* (where Y has deliberately never been assigned.) EXECUTE cmd CAPTURING X * My simple case fails at about 1/4 million iterations to fail on my smaller dev system, 1 million on the 2 larger production system. * The memory leak applies to the session, not the program. If I limit the number of iterations in the program, but repeatedly execute it from TCL, eventually it fails. This fails just the same: VOC M.LOOP O1 PA 02 LOOP 03EXECUTE RUN CDS.BP M 04SH -cps -lp $$PID 05 REPEAT where M is limited to 100,000: CDS.BP M 01 FOR I = 1 TO 10 02EXECUTE * comment CAPTURING X 03 REPEAT * My old HP PA/risc, HPUX 11.11i, UV 10.0.16 system works fine. Thank-you in advance, Charles Stevenson Getronics Costa Mesa, CA 714-641-5943 desk 714-396-2771 cell --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] RE: UV: LOOP;EXECUTE cmd CAPTURING X; REPEAT fatal memory fault.
I said $$PID. 2 dollars, 1 pee. I meant $PPID. 1 dollar, 2 pees. (Still pricey for a public biffy.) $PPID is the variable containing the Parent Process's process ID. So SH -c 'ps -lp $PPID' gives ps info on the UV parent process issuing the command. Sorry about that. cds -Original Message- [snip] VOC M.LOOP O1 PA 02 LOOP 03EXECUTE RUN CDS.BP M 04SH -cps -lp $PPID --- corrected from $$PID 05 REPEAT where M is limited to 100,000: CDS.BP M 01 FOR I = 1 TO 10 02EXECUTE * comment CAPTURING X 03 REPEAT [snip] --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] UV: LOOP;EXECUTE cmd CAPTURING X; REPEAT fatal memory fault.
From: Ken Hall Maybe, just maybe, the loop is executing too fast on the Itanium server. Try putting a SLEEP into the loop. Ken, See line 9. Notice SZ column increases by the same amount with or without sleep. CT CDS.BP KEN KEN 0001 PERFORM SH -c'ps -lp $PPID' 0002 CRT TIMEDATE() , 'Simple:' 0003 FOR I = 1 TO 600 0004 EXECUTE '* DUMMY' CAPTURING X 0005 NEXT I 0006 PERFORM SH -c'ps -lp $PPID' 0007 CRT TIMEDATE(), 'Simple done. With sleep:' 0008 FOR I = 1 TO 600 0009 SLEEP 1 0010 EXECUTE '* DUMMY' CAPTURING X 0011 NEXT I 0012 PERFORM SH -c'ps -lp $PPID' 0013 CRT TIMEDATE(), 'done.' RUN CDS.BP KEN F SUID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME COMD 401 S 5517 19121 18392 0 158 20 e001894f24c0 1015 e0018c70c000 pts/ta0:00 uvsh 19:50:36 17 MAR 2008 Simple: F SUID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME COMD 401 S 5517 19121 18392 7 158 20 e001894f24c0 1172 e0018c70c000 pts/ta0:00 uvsh 19:50:36 17 MAR 2008 Simple done. With sleep: F SUID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME COMD 401 S 5517 19121 18392 0 158 20 e001894f24c0 1328 e0018c70c000 pts/ta0:00 uvsh 20:00:42 17 MAR 2008 done. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] UV: LOOP;EXECUTE cmd CAPTURING X; REPEAT fatal memory fault.
From: Louie Bergsagel How long before it fails? A few minutes for me, for that simple test. The question is what's memory doing? Try looking at the process with -l option of the unix ps command. But look at this where I execute an SH command: EXECUTE SH -c'# comment' CAPTURING X then printed a report line every 100,000 iterations. It still failed after 990,230 iterations, but ran slower slower slower. It took 28 hours to get to that point, whereas my old much slower PA/risc got to that number in ~5 hrs. Look at Mem SZ: constant 942, vs growing to 230145. Itanium: 0001: HP-UX x0003031 B.11.23 U ia64 2885820074 unlimited-user license 0002: uid=5517(cds33896) gid=212(tech) 0003: -5783 resizetmp From cds33896 0004: RUN CDS.BP MEMFAULT3 0005: 12:24:01 15 MAR 2008 Count Secs Sys(9) Mem SZ 0006: 12:49:09 15 MAR 2008 10 1508 420550 26715 0007: 13:43:27 15 MAR 2008 20 3257 1138400 52103 0008: 15:14:58 15 MAR 2008 30 5490 1947890 77495 0009: 17:30:49 15 MAR 2008 40 8151 2831010 103019 0010: 20:35:40 15 MAR 2008 50 11090 3734720 128407 0011: 00:22:42 16 MAR 2008 60 13621 4617480 153865 0012: 05:07:25 16 MAR 2008 70 17083 5582570 179357 0013: 10:24:14 16 MAR 2008 80 19008 6438780 204745 0014: 16:17:22 16 MAR 2008 90 21188 7272240 230145 Bottom at line 14. (6 hours later, this aborted before reaching 1 million. Dumped a core file.) Here's the same job on PA/risc. It took ~5 hrs to reach the same point. 0001: HP-UX w0003030 B.11.11 U 9000/800 1488117173 unlimited-user license 0002: uid=5517(cds33896) gid=212(tech) 0003: -23412 resizetmp From cds33896 0004: RUN CDS.BP MEMFAULT3 0005: 17:16:55 15 MAR 2008 Count Secs Sys(9) Mem SZ 0006: 17:51:39 15 MAR 2008 10 2083 278170 942 0007: 18:24:48 15 MAR 2008 20 1988 269890 942 0008: 18:57:50 15 MAR 2008 30 1982 269170 942 0009: 19:31:13 15 MAR 2008 40 2002 271450 942 0010: 20:04:06 15 MAR 2008 50 1973 268050 942 0011: 20:36:04 15 MAR 2008 60 1917 256230 942 0012: 21:07:16 15 MAR 2008 70 1872 248220 942 0013: 21:38:34 15 MAR 2008 80 1878 249360 942 0014: 22:09:35 15 MAR 2008 90 1861 247390 942 0015: 22:40:38 15 MAR 2008 100 1862 247480 942 0016: 23:11:46 15 MAR 2008 110 1867 248500 942 0017: 23:42:51 15 MAR 2008 120 1865 246870 942 0018: 00:14:33 16 MAR 2008 130 1901 250930 942 0019: 00:47:19 16 MAR 2008 140 1965 259980 942 0020: 01:19:09 16 MAR 2008 150 1910 254220 942 0021: 01:50:15 16 MAR 2008 160 1865 247170 942 0022: 02:21:10 16 MAR 2008 170 1855 246310 942 0023: 02:52:10 16 MAR 2008 180 1859 246240 942 0024: 03:23:04 16 MAR 2008 190 1854 245850 942 Bottom at line 24. (Killed duiring nightly UV stop/restart @3:30AM.) --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] UV: LOOP;EXECUTE cmd CAPTURING X; REPEAT fatal memory fault.
From: Allen Egerton Capturing writes to uvtemp. Are you running out of disk space or perhaps inodes? Good question, but no. Plenty of room in uvtemp. Plenty of inodes. It does leave an 0-byte capturenaa file in uvtemp. 0-byte, because I am really doing nothing (execute a comment). If I do something real, the capture file does contain the appropriate thing, but it does not correspond to the runaway memory usage. It also leaves an aceb printer memory segment that needs cleaning up too. (ipcs -mopuv/bin/uvlictool clean_lic ) --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] release notes (was: SLEEP 60 slept only 53 seconds, or else TIMEDATE() is wrong)
Where on IBM's massive web site can I find what was fixed on what version of universe? This thread got me wondering if some weird issues I have seen have already been fixed on a new versions of universe (we are running on AIX if that matters) As well as what new features have been added to new versions of universe It's not all nicely in one place, but a good starting place is http://www-306.ibm.com/software/data/u2/contacts/ You'll find links to manuals, knowledgebase, product availability, [EMAIL PROTECTED], etc., etc.. Each major release is usually accompanied with an update on the manuals, including a New Features at Release X.0 sort of thing. U2 Product Availability page page is linked from the above url. https://www-927.ibm.com/software/data/u2/support/matrix.asp There is a readme for any given release from the base x.0 release forward. Caution: You'll see that IBM continues to make fixes to later versions of UV10.1.x after UV10.2.0 was released. So if you read about a fix in such a release, you have to look carefully to make sure that same fix was applied to a later 10.2.y you might be interested. I use UV as an example, but I think the advice is good anywhere. There have been a few conference and Web presentations that IBM has made about new releases. Maybe others can say where to find them. Or [EMAIL PROTECTED] There is no place where IBM will tell you a list of acknowledged open issues, their disposition, suggested workarounds, projected fix dates. They hold that close to the chest, to the detriment of clients who get bit by a bug that they otherwise would have worked around. (Am I bitter? A little.) Chuck Stevenson --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] SLEEP 60 slept only 53 seconds, or else TIMEDATE() is
Maybe a sys admin changed the system time during the run. Or maybe the system automatically synced to a timeserver. I'll check on that, but I think the synch is automatic and frequent enough to not be off by 7 seconds. Maybe not, since this isn't a production system yet. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] SLEEP 60 slept only 53 seconds, or else TIMEDATE() is wrong
-Original Message- From: Mark Eastwood I had a similar experience several years ago (10.0.?/Windows). What I suspect (but never proved) was happening was when I ran PORT.STATUS, it touched the sleeping phantom process and woke it up. It was of little significance to me, and never encounter on other boxes, so I never pursued. You should be able to test easy enough. To test, I had a phantom doing (roughly): loop crt timedate() sleep 60 repeat On a 2nd session I repeatedly did PORT.STATUS PID [phantom's id] That caused the phantom to write out the time every 61 or 62 seconds, but never wake up prematurely. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] SLEEP 60 slept only 53 seconds, or else TIMEDATE() is
You might check the system logs; if there was a time server sync there should be a note in there. We synch every 10 minutes at 0,10,20,30,40,50 minute mark. That doesn't cover 15:05 where my 7 second glitch happened. I ran a mess of tests overnight. About 200,000 iterations of [time/sleep/time] in all. I read the results this morning programmatically. There were some 1-second anomalies (my smallest measurable granularity). All except 2 spanned a timeserver resynch. Those other 2 each occurred slightly before 01:49:41, in parallel jobs. That's a half minute shy of a time resynch. Each woke up in 9 seconds, not 10. There were 29 other parallel jobs doing exactly the same thing at 1:49 they all behaved appropriately. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] SLEEP 60 slept only 53 seconds, or else TIMEDATE() is wrong
I see what you're saying. yeah, moot. I was hoping someone would jump in and say they'd seen this before the simple fix is... oh well. thx, cds -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Louie Bergsagel Sent: Wednesday, February 13, 2008 11:53 AM To: u2-users@listserver.u2ug.org Subject: Re: [U2] SLEEP 60 slept only 53 seconds, or else TIMEDATE() is wrong If you had a continue or exit in the code above line 439, it would speed up the interval by skipping the sleep on line 439, and depending on what that code was doing, it could take a coincidental 53 seconds. But you said there was none, and there are no double top loop lines, so that situation is moot. -- Louie On Feb 12, 2008 6:05 PM, Stevenson, Charles [EMAIL PROTECTED] wrote: Silly question perhaps, but are there any CONTINUE or EXIT statements in the parts you left out? No, but think about it: even if there were, it could only SLOW DOWN not SPEED UP the interval between executions of CRT TIMEDATE(). --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] SLEEP 60 slept only 53 seconds, or else TIMEDATE() is wrong
This is on 10.2.6, released Aug 2007. Issue 7659 was fixed in 10.1.14, released Aug 2005. You'd think the fix would be in 10.2.6, too, but maybe it has reared its ugly head again. My description is not quite the same, but I am on HP. No select involved. Executing a PORT.STATUS from another session sounds like something I might have donw. I was examining that program intensely that afternoon. Thanks, JayJay! I'll forward this to support. Chuck -Original Message- From: John Jenkins There were some changes to do with PHANTOMS being woken from a SLEEP when the parent process terminated. It would be interesting to check your UniVerse release against the Product Availability Matrix: 10.1.14 7659If one UniVerse process was executing a SELECT statement against a file, and a different UniVerse process was executing the PORT.STATUS command, the process selecting the file may have received an error message similar to the following: nanosleep: Interrupted system call This problem was unique to the HP platform and has been fixed. This might be of help - does it match? -Original Message- From: Mark Eastwood I had a similar experience several years ago (10.0.?/Windows). What I suspect (but never proved) was happening was when I ran PORT.STATUS, it touched the sleeping phantom process and woke it up. It was of little significance to me, and never encounter on other boxes, so I never pursued. You should be able to test easy enough. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] SLEEP 60 slept only 53 seconds, or else TIMEDATE() is wrong
Silly question perhaps, but are there any CONTINUE or EXIT statements in the parts you left out? No, but think about it: even if there were, it could only SLOW DOWN not SPEED UP the interval between executions of CRT TIMEDATE(). If you look at the line numbers, you'll see that there are no statements missing between line 438 thru 450, then looping back to 151,152. I verified using VLISTt that 450's REPEAT really loops back to 151's LOOP. The only other way would be if there were other lines somewhere else in the program that could be producing that output, but nope: : t Top. : c/loop top/loop top/222 0152: CRT ; CRT TIMEDATE():' loop top.' ; * 2/08 DBG CDS Bottom at line 1017. : t Top. : c/Sleeping for/Sleeping for/22 0439:CRT @(10,20):Sleeping for :LOOP.TMR: seconds ... : Bottom at line 1017. : How does: CRT TIMEDATE() SLEEP 60 CRT TIMEDATE() execute in 53 seconds? Adding other code in between doesn't help. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] SLEEP 60 slept only 53 seconds, or else TIMEDATE() is wrong
I've never seen this before. Can anyone explain it? I'm testing UV 10.2.6 on HPUX 11.23, Itanium found this while debugging a program that runs as a phantom. The grep cut of PH file below shows relevant parts of the file, namely pairs of lines where - pgm line 438 prints a time stamp - pgm line 439 prints how long it's going to sleep (60 secs) - pgm line 447 sleeps 60 seconds - pgm loops back to line 152 prints the time again The time logged via pgm line 152 MUST be at least 60 seconds later than the previous time logged via pgm line 438. Right? But look at PH lines 113 114. They claim to be only 53 seconds apart. How can that be? Every other loop iteration is exactly as expected. Here's the relevant part of the program: 0151: LOOP 0152: CRT ; CRT TIMEDATE():' loop top.' ; * 2/08 DBG CDS . . . . . . . . . 0438:CRT TIMEDATE():' ': ; * 2/08 DBG CDS 0439:CRT @(10,20):Sleeping for :LOOP.TMR: seconds ... : 0440:CRT @(10,22):Last :RDESC: inbound record processed on 0441:IF REC.DAT = None THEN 0442: CRT (None yet): 0443:END ELSE 0444: CRT OCONV(REC.DAT,D2/): at :OCONV(REC.TIM,MTH): 0445:END 0446: END 0447: SLEEP LOOP.TMR 0448: END 0449: * 0450: REPEAT $cat -n ./FIELD.ESC.PROCESS.LOOP_53693_14653 | grep -eSleeping for -eloop top.| cut -c1-55 60 14:59:35 12 FEB 2008 loop top. 77 15:00:41 12 FEB 2008 Sleeping for 60 seconds ... 78 15:01:41 12 FEB 2008 loop top. 95 15:02:51 12 FEB 2008 Sleeping for 60 seconds ... 96 15:03:51 12 FEB 2008 loop top. 113 15:05:07 12 FEB 2008 Sleeping for 60 seconds ... 114 15:06:00 12 FEB 2008 loop top. 131 15:07:22 12 FEB 2008 Sleeping for 60 seconds ... 132 15:08:22 12 FEB 2008 loop top. 149 15:09:48 12 FEB 2008 Sleeping for 60 seconds ... 150 15:10:48 12 FEB 2008 loop top. 167 15:12:20 12 FEB 2008 Sleeping for 60 seconds ... 168 15:13:20 12 FEB 2008 loop top. 185 15:14:57 12 FEB 2008 Sleeping for 60 seconds ... 186 15:15:57 12 FEB 2008 loop top. (etc. always 60 seconds difference for rest of file) --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe 10.1 Itype possible parsing problem
Try DLIST. It's like VLIST, but for I-descriptors. DLIST decompiles the I-descriptor into something that looks an awful lot like the decompiled basic object that VLIST shows. I put 2 I-descriptors called NICELY.SPACED and CRAMMED in DICT VOC compiled them. Look how the 2 decompile into different looking things, exactly as Jerry Banker said: DLIST VOC NICELY.SPACED CRAMMED Item 'NICELY.SPACED': IF @RECORD3 = @RECORD6 THEN 1 ELSE -1 Compiled 01:10 09 JAN 08 1 expressions 0 TOTALS 8 constants : 060 dyn_extract@RECORD 3 0 0 = $R0 000C: 060 dyn_extract@RECORD 6 0 0 = $R1 0018: 06E eq $R0 $R1 = $R2 0020: 1A0 testf $R2 0034: 0028: 0F8 move 1 = @1 002E: 0C2 jump 003A: 0034: 0F8 move -1 = @1 003A: 0F8 move @1 = @ANS 0040: 15C return Item 'CRAMMED': IF @RECORD3= @RECORD6 THEN 1 ELSE -1 Compiled 01:11 09 JAN 08 1 expressions 0 TOTALS 8 constants : 0DC lt @RECORD 3 = $R0 0008: 060 dyn_extract@RECORD 6 0 0 = $R1 0014: 0A0 ge $R0 $R1 = $R2 001C: 1A0 testf $R2 0030: 0024: 0F8 move 1 = @1 002A: 0C2 jump 0036: 0030: 0F8 move -1 = @1 0036: 0F8 move @1 = @ANS 003C: 15C return --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Deployment of software for UD and UV
For dirs never, Never, NEVER use Type 1 files. '' '' always, Always, ALWAYS use Type 19. (Dave Taylor already said that, but it was buried in the middle of other useful stuff I didn't want anyone to miss it. He gave rationale his related comments about LONGNAMES ON was germaine, too.) -Original Message- From: Tony G We are about to publish software which runs over Unidata and Universe for Windows. What is the preferred deployment package for Universe? 1) Full account, source and object in Type 1 files, Pick flavor. 2) Full account, source and object in Type 1 files, Ideal flavor. [snip] --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] RE: testing
He's getting coal for Christmas this year. Does he know what coal is? I actually found some at a lumberyard several years ago got a few pieces for my kids' stockings. A shiney black rock that burns? No way. This is so cool! --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] WHERE for universe?
From: Ray Wurlod Not really. And you couldn't call it WHERE because that's a keyword for UniVerse/SQL. --- Actually, you COULD call the verb WHERE, even though it is already a keyword. In VOC WHERE 3 you can add the real name of the real verb you want executed if WHERE appears in the command line as though a verb. Here's an example of using WHERE to execute PORT.STATUS: CT VOC WHERE PORT.STATUS WHERE 0001 K 0002 506 0003 PORT.STATUS WHERE USER cds33896 There are currently 1 uniVerse sessions; 1 interactive, 0 phantom Pid.. User name Who Port name.. Last command processed... 3304 cds33896 14 /dev/pts/td PORT.STATUS USER cds33896 And it still functions properly as an SQL keyword: SELECT TYPE,F2,F3 FROM VOC WHERE TYPE='K' AND F3#''; TYPE F2... F3... K22SELECT K212 * K286 USERS.VERB K506 PORT.STATUS K276 FORMAT.VERB K215 * K573 DATE.VERB K214 * K378 COUNT.VERB K400 MAP.VERB K377 SUM.VERB K403 TIME.VERB K258 DISPLAY.VERB K66FROM.VERB K66FROM.VERB K194 LOGOUT K257 BREAK.VERB K213 * 18 records listed. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] RB Developer (4.2.x) vs WebDe Eclipse/Java Tool (4.4.0)
I heard a rumour of a bug in the RedBack Designer client tool need advice. The rumour is that some updates to WinXP SP2 might break Designer. The break may have workarounds or can be complete. We're at 4.2.3 debating whether to make a big jump to WebDe4.4.0 (Redback has been renamed WebDe @ 4.4) or a slight upgrade to 4.2.6. One or the other is necessary to accommodate a hardware change from HP Risc to HP Itanium. Questions: 1. Have you seen this bug? When? 2. At which releases of RB is this problematic? If 4.2.3, then theoretically we are already vulnerable. 3. What do you think of 4.4.0 the Eclipse/Java replacement for Developer? 4. Is anyone out there using 4.4.0 at all ?? I am cross-posting this to u2-users rbsolutions. I don't see traffic on rbsolutions. I don't know how many subscribe to it. Thanks, Charles Stevenson Getronics Costa Mesa, CA --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] RB Developer (4.2.x) vs WebDe Eclipse/Java Tool (4.4.0)
I heard a rumour of a bug in the RedBack Designer client tool need advice. The rumour is that some updates to WinXP SP2 might break Designer. The break may have workarounds or can be complete. We're at 4.2.3 debating whether to make a big jump to WebDe4.4.0 (Redback has been renamed WebDe @ 4.4) or a slight upgrade to 4.2.6. One or the other is necessary to accommodate a hardware change from HP Risc to HP Itanium. Questions: 1. Have you seen this bug? When? 2. At which releases of RB is this problematic? If 4.2.3, then theoretically we are already vulnerable. 3. What do you think of 4.4.0 the Eclipse/Java replacement for Developer? 4. Is anyone out there using 4.4.0 at all ?? I am cross-posting this to u2-users rbsolutions. I don't see traffic on rbsolutions. I don't know how many subscribe to it. Thanks, Charles Stevenson Getronics Costa Mesa, CA --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] [UV] Paragraph
Is there a way to read from a file from within a Paragraph ? Jerry's answer is generally easiest: A,F(filename,recordname,attribute,value,subvalue),variablename or F(filename,recordname,attribute,value,subvalue),variablename ___ Re. Brian's program idea: Good idea for more complicated stuff. You can pass data back to the paragraph via - @USER0 thru @USER4 - @USER.RETURN.CODE - @SYSTEM.RETURN.CODE - in an active select list - numbered 1-10 automatically - select list 0 if the program is catalogued in VOC with a K in 4. - You can populate an in-line prompt using the ILPROMPT() basic function. The paragraph calls a program that does: DATA 'whatever' HUSH ON dum = ILPROMPT( 'A,This is a prompt' ) HUSH OFF Then This is a prompt containing 'whatever' will be available to the PA. ___ Re. VAL=TRANS(FILENAME,RECORDID,FIELDNUMBER,OPTIONS) : Not immediately useable by a paragraph, but theoretically you could bury it in an EVAL (or I-descriptor) then SELECT some arbitrary record in an arbitrary file for the express purpose of running the I-descriptor returning its result in the active select list, incidentally setting @SELECTED to 0 or 1 along the way: SELECT VOC SAMPLE 1 _ [ WITH [selection criteria, maybe including an EVAL ] _ RETURNING EVAL TRANS('FILENAME','RECORDID',FIELDNUMBER,'OPTIONS') IF @SELECTED 0 THEN ... The technique might prove useful if the EVALs were more complicated than a simple TRANS(). (VOC SAMPLE 1 are innocent bystanders used solely to get the query to execute the EVAL.) --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] LIST.READU
Doug, When you talk to Charlie Noah, get him to contribute his programming standards to the u2ug wiki, too. Good stuff in there. Chuck -Original Message- From: Doug Chanco Actually I worked with Charlie many years ago (he used to grade my programs and come by my desk with a copy of my program with a bunch of red marks all over it ...) He was/is the most brilliant pick person I have ever met in person with the exception of Jim Young. I will email him and ask him about it -Original Message- From: Jerry Banker On the UniVerse system the SYS.CTL and LOCK.FILE do not exist are they in Unidata? We use a program that was built by Charlie Noah that uses a file that contains tables that equate system and inode numbers to file names. You probably know him from the jbase lists. I would rather he send it than myself because mine has been modified over the years to reflect the systems that we have been on. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] LIST.READU
Currently, the inode can be discovered by using -i option of the unix ls command. FILEINFO() also yields it up, so I have DICT VOC i-descriptors that return the various FILEINFO() file info. That way I can do queries such as: LIST VOC WITH DATA.INODE = 446496 OR DICT.NODE = 446496 At IBM's U2 University conference, we were promised for 2008 a new, improved, Eclipse-vased UniAdmin tool. Jackie Burhans ~suggested~ that IBM ?might?/?would? tackle displaying file NAMES or paths instead of just device-inode combo. (Search the list history for painful discussions of that problem.) I don't know jBase's SHOW-ITEM-LOCKS so I can't compare it to what UV can do. Look at the current UniAdmin client tool that comes with the client CD. (Ask if you don't have one or don't know where to get it. It's free.) It has a lock page where the columns can be sorted by user, pid, inode, etc.. It still won't give you the filename, though. cds -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Doug Chanco Sent: Friday, December 07, 2007 8:44 AM To: u2-users@listserver.u2ug.org Subject: [U2] LIST.READU Hello all, I am back in the universe world after working in jBASE for many years now, is there a better tool than LIST.READU to show the locking table? (similar to jBASE SHOW-ITEM-LOCKS which is pretty awesome) It shows record locks BUT not what file the lock is on ... I am still learning our system and seeing a lock like 123456789 does not tell me anything about what file the lock is on, I suppose I might be able to figure out something with the inode but still .. Active Record Locks: Device Inode Netnode Userno Lmode Pid Login Id Item-ID. 30801944464960142 10 RU 59788 1267316151029 30801943389200142 12 RU 59788 1267316151029 Is anyone aware of a better tool? Thanks Dougc --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Recall Question
Pick flavor has you stick that stuff on the end BREAK.ON field[ [text] ['options']...] Instead of what SYS.HELP says: BREAK.ON [ [text] ['options']...] field 2 Examples. 1st a Pick flavor account: .L RELLEVEL RELLEVEL 001 X 002 10.0.16 003 PICK 004 PICK.FORMAT 005 10.0.16 LIST VOC BY TYPE BREAK.ON 'O' TYPE RetrieVe: syntax error. Unexpected literal string. Token was 'O'. Scanned command was LIST VOC BY TYPE BREAK.ON 'O' LIST VOC BY TYPE BREAK.ON TYPE 'O' LIST VOC BY TYPE BREAK.ON TYPE O 03:17:09pm 06 Dec 2007 PAGE1 VOC. TYPE CDSDUM 1 ** SIZE A ** F1 D F13 --- Here's after logging into an ideal account: LOGTO HS.SALES .L RELLEVEL RELLEVEL 001 X 002 10.0.16 003 NEWACC 004 005 10.0.16 LIST VOC BY TYPE BREAK.ON TYPE 'O' 0 records listed. 'O' not found. LIST VOC BY TYPE BREAK.ON 'O' TYPE LIST VOC BY TYPE BREAK.ON O TYPE 03:19:56pm 06 Dec 2007 PAGE1 VOC.TYPE F1 D F2 F3 F4 F5 F10 F6 F7 F8 F9 UNIVERSE.STAF T.FILE SYS.TERMINAL -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Ron Hutchings Sent: Thursday, December 06, 2007 11:29 AM To: u2-users@listserver.u2ug.org Subject: [U2] Recall Question .L RELLEVEL RELLEVEL 001 X 002 10.0.11 003 PICK 004 PICK.FORMAT 005 10.0.11 Running Universe the BREAK.ON 'O' feature gives me an error message. Any insight on this? I am guessing it is because of the pick format. _ You keep typing, we keep giving. Download Messenger and join the im Initiative now. http://im.live.com/messenger/im/home/?source=TAGLM --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] universe syntax for vim?
Ken, How about sticking on the u2ug wiki? cds From: Ken Wallis Make that http://ftp.users.on.net/~empower_data/vimfiles.zip and I don't think you'll be asked for a username/password. From: Kathleeni M Hunter How about sharing with the rest of us. From: Craig Bennett there is an excellent vim syntax file written by Ken Wallis. Email me offlist and I'll send you a copy. Doug Chanco wrote: Anyone have a universe syntax file for vim they would care to share? Rather than create one I was hoping someone already did the work --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Need to partially hide a file
Look seriously at both Ray's SQL solution and Mark's Data-At-Rest-Encryption. The latter is a UV 10.2 enhancement. -Original Message- From: Ray Wurlod Sent: Thursday, November 29, 2007 1:59 PM If you were to convert the file into an SQL table, then you can grant SELECT privilege (or not) at the individual column level. And/or you can restrict the table entirely to a single SQL user (at least in UniVerse) and only access it via programs compiled with the AUTHORIZATION statement. My $0.02 worth. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] mv.net versus Web DE
'twere a popular forum discussing this late yesterday @ IBM U2 conference, San Fransisco edition. Jackie Burhans had I nice chart at the end showing about 8 different IBM-supplied approaches. I attended it mostly to hear any Redback (now aka WebDE) gossip. I have to move from 4.2 to 4.4 and it looks like I'll be an early innovator. I hate that. I hope others weigh in here. -Original Message- From: Martin Hutchinson Has anyone out there made comparisons between the different internet to U2 linking technologies? The 2 main ones appear to be Web DE (Redback as was) and mv.net (Uniobjects.net and connection pooling?), although I am sure there are others out there and if so I would like to hear about them. Any opinions on costs, useability etc would be welcome, --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] IBM U2 conference, San Fransisco edition
On order of 100 attendees. Lots of people I hadn't met before. Looks like this regional, 3day/2night approach is reaching a different audience. Maybe a few more techies younger average age. There's a new developer IDE(?) coming. UniAdmin is also being re-done. No delivery date promised. It's performance moinitor will(?) be enhanced to log history, not just capture real-time to screen. That will be good for establishing a baseline to compare to when later problems are being troubleshot. That was a U2UG requestg, by the way. More on conference later or I'll miss breakfast. Charles Stevenson --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] OCONV Extraction Question
'MCP':@VM:'G.1' is the exact answer your exact question of what can replace 'WHATEVER' in your code. The complete code becomes VAR1 = 'SAM':@VM:'TRUDY' CRT OCONV(VAR1,'MCP':@VM:'G.1') This answer will work as long as there aren't any real periods in VAR1. In the 2nd argument, you can stack successively executed conversion codes separated by value marks. Each acts on the output of the previous conversion. So above, the first conversion, MCP, changes thevalue mark to a period. The second, G.1 extracts the 1st group deliminated by periods. This also explains why OCONV(VAR1, 'G':@VM:'1') doesn't work. OCONV does not care about system delimiters in the 1st argument. It acts on the entire string. OCONVS (with an S) does care. ICONV ICONVS make the same distinction. People have mentioned the obvious dump of OCONV for just VAR11,1, but I asssume you've just condensed some complicated real-world problem down to a simplistic case. Chuck -Original Message- From: D VAR1 = 'SAM':@VM:'TRUDY' CRT OCONV(VAR1,'WHATEVER') What replaces WHATEVER, so that I can see the value SAM? I cannot find in the documentation or remember for that matter how to extract a single value using the OCONV function. Thanks in advance, Doug --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] U2 University
I've bought paid for it. See you there. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Nancy Fisher Sent: Tuesday, October 30, 2007 9:15 AM To: u2-users@listserver.u2ug.org Subject: [U2] U2 University Is anyone going to the San Francisco end of Nov venue? Nancy Fisher Peninsula Truck Lines, Inc Auburn, Washington 253/929-2040 [EMAIL PROTECTED] --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Locks in subroutines
Responding to this part only: Yes the file is being opened withing the subroutine and no, is not easy to change it to open the file higher in the food chain. SUBROUTINE XYZ( ... ) COMMON /XYZ.ONLY/ XYZ.COMMON.INIT, FVAR IF NOT( XYZ.COMMON.INIT ) THEN OPEN 'whatever-file' TO FVAR ELSE ... Abort ? ... XYZ.COMMON.INIT = @TRUE END READU rec FROM FVAR, 'some-id' ELSE ... RETURN ;* readu lock ON whatever-file some-id is retained ;* and file remains open in /XYZ.ONLY/ common. END The calling program can later release that lock via: OPEN 'whatever-file' TO LOCAL.FVAR ... RELEASE LOCAL.FVAR, 'some-id' BUT !!!NOT!!! By this: OPEN 'whatever-file' TO LOCAL.FVAR ... RELEASE LOCAL.FVAR Yet these 2, within the calling program, WILL cause the record lock on 'some-id' to be released: RELEASE Or: STOP I'm just describing what IS (10.0.16), not whether good or bad. cds --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] What is this error??
The words CASE editor jumped out at me just now as I perused the UV release notes. I recalled the same two words figured prominently in a list question a week ago. Frankly, I don't understand any of it, let alone whether they're related. So just in (ahem)case: ___ Problems Fixed in UniVerse Release 10.1.1 (Build 8169) Issue Number Short Description -- - 6446 A problem was discovered with the UniVerse editor when using the CASE command. If you executed the command C/ABC/CASE, UniVerse displayed a message. When executing SEQ/A/1/1, if the letter A appeared in the record you were editing, UniVerse displayed a message and exited the editor. These problems have been fixed. ___ -Original Message- From: Karen Bessel Sent: Thursday, September 13, 2007 9:04 AM To: u2-users@listserver.u2ug.org In the Editor (UV ED): : R/TREC/UPCASE(TREC TCL Case sensitivity is ON [990070] Try HELP. Does anybody know what is causing that error? It's very annoying and causes me to have to re-type the whole line. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] [BB] Does UD need the equivalent of uv/errlog?
Is there a UniData enhancement request buried in the discussion below? UniVerse has a handy file called $UVHOME/errlog that logs runtime error messages (and a few things that aren't really errors) that normally appear on the screen or PH file of the user generating the error. It shows what, who, when, where the error occurred. Does Unidata need the same? Chuck S -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Timothy Snyder Sent: Wednesday, September 12, 2007 1:45 AM To: u2-users@listserver.u2ug.org Subject: RE: [U2] UV basic assignment error ? As far as I can tell, UD doesn't have a BASIC runtime-error log. Oops - haphazard reading on my part. You're correct, of course. I actually get a lot of good information from the UniData logs that do exist, but then those are things that pertain more to what I normally do. And, as you pointed out, you shouldn't be making programming errors, anyway. ;-) OK - administering self-imposed cyber-spanking... Tim Snyder Consulting I/T Specialist U2 Lab Services Information Management, IBM Software Group --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] $UVHOME /.uvhome
Where is this $UVHOME file? I can't find it in my UV directory. In the root directory there is a hidden file called .uvhome that is a simple text file pointing to where universe is installed. Mine says: $cat /.uvhome /dbms/uv $ UVHOME is a variable that many people typically set up in their .profiles: UVHOME=`cat /.uvhome` export UVHOME So if I say echo $UVHOME I get this: $echo $UVHOME /dbms/uv $ Usually it is included in PATH, too: PATH=$PATH:$UVHOME/bin:/software/bin export PATH -Original Message- On 9/17/07, Stevenson, Charles [EMAIL PROTECTED] wrote: Is there a UniData enhancement request buried in the discussion below? UniVerse has a handy file called $UVHOME/errlog that logs runtime error messages --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] UV sentence stack
You may wish to add to the wiki that 99 is a tunable number in the ~/uv/uvconfig file as HISTSTK NN where NN = 99 as the default. If you wish, you can reduce or enlarge that number, which is what SYSTEM(33) will then return. Or, given the nature of wikis, you may wish to add depth of content yourself. There's a lot that's cursory. I wish someone more experienced with wikis would go to that article edit or add hyperlinks and better indexing. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] UV sentence stack
The command stack is also available as @COMMAND.STACK, which actually compiles as SYSTEM(33). UV documentation erroneously says SYSTEM(33) returns only the last command, but Ray's right. It has the whole stack. I'm correcting the U2UG WIKI page for SYSTEM(n) to say: 33 Dynamic array containing the last 99 commands executed. (IBM doc erroneously says: Returns the last command on the command stack.) @COMMAND.STACK is equivalent. It compiles as SYSTEM(33). cds -Original Message- From: Ray Wurlod The UniVerse sentence stack isn't stored anywhere. It is kept in the user's printer shared memory segment while the user is active. The .L command and the SYSTEM() function retrieve it from there. When the user exits from UniVerse, and if the VOC item STACKWRITE is set to ON, then the command stack is saved in SAVEDLISTS as others have posted. But it does not go there until the user exits from UniVerse. The command stack can be deliberately saved to SAVEDLISTS, for example via the SAVE.STACK command, but this is not an automatic operation. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] [OT] Primos emulator
I work for what used to be Wang, but is now a part of Getronics, which is the Dutch parent company that is currently being bought by another Dutch company. (For you younguns still reading this thread, Wang was another of the players at the same time PR1ME was in it's prime.) Anyway, there's a group that has written some kind of Wang emulator on a PC to run old Wang software that still has a customer base but a diminishing supply of experienced Wang hardware since we no longer build the stuff. I'm told the emulator is a money maker. Chuck Stevenson --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] [OT] Primos emulator
Ha. I'm guessing the disk is emululated, too. Actually I don't think it's the Wang Word Processing Station, but something else. I don't remember what. Now you know as much, probably more than I do. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Garry Smith Sent: Friday, September 14, 2007 4:42 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] [OT] Primos emulator Does that load on the 10 inch floppy disk? What was the size of that large disk for the Wang Word Processing Station? Garry L. Smith -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Stevenson, Charles Sent: Friday, September 14, 2007 4:24 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] [OT] Primos emulator I work for what used to be Wang, but is now a part of Getronics, which is the Dutch parent company that is currently being bought by another Dutch company. (For you younguns still reading this thread, Wang was another of the players at the same time PR1ME was in it's prime.) Anyway, there's a group that has written some kind of Wang emulator on a PC to run old Wang software that still has a customer base but a diminishing supply of experienced Wang hardware since we no longer build the stuff. I'm told the emulator is a money maker. Chuck Stevenson --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] U2UG Wiki article on UV's SYSTEM(n) - I need help editing it.
Thank-you, Brian. This has great potential. From: Brian Leach The U2UG have published a new Wiki. It's waiting for your content to turn this into the most complete resource for the IBM U2 community. You can find the Wiki on the U2UG website. Registration is separate, and all U2-ers are invited to contribute. Even if you can't write find the time to contribute a whole article, give us your thoughts and experiences or help to enhance the pages as they arrive. This is an exciting opportunity to harness and pass on the knowledge and expertise in this list for the community. I mentioned on-list last week that I posted a beta Wiki thing on UV's SYSTEM(n)function and ASSIGNment - undocumented (except here) features. It's under: www.usu2.org u2ug Wiki For Developers Server Development UniBasic Development SYSTEM(n) function and ASSIGNment - undocumented (except here) features If someone more experienced writing wikis would edit it and link it up properly, I'd appreciate it. I don't think I have hyperlinks search keywords set up right. I think it would be hard to find the info if one didn't know exactly what to look for. My fault, not the wiki's. For example, there's a table with a row for each numeric argument, applicable for SYSTEM(n). I should have a link on the 9001 row that points to the separate system(9001) detail section. But I can't seem to get it the link right. I also had a hard time formatting text within a cell, so I don't like how some of the longer descriptions read. In the editor it recognized enter, but after filing it, the enters get dropped. And by _all_means_, anyone, fill in / correct the table content! Most was info I gleaned from this list w/o personal knowledge. Chuck --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] U2UG Wiki article on UV's SYSTEM(n) - I need help editing it.
From: Laura Hirsh Hey Chuck - I think you meant www.u2ug.org in your path... Yup, the new Wiki is under www.u2ug.org. Neither fat fingers nor MS spellchecker accounts for that one. Maybe our resident psychologist, Ray Wurlod, can provide a Freudian explanation. On second thought, don't! From: Stevenson, Charles www.usu2.org--- should be www.u2ug.org u2ug Wiki For Developers Server Development UniBasic Development SYSTEM(n) function and ASSIGNment - undocumented (except here) features --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] UV basic assignment error ?
Scott, This is a known behavior. It is by design, so I won't even call it a bug, although it sure can be misleading, as you've found out! It's an excellent question ought to go under some sort of FAQ, in the new U2UG Wiki maybe. Here's the question, with an answer below: Here is a weird UV error condition that I just spent way too long debugging: CT BP SB SB 0001 X = 0002 IF X EQ THEN X = Y 0003 PRINT ONE 0004 PRINT TWO 0005 PRINT THREE 0006 PRINT X 0007 Y = A RUN BP SB ONE TWO THREE Program SB: Line 6, Variable X previously undefined. Empty string used. Why does the run-time error happen in line 6 instead of line 2? In an assignment like X = Y, all that happens is that X is pointed to the same address in the user's memory that Y is at. This is really nice when Y is a very long string. Rather than duplicating the string in memory, both X Y point to the same spot until one of them changes. At that point there are 2 strings. The problem here is that Y has never been assigned. So X is made to point to Y, which is just fine, until X actually gets used. At that point it tries to read what is in X (i.e., what is in Y) and yields an Undefined variable error. Solutions: * Correctly initialize Y. Obviously, Y should be initialized before it is used in X = Y. * If this is a subroutine where Y is an input argument that you have no control over, test it using ASSIGNED(Y) or UNASSIGNED(Y) functions before relying on it. * When debugging, look back to how the variable was assigned, realizing that simple assignments like X=Y mean the problem is with Y, not X. A Terrible, Horrible, Disgusting, but Common (Non)Solution: Do NOT BLINDLY INITIALIZE ALL VARIABLES at the top of a program. Initialize them intelligently exactly when needed, limiting their scope. I see this so often! I think it is because of programmers who are used to other languages with strongly typed variables that need to be DECLAREd at the top of the routine have an uncontrollable urge to declare variables in MV basic, but the closest they can come is to indiscriminately add Y='' or Y=0 to initialization. This actually HIDES BUGS! It is better to have the runtime bug that shows up the error, than have it run wrong silently. Suppose in the little test demo program below Y=0 was indiscriminately inserted at line 1. Maybe Y should be zero, maybe not. But we'd never see the runtime error that points out the bad logic. The bad logic remains, running silently in the background, the latent bug corrupting processing and data. Learn to routinely monitor uv/errlog for runtime errors like this that might slip by your users. You can catch these latent bugs and fix them at their source, rather than waiting for users to complain about bad data and wondering how it got that way. I've promised to add a Wiki article on monitoring uv/errlog, including some programs to do so. Chuck Stevenson --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Unidata Query Optimizer Documentation
Kevin, Is there an enhancement request for better documentation on UD's query optimizer erupting here? cds From: Kevin King On 9/8/07, Dave Davis [EMAIL PROTECTED] wrote: Testing with the actual data appears to be the best way of figuring this stuff out. With all due respect, I don't have the time nor desire to figure out something that should be documented somewhere. Even if I did have the time, the best possible answer via this method would inevitably be supposition rather than fact, possibly leading to dangerous errors in assumption. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Nabble (was Re: Documentation errors (was Get a grip))
Ok, it got posted 2x. Don't know why, maybe something I did. I sent it 9:48 PDT. 2 copies are in my email inbox at 10:08. A 20 minute lag, but I think that lag is on u2-users list side. It (or I?) also deleted a line from my reply that said something like Clifton Oliver wrote:. That was supposed to appear above As to archive... line. I like the view this message in context+URL line. Clicking on the URL shows the message in-thread. Cool. Nabble seems to reconstruct threads, but I'll bet it has to guess at exactly what is a response to exactly which previous post. History seems to go back to Spring 2005. So how does this work? Who set it up? I assume Nabble is a list subscriber and gleans from it to build its own database? But it has to be more than that. It posted my email to the list as from me. I registered as cstevenson so that appears instead of my email address as will appear with this current post, which I am sending as email outside nabble. Otherwise you can't really tell it came via Nabble except for the useful URL tacked onto the bottom. Chuck S P.S. I also just got an alert from Nabble that Chuck B had responded to my post. Said alert rated Chuck's response with 3 Stars(!) gave me a Nabble url to it. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of cstevenson Sent: Friday, September 07, 2007 9:49 AM To: u2-users@listserver.u2ug.org Subject: [U2] Nabble (was Re: Documentation errors (was Get a grip)) I did not know about access to u2-userss via Nabble until Clif's post. So I just registered. Supposedly it's more than history. This is a test post via Nabble's reply page. I'll click [Post Message] and see what happens . . . As to archive indexes, I've found the archive at Nabble to be fairly good, although there are things I know are there that it misses. Try http://www.nabble.com/U2---Users-f801.html -- View this message in context: http://www.nabble.com/U2-University-Last-Week-In-Denver-tf4380810.html#a 12559151 Sent from the U2 - Users mailing list archive at Nabble.com. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Nabble (was Re: Documentation errors (was Get a grip))
From: Charles Barouch Unless you are already registered, Nabble replies bounce. I send out a lot of e-mails to peopl who get caught in the bounce filter because of this and invite them to join. We get a lot of our newer members that way. That means people know about the forum via Nabble and there is probably a population that prefers that web-user interface over email. This is good. Chuck, is this the source of some of those messages you sometimes post on behalf of non-list-members? Maybe we need an option to subscribe, but not receive either digest or individual posts, but that would allow people to post via Nabble. I'm still not sure how we got in bed with Nabble, or rather, how they crawled in bed with us. What are they doing under the covers! Hey, who else are we sleeping with? Google? Yahoo? Chuck S --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] RE: Get a grip - was ads - was U2 University Last
1. Vendors. I have appreciated any post I see from Tony Gravagno, Doug Averch, Jeff Fitzgerald, Dawn Wolthius, Susan Joslyn, IBM people promoting U2 features or classes (yes, same standard applies to IBM), and any other vendor/consultant in our market. B. The moderator's job is not pleasant and I wholeheartedly thank Chuck B for his effort. Clif before him. III. I like [AD] on the subject line if that's the primary purpose of the post. I do not like the ad/ad, joke/joke pseudo-xml -html silliness in the middle of posts. If [AD] is missing from the subject line and I think it should have been there, I raise my substantial eyebrows a notch. It flavours how I receive said ad. Blatant repeat offenders can be reprimanded, but they've already dug their own pit. Vendors responding to questions about their products is not an [AD]. Vendors taking the opportunity of a general question to tout how their product or service will solve the problem is welcome, but should probably be referred to as [AD]. I wish we had more [AD] postings. d. u2-users is not only for just deep diving technical questions, but for any _serious_ discussion of any topic related to our niche of the IT industry. (Including this meta-discussion.) Dawn says she doesn't feel free to post, but I can't think of anything that she would post that I would not welcome. (5) U2-community was originally created to weed out the non-serious degeneration of threads into Monty Python gags, etymologies (I plead guilty), politics, etc.. If you want water-cooler conversation go to u2-community. Maybe we should have named it u2-WaterCooler. The Noise:Signal ratio before the split was intolerable to many and I truly believe we lost list members because of it. I think we waited too long to split because the list members who were with or enjoyed the frivolity were the wrong people to ask. We really needed to ask the people who DIDN'T join. I think we do need to continue to separate out mere frivolity; Bah! Humbug! Six. Lighten up. With malice toward none, with charity for all (Lincoln), Chuck S --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] [UV] - Getting the call stack trace within a program
I posted the following when SYSTEM(9001) was invented. It's gotta be in the archives somewhere. I recently added it to the newly developing U2UG Wiki, along with a table of other un- or poorly documented uses of SYSTEM(n), sorted by said n. Most info I gleaned from u2-users list archives. Some formatting is lost CutPasting it back to this text-only format, but here it is: _ SYSTEM(9001) Call stack of current process SYSTEM(9001) tells you what program you are in where you came from! It will return a dynamic array that contains roughly the same info that PORT.STATUS LAYER.STACK or RAID T command coughs up. - Value 1 of each attribute is the depth in the return stack Non-negative numbers mean that those programs are all part of the return stack. Negative numbers below simply mean those subroutines were called and returned from in the past. I don't think @LEVEL has anything to do with it, contrary to the patchlist text. - Value 2 is the program - Value 3 is the hex address The object address you see when you VLIST a program For the negative depths, n/a. (0x0 on DUMMY example is real. They are small programs.) - The number of values is constant, the number of attributes grows or shrinks. Oh well. One caution: The data is turned 90 degrees from conventional MV data design: the values should have been the attributes; the attributes, values. Each value has a different meaning, multi-attributes for multiple occurrences. Here is a sample subroutine that displays the data and a dummy program that calls it. Then from the menu, I get to pseudo-TCL and execute the dummy program. CT CDS.BP SYS9001 DUMMY SYS9001 0001 SUBROUTINE SYS9001 0002 CRT Depth Executing.. Address 0003 S = SYSTEM(9001) 0004 FOR A = 1 TO COUNT( S, @AM ) 0005 CRT SA,1 4R##: : SA,2 40L#40: SA,3 0006 NEXT A 0007 CRT QUOTE( S ) 0008 RETURN DUMMY 0001 CALL SYS9001 . ED VOC LIST 8 lines long. . - - - -: XEQ RUN CDS.BP DUMMY Executing the command RUN CDS.BP DUMMY Depth Executing.. Address 3: CDS.BP.O/SYS90010x6 2: CDS.BP.O/DUMMY 0x0 1: /dbms/uv/catdir/*UVPRINTMSG 0x4b40 0: /dbms/uv/catdir/-MATBLOCK 0x0 -1: /dbms/uv/catdir/-PERMISSIONS 0x0 -2: /dbms/uv/catdir/-GET.FILE.NAME 0x0 -3: /dbms/uv/BP.O/ED.B 0x0 3}CDS.BP.O/SYS9001}0x6~2}CDS.BP.O/DUMMY}0x0~}/dbms/uv/catdir/*UVPRINTMS G}0x4b40~0}/dbms/uv/catdir/-MATBLOCK}0x01}/dbms/uv/catdir/-PERMISSIONS}0 x0~-2}/dbms/uv/catdir/-GET.FILE.NAME}0x0~-3}/dbms/uv/BP.O/ED.B}0x0~ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] POKE command on Universe
Is it just feed-mode that doesn't work, or tandem in general? If the latter, it be a matter of permissions on the binary executable. On unix, tandem itself won't let non-administrators proceed, even if there are execution rights for group or other. On QA/Dev we use the sticky bit to let any ol' developer in, executing as root: $ls -l $UVHOME/bin/tandem -rwsr-x--x 1 root other 2752512 Jul 29 2003 /dbms/uv/bin/tandem ^ On production we have it configured as IBM delivers it (admin only): $ls -l $UVHOME/bin/tandem -rwxr-x--x 1 root other 2752512 Jul 29 2003 /dbms/uv/bin/tandem ^ Once permissions are ok, the Poke-like escF feed mode works for me, with a couple caveats should the targeted process dive into another unix shell. cds -Original Message- From: Marcos Fogaga Somebody knows how do I do a POKE command on Universe? I used the POKE command with pick/D3 and I need to use now with UV. I tried the TANDEM using feed mode, but did not work. By the way, with D3 POKE command we can write from a line into input buffer of the another line. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
FW: [U2] POKE command on Universe
Do you know how do I do a TANDEM inside a pick basic program passing the ESC F (feed mode)? I have tried the EXECUTE but I can not send a ESC F. Using TCL shell the TANDEM in feed mode works. Since tandem is a unix executeable, pipe the commands you want into it. For example, suppose port 17 is sitting at TCL, and you want to print THIS IS A TEST to it's screen. If you have a file, tandemcmds, that contains ^027FDISPLAY THIS IS A TEST ^027X At unix: cat ./tandemcmds | $UVHOME/bin/tandem 17 At basic: EXECUTE \SH -ccat ./tandemcmds | $UVHOME/bin/tandem 17 --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Clearing a portion of a screen
The even shorter answer is: NEVER repeatedly do ANYTHING inside a loop that will remain constant for each iteration and could be resolved outside a loop. That's language-, platform-, hardware-independent. Shoot, it's applicable to life in general. Try it in your love life: During initialization, marry the woman ONCE, vowing vow to love her in sickness health till death do you part rather than iteratively waking up each day and wondering, Am I going to stay in this relationship another day? It's much more efficient. -Original Message- From: Ray Wurlod The short answer is that I measure expensive by the fact that every call to an @() function in UniVerse must be resolved by recourse to interrogating a terminfo database. Why do this unnecessarily? --- --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] SQL query locks
Excellent. What about UniVerse? I've hit it...No: It's hit me there, too. cds -Original Message- From: Wally Terhune Sent: Monday, August 27, 2007 10:48 AM To: u2-users@listserver.u2ug.org Subject: Re: [U2] SQL query locks If this is UniData, we fixed a problem in this area at 6.1.7 (released 3/18/05): Issue 6917 - Problem Description UniData -- A lock release in SQL UPDATE failed, causing SQL to hold the locks for records that were excluded from the query with a WHERE clause. A fix to the lock checking utility corrected this issue. Hi, We have a Cold Fusion app that is using SQL queries. It's locking records, unfortunately as many as 100 at a time. Is there a way to do the query without locking records? We're not updating anything. Pam -- Pamela J Robbins New Bolton Center Senior Programmer AnalystSchool of Veterinary Medicine [EMAIL PROTECTED] University of Pennsylvania 610-925-6438 --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] UV - Files Stats Question
can you tell me where FAST keeps the list of files under its control ? There should be a universe account called fastcs. FAST.STATS is its main interesting file you should become familiar with. Where the fastcs directory resides is up to you. For me, it is a sister of the universe home dir. In other words, when I do LIST UV.ACCOUNT I see: LIST UV.ACCOUNT 05:44:11pm 26 Aug 2007 PAGE1 Account... UNIX pathname. uv /dbms/uv fastcs /dbms/fastcs List the FAST.STATS dictionary and then write your own queries. The key to FAST.STATS is the pathname. There are ancillary control files like FAST.LISTS, FAST.SESSIONS, etc.. You'll figure it out once you start looking. One complaint I have with FAST is that it doesn't keep history. I want to see where a file has been and where it is going, so after I run my weekly Gather Stats, I copy each newly updated FAST.STATS record to my own FAST.STATS.HIST where the key is [idate]*[fast.statsID(i.e.,path)]. Indexed on date, path, filename. Then I can look at how a file is changing over time (number of data bytes, items, etc.). I and my comrades have found that useful not just in sizing but in application analysis research. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] UV - Files Stats Question
Jeff, I wouldn't worry about the cyberspanking. We pay Charles those big bucks to monitor this list, and he's earning his keep. (He insisted on 75% the u2 users list subscription fees goes to him, but the U2UG former president, Charles Barouch, chiselled him down to 50%.) I always appreciate vendor response to questions. You've always been very helpful. The fact is, FAST probably does what the original poster wants, if he can figure out how to do it technically. The rules on [AD] are are a bit loose. I don't think we make IBM people add [AD] when then giving technical info or mentioning something about a new release or routine admonitions to take the Internals class. I suppose you maybe strayed when announcing rev 6. Hey, I think that's the first I heard of 6. You know, you could stand to be a little more marketing oriented. Charles not the cyber-spanking Barouch one Stevenson --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] [ud] Question on Alpha Sorting...
I think I would want to encapsulate that logic in one place. Probably write a function or subr to be called from any pgm or referenced by a dictionary V-item. Store the names as typed in the data record, and NOT repeated as all-caps. Then maybe index the V-item upcased subroutine result. That would give the function something to check to prevent duplicates when inserting new names, assuming that is an issue. At any rate, the function would be a self-contained blackbox, consistent for all present future use. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Is U2 University worth going to? YES!
I'm planning to attend the San Francisco edition, late November. I was at IBM's huge conference last year and we (U2) just got lost in the mix. This is a much better format. I suppose if you have AIX and U2 and Tivoli, last year's CAAOC (Conglomerated Association of Affiliated Organizations Conference) was ok, because you could talk about all three in one place, but I only met a few other u2 users when milling about. I think users of non-U2 IBM products had the same frustration. I think IBM ended up limiting the number of U2-related breakout sessions too. We could have used more. And it was expensive. I'm guessing half the attendees were IBM employees. Maybe we had to pay for them. What did we get for that extra grand, pooling our education dollars with the disparate dollars of diverse disciplines whose only commonality was the vendor? (a) A roped off section of Disneyland for an evening with music so loud that my ears rang I couldn't network anyway, even when I could find some fellow u2-ists in the crowd; and (b) Gladys Knight and the Pips. Big whoop. (Tho I like Susan Joslyn's suggestion of Bono U2.) I'm looking forward to this year's conference. See you in SF, Chuck Stevenson --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] UVTSORT config parameter
Dear Messrs. Dreyfuss, Oliver, Wurlod, gurus all, My original request was for words of wisdom. History lessons count. The older I get, the more I value them. Thank-you. But I was more interested in the future (my own): - Why would I enable multi-threading? (UVTSORT 1) - Why would I disable multi-threading? (UVTSORT 0) - If 1 is always right, why did IBM make it configurable by the user? - What symptoms would make me suspect I have it wrong? - How would one test it? - Is there any documentation? Cherishing your every word, Chuck P.S. I'm anticipating upgrade to HP Itanium, HPUX11.23, UV 10.2.5. I assume multi-threading sorting applies there, although it wasn't stated. -Original Message- From: LeRoy Dreyfuss Thx Mr. Oliver. I recall our pal Pete Simonson telling me that some years ago. Just didn't want to stick my neck too far out without some caution :-) -Original Message- From: Clifton Oliver Yes. According to my conversations with DG, the project was referred to as Firestorm and had DG's affinity throughout. Not sure, but I believe VMark had DG do the actual development for affinity. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] [UV] Speeding up a big BY.EXP select
Without a doubt: SELECT BIGFILE BY @ID BY.EXP MV.ATTRIBUTE - It has always frosted my shorts that in order for WHEN to kick in, you need BY.EXP even if you don't care about the sort order. So, Given that sorting is syntactically necessary, and Given that you don't really care about the order, you should, without a doubt: SELECT BIGFILE BY @ID BY.EXP MV.ATTRIBUTE Reason: _S_U_B_S_E_Q_U_E_N_T_ use of the resultant list. All the select list entries for each record will be lumped together so the disk read of that record occurs once, for the 1st mv occurrence. Subsequent requests for values from that record will still be in cache. If you sort by MV.ATTRIBUTE before @ID, you will have multiple reads on the Example: 1st sort: BY @IDBY.EXP MV.ATTRIBUTE Resultant List: X}1|7}0 X}1|7}0 X}2|7}0 Z}3|7}0 X}3|7}0 X}2|7}0 Y}7|7}0 Y}7|7}0 Y}8|7}0 Z}10|7}0 Z}3|7}0 X}3|7}0 Z}10|7}0 Y}8|7}0 Z}5|7}0 Z}5|7}0 The select (or saved) list generated by BY.EXP selections has value subvalue marks in it, the extra stuff telling RetrieVe (or READNEXT) where to dig out the relevant value subvalues. Notice that the 1st column is in id order, the 2nd will bounce around. This is significant when the list is millions long. cds P.S. I'm going to post a question about UVTSORT config parameter separately. I don't know its impact here. -Original Message- From: Boydell, Stuart I have a large file with an MV set I need to do an exploding sort against (about 2 million records, about 20 MVs per record). I'm not actually after any particular sort order but it's taking hours. I'm wondering if there is any efficiency advantage by telling it to use a primary sort on the ID or just to sort on the MV attribute? My (probably flawed) reasoning is that if the primary sort is on the id then the sort process wouldn't have to build up one big explode - as it would have a primary sort by record, it then only needs to explode each record at a time. Eg. SSELECT BIGFILE BY @ID BY.EXP MV.ATTRIBUTE Or SSELECT BIGFILE BY.EXP MV.ATTRIBUTE Anyone know the answer to that one? Stuart Boydell --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] UVTSORT config parameter
UV 10.1 introduced a new configuration parameter. Admin manual says: UVTSORT The value of this parameter can be either 1 or 0. A value of 1 enables multithreaded sort. A value of 0 disables multithreaded sort. I don't see any further discussion of it than that. Does anyone have any words of wisdom? cds --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] How to use LOCATE in an I Descriptor
There isn't a UV- or UD- or PI-supplied way. I wrote a utility function to do that years ago, but you have to account for the THEN vs. ELSE clause as well as returning the position number. I did that by returning a negative number on ELSE. Then the calling I-descriptor has to test for +/- act accordingly. Yuck. I am generally biased toward utility routines and i-descriptors, but after using implementing my LOCATESUB() in actual i-descs, I recommend just writing a little i-desc function that does exactly what you need, with the LOCATE statement buried in there. It's more maintainable. cds -Original Message- From: Doug Farmer I have someone asking me how to use a LOCATE statement in an I Descriptor. I have never done that and would not know if it is possible, or what the syntax is. Does anyone know if you can do this, and what the syntax would be to use the resultant location? Thanks Doug --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] [UV] Speeding up a big BY.EXP select
This is so great!! the WHEN-BY.EXP connection was removed a few releases back. On my 10.0.16 I live under the tyranny of the old regime. My shorts have thawed . . . Wait, now they've frosted over again: I'm reading release notes for 10.1 10.2 and I don't see anything about WHEN/BY.EXP. Did I miss an important doc? I admit I haven't read everything yet. Where how was I supposed to find this out? cds P.S. My comment about sorting by id before mv.attribute still stands. All else being equal, if you don't are about the order, lump all the select list entries for the same record together for the sake of subsequent use of the resultant list. Under the new regime I suppose the proper syntax is: SELECT BIGFILE WHEN MV.ATTRIBUTE = xyz (or whatever the criteria are.) -Original Message- From: Ron Hutchings The comment about the WHEN-BY.EXP connection was removed a few releases back. Now, if you use WHEN it will pick off only the multi-value that matches and the rest do not display. __ From: Stevenson, Charles Without a doubt: SELECT BIGFILE BY @ID BY.EXP MV.ATTRIBUTE - It has always frosted my shorts that in order for WHEN to kick in, you need BY.EXP even if you don't care about the sort order. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] EXECUTE environment in Universe
Yes, except K officially stands for Keep-select-list-active, rather than Keys. It's a wonderful little tool. You can create your own application-specific utility verbs that create select lists to be acted on by the next command. cds -Original Message- From: john reid Sent: Wednesday, August 08, 2007 10:38 AM Once again at risk of stating the already known... The 'k' causes the end of the execution to retain the 'KEYS' from a select list? j On 8/8/07, Ray Wurlod [EMAIL PROTECTED] wrote: K mode means that the Verb (the Catalog entry) has K in field #4. It may be the answer you need. Reference is (from memory) a section in the UniVerse Admin Guide about adding functionality to the VOC file. Yes, I am using PICK flavor and have set the LAYERSEL option to the default - 0. The manual mentions a K Mode. I don't know what that is and can find no other reference to it in any of the documentation. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] [u2] : Cleaner Case Statement
From: Clifton Oliver Execution should flow top to bottom, not left to right, from a comprehension viewpoint. Comprehension contributes to Maintainability, the premiere attribute of software quality. Along same lines, each case block should test the same sort of thing. Don't get sneaky for efficiency's sake. (Note: Efficiency Maintainability are often in tension.) E.g.: You are sorting cobras, bugs, garter snakes, lizards, rattlesnakes. The 2nd method below increases your chances of giving this to a junior programmer, an important consideration when sorting vermin. Don't do this: begin case case legs = 6 ; bug case legs = 4 ; lizard case red stripe ; garter snake case hood ; cobra case rattles; rattlesnake end case Do this instead: begin case case legs = 6 ; bug case legs = 4 ; lizard case legs = 0 ; * (snake) begin case case red-stripe ; garter snake case hood ; cobra case rattles; rattlesnake end case end case cds --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] UV10.0.16-10.2.x; HP Risc-Itanium; hpux 11.11-11.23
Seeking advice, warnings, testimonials. We are considering moving from HP's RISC platform to their new Itanium hardware. This implies a unix upgrade (from HPUX 11.11 to 11.23). Our current uv10.0.16 is not certified for hpux11.23, so I must upgrade to 10.1 or 10.2. Redback 4.2.3 to at least 4.2.6. I am thinking of going to as modern a version of UV as advisable. Any gotchas going from: - UV 10.0 to 10.2? - would you advise 10.1 instead of 10.2? - hpux 11.11 to 11.23 ? - Risc to Itanium ? - Redback (aka WDE): minimal to 4.2.6? Or jump to 4.4? Only 4.3? Any communication on- or off-list is welcome. Thank-you, Charles Stevenson DBA, Getronics, Inc. 714-641-5943 [EMAIL PROTECTED] --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] [UV] Stacker commands
@COMMAND.STACK. Yot can also use SAVE.STACK and GET.STACK commands to put them into SAVEDLISTS From: Jacques G. When the .L command is done at the TCL level, the last executed commands are shown. Anyone here know where those commands are stored ? --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Tony Jones/WA/QBE/Insurance is out of the office.
I will be out of the office starting 04/07/2007 and will not return until 09/07/2007. five months? :-) Clearly, he's using European-style (or should I just say non-American) dates. The USA leads the way in other innovations too: http://upload.wikimedia.org/wikipedia/commons/1/17/Metric_system.png (The funny thing is, the US really is an innovator. Go figure.) --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] OPEN FILENAME TO F.FILENAME ELSE STOP problem in a loop.
Dave, Brenda's approach is basically how I'd handle it. I encourage you to stepp through the execution with the debugger, RAID. That might make more clear what's happening, than any number of prose responses on-list. cds -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Dave R Sent: Thursday, July 05, 2007 2:47 PM To: u2-users@listserver.u2ug.org Subject: [U2] OPEN FILENAME TO F.FILENAME ELSE STOP problem in a loop. I am trying to open a group of files from a list of files in the table file. Does anyone know how to make the constant in the open file statement work. I get the good old IMPROPER DATA TYPE error message when I try to read the file I opened with the code. In the mean time I will open each file separately . Thanks Dave. OPEN 'TABLE'TO F.TABLE ELSE STOP 201,'TABLE' READV INV.FILES FROM F.TABLE ,INVENTORY-FILES,1 ELSE CRT; CRT CANT FIND TABLE 'INVENTORY-FILES'; RETURN END CONVERT ',' TO @VM IN INV.FILES FDC = DCOUNT(INV.FILES,@VM) FOR F = 1 TO FDC FILENAME = INV.FILES1,F:-INV FILE.NAME = INV.FILES1,F F.NAME = 'F.':FILE.NAME OPEN FILENAME TO F.NAME ELSE STOP 201, FILENAME NEXT F * Dave R e Fax (815)4259364 P.O. Box 17811, Irvine CA 92623-7811 --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] RE: OT Mutitask
Mark, That's good. I've cross-posted to u2-community, preempting the lifeguard kicking this thread out of the u2-users pool. cds -Original Message- From: Hennessey, Mark F. Subject: RE: [U2] [AD] OT Mutitask [not-secure] Mutitask (intransitive verb)- When an assignment's scope or definition is radically altered before the task is complete. Example: We need the sorting on report X changed. Becomes: Users must be able to run reports at any time during the day or night and receive the output via Navajo Code Talker. The system must support reporting on future data. And no budget increase. -- 'Must be able to mutitask' Is that like having the capability to alter the biocharacteristics of a task, sort've on the fly?' --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [AD] [U2] Basic developments reverse engineering tool ?
If I recall correctly, SoftWhere handled that sort of thing. I do remember seeing it pick up subroutine's uses of files where the file variable was passed as an argument from the calling program. -Original Message- How does it work with parameter driven code. One of my clients has procs like this: HRUN BP SOP1500 STON HORDER HCUSTOMER HPRODUCT HVENDOR P whereby the program (BP SOP1500) has the corresponding INPUT statements for the file names and opens them as F1, F2, F3 --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Basic developments reverse engineering tool ?
The best such tool I ever saw was SoftWhere by Joe Toledo. I don't know if he still sells it. It reads source code, dictionaries, procs, and maps dependencies. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Herve Balestrieri Sent: Wednesday, June 27, 2007 8:23 AM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Basic developments reverse engineering tool ? To clarify the inquiry : I am seeking for a tool reading Basic source code modules and producing a technical documentation of an application automatically. This is not the purpose of an object code decompiler. Thanks Herve' Balestrieri There was UN-Basic that took compiled code and reverted it back to source code. My 1 cent Mark Johnson - Original Message - From: Herve Balestrieri [EMAIL PROTECTED] Does it exists a (marketed?) tool for MV databases (i.e UniVerse) that would allow to make the reverse engineering of an application, based on automated Basic source code analysis ? Thanks for any information. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] [UV] Trigger(s) on distributed file
PARTFILES on UV is purely decorative. (Someone _please_ correct me if that isn't true!) PARTFILES was vital on PI, but maintained on UV solely for backward compatibility in case guys like us ported some user-grown PI critter that relied on it. Perhaps a UV example would help. FSR is distributed, type27, with 5 partfiles. The 5 parts are each dynamic hashed, type30. The 4096 byte OS file called FSR is filled with x00 and xFF bytes, scattered with some pointers to the partfiles. LIST.DF FSR Part file /u1/SIMS5/FSR_p5, Part number = 5. Part file /u1/SIMS5/FSR_p2, Part number = 2. Part file /u1/SIMS5/FSR_p3, Part number = 3. Part file /u1/SIMS5/FSR_p4, Part number = 4. Part file /u1/SIMS5/FSR_p1, Part number = 1. CT VOC FSR FSR 0001 F (dist file) 0002 FSR 0003 /software/SIMS5/DICTS/D_FSR SH -c ls -l FSR FSR_p?/* -rw-rw-r-- 1 simsprod simsusers 4096 Jun 11 2004 FSR -rw-rw-r-- 1 simsprod simsusers 1091520512 Jun 22 11:02 FSR_p1/DATA.30 -rw-rw-r-- 1 simsprod simsusers 1798778880 Jun 22 11:02 FSR_p1/OVER.30 -rw-rw-r-- 1 simsprod simsusers 1092890624 Jun 22 11:02 FSR_p2/DATA.30 -rw-rw-r-- 1 simsprod simsusers 1799092224 Jun 22 11:02 FSR_p2/OVER.30 -rw-rw-r-- 1 simsprod simsusers 1092229120 Jun 22 11:02 FSR_p3/DATA.30 -rw-rw-r-- 1 simsprod simsusers 1793253376 Jun 22 11:02 FSR_p3/OVER.30 -rw-rw-r-- 1 simsprod simsusers 1092395008 Jun 22 11:02 FSR_p4/DATA.30 -rw-rw-r-- 1 simsprod simsusers 1794936832 Jun 22 11:02 FSR_p4/OVER.30 -rw-rw-r-- 1 simsprod simsusers 1097713664 Jun 22 11:02 FSR_p5/DATA.30 -rw-rw-r-- 1 simsprod simsusers 1794174976 Jun 22 11:02 FSR_p5/OVER.30 SH -c strings FSR O[{ FSR_p5 /u1/SIMS5/FSR_p5 FSR_p2 /u1/SIMS5/FSR_p2 FSR_p3 /u1/SIMS5/FSR_p3 FSR_p4 /u1/SIMS5/FSR_p4 FSR_p1 /u1/SIMS5/FSR_p1 I used unix utility strings instead of cat below because of all the non-printable characters. I think I could, should make this file read-only. June 11 2004 was when I created it. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] _PH_ ID
UV ...You could build the ID in the program using SYSTEM(12) and DATE(). PH.ID = 'programname_':FIELD(SYSTEM(12),'.',1):'_':DATE() Or PH.ID = 'programname_'@TIME:'_':@DATE Yeahbut, fire off 100 jobs of the same name WITHIN THE SAME SECOND and look at the games UV plays with the PH id! (Off-topic comment that will get me kicked to u2-community: So, along with the recent request for a program to trace who called it, we're asking for programs to be self-aware: Who am I?, Where did I come from?. Questions usually reserved for teenagers the pious, with the associated sentience meta-pondered by bio-ethicists. That's an artificially intelligent comment in at least two ways. Ok, Mr. Moderator, sir, I'll go quietly...) cds --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Unix cat help
grep '' fileA fileB | sort -n -t: -k2 grep will prepend file name if you grep thru multiple files. If you grep for '', you'll get every line. Then sort by what follows the colon. As an example, suppose 2 files: fileA:3 fileA fileB 14 1 13 3 12 5 11 7 10 9 8 11 6 12 4 13 2 0 $grep '' fileA fileB | sort -n -t: -k2 fileA: fileB:0 fileA:1 fileB:2 fileA:3 fileB:4 fileA:5 fileB:6 fileA:7 fileB:8 fileA:9 fileB:10 fileA:11 fileB:11 fileA:12 fileB:12 fileA:13 fileB:13 fileB:14 --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Time conversion code
From: Anthony Youngman If it has been changed, it should be logged as a bug! From: Norman, David This (IMO unwanted) change in functionality occurred at 10.0. UV users any all, Please post results to this simple test: LIST VOC RELLEVEL EVAL @RECORD EVAL 9 CONV MTS At 10.0.16 I get inconsistent results in Pick, Ideal, the UV admin acct all on the same system. Has this been a flavour difference forever, or a recent *cough* feature *cough* *cough*? --- Pick --- VOC. @RECORD 9. RELLEVEL X 25:00:00 10.0.16 PICK PICK.FORMAT 10.0.16 --- Ideal --- (same system) VOC. @RECORD 9. RELLEVEL X 01:00:00 10.0.16 NEWACC 10.0.16 --- UV acct --- (same system) VOC. @RECORD 9. RELLEVEL X-type - Th 01:00:00 e RELEASE L EVEL of thi s account 10.0.16 ADMIN 10.0.16 --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] A question of dictionaries.
Bottom line, dictionaries should be controlled. Period. I lock the dicts with os-level permissions. Just live wth EVAL restrictions. SQL not used much. For those few cases where EVAL is important: - references a limited copy of the full dictionary where the user can write. - via a 2nd F-pointer - via the USING keyword - or run the affected reports in background by dict owner We happily use PRC here, it emphasizes control of the tools such as ED, as Susan suggests. So we do both, control tools OS permissions. For other shops I have written UV frontends to RCS and MS Visual SourceSafe. One can control: - each dict item as a separate flat file, where there is a source controlled directory for each dictionary. - the entire dictionary in one controlled flat text file, using a utility to pack and unpack. I favour this with RCS because then you can use rcs keywords in a header section. And complicated dicts use I-, PH-items correlatives that reference one another, so entire dict needs tracking recompilation when one dict item is changed. Chuck Stevenson --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] A great way to Pick an innocent fight
by some estimates comprise nearly half of all IBM's database revenues. ? I'd like to know the source behind that. A longer quote: Pick derivatives exist in many forms today. The most significant are UniData and UniVerse, both of which had independent lives before being acquired by IBM in the 1990s, where they are now referred to as the U2 product family. IBM never uses the word Pick, but refers to these products as using an extended relational model. They remain extremely popular, and by some estimates comprise nearly half of all IBM's database revenues. Thanks, Stuart. Chuck Stevenson -Original Message- From: Boydell, Stuart I haven't seen anyone mention this article today but U2 (and Dawn W) just got a good rap in yesterdays 'Age'. http://www.theage.com.au/news/perspectives/heres-a-great-way-to-pick-an- innocent-fight/2007/05/21/1179601329688.html Stuart Boydell --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] [BB] U2 Enhancement Request - WRITE
How about variations on the OPEN statement so one could check for the needed permissions up front: OPENR - open for read only OPENW - open for write only OPENRW - open for read write (OPEN - same as today for backward compatibility) the ELSE clause would taken if you don't have the required permission. If you subsequently attempt to either read or write, but haven't opened it properly, you'd error out similar to when the file-variable is undefined. But even without this, on UV some of your concerns can be addressed already. 1. STATUS statement can show you ahead of time what permission you have. A higher-level function or subr would be in order, but down dirty it's this on unix: OPEN TO FVAR ELSE STOP STATUS FSTAT FROM FVAR ELSE STOP CRT 'MODE = ': OCONV( FSTAT5, 'MO' ) ;* octal If it prints 100640 640 octal --- 110 100 000 -- rw- r-- --- - owner: can read write group: can read other: no access Next step is to figure out owner, group. FSTAT8 = owner no. FSTAT9 = group no. FSTAT30 = owner name if the current user is either. 2. To avoid fatal errors on illegal writes, WRITE has ELSE and ON ERROR clauses available to it, that, if they exist, will get executed. 3. uv/errlog also contains entries for fatal errors. Would these approaches satify? -Original Message- From: Susan Joslyn When a BASIC program in either U2 flavor attempts a write to a file that cannot be written to the program bombs completely out to TCL and no information is given about the file, nor about the specifics (is it the owner, the group, the RWX permissions?). There are system commands in both flavors that can be used to query a file's write-ability before attempting the WRITE. Before I go try to find every write in the system and put that check into place, I'm wondering why can't the write itself do this? Ideally not bomb out of the program, but even if that is hard to correct, reporting the NAME OF THE FILE that couldn't be written to would save many hours of system scouring! --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
UV 8.3 VLIST (was: [U2] - Is VLIST in version 10.2 fragile?)
What if someone on the listas UV8.3 or maybe even 9.x or 10.1 would send Keith a copy of uv/bin/vlist? Could he run that against his old object? Or maybe IBM or his vendor could get it to him. LeRoy, It's nice to see you've resurfaced on the list! How's South Africa treating you? Chuck -Original Message- From: LeRoy Dreyfuss ... I did notice is that the object in question was last compiled on UV 8.3...VLIST is struggling with the opcodes in the older code -Original Message- From: Keith Johnson (DSLWN) We have just upgraded both Universe and System Builder, going from UV 10.1.8 to 10.2.0 and from SB+ 3.4 to 5.4. ... not all the source code was on the production system...try VLIST, it seems to get the testfw jump wrong...gets out of step ... --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] WRITE issues??
I know you already said it's ok, but I'd double check for READs where READUs belong. Especially since you've described this as having a Pick heritage from a time when some Pick implementations and programmers did not handle locking well. One user's changes can easily wipe out another's. WRITE will make use of the lock table even when the program does not ask for it explicitly. Consider 2 programs updating the same record, one using READU, the other without explicit locking, where the chronological chain of events is this: 0. --- on disk Rec 123: 'A~B~C~Moby Dick' --- ('~' is an attribute mark) User JackUser Jill == Wants to Wants to change Moby Dickchange A~B~C to Tom Sawyer to X~Y~Z 1. READU REC FROM F,'123' - sets lock - gets 'A~B~C~Moby Dick' 2. REC1 = X REC2 = Y REC3 = Z in private memory: (X~Y~Z~Moby Dick) 3. ---( on disk still as 'A~B~C~Moby Dick' )--- 4. READ REC FROM F,'123' (ignores lock, sets none.) gets 'A~B~C~Moby Dick' 5. REC4 = 'Tom Sawyer' In private momory : (A~B~C~Tom Sawyer) 6. WRITE REC TO F, '123' 7. behind the scenes UV check for ends up waiting for Jill to release the lock...waiting... ...waiting...waiting... 8. ---( on disk still 'A~B~C~Moby Dick' )--- 9. WRITE REC TO F,'123' 10. ---( on disk rec 123: 'X~Y~Z~Moby Dick' )--- 11. readu lock is released. 12. UV *implicitly* 12. CRT 'Jill, success: A~B~C was sets the lock on changed to X~Y~Z. Congrats.' Jack's behalf! Jack's version of the rec is written, readu lock released. 13. ---( on disk rec 123: 'A~B~C~Tom Sawyer' )--- Time passes 14. Jill calls Pam, Hey! Where are my changes? Computer said I changed A~B~C to X~Y~Z but it's A~B~C again!?!? I think we need MSSQL. Other variations on this theme will yield similar corruption if READUs are not used consistently, exclusively, and explicitly whenever updates are performed. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] I-DESC Dict Items Returning SUBR Value
Dave, To attract this lists' deepest-down-diving-est, longest-staying-under-est, most-with-mud-coming up-est gurus, try these: 1. Alter your I-descriptor to replace all system delimiters with a normal character that you can see: 01: I 02: SUBR( 'PDESC' , @ID , @RECORD ); CONVERT( @IM:@AM:@VM:SM: @TM:CHAR(250):CHAR(249):CHAR(248), iavstxyz, @ ) 03: 04: 05: 60L 06: S Does LIST PRINTERS PDESC display expected results? 2. Forget the subr, check the dict: Replace line 2 with something easy: DICT PRINTERS PDESC 01: I 02: xyz Does LIST PRINTERS PDESC display expected results? 3. Replace xyz with hardcoded exact results you expect from the subroutine. 4. Forget the dict item, check the subr: Write run a wrapper: OPEN 'PRINTERS' TO F ELSE STOP ID = [something legit] READ REC FROM F, ID ELSE STOP CALL PDESC( ANS, ID, REC ) CRT QUOTE( ANS ) END If those all come out clean, it gets interesting. Maybe it's time to post source for UHL.WRAP. Happy digging, Chuck --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] 2 questions, one on STATUS and the other on STEAL-FILE
The basic STATUS IE STATUS ARRAY FROM F.FILE ELSE ARRAY = '' returns 30 + attributes is the definitions covered in a manual some where? I copied from the manual came up with an include file for the STATUS statement that mimics the very nice UNIVERSE.INCLUDE FILEINFO.H that IBM gives us for FILEINFO(). Example code snippet: $INCLUDE INCLUDE.LIBRARY UV.STATUS.STMT.H STATUS FILE.STATUS FROM FILEVAR THEN MOD.IDATE = FILE.STATUS FSTAT$MOD.DATE MOD.ODATE = OCONV( MOD.IDATE, 'D4/') Help yourself: * $INCLUDE : UV.STATUS.STMT.H * * Author: Charles D. Stevenson * Date : Jan. 1999 * Type : General utility $include * Desc. : Mnemonics for attributes of dynamic array from STATUS stmt. * Mod Date Who Description * -- --- * 10/07/2002 cds33896 PRJ*37-Include filerev other new STATUS stmt info *--- * Works with result of basic statement (not function!) : *STATUS file.stat.array FROM file.variable * * There should be, but is not, a similar include in UNIVERSE.INCLUDE * as supplied by Ardent. This makes up for that lack. ** EQU FSTAT$CURPOS TO 1 ; *Current position Offset in bytes from ; * in the file beginning of file EQU FSTAT$EOF TO 2 ; *End of file reached 1 if EOF, 0 if not EQU FSTAT$ACCERR TO 3 ; *Error accessing file 1 if error, 0 if not EQU FSTAT$CHARREAD TO 4; *Number of characters ; * available to read EQU FSTAT$MODE TO 5; *File mode Permissions (convert to octal). EQU FSTAT$BYTES TO 6 ; *File size In bytes EQU FSTAT$HARDLINKS TO 7 ; *Number of hard links 0 if no links EQU FSTAT$OWNERNO TO 8 ; *User ID of owner Number assigned in /etc/passwd EQU FSTAT$GROUP TO 9 ; *Group ID of owner Number assigned in /etc/passwd EQU FSTAT$INODE TO 10 ; *i-node number Unique ID of file on file system EQU FSTAT$IDEV TO 11 ; *Device on which i-node Number of device ; * resides EQU FSTAT$CHARDEV TO 12; *Device for character Number of device ; * special or block EQU FSTAT$ACCESS.TIME TO 13; *Time of last access Time in internal format EQU FSTAT$ACCESS.DATE TO 14; *Date of last access Date in internal format EQU FSTAT$MOD.TIME TO 15 ; *Time of last modification Time in internal format EQU FSTAT$MOD.DATE TO 16 ; *Date of last modification Date in internal format EQU FSTAT$STAT.TIME TO 17 ; *Time of last status change Time in internal format EQU FSTAT$STAT.DATE TO 18 ; *Date of last status change Date in internal format EQU FSTAT$CHAROUTQ TO 19 ; *Number of characters left ; * in output queue (applicable ; * to terminals only) EQU FSTAT$UNIXNAME TO 20 ; *UNIX filename The internal pathname ; * uniVerse uses to access ; * the file EQU FSTAT$TYPE TO 21 ; *uniVerse file type Type 1 - 19, 25, or 30 EQU FSTAT$MOD TO 22; *uniVerse file modulo For file types 2 - 18 only EQU FSTAT$SEP TO 23; *uniVerse file separation For file types 2 - 18 only EQU FSTAT$PART.NOS TO 24 ; *Part numbers of part files Multivalued list. If file is a ; * belonging to a part file, this field ; * distributed file contains the part number ; * and field 25 is empty. EQU FSTAT$PART.PATHS TO 25 ; *Pathnames of part files Multivalued list. If file is a ; * belonging to a part file, this field is ; * distributed file empty. EQU FSTAT$PART.FNAMES TO 26; *File names of part files Multivalued list. If file is a ; * belonging to a distributed part file, this field is empty. ; * file EQU FSTAT$PATH TO 27 ; *Full UNIX pathname The full pathname (beginning ; * with / ) of the file EQU FSTAT$SQLPRIV TO 28; *Integer from 1 through 7 SQL file permissions: EQU FSTAT$SQL.W TO 1 ; * 1 write only EQU FSTAT$SQL.R TO 2 ; * 2 read only EQU
RE: [U2] Differences between UV and UD
I wonder if these answers could be turned into the start of a U2UG Knowledgebase entry. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Runtime Stack Overflow [uv]
And look for GOTO where RETURN should have been used to exit a gosub, thus goofing up the return stack, which grows and grows and grows. Brian's SYSTEM(9001) PORT.STATUS LAYER.STACK are good debug suggestions. I haven't seen this error associated with too many files being open, but PORT.STATUS also has a FILEMAP MFILE.HIST options. Note to those unfamiliar with PORT.STATUS: All 3 of these options only(?) work when you limit the report via the PID keyword. And you might need to run it in the uv account or copy keywords into your working account for PORT.STATUS to work in all its glory. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Passing of Bruce Nichol - Talon Computer Services
Being from the other side of the world, I didn't know him, except via this newfangled cyber-community. Whenever I saw that he posted, I knew it'd be worth reading. I see from our archives that he posted here about 200 times in the past three years. Google says another 130 to CDP. A contributor. If the moderator will graciously allow just one Monty Python reference, I always hoped there'd be a thread between him and one or more other Bruces. Even if they weren't all Aussies, Mr. Nichol would have given the exchange authenticity. I don't recall it ever happened. Thank-you, Ross Ferris, for informing us. Perhaps you could give this list's rememberances and sympathies to his family. If his family is like most of ours, they proably have little appreciation of the computer stuff he did or his significance here. My sympathies to those of you who were his friends. Chuck Stevenson --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] UV - Transaction Logging - Stale Transactions
Are you using logical transactions? I.e., basic TRANSACTION START/COMMIT? Or SQL SELECT? That will automatically start a transaction (on 10.0.16 anyway) and hold it open until the SELECT ends, even tho no updates occur. If logs fill while a logical transaction is in process, the log will remain in NeedSynch state. That's my 1st guess. Cds -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Sara Burns Sent: Sunday, March 25, 2007 4:19 PM To: u2-users@listserver.u2ug.org Subject: [U2] UV - Transaction Logging - Stale Transactions Late last year we upgraded from UV 10.0.11 on AIX to UV 10.1.16 on Red Hat Linux. At the same time we implemented Transaction Logging. We have a dispersed network with users throughout the country at about 40 sites using VOIP for our data and voice transmission. These sessions do sometimes get dropped due to network glitches and users do sometimes terminate their sessions without logging off correctly. All has gone reasonably smoothly but we are finding that we sometimes get Stale Transactions. This means that all subsequent transaction logs are in the NeedSync state and the Available log files may be exhausted - at which stage everything stops. We have now got a large pool of log files available. Does anyone have any hints to investigate what is causing the Stale Transaction so that it can be corrected so all logs can be Released ready for reuse. We have found that on at least one occasion they did free themselves but we usually require a restart of UniVerse to get the process working again. We do have a scheduled restart at midnight while we obtain a snapshot. This is obviously releasing something we cannot see. It would be preferable to be able to remove the cause so a consistent set of logs can be created as these are also sent to our DR site. The manual indicates that when you re-enable transaction logging you will be asked if you wish to terminate pending (prepared) stale transactions. In our case we now have so many log files the process has not stopped. Due to our many dependant systems, internal and external, it is undesirable to Disable the Transaction Logging system during active use. This would be a last resort. In the latest episode there were no entries in the lock tables, no semaphores set and we cleaned out every process we could find that was not us or the various uv daemons. Any suggestions would be appreciated. Sara Burns (SEB) IS Development Manager Public Trust Phone: +64 (04) 978 4534 (DDI) Mobile: 029 978 4534 mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] The information contained in this communication (including any attachment) is confidential. If you are not the intended recipient, please destroy this communication. You must not disclose, copy or use in any way the information contained in this communication. Any views expressed in this communication are not necessarily the views of Public Trust. No representation is made that this communication is free of error, virus or interference. . --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] UV - Transaction Logging - Stale Transactions
Same kind of problem as with indexes.( I.e, the path to the index is part of the file header. If the primary data file is copied, the duplicate is still indexing on the old index until you use SET.INDEX to correct it.I think there's a UV enhancement request for allowing index pathnames to be relative instead of absolute path.) Which brings us to a need for a tool to verify possibly correct the log numbers in UV.TRANS and the UV.TRANS id (info buried in the file headers themselves.) There is a need for flexability, especially after some kind of disaster and file systems are being rebuilt. There is a enhancement request in the works on this too. cds -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Perry Taylor Sent: Monday, March 26, 2007 11:41 AM To: u2-users@listserver.u2ug.org Subject: RE: [U2] UV - Transaction Logging - Stale Transactions Sara, We had occasional instances of this in the past. We finally tracked the cause down to one of our developers copying transaction logging-enabled files between servers without disabling them first. Not sure if this is happening in your case. Hope this helps. Perry -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Stevenson, Charles Sent: Monday, March 26, 2007 1:26 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] UV - Transaction Logging - Stale Transactions Are you using logical transactions? I.e., basic TRANSACTION START/COMMIT? Or SQL SELECT? That will automatically start a transaction (on 10.0.16 anyway) and hold it open until the SELECT ends, even tho no updates occur. If logs fill while a logical transaction is in process, the log will remain in NeedSynch state. That's my 1st guess. Cds -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Sara Burns Sent: Sunday, March 25, 2007 4:19 PM To: u2-users@listserver.u2ug.org Subject: [U2] UV - Transaction Logging - Stale Transactions Late last year we upgraded from UV 10.0.11 on AIX to UV 10.1.16 on Red Hat Linux. At the same time we implemented Transaction Logging. We have a dispersed network with users throughout the country at about 40 sites using VOIP for our data and voice transmission. These sessions do sometimes get dropped due to network glitches and users do sometimes terminate their sessions without logging off correctly. All has gone reasonably smoothly but we are finding that we sometimes get Stale Transactions. This means that all subsequent transaction logs are in the NeedSync state and the Available log files may be exhausted - at which stage everything stops. We have now got a large pool of log files available. Does anyone have any hints to investigate what is causing the Stale Transaction so that it can be corrected so all logs can be Released ready for reuse. We have found that on at least one occasion they did free themselves but we usually require a restart of UniVerse to get the process working again. We do have a scheduled restart at midnight while we obtain a snapshot. This is obviously releasing something we cannot see. It would be preferable to be able to remove the cause so a consistent set of logs can be created as these are also sent to our DR site. The manual indicates that when you re-enable transaction logging you will be asked if you wish to terminate pending (prepared) stale transactions. In our case we now have so many log files the process has not stopped. Due to our many dependant systems, internal and external, it is undesirable to Disable the Transaction Logging system during active use. This would be a last resort. In the latest episode there were no entries in the lock tables, no semaphores set and we cleaned out every process we could find that was not us or the various uv daemons. Any suggestions would be appreciated. Sara Burns (SEB) IS Development Manager Public Trust Phone: +64 (04) 978 4534 (DDI) Mobile: 029 978 4534 mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] The information contained in this communication (including any attachment) is confidential. If you are not the intended recipient, please destroy this communication. You must not disclose, copy or use in any way the information contained in this communication. Any views expressed in this communication are not necessarily the views of Public Trust. No representation is made that this communication is free of error, virus or interference. . --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ CONFIDENTIALITY NOTICE: This e-mail message, including any attachments, is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. ZirMed, Inc. has strict
RE: [U2] Dynamic files, big transactions
Andre, I'm with Rick. He suggested new partfile. But maybe some kind of queue or workfile, that routinely gets flushed, merging to modulo 1. And maybe zero length record or very small, so that 250 ids all land in the same group? Is group size 4KB? What does that have to do with the lock table in memory, you (or some lurker) may ask? When a record is locked, UV uses the inode group# to determine where to plant the lock in the lock table. So that means that all these records will be assigned to the same lock group, since inode group# (i.e., 1) will be the same for all. If you gave it a larger minimum.modulus, or converted that queue/work file to static, then, when you lock many or all records at once, that would spread the load across several lock groups, since the inodegroup# combo would vary from record to record. cds P.S. I *think* splits and merges are suspended on groups that have records currently in the lock table. (Since group# determines where something is in the lock table, you couldn't have that being changed out from under you.) So as long as a record remains locked, your dynamic file will be not quite so dynamic. You might be hitting that, too. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] [UV] SEARCH command
I've often wanted the same. Often. Is there a [BB] (BetterBetter) Enhancement Request buried here? From: Peter Veenhof Is anyone familiar with the TCL command SEARCH? I can do a 'SEARCH filename ALL.MATCH' command at TCL and then it prompts for search criteria. I am wondering if it is possible to make this command case insensitive as it is only working case sensitive currently. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] old dog, new tricks
To add to Adrian's explanation, when a string is in memory, the first few bytes at that string's address is not actual data, but metadata about the string, including its length, so UV immediately knows where the string ends ( where the next string begins). Therefore -1 can make an immediate jump, rather than searching through the string counting attributes. This also implies that something like IF LEN( X ) THEN is faster than something like IF (X # '') THEN . You can also see why n,-1 n,m,-1 aren't particularly fast, since they aren't at the end of the srting. UV keeps similar metadata up front about the last attribute accessed, the remove pointer. That is what makes both REMOVE/REVREMOVE and EXTRACTs of sequential ns so fast. cds --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] catalog command
You've got to feel for Anita. She's a good candidate for the U2 Incubator CD that U2UG is pushing for. We want a single spot where a new techie can go to install an instance of the personal edition (or something close to it) along with explanations, examples, and pointers to resources. Stay tuned. Anita, Below is an example. There are variations on the theme. Get used to using BASIC -X option which creates a cross-reference symbol table. The first time you compile, the system will create an object directory, [name].O (the one you were missing when you tried to catalog), and a crossref listing dir, [name].L if they don't exist. VLIST shows you the de-compilation of the object. It can be very useful, too. FORMAT is good, too, for readability. It is a separate command and also an ED command, if you are using the old ED line editor. Warning: CATALOG means sometihing differenct depending on what flavor your account is. The following example is simple, so -X VLIST aren't interesting. They get interesting with interesting programs. --- CREATE.FILE ANITA.BP Please enter the following information for the DICTionary file: Modulo = 1 Separation = 4 File type= 18 Please enter the following information for the DATA file: Modulo = 1 Separation = 1 File type= 19(!! PLEASE !! 19, not 1 !! ) File description = Source programs Creating file ANITA.BP as Type 19. Creating file D_ANITA.BP as Type 18, Modulo 1, Separation 4. Added @ID, the default record for RetrieVe, to D_ANITA.BP. ED ANITA.BP MAIN SUB SELECTed record name = MAIN. New record. : I 0001= CRT 'MAIN' 0002= CALL SUB( 'this is an argument' ) 0003= CRT 'back in MAIN' 0004= STOP 0005= END 0006= Bottom at line 5. : FI MAIN filed in file ANITA.BP. SELECTed record name = SUB. New record. : I 0001= SUBROUTINE SUB( ARG ) 0002= CRT 'SUB' 0003= CRT 'ARG = ':ARG 0004= CRT 'leaving SUB' 0005= RETURN 0006= END 0007= Bottom at line 6. : FORMAT : P 0001: SUBROUTINE SUB( ARG ) 0002: CRT 'SUB' 0003: CRT 'ARG = ':ARG 0004: CRT 'leaving SUB' 0005: RETURN 0006:END Bottom at line 6. : FI SUB filed in file ANITA.BP. File name= ANITA.BP Record name = BASIC ANITA.BP MAIN -X Creating file ANITA.BP.O as Type 19. Creating file D_ANITA.BP.O as Type 3, Modulo 1, Separation 2. Added @ID, the default record for RetrieVe, to D_ANITA.BP.O. Creating file ANITA.BP.L as Type 19. Creating file D_ANITA.BP.L as Type 3, Modulo 1, Separation 2. Added @ID, the default record for RetrieVe, to D_ANITA.BP.L. Compiling: Source = 'ANITA.BP/MAIN', Object = 'ANITA.BP.O/MAIN' Compilation Complete. BASIC ANITA.BP SUB -X Compiling: Source = 'ANITA.BP/SUB', Object = 'ANITA.BP.O/SUB' Compilation Complete. CT ANITA.BP.L SUB SUB 0001 ANITA.BP.L/SUB Source Listing 0002 0003 0004 Cross Reference Listing 0005 0006 Variable... Type.. References... 0007 0008 ARG Scalar Arg 0003 0009 0010 * Definition of symbol 0011 = Assignment of variable 0012 ! Dimension of array 0013 @ Argument to CALL VLIST ANITA.BP MAIN Main Program ANITA.BP.O/MAIN Compiler Version: 10.0.0.0 Object Level: 5 Machine Type: 10 Local Variables : 1 Subroutine args : 0 Unnamed Common : 0 Named Common Seg: 0 Object Size : 30 Source lines: 5 1: CRT 'MAIN' 1 0 : 046 crtcrlfMAIN 2: CALL SUB( 'this is an argument' ) 2 6 : 0F8 move this is an argument = _T 2 C : 01E call SUB _T 3: CRT 'back in MAIN' 3 00014 : 046 crtcrlfback in MAIN 4: STOP 4 0001A : 190 stop 5: END 5 0001C : 190 stop --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe vs. Unidata
Thanks, Drew. My bet's riding on REMOVE. I hope some have found this information helpful. If I get the chance, I'll try to do a more thorough testing of the various dynamic array extraction methods (EXTRACT vs REMOVE, primarily) on each platform to help identifiy good programming practices. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe vs. Unidata
I thought that EXTRACT was not taught anymore as the nomenclature works as well. The nomenclature _I_S_ EXTRACT. Or REPLACE, for assignments. Whenever anyone in this thread or on this list says extract or replace they are probably thinking of coding it as the syntax shortcut, rather than the completely equivalent, but less readable, function forms. It has been this way for decades (plural) across - I dare say - _A_L_L_ MV platforms. E.g., VLIST from UniVerse: 1: Y = X2,3 ; Y = EXTRACT( X, 2,3,0 ) 1 0 : 060 dyn_extractX 2 3 0 = Y 1 C : 060 dyn_extractX 2 3 0 = Y 2: A2,3 = B ; A = REPLACE( A, 2,3,0; B ) 2 00018 : 064 dyn_replaceA 2 3 0 B = A 2 00026 : 064 dyn_replaceA 2 3 0 B = A I can't imagine any MV platform compiling the 2 nomenclatures differently from one another. Dawn Wolthius, our resident historian, can probably tell us where the syntax started. My guess is Devcom Information. cds --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/