#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：顧客対応履歴管理
#
# シェル名      ：ｅｏＭｅｓｓｅｎｇｅｒメッセージ削除処理
#
# 機能          ：eoMessengerの使用により登録されたメッセージ情報のうち
#指定期日が到来したデータを物理削除する。
#（sqlplus使用、Java未使用）
#
#「DARC生成後に手修正要」
#
# コマンド形式  ：EO90U0110J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
#
##############################################################

##############################################################
# 環境変数定義
##############################################################

#
#---ツール格納場所
#
G_TOOLSH=.

#
#---環境変数定義Shell呼び出し
#
. EOK010110J0.sh

#
#---ＪＯＢ名
#
JOBNAME=`basename $0 | sed -e "s/\.sh//g"`

#
#---サービス（業務プロセス）
#
SVC=$JOBNAME

#
#---OPD
#
OPD=$1

#
#---業務で必要な変数定義
#
#xxx=xxxxxxx

##############################################################
# 業務処理
##############################################################
sh ${G_TOOLSH}/EOK010210J0.sh CS00025I ${JOBNAME}
sh ${G_TOOLSH}/EOK010210J0.sh CS00027I ${JOBNAME}

#-------------------------------------------------------------------------------
#-eoMessengerメッセージ削除　サブシェル呼び出し
#-------------------------------------------------------------------------------
(
    sh ${G_TOOLSH}/EO90U0110J0_01.sh ${OPD}
    rc=$?
    if [ ${rc} -ne 0 ]
    then
        sh ${G_TOOLSH}/EOK010210J0.sh CS00003W ${JOBNAME} "eoMessengerメッセージ削除処理でエラーが発生しました。"
        exit ${G_RTN_WARN}
    fi
) &
pid_EO90U0110J0_01=$!

echo PID:${pid_EO90U0110J0_01}

# プロセスIDを７桁空白埋め
WORK_PID=`printf "%7s" "${pid_EO90U0110J0_01}"`
echo "WORK_PID:${WORK_PID}"

#-------------------------------------------------------------------------------
# プロセス監視
#-------------------------------------------------------------------------------
# １回目のプロセス監視を５秒後とする
sleep 5
i=0
while [ "${i}" -lt ${CR_EOMES_MSG_DEL_P_KANSI_KAISU} ]
do
#    echo "loop count ${i}"
    # プロセスIDを７桁空白埋めで取得
    WORK_PID_GREP=`ps -e -o "pid":7 | grep "${WORK_PID}"`
    if [ -z "${WORK_PID_GREP}" ]
    then
        echo "プロセスIDが見つからない。（プロセス終了済）"
        break
    else
        echo "プロセス実行中　PID：${WORK_PID}"
    fi
    i=`expr "${i}" + 1`

    sleep ${CR_EOMES_MSG_DEL_P_KANSI_ITVAL}
done

# プロセスID監視期間後もプロセス実行中の場合、強制終了
if [ -n "${WORK_PID_GREP}" ]
then
    echo "監視時間経過後プロセス実行中"
    kill "${WORK_PID_GREP}"
    rc=$?
    if [ ${rc} -ne 0 ]
    then
        sh ${G_TOOLSH}/EOK010210J0.sh CS00003W ${JOBNAME} "eoMessengerメッセージ削除処理　プロセス強制終了に失敗しました。（PID:${WORK_PID_GREP}）"
    else
        sh ${G_TOOLSH}/EOK010210J0.sh CS00003W ${JOBNAME} "eoMessengerメッセージ削除処理　長時間経過のためプロセス強制終了しました。（PID:${WORK_PID_GREP}）"
    fi
fi

#
#--- ジョブの終了メッセージを出力する
#
sh ${G_TOOLSH}/EOK010210J0.sh CS00028I ${JOBNAME}
sh ${G_TOOLSH}/EOK010210J0.sh CS00026I ${JOBNAME}

exit ${exit_rc}
