TeradataTPTユーティリティのラッパースクリプトがあります。ラッパースクリプトは非常に単純ですが、問題は、ラッパーの終了ステータスがユーティリティの終了ステータスと同じではないことです。多くの場合、ユーティリティが失敗しても、スクリプトは0を返します。終了する前にいくつかの手順を実行する必要があるため、終了ステータスを別の変数に保存しましたが、この変数の値で終了すると機能しないようです。または、ログに他のステータスが明確に指定されている場合でも、一部の障害が発生した場合でも、ユーティリティはステータス0を返しますか?
さらに悪いことに、この動作は非常にランダムであり、ユーティリティの終了ステータスでスクリプトが失敗することがあります。ユーティリティの終了ステータスに問題があるかどうかを確認したいと思います。
スクリプトはKSHを介して実行されます。ラッパースクリプトの最後の部分は次のとおりです。
tbuild -f $sql.tmp -j ${id}_$JOB >$out 2>&1
ret_code=$?
cd ${TWB_ROOT}/logs
logpath=`ls -t ${TWB_ROOT}/logs/${id}_${JOB}*.out |head -1`
logpath1=${logpath##*/}
logname=${logpath1%-*}
tlogview -l ${logpath} > /edw/$GROUP/tnl/jobs/$JOB/logs/tpt_logs/${logname}.log
###Mainting 3 tpt binary log files
if [ $ret_code -eq 0 ]
then
binout=$TPTLOGDIR/${logname}.dat
binout1=$TPTLOGDIR/${logname}.dat1
binout2=$TPTLOGDIR/${logname}.dat2
[ -f $binout1 ] && mv $binout1 $binout2
[ -f $binout ] && mv $binout $binout1
mv "$logpath" "/edw/${GROUP}/tnl/jobs/$JOB/logs/tpt_logs/${logname}.dat"
fi
rm -f $sql.tmp
echo ".exit"
exit $ret_code
ヘルプと提案を事前に感謝します。