never ending loop


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting never ending loop
# 8  
Old 10-05-2006
have you tried what I've posted?
# 9  
Old 10-05-2006
i tried it but i am not getting it.

this is the code that i implemented along with your code

Code:
while [ $i -lt ${#wfcomp[*]} ]
do
X=`sqlplus -s batch_user/batch_user@$FUSION_SID << EOF5
  set heading off
  SET FEEDBACK OFF
  SET PAGESIZE 0
  SET LINESIZE 900
  select count(*) from FusionHC_Result where (status not in ('Online', 'Running') and CC_ALIAS = '${wfcomp[$i]}');
EOF5`
if [ $X -gt 0 ]
then
  thisFILE="$(whence ${0})"

FUSER='/usr/sbin/fuser'

echo 'running MASTER...'

typeset -i numProc=$(${FUSER} ${thisFILE} 2>/dev/null | nawk '{print NF}')

if [[ "${numProc}" -gt 3 ]]; then
   ERRORS=`echo $RETURN | grep ERROR`
if [ "$ERRORS" != "" ]
then
  print "ERROR: `date '+%Y/%m/%d %H:%M:%S'` " >> $LOGFILE
  print "$RETURN" >> $LOGFILE
  exit 50
fi

rm $output

#-----Check Results and send error to ITO---
print "INFO: `date '+%Y/%m/%d %H:%M:%S'` Checking ITO." >> $LOGFILE
$FusionHC_DIR/ITOGen.ksh
exit
fi

echo '   calling MASTER'
${thisFILE}

$FusionHC_DIR/WFStart.ksh

I did a set -x and this is what I got

Code:
 set heading off
  SET FEEDBACK OFF
  SET PAGESIZE 0
  SET LINESIZE 900
  select count(*) from FusionHC_Result where (status not in ('Online', 'Running') and CC_ALIAS = 'eProdCfgObjMgr_enu');
X=       1
+ [ 1 -gt 0 ]
+ + whence FusionHC.ksh
thisFILE=/siebel/sble01/siebfile/batch/FusionHealthCheck/FusionHC.ksh
+ FUSER=/usr/sbin/fuser
+ echo running MASTER...
running MASTER...
+ nawk {print NF}
+ /usr/sbin/fuser /siebel/sble01/siebfile/batch/FusionHealthCheck/FusionHC.ksh
+ 2> /dev/null
+ typeset -i numProc=14
+ [[ 14 -gt 3 ]]
+ + grep ERROR
+ echo
ERRORS=
+ [  !=  ]
+ rm /siebel/sble01/siebfile/batch/FusionHealthCheck/FusionHC.out.200610050857215755
+ date +%Y/%m/%d %H:%M:%S
+ print INFO: 2006/10/05 08:57:36 Checking ITO.
+ 1>> /siebel/sble01/siebfile/batch/FusionHealthCheck/FusionHC.log
+ /siebel/sble01/siebfile/batch/FusionHealthCheck/ITOGen.ksh
FusionHC.ksh[219]: /siebel/sble01/siebfile/batch/FusionHealthCheck/ITOGen.ksh: cannot execute
+ exit

Thanks.
# 10  
Old 10-05-2006
multiple issues:
  1. where do you set your 'RETURN' variable?
  2. it seems you already have 14 instances of this script running:
    + typeset -i numProc=14
    + [[ 14 -gt 3 ]]
  3. you don't have the execute permissions for one of the scripts:
    FusionHC.ksh[219]: /siebel/sble01/siebfile/batch/FusionHealthCheck/ITOGen.ksh: cannot execute
  4. I'd also the check your if/then/else/fi logic to make sure it's supposed to do what you THINK it's doing

Last edited by vgersh99; 10-05-2006 at 11:28 AM..
# 11  
Old 10-05-2006
i set the return variable to get the output of the sql statement that i am running. ITOGen.ksh does not exist. all i want is I want the code that i told earlier to be executed only thrice even if the condn is true.
do you thing the RETURN variable would be the issue?

thanks
# 12  
Old 10-05-2006
Quote:
Originally Posted by ragha81
i set the return variable to get the output of the sql statement that i am running. ITOGen.ksh does not exist. all i want is I want the code that i told earlier to be executed only thrice even if the condn is true.
do you thing the RETURN variable would be the issue?

thanks
Code:
if [[ "${numProc}" -gt 3 ]]; then
   ERRORS=`echo $RETURN | grep ERROR`
if [ "$ERRORS" != "" ]
then
  print "ERROR: `date '+%Y/%m/%d %H:%M:%S'` " >> $LOGFILE
  print "$RETURN" >> $LOGFILE
  exit 50
fi

looking at the code above you're going to 'exit 50' from the script ONLY if '$ERRORS != "" ' and '"${numProc}" -gt 3'.

your 'numProc' is set to 14 - meaning there're 14 instances of this script ALREADY running - this is problematic to start with.

your 'ERRORS' variable is derived from the 'RETURN'. As 'RETURN is not set anywhere, the value of 'ERRORS' is empty string. When you evaluate '"$ERRORS" != "" ' expression it returns 'false' and the 'then' branch does not get executed and therefore you skip the 'exit 50' statement.

Is that your code or somebody else's?
# 13  
Old 10-05-2006
that part of the code which those EXIT 50 is somebody elses. what I want is this should try executing the code in other file 3 times if it exceeds 3 times, it should do the part that has exit 50.

Code:
if [[ "${numProc}" -gt 3 ]]; then
   ERRORS=`echo $RETURN | grep ERROR`
if [ "$ERRORS" != "" ]
then
  print "ERROR: `date '+%Y/%m/%d %H:%M:%S'` " >> $LOGFILE
  print "$RETURN" >> $LOGFILE
  exit 50
fi

# 14  
Old 10-05-2006
once again...... I don't see where you set your 'RETURN' variable.
Your ' exit 50' condition' relies on 'ERRORS' not being empty. ANd you derive 'ERRORS' from the value of 'RETURN'.

You need to study your script and understand all the part of it. Then and ONLY then you can start debugging.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

If loop not ending

Hi, The first if loop in the script not ending and going to infinite loop. #!/usr/bin/ksh set -vx lc=1 st_date=$(date "+%Y%m%d") LOGFILE=/home/infa_shared/OM_ftp_transfer.log.$st_date file="/home/infa_shared/OM_WF.log.$st_date" while ]; do if ] then sleep 15 let lc=lc+1 print... (4 Replies)
Discussion started by: nag_sathi
4 Replies

2. UNIX for Advanced & Expert Users

Ending Spam and Etc.

This is a very general question but the idea popped into my head several years ago and wanted the opinions of all the master jedi's of this forum. I had a client that no matter what was done to control there spam(spam assassin,anti-virus(email scanning) and etc) sooner or later something would slip... (2 Replies)
Discussion started by: metallica1973
2 Replies

3. Shell Programming and Scripting

Remove ending text

Hello, I am working with a list that contains a large number of files listed by their absolute path. I am trying to determine a way to delete the file name at the end of each line, therefore leaving just the directory path. For example, I'd like to go from: /home/something/file... (2 Replies)
Discussion started by: omnivir
2 Replies

4. Shell Programming and Scripting

Nested for loop not ending

Hi All, Need help on below script for g in `cat /home/sid.txt` do for h in `cat /home/dev.txt` do symmaskdb -sid $g -dev $h list assign |grep FA |head -1|awk '{print $2}' > tt1.txt done done cat /home/sid.txt ************** 123 235 456 (5 Replies)
Discussion started by: ranjancom2000
5 Replies

5. SCO

File name ending with @

Hi Current SCO Unix 5.05 I see that there are filenames with @ at the end of file name for example in the /usr/lib there is file lpadmin@ what does the @ represent when it is at the end of the file name Thanks (4 Replies)
Discussion started by: atish0
4 Replies

6. Shell Programming and Scripting

Ending a script

Hi all, I am trying to end a Menu script. Can people suggest various methods please? At the moment I am doing: quit=n while do ...Code Code Code... read userinput case $userinput in q|Q) quit=y;; esac done But this doesn't seem to work every time, occasionally it will work,... (6 Replies)
Discussion started by: mikejreading
6 Replies

7. Programming

executables ending with *

Hi All, I m very new to unix. I have a basic doubt .. In unix I m seeing that there is a * at the end of by executable name (exe1*).. Wht is the significance of that Thanks a lot in advance (2 Replies)
Discussion started by: binums
2 Replies

8. UNIX for Dummies Questions & Answers

File- Ending

Hi folks! I'm new in this forum and in the UNIX-world too!! I've got a real problem: I have to read out datas like name and e-mail-adress from a Windows- Server from the active directory and put this information into a file. This file should be moved (or copied) on a Unix- Server... But I... (3 Replies)
Discussion started by: spikylina
3 Replies

9. UNIX for Dummies Questions & Answers

Ending Mail

hello, I a problem. I would like write script in True64 Unix.see below. last testerkl | head > mailfile.asc wolteru < mailfile.asc With the "last" command I get a list when testerkl logged on. And I would like to send this to a user. But how can I write in a "ctrl.-d" and "ctrl.-c" that... (2 Replies)
Discussion started by: Peterh
2 Replies
Login or Register to Ask a Question