_Field record not on file. (138)

Chris Kelleher

Administrator
Staff member
This is very strange. We have a batch process that is supposed to run evey
night. The program is also available from the menus. The code runs from
the editor and, once compiled, runs from the menus. Running the same
compiled version from batch produces the above error. The morning after the
failure, running the very same program from the menu produces the same
error. Once recompiled, it runs fine again. There have been no schema
changes throughout the process. What could be causing this behavior? Is it
possible we have some database corruption?

Reid
 

Chris Kelleher

Administrator
Staff member
Sorry, but I thought this was generic enough to not require further
information. I'm also not the DBA or Sys. Admin., but am the only one here
who reads the PEG at all:

HP-UX 10.??
Progress Enterprise v8.3B07
QAD v8.5e

The error occurs on our ancillary (non-QAD) database. The program is
custom. The standard QAD batch handler was used, however, when the error
first appeared. Many other batched utilities ran successfully against this
database while only this one failed.

Reid
 

Chris Kelleher

Administrator
Staff member
I Had some problem here... (HP-UX 10.20, Progress 7.3E, QAD 7.4i)... then I
include the User of QAD
in my start script: see below:

<BLOCKQUOTE><font size="1" face="Arial, Verdana">code:</font><HR><pre>
USER="root"
DLC=/opt/dlc73d; export DLC
MFG=/usr/qad;export MFG
PATH=.:$PATH:$MFG:$DLC:; export PATH
PROTERMCAP=$DLC/protermcap;export PROTERMCAP
PROPATH=.:$DLC:$MFG:$MFG/po:$MFG/po/src:$MFG/po/xrc:$MFG/po/yy:$MFG/po/yysrc
export PROPATH
TERM=vt100 ; export TERM
var="/db3/pontes/ponte.esta.rodando"
if [ -r "$var" ]
then
echo "PONTE JA ESTA RODANDO ..."
echo "TENTATIVA INVALIDA `date '+%d/%m %H:%M'`" >> /db3/pontes/REPORT
exit
else
cd /db3/pontes
exec $DLC/bin/mbpro -db /db7/bdprod -ld qaddb -S prqadsv -H BDUBA01 -p
yyp
roduca.p -D 50 -d dmy -yy 1950 -T /tmp -U $USER
fi
[/code]
 

Chris Kelleher

Administrator
Staff member
Reid --

If the program is reading the metaschema ("FIND _field WHERE . . . . . . .")
and is precompiled then the program has to be compiled against the necessary
database set where the database containing the corresponding _file has the
ALIAS 'dictdb'. If running from the editor (compile and go), this is not a
problem. Your 'ancillary' database has to be the 'working' database at the
time of compilation.

HTH

John Nisbet
Kilcreggan Systems and Software, Inc.
QAD Alliance Partner
1191 Chestnut Street Suite 2-6
Newton, MA 02464-1351
jnisbet@kilcreggan.com
(617) 969-5432 x201
 

Chris Kelleher

Administrator
Staff member
I had a similar weird issue with batch jobs once i.e. worked interactively
but gave strange
results when run as a batch. My advice to you is CHECK YOUR PROPATH!!!!
In your batch job script you can use :
echo $PROPATH > somefilename

Hope this helps.
Brian
 

Chris Kelleher

Administrator
Staff member
The batch user is root. The user running from the menu is not root. Both
have permission to write to the DB. Remember that the error first occurred
in batch then resurfaced when ran from the interactive menus.

Reid
 

Chris Kelleher

Administrator
Staff member
In this situation you have to make sure that the connection sequence of
the databases is the same as the standard code.

The problem could be in the mnfctrl.i include where the _field is used
but the database is not specified. By default it picks the first
database in the sequence.
 

Chris Kelleher

Administrator
Staff member
This is most likely the source of our problem. The mnfctrl.i is, in fact,
called in the procedure. It is
also likely that the code was recompiled by another person sometime before
it ran in batch, and the order of the DB
connections was probably different. We haven't confirmed this, but it makes
perfect sense. Thanks.

Reid
 
Top