タグ

Javaに関するfumiyasのブックマーク (28)

  • トラブルに備えるJVMオプション - n-agetsumaの日記

    以前の記事でトラブルが起きた後の初動対応を書いてみたが、いざトラブルに遭遇すると、まず再起動してからどうするか考えるケースが多いと感じている。しかし何も情報がないと『情報がない/再現方法が不明』などの理由からそのままお蔵入りになってしまう。今回はトラブルに事前に備えるために、地味だけど大切なJavaVMのオプションをまとめてみる。 GCログの出力とローテーション OutOfMemoryError発生時のヒープダンプ自動出力と出力パス設定 JavaVMクラッシュログの出力パス設定 JVMオプションの設定 (OpenJDK/OracleJDK) JavaVMにはGCおよびヒープメモリの状態をロギングする仕組みや、OufOfMemoryError時にヒープダンプを自動的に出力するような障害に備えて自動的に情報を出力する機能がある。おすすめのオプション*1は以下の通り。 java -Xms?g -

    トラブルに備えるJVMオプション - n-agetsumaの日記
    fumiyas
    fumiyas 2014/03/31
  • Javaトラブルに応じた初動対応のまとめ - n-agetsumaの日記

    Javaトラブルでは『情報がなくて、再現もなかなかしません』といった状況に陥ることがある。このような状況を回避するために、以下の3つの代表的なトラブルを例に、アプリケーションサーバを再起動する前に何を取得すれば良いのかをまとめてみる。 アプリケーションから応答がない アプリケーションが遅い ヒープメモリが足りない(OutOfMemoryErrorの発生) アプリケーションから応答がない 取得する情報 スレッドダンプ データ取得方法 スレッドダンプとは、コマンド実行時点でのJavaスレッド実行状態を出力したものである。応答がない場合、何らかの要因によりどこかで処理が止まっていることが想定される。スレッドダンプは『どこで止まっているのか?』を切り分けるのに大切な情報である。 取得方法はJDKのバージョンによって色々ある。 kill -3 <pid> (少なくとも1.4.2にはある〜JDK7でも

    Javaトラブルに応じた初動対応のまとめ - n-agetsumaの日記
    fumiyas
    fumiyas 2014/03/12
  • GitHub - neiesc/awesome-minimalist: A curated list of awesome minimalist frameworks (simple and lightweight).

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - neiesc/awesome-minimalist: A curated list of awesome minimalist frameworks (simple and lightweight).
  • Deserialize to self

    fumiyas
    fumiyas 2014/01/04
  • Webアプリの問題点を「見える化」する7つ道具 (1/3) - @IT

    今回の概要 システムが応答しない、パフォーマンスが劣化したなどのトラブルが発生したときに、原因がなかなか掴めず、あたふたすることはないだろうか? 稿では、Java EEトラブルシューティングの現場で役立つ7つ道具を紹介する ある日、突然電話が鳴る 用件は、「システムが不定期に停止する。よく分からないけど、どうやらJava EE部分がおかしい」とのこと。このような事態が発生したとき、やみくもに原因を調べ、いつまでたっても問題が解決できず、原因の一片も発見できないことが多々ある。 トラブルが発生した場合、ツールが充実していない昔は、開発者の経験と勘に頼るところが非常に大きかった。Webシステムが普及するいま、昔とは比べ物にならないほど、システムの数が増え、開発者数が増える一方、システム障害を切り分けられる職人的なエンジニアの人数はシステム数に比例して増えているわけではない。そのため、すべての

    Webアプリの問題点を「見える化」する7つ道具 (1/3) - @IT
    fumiyas
    fumiyas 2013/12/02
  • シングルトンパターンの遅延初期化をスレッドセーフにするには - じゅんいち☆かとうの技術日誌

    前回、前々回と割とヘビーな仕様の話だったので、今回は若干実用的なネタとして、シングルトンパターンの遅延初期化をメモリモデルの視点から、どのようにすればスレッドセーフになるか考えてみたいと思います。 そのシングルトンの遅延初期化はスレッドセーフか 以下のようなシングルトンパターンは日常的に使うデザインパターンの一つだと思います。 ただ、今回はSingletonクラスのgetInstanceメソッドに、わざとロックを掛けずに実装してみました。この場合にどういうことが起こりうるか考えてみたいと思います。 public class Singleton { private static Singleton instance; public static Singleton getInstance() { // バリアがない if (instance == null) { // Normal Load

    シングルトンパターンの遅延初期化をスレッドセーフにするには - じゅんいち☆かとうの技術日誌
    fumiyas
    fumiyas 2013/10/30
  • goal, phase, lifecycle - ねこだいすき

    Java, mavenmavenのphaseとかgoalとかについて実は適当な理解しかしていなかったのでまとめた。■goalgoalとは、mavenが実行するタスクの中で最小粒度のもの。要するにプラグインの中のメソッド1個を意味する(ので、プラグインを追加すればいくらでも増やせる)。たとえばCoberturaを考えてみると、 mvn org.codehaus.mojo:cobertura-maven-plugin:2.4:cobertura または(普通はpom.xmlやsettings.xmlに設定を追加して以下のように省略してしまう) mvn cobertura:cobertura は、group-id="org.codehaus.mojo"artifact-id="cobertura-maven-plugin"version=2.4のプラグインを(ローカル/セントラル)リポジトリ

  • from old Java to modern Java

    16. from old Java to modern Java ∼ 職業プログラマに聞いて欲しいJava再入門 Acroquest Technology株式会社 JJUG / 関西Javaエンジニアの会 谷 心 ( @cero_t ) 19. private List m_list = null; private int process_file(String str_file_name) { String str_line; List list_lines = new ArrayList(); int i_result = read_file(str_file_name, list_lines); if (i_result == 0) { List list_record = new ArrayList(); for (int i = 0; i < list_lines.size(); i+

    from old Java to modern Java
    fumiyas
    fumiyas 2013/09/14