SoftTree Technologies Technical Support Forums
 Register • Search • FAQ • Memberlist • Usergroups • Log in
 How can I force a job status to fail? Goto page 1, 2  Next
Author Message

 Joined: 03 Oct 2007Posts: 7Country: United States

 How can I force a job status to fail? Hello, I am using jscheduler 4.1 build 242, and I have a job that if successful, will write a semaphore file. I set the successful exit code to “0”. The job is a windows batch file, that contains some logic that if there are no files to process, I would like to return a status of “failed”. I added a bogus copy command and even syntax errors to modify %errorlevel% to be different than “0”, and that works (echo The EL is now %errorlevel%>>c:\EL.txt). Unfortunately, 24x7 still reports the job as successful and thus places the semaphore file I would like to avoid. How can I (from a batch file) force the job to have a status of “Failed”? Thanks.
Wed Oct 03, 2007 8:12 pm
SysOp

 Joined: 26 Nov 2006Posts: 6548

The default exit code of a batch file is the exit code of the last executed command. If you put "echo" at the end, you are going to get exit code of echo, not what you want

To return something else, either use generic
 Code: EXIT %ERRORLEVEL%
or just hard code the required exit code

 Code: IF "%1" == "" GOTO PRINT_ERROR IF EXIST *.txt GOTO PROCESS_THEM ECHO Couldn't find *.txt files EXIT 1 :PRINT_ERROR ECHO You didn't specify the required command line parameter EXIT 2 :PROCESS_THEM Run something here

Wed Oct 03, 2007 8:58 pm

 Joined: 03 Oct 2007Posts: 7Country: United States

Thanks for the swift response :-)

I tried it today with the below code:
 Code: :NothingToPRocess Echo !!!!!!! WonderBatch.bat did not find files to transffer on %date% at %time% >>C:\Interesting.log REM The next line will generate an errorlevel different than "0" so we know it did not find any files and will NOT post a semaphore on 24x7. Exit 2 Echo Sanity Check on %date% at %time% >>C:\Interesting.log :Finish

The job still completes successfully and note that the Sanity Check echo does not show up in C:\Interesting.log so I am assured it is being Exited as requested with errorlevel=2.

BTW, I do not think it matters but I will mention it anyhow, this job is run on an agent not the 24x7 Master server itself.
The agent got installed with:

 Code: 24x7srv.exe /install 24x7srv.exe /install /agent

(Trying the 2nd line by itself first did not give me any confirmation that it was done)

Thanks for your help.
Thu Oct 04, 2007 10:28 am
SysOp

 Joined: 26 Nov 2006Posts: 6548

 I have verified that if a batch file is run remotely and the job is set to fail on error and successful exit code 0 is entered in the job properties, the job fails all the way and the agent makes the master scheduler aware of the job failure. Please verify how the job is setup. Whether it actually has zero entered for the successful exit code and if it set to run attached/detached.
Thu Oct 04, 2007 3:06 pm
SysOp

 Joined: 26 Nov 2006Posts: 6548

 By the way, the second line won't likely work. 24x7srv.exe /install 24x7srv.exe /install /agent If the service has been already registered in normal mode and you need to convert it to agent mode, remove the service registration first and add it again with the /agent option. 24x7srv.exe /remove 24x7srv.exe /install /agent
Thu Oct 04, 2007 10:37 pm

 Joined: 03 Oct 2007Posts: 7Country: United States

 I have confirmed the job properties show successful exit code of 0, and the process runs as "Detached" (Actually it is defaulted as detached and I can not change it I can only select Async). I stopped the service and started the Agent.bat to avoid having to troubleshoot the service for now. The job still does not fail. I know you usually get people asking you the opposite "how to fix things that fail" and I want them to fail, what more can I try? :-) Thanks.
Fri Oct 05, 2007 3:08 pm
jvaldes988

 Joined: 01 Mar 2007Posts: 35Country: United States

 Please keep this thread alive since we have a similar issue with one of our jobs. Thanks.
Fri Oct 05, 2007 3:22 pm
SysOp

 Joined: 26 Nov 2006Posts: 6548

 Have you been able to figure out the cause of the issue? I mean why the exit code of the batch process is not returned/treated as an error?
Fri Oct 05, 2007 6:55 pm

 Joined: 03 Oct 2007Posts: 7Country: United States

 :-( Not yet. Help please. Thanks.
Mon Oct 08, 2007 4:56 pm
SysOp

 Joined: 26 Nov 2006Posts: 6548

 Please let us know what you get when executing runas.exe your_user_name your_password "the batch you want to run" The output of this command should provide the clue to the job completion status
Tue Oct 09, 2007 8:56 am

 Joined: 03 Oct 2007Posts: 7Country: United States

 Hello again, When I run the 24x7 version of runas I get: RunAs version 2.1 Copyright (c) 2003-2006 SoftTree Technologies, Inc. Logging in as .\renameduser... Setting user environment... Logged in. Impersonating... Starting process C:\batchname.bat... Waiting for process to complete... Process completed with exit code 2 So the batch is actually providing the correct exit code, for some reason 24x7 sees it as 0 instead of 2. What else can I check?
Tue Oct 09, 2007 4:46 pm

 Joined: 03 Oct 2007Posts: 7Country: United States

 Running the agent in GUI mode with trace on, I get from debug.log: 2007-10-09 17:21:49,780 [Job #514 - Test-job] DEBUG com.softtreetech.jscheduler.business.runner.ProgramJobRunner - runJob(): start 2007-10-09 17:21:49,780 [Job #514 - Test-job] DEBUG com.softtreetech.jscheduler.business.runner.security.SecurityService - authNativeUser: C:\Program Files\24x7_Scheduler\userchk.exe 2007-10-09 17:21:49,843 [Job #514 - Test-job] DEBUG com.softtreetech.jscheduler.business.runner.ProgramJobRunner - execProcess(): command line [c:\batch\renamedbatch.bat] in work directory [c:\batch\] 2007-10-09 17:21:49,874 [Job #514 - Test-job] DEBUG com.softtreetech.jscheduler.business.runner.ProgramJobRunner - waitForProcess(): start 2007-10-09 17:21:49,874 [Thread-5] DEBUG com.softtreetech.jscheduler.business.runner.AbstractJobRunner$TimeoutVerifier - run(): start 2007-10-09 17:21:49,874 [Thread-5] DEBUG com.softtreetech.jscheduler.business.runner.AbstractJobRunner$TimeoutVerifier - run(): end due to zero timeout 2007-10-09 17:21:49,999 [Job #514 - Test-job] DEBUG com.softtreetech.jscheduler.business.runner.ProgramJobRunner - waitForProcess(): end 2007-10-09 17:21:49,999 [Job #514 - Test-job] DEBUG com.softtreetech.jscheduler.business.runner.AbstractJobRunner - isFailed(...) : exit code 0 2007-10-09 17:21:49,999 [Job #514 - Test-job] DEBUG com.softtreetech.jscheduler.business.runner.ProgramJobRunner - killProcess start 2007-10-09 17:21:49,999 [Job #514 - Test-job] DEBUG com.softtreetech.jscheduler.business.runner.ProgramJobRunner - runJob(): end 2007-10-09 17:25:07,915 [Job #514 - Test-job] DEBUG com.softtreetech.jscheduler.business.runner.ProgramJobRunner - runJob(): start 2007-10-09 17:25:07,915 [Job #514 - Test-job] DEBUG com.softtreetech.jscheduler.business.runner.security.SecurityService - authNativeUser: C:\Program Files\24x7_Scheduler\userchk.exe 2007-10-09 17:25:07,930 [Job #514 - Test-job] DEBUG com.softtreetech.jscheduler.business.runner.ProgramJobRunner - execProcess(): command line [c:\batch\renamedbatch.bat] in work directory [c:\batch\] 2007-10-09 17:25:07,930 [Job #514 - Test-job] DEBUG com.softtreetech.jscheduler.business.runner.ProgramJobRunner - waitForProcess(): start 2007-10-09 17:25:07,930 [Thread-7] DEBUG com.softtreetech.jscheduler.business.runner.AbstractJobRunner$TimeoutVerifier - run(): start 2007-10-09 17:25:07,930 [Thread-7] DEBUG com.softtreetech.jscheduler.business.runner.AbstractJobRunner$TimeoutVerifier - run(): sleeping. Max wait time is 180000 milliseconds 2007-10-09 17:25:08,039 [Job #514 - Test-job] DEBUG com.softtreetech.jscheduler.business.runner.ProgramJobRunner - waitForProcess(): end 2007-10-09 17:25:08,039 [Job #514 - Test-job] DEBUG com.softtreetech.jscheduler.business.runner.AbstractJobRunner - isFailed(...) : exit code 0 2007-10-09 17:25:08,039 [Job #514 - Test-job] DEBUG com.softtreetech.jscheduler.business.runner.ProgramJobRunner - killProcess start 2007-10-09 17:25:08,039 [Job #514 - Test-job] DEBUG com.softtreetech.jscheduler.business.runner.ProgramJobRunner - runJob(): end 2007-10-09 17:25:08,039 [Thread-7] INFO com.softtreetech.jscheduler.business.runner.AbstractJobRunner$TimeoutVerifier - run(): java.lang.InterruptedException: sleep interrupted at java.lang.Thread.sleep(Native Method) at com.softtreetech.jscheduler.business.runner.AbstractJobRunner$TimeoutVerifier.run(Unknown Source) 2007-10-09 17:25:08,086 [Thread-7] DEBUG com.softtreetech.jscheduler.business.runner.AbstractJobRunner\$TimeoutVerifier - run(): ended As you can see I tried with and without timeout interval. I can not explain why runas.exe works and the agent will not see the correct exit code..... Help! Thanks.
Tue Oct 09, 2007 5:40 pm

 Joined: 03 Oct 2007Posts: 7Country: United States

OK,
Refusing to give up on this, I tried setting up the agent as a master and run the job locally.

I wrote a batch file called Failed.bat

 Code: REM This batch should fail with the below exit code. Exit 3

I noticed that the job still succeeded, so I removed the "Apply Credentials" and it finally failed with an exit code of 3 as desired.

So the problem is caused by applying credentials: Either as machinename\username or .\username

The user starting the job is the same user I am using to run the GUI Master.bat.

What are your recommendations from here?
Tue Oct 09, 2007 7:17 pm
SysOp

 Joined: 26 Nov 2006Posts: 6548

I am unable to reproduce the same results. What Windows version are you running?

Please try the following
1. In the batch file replace "exit 2", "exit 3" and similar commands with "echo ERROR"
2. change job type in 24x7 from "Program" to "Script" and choose JavaScript for the script type
3. In the job script enter

 Code: var runInfo = Process.runAndWait("C:\\path\\to\\file\\mybatch.bat", 0); if(runInfo.getOutput().indexOf("ERROR") >= 0)      makeJobFail;  // this invalid command will make the job to fail

Wed Oct 10, 2007 3:26 am
kyofm

 Joined: 30 Sep 2014Posts: 21

 I am encountering an interesting problem in 24x7 trying to achieve the same goal as the original poster and I will try to be as clear as possible. Here is my test code: IF NOT EXIST C:\Users\...\Desktop\test.txt GOTO PRINT_ERROR :PRINT_ERROR EXIT 1 If I create a job that runs a batch file with the code above (and the file does not exist on my Desktop) and set the success exit code to 0 in 24x7 I get the functionality I want i.e. not finishing the job and not creating a semaphore file. However, what I really want is to be able to embed the code above as a script in 24x7. When I do this, however, the job finishes and creates a semaphore file. When selecting to a run the code as a script in the job builder there is no place to set the success exit code to 0 since it says error code checking is automatic. Now for the weird part, if I go through the process of running the batch file as a program and set the exit code to 0, run the job and then change the job properties to run a script and embed the batch in 24x7 the job fails like it is supposed to. How can I trust this?
Wed Oct 15, 2014 7:40 am
 Display posts from previous: All Posts1 Day7 Days2 Weeks1 Month3 Months6 Months1 Year Oldest FirstNewest First
 All times are GMT - 4 HoursGoto page 1, 2  Next Page 1 of 2

 Jump to: Select a forum ----------------SQL AssistantDB Audit, DB Mail, DB Tools24x7 Scheduler, Event Server, Automation SuiteTips & Snippets Repository
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum