REQ_FIFO=$(mktemp -u)
RESP_FIFO=$(mktemp -u)
mkfifo "$REQ_FIFO" "$RESP_FIFO"
counter_daemon() {
local t=0
local b=0
while read -r cmd; do
case "$cmd" in
inc_t) ((t++)) ;;
inc_b) ((b++)) ;;
get)
echo "$t $b" > "$RESP_FIFO"
;;
quit)
break
;;
esac
done < "$REQ_FIFO"
}
counter_daemon &
COUNTER_PID=$!
while IFS= read -r tableName; do
{
echo inc_t > "$REQ_FIFO"
echo ""
echo "Dumping table $tableName"
echo ""
bcpOUTToDir "$tableName"
BCP_LOAD_STATUS=$?
if [ "$BCP_LOAD_STATUS" -ne 0 ]; then
echo "ERROR: BCP OUT failed for table $tableName"
echo inc_b > "$REQ_FIFO"
fi
} &
proceedWhenLessThanMaxJobs
done < "$TABLE_NAME_FILE"
wait
echo get > "$REQ_FIFO"
read t b < "$RESP_FIFO"
echo "=========================="
echo "Total tables processed: $t"
echo "Failures: $b"
echo "=========================="
echo quit > "$REQ_FIFO"
wait "$COUNTER_PID"
rm -f "$REQ_FIFO" "$RESP_FIFO"
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (0)