タグ

ブックマーク / nekop.hatenablog.com (8)

  • java.util.loggingの闇 - nekop's blog

    Javaの1.4からjava.util.logging(以下JULと表記)というロギングパッケージが標準で使えるようになって、ログ出力のためにlog4jなどのサードパーティライブラリをいちいち導入したりする必要がなくなりみんな幸せになりました。 と言いたいところですこいつが超不便なAPIをしていてとてもとてもとっっっても使い辛い。ふざけんな。 まずさらっと使ってみましょう。Java 7です。 Logger.getGlobal().info("log") Logger.getLogger("foo").info("log") 出力はこうなります。 Jan 15, 2015 5:11:41 PM JUL main INFO: log Jan 15, 2015 5:11:41 PM JUL main INFO: log はい、キモイですね。軽くつっこむと なんで2行なんだよ 日時AM/PM表記か

    java.util.loggingの闇 - nekop's blog
  • Java 7 CMS GCの基本的な情報の整理 - nekop's blog

    バッチ処理などスループット重視のアプリケーションはデフォルトのパラレルGCで良いが、Java EEアプリケーションサーバなどレスポンスタイム重視のものやHadoopなどのクラスタ系ソフトウェアで死活監視に引っ掛る系などのstop the worldをなるべく避けたいいわゆるサーバ系ソフトウェアを運用する場合には、UseConcMarkSweepGCを付与して停止時間の短いCMS GCを使う。その場合にCMSのチューニングに踏み込もうとするとなんだか難しい記述がいっぱいで若干困るので、簡単なガイドをメモとして書いておく。 対象バージョンは以下。 $ java -version java version "1.7.0_51" OpenJDK Runtime Environment (fedora-2.4.5.1.fc20-x86_64 u51-b31) OpenJDK 64-Bit Serve

    Java 7 CMS GCの基本的な情報の整理 - nekop's blog
  • EJBとは - nekop's blog

    世に出ているEJBの説明はクソみたいなものが多く、簡潔に機能や特徴を記述しているものが見当たらないので書きました。Java EE 6, 7を対象として書いています。 EJBというのはJava EEアプリケーションサーバ上で利用できるJavaのコンポーネントです。トランザクション制御などの煩雑な部分をEJBが自動的に面倒を見てくれるので、開発者はEJBの基的なルールを抑えたあとはビジネスロジックの記述に集中することができる、というものです。EJBには4種類あります。 基となるステートレスセッションビーン (Stateless Session Bean, SLSB) 状態を保持できるステートフルセッションビーン (Stateful Session Bean, SFSB) 単一インスタンスのシングルトンセッションビーン (Singleton Session Bean, SSB) メッセージ(

    EJBとは - nekop's blog
  • JavaのCPUプロファイリング - nekop's blog

    JBoss / WildFly (全部俺) Advent Calendar 2013の19日目です。Java一般なトピック寄りで。 自分で主に利用するJavaのプロファイラはYourKitなのですが、YourKitを購入していない場合で性能問題を解析するときとかに何が使えるかなぁと思って調べてみました。 $ uname -a Linux localhost.localdomain 3.11.10-301.fc20.x86_64 #1 SMP Thu Dec 5 14:01:17 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux $ java -version java version "1.7.0_45" OpenJDK Runtime Environment (fedora-2.4.3.0.fc20-x86_64 u45-b15) OpenJDK 64-Bi

    JavaのCPUプロファイリング - nekop's blog
  • JavaOne Tokyo 2012でThe New JSR-107 Caching Standardの話をしました - nekop's blog

    資料はJavaOne Tokyo 2012 セッション資料からダウンロードできますが、どちらかというと口頭でしゃべっている部分が多かったです。ユースケースやJSR-347 Data Grids for Javaとか。Togetterはこちら。 Oracleの寺田さんとの共同セッションということで、特にリハーサルとかなしでしゃべってたんですが、2人でしゃべるのがこんなにラクだとは思いませんでした。適当に相方に無茶ブリしといて次に話すことをゆっくり考えるという技が使えます。 当日キャッシュのデモに利用したTwitter検索アプリは https://github.com/nekop/eetter にあります。README.mdにも書いていますが、JSR-107のAPIのjarに小バグが残っているので修正してリビルドする必要があります。import文とかgetter/setterを除けば、書いた行

    JavaOne Tokyo 2012でThe New JSR-107 Caching Standardの話をしました - nekop's blog
  • BytemanによるJava黒魔術 - nekop's blog

    クリスマスも近いですね。さて、クリスマスといえばどういうわけか黒魔術への需要が一気に高まる時期のようですので、Java Advent Calendar -ja 2010の12月20日はJavaの黒魔術をお送りします。昨日はid:celitanでした。 今日紹介する黒魔術はバイトコードインジェクションツールであるBytemanです。 この前ですね、お仕事で「HTTPレスポンスのヘッダが勝手に想定外のものに書き換わる」という不思議現象の相談を受けたんですね。Servletの中ではsetHeader("Foo", "bar")ってしてるのに、実際のレスポンスは"Foo: hoge"とか返ってる。アプリのJavaソース調べてもそんなことしてなさそうだし、Tomcatのソース見てもsetHeader()呼び出しでは何のログも出さないっぽいのでログを有効にしても原因がわからなさそう。なんだこれはとか思

    BytemanによるJava黒魔術 - nekop's blog
  • JBossがおかしい!あなたならどうしますか? - nekop's blog

    Java Advent Calendar 2011とJBoss Advent Calendar 2011の28日目のエントリです。タイトルはMySQLがおかしい!あなたならどうしますか? – MySQL Casual Advent Calendar 2011のパクリです。素晴らしいエントリですね。 このエントリでは対象をJBossとJava VMに置き換えてお送りします。 JBossがおかしい! (略) まずはserver.log このファイルがトラブルシューティングの基になります。WARNかERRORレベルで出力されているものをチェックすれば大抵何が起きているのかはわかります。ほとんどの場合はエラーメッセージや例外メッセージでぐぐるとそれなりに情報は出てくるでしょう。 $ grep -nEe "WARN|ERROR" server.log | less $ grep -nEe "WAR

    JBossがおかしい!あなたならどうしますか? - nekop's blog
  • TomcatではなくJBossを選ぶ○○の理由 - nekop's blog

    java-ja忘年会でharu860さんに聞かれたのでエントリを書くよ。と思ってざっくり書いて放置していましたすみません。この質問へのよくある回答として「EJBを使うとき」みたいなものがありますが、この回答は多くの場合何の役にも立ちませんね。このような回答をする人はJBossをあまり良く理解していない可能性があります。 というわけで、JBossを使っているユーザがどのようなモチベーションでTomcatではなくJBossを使うのか、もしくは完全にJBossに乗り換えているのか、実例ベースの理由をいくつか紹介しましょう。 機能 Tomcatで提供される機能は基的にServlet, JSP, JDBC接続プールのみで、他のものは提供されていません。シンプルですが、他のものが必要になったときに、それらをインテグレーションするコストが発生するなど、少し面倒なことになります。 TomcatになくてJ

    TomcatではなくJBossを選ぶ○○の理由 - nekop's blog
  • 1