マルチプロセスは、ログやカバレッジ問題の損失が同じlog4j構成結果を使用します

最近、人気のある昔の手の魔法のコードの多くを引き継いだし、ログを回復するための時間が大幅に不足を発見しました。不慣れなlog4jのために、しかし、あなたは確かに間違った推測ログと関連する同じlog4jの構成マルチプロセス使用を行くことができます。最終的には明確なロジックを撫で繰り返し調査、後。リカバリディスクの本論文では、調査プロセス。

 

まず、特性評価

背景ストーリー: プロジェクトは、複数のエントリがあります。彼らは常に、通常のシングルタスクのスケジューリングなどの処理を開始し、終了している間に、フォームを実行しているバックグラウンド・プロセスを実行するために継続しながら、それはメッセージを取得します。言い換えれば、複数のプロセスと同じプロジェクトを同時に実行し、同じlog4jの設定を使用しています。
以下では、デーモンプロセスAと呼ばれる、一般的なプロセスは、プロセスBです。、B短い実行時間バックグラウンドで継続的に実行されます。
| <----------------- A ------------------- ...... 
  | < - B - > | | <--- B ---> | | < - B - > |

 

原因: 結果を操作し、Bが一致していない処理することが予想され、あなたはB.の問題ログの位置をトラブルシューティングする必要があります
アメージング現象:
1)一部にはないいくつかのBをログに記録がありますが、法律は明らかに表示されませんでした。
2)一部のBは、いくつかの不完全、完全なログ。
3)Bログの唯一の最後の数時間、ログファイルが実際に時間をかけてBに書き込まれるが消えます。
4)履歴ログ、大半の日付のみBログが、個々のログがたくさんあります。
 
 

第二に、内部

A / Bの各ログ・ポインタは、それぞれ、ログ・ファイル、互いのファイルポインタ独立し、各ライトバックを追加するために開かれます。二つの問題が生じ:
質問1: 遅い書き込みA、B高速書き込み(ビジネス現実)による、Bファイルのappendの両端の平均、および近隣のBには、AとBが徐々に開始スクロールページまでのログをカバーするようにします。
 
問題2: 次の自然の夜12時に切り替えるときBは、この時点で実行されている場合、タブがあり、ローリングスタート、その後、AおよびBは、それぞれのポインタを持っています。
Aが最初に書かれた場合は、後の2つのスクロールのページは、A log.yesterdayの書き込みに、そしてBは、書き込みにログインするには、タスクが完了して終了した後、ハンドルを解放します。新しいBはログに書き込みを続けます。
Bの書き込みはまず、2回ページをスクロールした後、Aは、書き込み、タスクが完了して終了した後、ハンドルを解放するために、書き込みlog.yesterdayのBにログインする場合。新しいBはログに書き込みを続けます。
いずれにせよ、本当のlog.yesterdayはカバーされています。
 
 
 
1日目
2日目
3日目
Day4
day5
day6
仮説  
最初の書き込み
最初の書き込み
書き込みにB
書き込みにB
最初の書き込み
ログ
A + Bの1日目
Bの2日目
Bの3日目
A + Bの他のday4
A + Bの他のday5
Bのday6
log.day1
 
Aの2日目
Aの2日目
Aの2日目
Aの2日目
Aの2日目
log.day2    
Aの3日目
Aの3日目
Aの3日目
Aの3日目
log.day3      
day4最初のB
day4最初のB
day4最初のB
log.day4        
day5最初のB
day5最初のB
log.day5          
Aのday6

 
日D(D <= T-2)のみ4例ログ:(現在の日付のT日)
①最初のD + Bを記録し1日(B-日スパンので、D + 1 2009あり、およびBを書きます)
②(B日スパンためD + 1 2009があり、そしてAは、最初の書き込み)全てのD + Aの1日の記録
(D-B日最初の書き込みには、そこにはB-日スパンがなく、そしてためD + 1日)③全てカバーされていないB A + D日間記録
全ての第1の非B D-日の④レコード(D + 1日そこにはB-日スパンはなく、D-デイAが最初に書かれたので)
 
観測された現象に沿って。
行われ

おすすめ

転載: www.cnblogs.com/desertfish/p/11973161.html