I have seen this recently with either UNIVERSE or UNIDATA. I don't remember which. I have very very rarely seen this happen in 26 years. I believe it is a glitch in the compiler or in the RUN command. I was able to rewrite the offending part of the program and it would work. I wish I had the example handy. The following is not an actual example, but will allow you to understand what I did to fix it:

Let's say you found a section of code that behaves strange and you confirmed that there is absolutely nothing wrong with it. Here's the existing logic:

0001: I=0;VM=CHAR(253);STRING=''
0002: 10*
0003: STRING:=VM
0004: I=I+1
0005: IF I<10 THEN GOTO 10

Simply rewrite and even try restructuring it slightly. For example:

0001: I=0
0002: VM=CHAR(253)
0003: STRING=''
0004: FOR I=1 TO 10
0005:    STRING=STRING:VM
0006: NEXT I
0007: *

I think I even had it happen once on one system that failed, I did the above and it worked. But at a later point, I put the code back and it worked fine. This might actually be a hardware problem in disguise. In the old days, there was a program that would write blocks of data to a tape. A block of 512 letter As, then a block of 512 letter Bs, etc. Then it would rewind and read it back it. If the blocks had anything different when they read it in, it would complain that there was a tape problem (bad tape, dirty tape heads, bad tape controller card, etc.). It might be wise to run an overnight memory test using a diagnostic program. I have been able to do in that in the past and detect hard to find memory problems. For example, you run the quick memory test and it checks out okay. You run it overnight over and over, and it eventually finds the intermittent memory problem.Keep in mind that with many virtual memory systems (all PICK-type systems are), you are not looking at memory chip problems, but hard drive problems. So in some cases, this means the hard drive might have a bad spot or intermittent problem.

Please let us know what you find out. Or perhaps post the program for us to take a look at and sharpen our skills even more.

Thanks,

Robert Norman
ROBERT NORMAN AND ASSOCIATES
23441 Golden Springs Dr., #289, Diamond Bar, CA 91765
(951) 541-1668
i...@keyway.net <mailto:i...@keyway.net>
http://users.keyway.net/~ice/ <http://users.keyway.net/%7Eice/>
Affordable UNIVERSE programming services for PICK/BASIC, DATA/BASIC, UniVerse
Basic, UniBasic, R/BASIC, jBC.

On 7/25/2013 12:25 PM, Bill Haskett wrote:
We've been having an anomaly that has occurred over the past 7 years we've been using UniData on Windows.

Yesterday one of the accounts on our ASP server, that contains about 30 accounts, had a billing issue. This issue was created because a single BASIC program didn't run a couple of lines of code, thus a particular type of charge wasn't created for anyone on this account. The BASIC code is compiled in an "application" account then cataloged locally in each account (a pointer to the program file exists on every account).

When I make a copy of this particular account, then run the offending program in it, I see the same problem. When I put a DEBUG statement (in the offending program) just above where I suspect the problem occurs, recompile then rerun it, there is no problem. After futzing around with placing the DEBUG statement in several different locations, with no further issue, I remove the DEBUG statement and finally re-compile the offending program. I've changed nothing in the program, but it now works. This particular program runs maybe 250,000 billings every month with nothing wrong happening. In fact, I haven't seen this problem in this billing program for the past seven years, which means that maybe over 20 million transactions have been created with no issues.

This happens about once every six months or so on one BASIC program or another, where I look at an offending program, see something like five lines of code writing to five different files, and the issue is the last two lines didn't execute. When I put a DEBUG into the program everything works fine. When I remove the DEBUG statement and recompile everything works fine from then on.

Has anyone else seen this? Maybe there's something I should do to prevent this.

Bill
_______________________________________________
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


_______________________________________________
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

Reply via email to