Speaker

Kyohei Fujikawa

Kyohei Fujikawa

株式会社ケープロジェクト 元AD(アシスタントディレクター)

Tokyo, Japan

Actions

2017年株式会社ケープロジェクト入社
javaのシステム保守や開発をしています。現在は20年もののERPの保守を担当させて頂いてます。

Area of Expertise

  • Information & Communications Technology

Topics

  • Java

Tomcatが起動しない!? Java SecureRandomと乱数デバイスの罠~LinuxとWindowsで異なる挙動と、Javaでの正しい選択~

Linux上でJavaアプリケーションを運用していたある日、Tomcatの起動が異常に遅くなりました。
原因は「乱数生成器」でした。

JavaのSecureRandomは、OSの乱数デバイスや内部実装を利用して動作します。
特にLinuxでは、カーネルの/dev/randomと/dev/urandomの扱いによって、エントロピー不足時にブロックが発生し、
アプリケーションの起動が数分間止まることがあります。
一方でWindowsでは、OSのCSPRNG APIを利用しているため、この問題は発生しません。

さらにJavaには複数のSecureRandomプロバイダがあり、選択によって挙動が大きく変わります。
・NativePRNGBlocking → /dev/random依存でブロックリスク大
・NativePRNGNonBlocking → /dev/urandom利用で安定
・DRBG (JDK9+) → NIST準拠でセキュアかつノンブロッキング

本セッションでは、
・JavaとOS乱数生成の違い
・実際に遭遇した「Tomcat起動遅延」の事例(Linux)
・Windows環境では問題が起きない理由
・SecureRandomの実装ごとの違いと選び方
・運用者が取るべき具体的な回避策(オプション設定・DRBG活用など)

を20分でわかりやすく解説します。

乱数生成と聞くと難しく思われがちですが、
実務で起こる「Tomcatが起動しない!?」という
直感的にわかりやすいトラブルを起点に、
Javaエンジニアが知っておくべき乱数生成の仕組みと運用ノウハウをお持ち帰りいただけます。

DBCP(データベースコネクションプーリング)の変遷と理解

Java とデータベースを接続するための JDBC。
そのパフォーマンスと安定性を向上させるために、接続プーリングを行うライブラリが DBCP です。
アプリケーションのパフォーマンスと安定性に大きな影響を与えますが、
一口に「DBCP」と言っても、さまざまな種類・バージョンや実装があり、それぞれ挙動も異なります。
本セッションでは、歴史的にどのようなDBCPライブラリがあるのか、
それぞれの設定のデフォルト設定値の変化や、
Tomcatを例として設定ミスの落とし穴について解説します

さらに、近年の接続プーリングのトレンドとして、
Spring BootにおけるHikariCPの採用や、
クラウド側での接続プーリング(RDS Proxy)についても触れ、
最新のベストプラクティスを整理します。

----このセッションで学べること:
・DBCPライブラリの種類・バージョンの変遷や設定の違い
・Tomcat環境でのデフォルト設定の変更とその影響
・tomcat-jdbc-poolとapache.commons系DBCP2の特徴と選び方
・Spring BootにおけるHikariCPの活用と利点
・最新の接続プーリング技術と今後のトレンド

----想定するオーディエンス、対象オーディエンス
・JDBC接続プールを使っているが、バージョン変遷や設定の違いを詳しく知らない人
・Tomcat環境で運用しているが、apache.commons系DBCPとtomcat-jdbc-poolの違いを理解したい人
・これからDBCPの最適な使い方を学びたい人

jconsoleを使ってメモリ領域を覗いてみた。障害対応で学んだTips集

初めて直面する「OutOfMemoryError」。資格試験でしか見たことが無い、初めての出会い。まさか本当にエンカウント、しかも調査を一人で担当する事になるとは。。。
一体どこから調べれば・・・。せめてメモリ領域を覗いて構造をイメージする事ができれば・・・。ネット上では「OOM」という謎の単語にまみれて、一つの光り輝くツールが・・・!
「き、君の名は・・・?」『jconsoleだよ!』Java Silver資格の勉強中からずっと見たかったメモリ領域が今、やっと見れる・・・!
また別の日。今度はユーザーがログインできない?!なんだ?エラーも見当たらないし、こんなのお手上げじゃないか!!
せめてjavaからデータベースまでの接続の様子を見れれば・・・。『見れるよ!』「そ、その声は、もしや・・!」
jconsoleさん『久しぶり!』
まさに、神様仏様jconsole様とはこのこと、見えなかったものが見えた瞬間の感動は忘れられません。
神ツールjconsoleを使ってみた体験談です。
主なテーマ
・OutOfMemoryError: Metaspaceで学んだメモリ構造
・javaとDBをつなぐDBCP

Kyohei Fujikawa

株式会社ケープロジェクト 元AD(アシスタントディレクター)

Tokyo, Japan

Actions

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top