見習いプログラミング日記

Java EE を中心に色々なことを考えてみます。目指せ本物のプログラマ。

Elastic {ON} 2017 3/7 ノート(1日目)

今日からElastic {ON}が始まった。会場はサンフランシスコのPier48という、AT&Tパーク近くの倉庫のようなイベント会場。キーノートを行う一番大きなセッション部屋はそれなりに大きい。 キーノート 日本のElastic {ON} Tourでもお見かけしたことのある、CTO…

PayaraのJMX Monitoring Service

この記事は Payara Advent Calendar 2016の12/23分の記事です。 昨日はsuke_masaさんのPayaraのバグを報告してみようでした。 明日は@yumix_hさんです。2016/8/1にリリースされた Payara Server 4.1.1.163 より、指定したJMX MBeanの値を定期的にロギングで…

Commons Lang 3.5 でJava EEにBreakerを組み込む

この記事は Java EE Advent Calendar 2016の12/13分の記事です。 昨日はsuke_masaさんの必要最小限のサンプルでThymeleafを完全マスターでした。 明日は@kazuhira_rさんです。Payara MicroやWildFly Swarmをベースとしたマイクロサービス対応の共通仕様の規…

コネクションプールの挙動差分によるバグ顕在化

この記事は Java EE Advent Calendar 2016の12/2分の記事です。 明日は@opengl_8080さんです。Java EEが使われているシステムは、改修を加え続けながら数年〜十年と運用し続けるライフサイクルの長いシステムが多くあります。アプリケーションを全面刷新する…

LogstashからIngest Nodeへの移行

ELK

Elasticsearch 5.xからはIngest Nodeを使うと、Logstashを使わなくてもElasticsearchでログの変換ができるとElastic社のスライドにまとまっていたので、LogstashからIngest Nodeへの移行についてメモ。 LogstashからIngest Nodeへの移行 今までFilebeatで集…

EmbulkでアクセスログをLogstash風に取り込む

ELK

トラブルシューティング時に、バッチ取り込みによるKibanaアクセスログ可視化を行う場合、ログの取り込みに掛かる時間は短い程嬉しい。もちろん測定条件やチューニングにも依存すると思うが、手元のマシン*1においては、Logstash2.2を使うより、Embulk v0.8.…

Kibana4.4.0の機能追加

ELK

2016/02/02にリリースされたkibana4.4.0に欲しかった機能が入っていたのでメモ。 詳細は公式のリリースノート Kibana 4.4 Release Notes を参照。4.1から起動スクリプトを含むRPMファイルもリリースされている。公式のダウンロード リンクにはなく、yum経由…

CentOS7でOpenJDKのソースツリー取得時に/dev/stdout: Permission denied

手元の環境を再構築したときにハマったのでメモ。 get_source.shでエラー CentOS7でOpenJDK9のソースコードを取得しようとすると、以下のようなエラーが発生してget_source.shでソースコードがhg cloneできない。 hg clone http://hg.openjdk.java.net/jdk9/…

JDK8(Linux 64bit)のデフォルトヒープサイズ

Oracleの公式ドキュメントには、-Xmxが未指定であった場合のエルゴノミクスによる最大ヒープサイズは『32GBを上限として、物理メモリの4分の1』書かれている。32GBは-XX:-UseCompressedOopsにより圧縮Oopを明示的に無効にした場合の最大デフォルトヒープサイ…

Javaバッチ処理のNFS向けファイルI/O

この記事は Java EE Advent Calendar 2015の12/7分の記事です。 明日は@btnrougeさんです。Java EEのAPIが直接関連する話ではなくて恐縮ですが、サーバサイドJavaでファイルI/Oを含むバッチ処理の性能Tipsをまとめます。テーマはjava.io.BufferedWriterクラ…

JavaOne 2015 4日目メモ (10/28)

JavaOne 4日目の夜には、毎年トレジャーアイランドでOracle Appreciation Event(オラクルによる感謝祭?)が行われ、有名な方のライブが行われる。今年はエルトンジョンとBECKだった。毎年寒いので、薄手のダウンなど暖かい服装が必須。4日目は以下のセッショ…

JavaOne 2015 3日目メモ (10/27)

3日目も晴れている。今年は週間天気予報に雨マークが出てたから折りたたみ傘を持ってたが、4回目で今のところ傘が必要なほどの雨に振られたことがない。今日は以下のセッションに参加。 [CON6712] Enhanced Process APIs [CON11284] JDK 9 Language and Tool…

JavaOne 2015 2日目メモ (10/26)

今日から各種テクニカルセッションの開始。jigsawのセッションにいくつか参加。 [TUT4416] Preventing Errors Before They Happen [CON2554] Java EE 8 Work in Progress [CON5118] Introduction to Modular Development [CON6821] Advanced Modular Develop…

JavaOne 2015 1日目メモ (10/25)

昨年よりも約1ヶ月遅いJavaOneが始まった。初日はコミュニティ主体のセッションであるユーザグループフォーラムと、キーノートがサンフランシスコのモスコーンセンタにて行われた。以下、参加メモ。 [UGF11082] WebSocket Perspectives [UGF11073] Who Wants…

WeldのProxyクラスはどこからやってくるか

CDIの参照実装 Weld では @Dependent を除いて、全てのCDI管理Beanは直接インスタンスがインジェクションされずに、以下のようにプロキシが設定*1される。 test.Message$Proxy$_$$_WeldClientProxy例外発生時のスタックトレースや、スレッドダンプでも見かけ…

JSF (mojarra) ステートレスビューを試してみる

JSF2.2のビッグチケットとして盛り込まれたステートレスビューですが、HttpSessionへのアクセス量を減らせるメリットの一方、制約事項もあります。Wildfly-9.0.0.CR2(mojarra-2.2.11)で色々と試してみたので以下にまとめます。 ステートレスビューの使い方 <f:view transient="true"></f:view>…

JSF (mojarra2.x) のデバッグログ出力

多くのアプリケーションのログカテゴリには、ログを出力しているパッケージ名(jp.co.test... など)が使われていますが、JSFの参照実装であるmojarra2.xでは少し異なる付与規則となっているため、以下にまとめます。 mojarraのログカテゴリ定義 mojarraのログ…

書籍「Javaパフォーマンス」を読んで

監訳者の@cero-tさんから頂きました。@cero-tさん、ありがとうございます。Javaパフォーマンス作者: Scott Oaks,アクロクエストテクノロジー株式会社(監訳),寺田佳央(監訳),牧野聡出版社/メーカー: オライリージャパン発売日: 2015/04/11メディア: 大型…

PostgreSQL JDBCドライバのタイムアウト設定

OracleのJDBCドライバと同様に、PostgreSQLのJDBCドライバにも同様のタイムアウト設定が用意されています。@yamadamnさんがWebLogicServer + Oracle JDBC向けにまとめた資料Oracle JDBCドライバプロパティの活用を参考に、WildFly + PostgreSQL版のタイムア…

CDI1.2によるbean-discovery-modeの見直し

2014年4月にCDI仕様のマイナーアップデート CDI1.1 -> CDI1.2 *1が行われ、@java.inject.Singletonが付与されたクラスはデフォルトではインジェクションできるBean対象から外れました。後方互換性のない変更であるため、以下にまとめます。 default bean-dis…

-XX:+DisableExplicitGCに関するJDK7とJDK8の違い

この記事は JVM Advent Calendar 2014の12/5分の記事*1です。昨日は @jyukutyoさんのJITWatchでJITコンパイルを見よう!でした。HotSpotには-XX:+DisableExplicitGCというオプションがありますが、この挙動がJDK8のリリースから変わっていたのでまとめます。…

書籍「詳解Tomcat」を読んで

本書のレビューアの方から頂いたので読んでみました。以下、感想です。詳解 Tomcat作者: 藤野圭一出版社/メーカー: オライリージャパン発売日: 2014/12/26メディア: 大型本この商品を含むブログを見る最近、Twitterのタイムラインで『はじめてのXXXや、XXX …

Apache ShiroでBCryptを使う

先日のJava EE Advant Calander 2014にApache Shiroを使ってみましたを書いたところ、Shiroのデフォルトのハッシュポリシーソルト付きSHA-256, 500000 イテレーションについて、ハッシュイテレーションのアルゴリズムをShiroのように独自実装せずに、総当た…

GlassFish4.1をなおしてみた

この記事は GlassFish Advent Calendar 2014の12/25分の記事です。昨日は @backpaper0さんのGlassFishでセッションIDを生成してるところでした。2013/11にGlassFishの商用サポートの終了がアナウンスされて私も不安に思っていましたが、冷静に考えるとGlassF…

Apache Shiro を使ってみました

この記事は Java EE Advent Calendar 2014の12/17分の記事です。昨日は @glory_ofさんのJAX-RSのレスポンスでした。明日は@nagaseyasuhitoさんです。Java EE8では、『使い方が複雑・各APサーバ固有のレルム設定がよくわからん』とあまり評判のよくないセキュ…

MavenのJAX-WSプラグイン

まだまだエンタープライズな分野ではJAX-WSがシステム間連携に使われることが多い。wsdlからスタブを生成するMavenプラグインの使い方に関するメモ。 JAX-WS Mavenプラグイン https://jax-ws-commons.java.net/jaxws-maven-plugin/ にJAX-WSの参照実装Metro…

PDFBoxで取得したテキストの空白置換

SlideShareがやっているように、PDFスライドから抽出したしたテキストから、改行やタブを半角スペース1つに置換を試みた際にはまったのでメモ。取得したいのはSlideShareのページ下部に表示されているこの文字列。 1. PDFBoxでテキスト抽出 PDFTextStripper.…

JavaOne2014 4日目メモ (10/1)

サンフランシスコ市街地のスーパーに水を買いにいったら、キャベツ太郎が売ってたので思わず写真を撮る。2.49ドル、日本でいうとポッキーよりも高級なお菓子になっている。以下のようなセッションに参加。 Everything You Wanted to Know About Writing Asyn…

JavaOne2014 3日目メモ (9/30)

今日も晴れていて、過ごしやすい気候。3回目のJavaOneでも雨に振られたことがないので、サンフランシスコは雨が少ない地域なのだろうか。 Building a Distributed Application for the Cloud with Akka Clustering and Java 8 [TUT6483] Playフレームワーク…

JavaOne2014 2日目メモ (9/29)

2日目。朝は霧が出ていて少し寒いが、日中になると日差しが出て半袖でも良いくらい暑くなる。今日から本格的にセッションの開始。 Java EE 8 [CON3015] Java EE8のスペックリードであるLinda DeMichielさんによる、Java EE 8の現状の方針を話すセッション。J…