2016-09-26 26 views
1

Javaは私の主要なプログラミング言語ではありませんので、私の専門知識は一般にこの領域に限られています。Javaコンソールアプリケーションがロックされています

シナリオ

このアプリは、無期限にサービスまたはデーモンなどのために実行することになっています。その主な目的は、DB内のいくつかの行を、他のプロセスによって挿入されるように処理することです。

アプリは、System.out.printlnを通じてログメッセージを吐き出します。また、他のいくつかのログファイルも使用します。以前はlog4jを使っていましたが、それは今のところ無効になっています。

また、Windows Server環境でこれを実行しています。私は今、Linuxを使用することはできません。

問題

問題は、まれに、私はロックされステージング/ PRODのENVでアプリケーションを検索したり、さらに任意のDBの行を処理していないようだということです。画面上にenterを数回押すと、前に進み、いつものように処理を開始します。私はユーザーからの入力を期待していないので、これは奇妙です。アプリケーションには、コマンドラインまたはDBのいずれかの入力があります。

また、DBの問題ではないこともわかっています。アプリはテーブルロックを待っていません。これは、いくつかのファイルロックまたはSystem.outストリームがロックされていると関係がある可能性があります。後で私は、スクリーン上のキーストロークがアプリケーションを「目覚めさせる」ことを見るまで、可能性を考えなかった。

だから私は誰かが私がこれをさらにデバッグできる方向に向けるかもしれないかと思います。

答えて

1

マイクロソフトでは、コンソールウィンドウをマウスで作成し、マウスで文字の矩形領域を選択できるようにしました。ここまでは順調ですね。

そしておそらくテキストをスクロールすることができる一方でテキストを選択するユーザーのためにそれを容易にするために、彼ら(その無限の知恵で)凍結それがテキスト中を放出しようとすると、ターミナルウィンドウでホストされているプロセステキストを選択しています。 (*)

をクリックすると、のコンソールウィンドウがマウスでクリックされると、それらは(無限の知恵で)ウィンドウがテキスト選択モードになり、存在を目の当たりにして目撃されます小さな白い正方形。

これは非常に残念です。ウィンドウをクリックするのは、単にウィンドウをフォアグラウンドにするためです。しかし、の巨大ながここにあります。コンソールウィンドウがフォアグラウンドにない場合は、フォアグラウンドに移動します。しかし、コンソールウィンドウがすでにフォアグラウンドにある場合は、クリックすると選択モードになります。 (もちろん、大部分の人は、ウィンドウが前景になっているかどうかを気にすることはほとんどありません。)

結論:ウィンドウをクリックしないでください。あなたがする必要がある場合は、キャプションだけをクリックしてください。ウインドウを誤ってクリックした場合は、[Enter]を押すか、もう一度クリックすると小さな白い選択矩形が消えます。

小さな白い選択矩形がある限り、プログラムは固定されています。


(*)これで、プロセスをフリーズせずに選択している間、簡単にウィンドウの表示をフリーズすることができました。彼らはプロセスの出力がバッファリングされ続けるようにして、選択が完了したら画面にダンプすることができたかもしれませんが、世界の支配のための計画があまりにも忙しかったと思います。私は、マイクロソフトのコンソールウィンドウが選択モードでアイドル状態になっているために、これまで世界中に無駄に費やされていた時間(=お金)を考えることができず、人々はデータを処理しているという印象を受けています。

+0

私はそれが原因だと思う。私は時には私が選択モードにいることに気付かない。 – Scalable

関連する問題