中断と推定されるフロー状態の把握と解決<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } 最新情報については、「 フロー実行の詳細 」を参照してください。 「中断と推定」状態について 以前は、フローの実行が予期せず中断された場合、フローコンテキストのステータスは「処理中」のままでした。これはユーザーにとって誤解を招く表現です。トランザクションの終了時またはノードの再起動時に、予期しない中断が発生する可能性があります。 sys_flow_context テーブルの新しい [中断と推定] ステータスは、中断されたフローの実行を特定するのに役立ちます。このステータスは、フローがキャンセルされたことを意味するものではありません。フローはまだ実行中であるか、後で再開される可能性があります。 このステータスは、フローが長時間実行されており、停止しているように見えることを示しています。考えられる原因は次のとおりです。 フロー内のノードの再起動または無限ループこのフローは別のビジネスルールまたはフローをトリガーしました Utah リリース以降では、ノードのシャットダウン中または再起動時に、 グレースフルシャットダウン機能を使用してフローを一時停止および再開できます。 この機能は、MID サーバーでの実行中に中断されたフロー実行には適用されません。この機能はフローエラー処理をトリガーしません。可能な場合はフローを再開できるように設計されています。 仕組み トランザクションとclaimed_byの 2 つの新しい列がsys_flow_contextに追加されました。フローエンジンがフローコンテキストで作業を開始すると、次のようになります。 sys_flow_context.claimed_by フィールドがノード ID に設定されます。sys_flow_context.transaction フィールドが現在のトランザクションの sys_id に設定されます。 フロー実行が MID サーバーに送信される場合、[ claimed_by ] フィールドは mid に設定され、[トランザクション] フィールドは空のままになります。 中断されたと思われるフローコンテキストのステータスは [中断と推定] に変更されます。「Flow state changed from IN_PROGRESS to PRESUMED_INTERRUPTED due to inactivity...」で始まるエラーメッセージがログに記録されます。 設定された間隔で、システムはsys_flow_contextテーブルで中断されたと思われるフローの実行がないかチェックします。 システムは、次の 2 種類のチェックを実行します。 このノード チェックは 15 分ごとに実行され、次の基準を満たすフローコンテキストが検索されます。 現在のノードによって要求ステータスがIN_PROGRESSまたはCONTINUE_SYNCである15 分以上前に最終更新されている現在のノードで無効になったトランザクション ID を持つ 他のノード チェックは 1 時間ごとに実行され、ノードのシャットダウン中にフローの実行が中断され、ノードが再起動されない場合を処理します。次の基準を満たすフローコンテキストが検索されます。 別のノードによって要求ステータスがIN_PROGRESSまたはCONTINUE_SYNCである8 時間以上前の最終更新 注意:有効なトランザクション ID は実行中のノードでのみ使用できるため、トランザクション ID を確認できません。 注意:フローステップ (スクリプトなど) が 8 時間を超えて実行されると、誤って中断と推定とマークされることがあります。これが発生すると、ステップが完了するとステータスが想定される値に戻ります。 中断したと推定されるフローを解決する方法 トランザクション (sys_flow_context.transaction) がノード (sys_flow_context.claimed_by) でまだアクティブかどうかを確認します。 アクティブな場合: フローが無限ループになっている可能性があります (問題のあるスクリプトまたはループ条件によって発生)フローをキャンセルフローをリファクタリングして再度実行する アクティブでない場合: 現在のノードが再起動されたか、適切に処理されなかった不明なエラーが発生しました。フローの実行が停止した地点から、残りの手順を手動で完了します。中断ポイントからサブフローを作成します。たとえば、フローに 10 ステップあり、ステップ 5 で停止した場合は、ステップ 5〜10 のみを含むサブフローを作成します。 ローカルホストログは、次のコマンドを使用して、ノードがシャットダウンされたか再起動されたかを識別するのに役立ちます。 egrep "glide Loading platform|Initiating normal shutdown" localhost_log.2019-0*.txt 構成可能なシステムプロパティ 中断と推定フローステータス機能では、次の構成可能なシステムプロパティを使用します。 プロパティ説明デフォルト値com.glide.hub.flow.interrupted_flow_marker.enabled機能を有効または無効にしますtruecom.glide.hub.flow.interrupted_flow_marker.this_node.updated_sec_ago「このノード」チェックの前回の更新からの最小時間900 秒 (15 分)com.glide.hub.flow.interrupted_flow_marker.other_nodes.updated_sec_ago「他のノード」チェックの前回の更新からの最小時間28800 秒 (8 時間)