intra-mart IM-Workflow トラブルシューティング 第21版 2023-04-01

4.31. 一覧画面に案件が表示されない


4.31.1. 一覧画面に案件が表示されない

対象バージョン

  • iWP / iAF の場合

    • IM-Workflow 7.2.0 ~ 最新バージョン
  • intra-mart Accel Platform の場合

    • 2012 Autumn(Alba) IM-Workflow 8.0.1 ~ 最新バージョン

現象

  • 案件の処理後、ワークフローの一覧画面(未処理・処理済・参照・確認)で表示されない案件が存在する
  • スレッド実行情報(imw_t_thread)に表示されない案件のシステム案件IDのレコードが存在する
  • 2016 Summer(Nirvana) IM-Workflow 8.0.14 以降の場合、「非同期タスクキュー一覧」画面に表示されない案件のタスクが存在する

条件

以下のすべての条件に合致する場合に発生します。
  • 何らかの理由により、「案件終了処理、到達処理、メール送信処理、IMBox送信処理」が正常に完了していない。

原因

IM-Workflow のエラーログが出力されていない場合、 IM-Workflow アプリケーションでは検知できないレベルでエラーが発生している可能性があります。
過去報告されている事例は以下です。
  • 予期せぬサーバの停止

  • SMTPサーバのレスポンス待ち
    メール送信処理にて、「 メール設定 」でタイムアウト時間が設定されていないため、レスポンス待ち状態のままとなる。
  • 以下の intra-mart Accel Platform の不具合(「案件終了処理、到達処理、メール送信処理、IMBox送信処理の同期/非同期制御の設定(arrive-process-async)」が非同期(true)の場合)

  • バグ #24069 非同期タスクサービスにおいて待機中のタスクをディスパッチするスレッドが停止してしまう場合があります。
  • バグ #28414 非同期タスク開始時にタスクをディスパッチするスレッドが停止してしまう場合があります。

コラム

スレッド実行情報(imw_t_thread)の役割について

imw_t_thread は、「案件終了処理、到達処理、メール送信処理、IMBox送信処理」が実行中かどうかを判断するために利用します。
「案件終了処理、到達処理、メール送信処理、IMBox送信処理」が実行中の間、imw_t_thread には lock_flag = 1 でレコードが存在します。
各一覧では案件(未処理タスク)を取得する場合、上記のレコード有無を判定して、レコードが存在する案件(未処理タスク)は除外して表示します。

IM-Workflow 処理では、エラーが発生した場合、ログを出力し、imw_t_thread のレコードは必ず削除します。
しかし、「案件終了処理、到達処理、メール送信処理、IMBox送信処理」が実行中に、IM-Workflow アプリケーションでは検知できない予期せぬエラーが発生した場合、imw_t_thread が削除されずに、案件(未処理タスク)が一覧に表示されない状態となる場合があります。

解決方法

ありません。

回避方法

ありません。

復旧方法

本事象の対応方法はご利用のバージョン、発生している事象によって異なります。
  • iWP / iAF の場合


    当バージョンでは、対象の案件を特定し、案件に関するデータの変更により事象発生時の処理前の状態に戻した上で、再度処理を行える状態に復旧します。
    以下のフローチャートに基づいて、対応すべき作業を確認してください。
    • 凡例
    blockdiag 詳細あり 条件等
    Name Description
    詳細あり 手順の詳細はリンク先で確認してください。
    条件等 次作業への前提条件、作業が不要のステップを表します。
    blockdiag iWP / iAF start 対象データの特定 スレッド実行情報の削除 ユーザプログラム の再実行 (対応しない) ユーザプログラムの無効化 再処理 管理者による再処理 ユーザによる再処理 end 再実行する 再実行しない
    Name Description
    start  
    対象データの特定 対応に必要なトランザクションデータを確認します。
    スレッド実行情報の削除 スレッド実行情報を削除します。
    ユーザプログラムの再実行 ノードに設定されているユーザプログラムの再実行の要否を確認してください。
    (対応しない) ユーザプログラムを再実行する場合には何もせず、次の作業に進んでください。
    ユーザプログラムの無効化 ユーザプログラムを再実行させないように無効化する作業です。
    再処理 ワークフローの再処理をユーザ/管理者のどちらで行うか確認してください。
    管理者による再処理 ワークフローの再処理を管理者が行う場合の手順です。
    ユーザによる再処理 ワークフローの再処理をユーザが行う場合の手順です。
    end  
  • intra-mart Accel Platform の場合


    当バージョンでは、スレッド実行情報(imw_t_thread)に復旧対象の案件が存在することを確認した上で、復旧に必要な作業をご案内いたします。
    • APサーバの再起動を実行する( 2016 Summer(Nirvana) IM-Workflow 8.0.14 以降の場合)
    • 案件に関するデータの変更により事象発生時の処理前の状態に戻した上で、案件を再度処理可能な状態に復旧する
    以下のフローチャートに基づいて、対応すべき作業を確認してください。
    • 凡例
    blockdiag 詳細あり 条件等
    Name Description
    詳細あり 手順の詳細はリンク先で確認してください。
    条件等 次作業への前提条件、作業が不要のステップを表します。
    • intra-mart Accel Platform 2016 Spring(Maxima) IM-Workflow 8.0.13 以前の場合

      blockdiag IM-Workflow 2016 Spring (8.0.13)以前 start 対象データの特定 スレッド実行情報の削除 ユーザプログラム の再実行 (対応しない) ユーザプログラムの無効化 再処理 管理者による再処理 ユーザによる再処理 end 再実行しない 再実行する
      Name Description
      start  
      対象データの特定 対応に必要なトランザクションデータを確認します。
      スレッド実行情報の削除 スレッド実行情報を削除します。
      ユーザプログラムの再実行 ノードに設定されているユーザプログラムの再実行の要否を確認してください。
      (対応しない) ユーザプログラムを再実行する場合には何もせず、次の作業に進んでください。
      ユーザプログラムの無効化 ユーザプログラムを再実行させないように無効化する作業です。
      再処理 ワークフローの再処理をユーザ/管理者のどちらで行うか確認してください。
      管理者による再処理 ワークフローの再処理を管理者が行う場合の手順です。
      ユーザによる再処理 ワークフローの再処理をユーザが行う場合の手順です。
      end  
    • intra-mart Accel Platform 2016 Summer(Nirvana) IM-Workflow 8.0.14 以降の場合

      blockdiag IM-Workflow 2016_Summer (8.0.14)以降 start 対象データの特定 非同期タスクキューの確認 非同期タスクの ステータス 再起動可否 APサーバの再起動 管理者による再処理 ユーザによる再処理 スレッド実行情報の削除 スレッド実行情報の削除 非同期タスクの削除 非同期タスクの停止 ユーザプログラムの 再実行 (対応しない) ユーザプログラムの無効化 再処理 end 待機中の場合 処理中の場合 再起動不可の場合 再起動可の場合 再実行する 再実行しない
      Name Description
      start  
      対象データの特定 対応に必要なトランザクションデータを確認します。
      非同期タスクキューの確認 非同期タスクキューの状況を確認します。
      非同期タスクのステータス 非同期タスクの確認結果に基づいて次の手順を選択してください。
      再起動可否 APサーバの再起動ができるかどうかを確認してください。
      APサーバの再起動 APサーバを再起動し、状況が改善するか確認します。
      管理者による再処理 ワークフローの再処理を管理者が行う場合の手順です。
      ユーザによる再処理 ワークフローの再処理をユーザが行う場合の手順です。
      スレッド実行情報の削除 スレッド実行情報を削除します。
      スレッド実行情報の削除 スレッド実行情報を削除します。
      非同期タスクの削除 待機中の非同期タスクを削除します。
      非同期タスクの停止 処理中の非同期タスクを停止します。
      ユーザプログラムの再実行 ノードに設定されているユーザプログラムの再実行の要否を確認してください。
      (対応しない) ユーザプログラムを再実行する場合には何もせず、次の作業に進んでください。
      ユーザプログラムの無効化 ユーザプログラムを再実行させないように無効化する作業です。
      再処理 ワークフローの再処理をユーザ/管理者のどちらで行うか確認してください。
      end  

    注意

    下記 FAQ の対応は IM-Workflow の非同期処理においては非推奨のため、実施しないでください。
    理由は、下記 FAQ の対応を行うことにより IM-Workflow の一連の非同期処理が必ず2回実行されてしまうためです。
    IM-Workflow の非同期処理は「並列タスク」で行われているため、上記FAQの「直列キュー」には格納されません。

    コラム

    2021 Winter(Dandelion) IM-Workflow 8.0.30 以降の場合、案件操作画面で対処できます。
    詳しくは以下を参照してください。