Operating System - OpenVMS
1754402 Members
3329 Online
108813 Solutions
New Discussion юеВ

DCL-E-IMAGEFNF Information

 
Martin Brindle
Occasional Advisor

DCL-E-IMAGEFNF Information

it might be obvious to some, but could anyone give me more information about the error

%DCL-E-IMAGEFNF, image file not found !AS

What is the significance of the !AS?

I'm getting this error returned from running DBMS_Scheduler on a pro*c program I've written, and which executes perfectly from the commandline, but errors with error 231602 from dbms_scheduler. Anyone any ideas?

Thanks in advance
6 REPLIES 6
Richard Brodie_1
Honored Contributor

Re: DCL-E-IMAGEFNF Information

!AS means roughly "insert the name of the image here". You see that sort of thing when you trap an error then resignal it, with just the error code. It's used by the system service $FAO, and roughly equivalent to %s in C.

If you are scheduling a program, make sure it's specified with a full path, using only system wide logical names. It might be a simple thing, like a different default directory, that breaks it.
Wim Van den Wyngaert
Honored Contributor

Re: DCL-E-IMAGEFNF Information

If a programs displays a message it passes a status (231602) and subsititution parameters (that will replace the !AS). When the process exits with 231602 it can no longer pass the substitution parameters and thus the message can not be completed.

Most often seen in batch jobs retained on error.

Wim
Wim
Martin Brindle
Occasional Advisor

Re: DCL-E-IMAGEFNF Information

Thanks for your replies so far.

The program does create some output, but I've since removed all the code from the main part of the program so that it does nothing, and it still errors. I have written another program in the same directory which prints hello world to a file and stdout and that works fine. I don't understand why one program works and the other doesn't.

Can you think of any other reasons why this error is occuring?
Robert Gezelter
Honored Contributor

Re: DCL-E-IMAGEFNF Information

Martin,

The "!AS" means "put a parameter string here" to the $FAO system service, as has been noted earlier in this thread.

I would be suspicious about a difference in the set of logical names available from when you are logged in vs. when the job is executed from DBMS_SCHEDULER. Also, a protection issue on the file (or one one of the directories in the path to the file) could also cause file not found conditions.

Please check for both possibilities.

- Bob Gezelter, http://www.rlgsc.com
Martin Brindle
Occasional Advisor

Re: DCL-E-IMAGEFNF Information

Thanks again everyone. Here's what I have found. Possibly an Oracle bug?

I created a pro*c program called test.pc which does nothing more than this:

#include

void main()
{
printf("Hello world\n");
}

I compiled this with the proc pre-compiler first, then the c ompiler and attempted to run it in dbms scheduler, it failed with error number 231602. Next I compiled test.pc just using the c compiler, as there isn't an pro*c to precompile in it, and guess what?

PL/SQL procedure successfully completed.

Anyone care to comment. Can you recreate my problem? I'm using Oracle 10gr1 on an Alpha 8.3. The DBMS_SCHEDULER job needs to look something this:

begin
dbms_scheduler.create_job(
job_name => 'myjob',
job_type => 'executable',
job_action => 'dsa10:[oracle10]test.exe,
enabled => TRUE,
auto_drop => TRUE);
dbms_scheduler.run_job('myjob');
end;


Hein van den Heuvel
Honored Contributor

Re: DCL-E-IMAGEFNF Information

Do an ANA/IMA/INT on the PRO*C compiled and linked image.

It may well show a shareable library which it expects to find through a logical name.
The logical name might be avialable in your interactive session, but not in the DBMS_JOB context.

Instead of running the program as DBMS_JOB, about about submitting a .COM file with a $SHOW LOG?

If desperate then I would use AUDITING to try to catch the FNF error (I think it will trap those. Never tried).

Consider this when running a C program linked agains DECC$SHR

$ define decc$shr wefwegfweg
$ run GET_IDENT
%DCL-W-ACTIMAGE, error activating image DECC$SHR
-CLI-E-IMAGEFNF, image file not found EISNER$DRA5:[SYS0.SYSCOMMON.][SYSLIB]WEFWE
GFWEG.EXE;

See the exact error you reported, but with the file name properly signalled. See how I forced that using a bad logical.

Also see:

$ exit %x00388B2
%DCL-E-IMAGEFNF, image file not found !AS
$

Good luck,
Hein.