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