システム障害を乗り越えるための解析テクニック 現場で使えるデバッグ&トラブルシュート Java編

翔泳社(出版社) , 小堀一雄(著) , 飯山教史(著) , 飯山教史(監修) , 茂呂 範(著) , 佐藤 聖規(著) , 石垣 一(著)

商品番号
118350
販売状態
発売中
納品形態
宅配便にてお届け
発売日
2010年02月26日
ISBN
9784798118352
判型
B5変
ページ数
432
キーワード
プログラミング  Java  開発

販売価格:¥3,024(税込)

送料無料 在庫あり

本体価格の10%をポイント還元(会員限定)

ほしい物リストに追加

「バグ」と「故障」の解析手順とコツがわかる!

ソフトウェア(システムやアプリケーション)の開発/運用時には、バグや性能低下、故障など、さまざまな問題が発生する可能があります。本書は、ソフトウェア開発時の「デバッグ」と、運用時の「トラブルシュート(故障部位の特定と解析)」の解説書です。主にJava開発者、システム運用管理/サポート担当者を対象としています。運用時のバグや故障を未然に防ぐには、設計段階からしっかりと情報収集の方法を組み込んでおく必要があります。また、開発時には効率的にデバッグを行ない、後工程にすり抜けるバグを減らさなくてはなりません。それでも運用時に故障が発生した際には、原因を特定/解析するためにエラーや発生箇所などの情報(ログ)を収集し、それを読み解くためのミドルウェア/OSの内部構造の知識が必要となります。これらすべての作業に対して読者の皆さんにスキルアップしてもらうため、本書ではデバッグやトラブルシュートを行なう際の必須知識、故障特定/解析に必要な情報を収集する設計方法、デバッグやトラブルシュートを効率的に行なうツールや手順、テクニックについて、実習を交えてわかりやすく解説します。

目次

CHAPTER 01 システム開発におけるデバッグとトラブルシュート

1.1 はじめに
1.2 デバッグとトラブルシュートはなぜ必要か?
   1.2.1 ソフトウェアの故障
1.3 故障が起こる原因
1.4 デバッグとトラブルシュートの概念~本書で対象とする故障への対処法
   1.4.1 デバッグ
   1.4.2 トラブルシュート
1.5 デバッグとトラブルシュートの基本的な流れ
   1.5.1 デバッグの流れ
   1.5.2 トラブルシュートの流れ

CHAPTER 02 デバッグ&トラブルシュートの基礎知識

2.1 要件定義/設計の必須知識
   2.1.1 ソフトウェアに対する要件
   2.1.2 システムの構成
2.2 バージョン管理の必須知識とツール
   2.2.1 バージョン管理とは?
   2.2.2 バージョン管理で使うツール
   2.2.3 Subversionの必須知識
2.3 デバッグの必須知識とツール
   2.3.1 デグレード
   2.3.2 log4j
   2.3.3 スタックトレース
   2.3.4 Eclipse
   2.3.5 Pleiades
   2.3.6 Junit
   2.3.7 ブレークポイント
2.4 トラブルシュートの必須知識とツール
   2.4.1 開発環境、検証環境、商用環境
   2.4.2 証跡
   2.4.3 プロセスとスレッド
   2.4.4 スレッドダンプ
   2.4.5 ヒープメモリ
   2.4.6 Garbage Collection
   2.4.7 レスポンスタイムとターンアラウンドタイム
   2.4.8 スループット
   2.4.9 % ile(パーセンタイル)

CHAPTER 03 デバッグ&トラブルシュート環境の構築

3.1 デバッグ環境の構築
   3.1.1 Java SE Development Kit(JDK)のインストール
   3.1.2 Pleiades All in Oneを利用したEclipseのインストール
3.2 トラブルシュート環境の構築
   3.2.1 samuraiのインストール
   3.2.2 GCViewerのインストール
3.3 バージョン管理環境の構築
   3.3.1 VisualSVN Serverを利用したSubversionのインストール

CHAPTER 04 デバッグ&トラブルシュートのための要件定義/設計

4.1 設計の流れ
   4.1.1 デバッグ&トラブルシュートと設計の関係
   4.1.2 設計の手順
4.2 要件定義/設計のノウハウ
   4.2.1 運用を考慮した要件の決め方
   4.2.2 運用時の必要情報とは?
   4.2.3 ログの設計
   4.2.4 効果的なログの記録ポイント
   4.2.5 ヒープメモリ情報の取得方法
   4.2.6 OSのプロセス情報
   4.2.7 運用監視
   4.2.8 復旧手順を決めておく

CHAPTER 05 確実なバージョン管理の実施

5.1 バージョン管理の進め方
   5.1.1 バージョン管理システムのメリット
   5.1.2 バージョン管理の手順
5.2 Subversionのバージョン管理機能
   5.2.1 Subversionの特徴
5.3 Subversionを使ったバージョン管理
   5.3.1 (1)Subersionのリポジトリ作成と整備
   5.3.2 (2)プロジェクトのアップデート/チェックアウト
   5.3.3 (3)リポジトリへコミット
   5.3.4 (4)リソース管理

CHAPTER 06 効率的なデバッグの実行

6.1 デバッグの定義
   6.1.1 デバッグとは何か?
   6.1.2 デバッグの手順
   6.1.3 バグの種類
6.2 デバッグのノウハウ
   6.2.1 情報収集
   6.2.2 原因分析
   6.2.3 修正方法の検討および実施
6.3 例題による実習~プロセス/技能の実践方法
   6.3.1 コンパイルエラーのデバッグ
   6.3.2 ランタイムエラーのデバッグ
   6.3.3 仕様違反のデバッグ

CHAPTER 07 トラブルシュートの全体像

7.1 トラブルシュートの進め方
   7.1.1 トラブルシュートとは何か?
   7.1.2 トラブルシュートの手順
7.2 問題把握
   7.2.1 (1)故障内容と一次対応状況
   7.2.2 (2)故障時のシステム動作状況
   7.2.3 (3)システム構成と非機能要件
7.3 原因分析
   7.3.1 (1)故障発生サーバの特定
   7.3.2 (2)故障原因の切り分けと推定
   7.3.3 (3)証跡を用いた分析結果の裏付け
7.4 対処の実施
   7.4.1 (1)対処策の立案
   7.4.2 (2)検証環境への対処策の実施/確認
   7.4.3 (3)商用環境への対処策の実施/確認

CHAPTER 08 トラブルシュート~問題把握~

8.1 問題把握の進め方と収集情報
   8.1.1 問題把握で収集する情報
   8.1.2 (1)故障内容と一次対応状況
   8.1.3 (2)故障時のシステム動作状況
   8.1.4 (3)システム構成と非機能要件
   8.1.5 (4)問題把握の手順
8.2 問題把握作業のノウハウ
   8.2.1 故障内容の収集方法
   8.2.2 一次対応状況の収集方法
   8.2.3 故障時のシステム動作状況の収集方法
   8.2.4 システム構成の収集方法
   8.2.5 非機能要件の収集方法
8.3 例題による実習~プロセス/技法の実践方法

CHAPTER 09 トラブルシュート~原因分析~

9.1 原因分析の進め方
   9.1.1 原因分析のゴール
   9.1.2 原因分析のアウトプット
   9.1.3 原因分析の手順
9.2 原因分析のノウハウ
   9.2.1 故障発生サーバの特定のノウハウ
   9.2.2 故障原因の切り分けと推定
   9.2.3 証跡を用いた分析結果の裏付けのノウハウ
9.3 事例による学習~プロセス/技法の実践方法
   9.3.1 ステップ1:サーバの切り分け
   9.3.2 ステップ2:故障原因の切り分けと推定
   9.3.3 ステップ3:証跡を用いた分析結果の裏付け



-------------------------------------------------------
巻末付録 1 情報収集/集計で使えるツール

巻末付録 1について
付録A Java編 
A.1 JDK標準ツール
   A.1.1 jps
   A.1.2 jinfo
   A.1.3 jstat
   A.1.4 jstack
   A.1.5 jmap
   A.1.6 GCログ
   A.1.7 スレッドダンプ
   A.1.8 クラスヒストグラム
   A.1.9 jconsole
   A.1.10 jvisualvm
A.2 JDK標準以外のツール
   A.2.1 samurai
A.2.2 GCViewer
   A.2.1 samurai

付録B Linux編 
B.1 OS標準ツール
   B.1.1 vmstat
   B.1.2 sar
   B.1.3 netstat
   B.1.4 ps
   B.1.5 top

付録C Windows編 
C.1 OS標準ツール
   C.1.1 perfmon.exe
   C.1.2 taskmgr.exe

巻末付録 2Javaアプリケーション起動オプション

巻末付録 3例題の解答例

COLUMN

ユーザとの適切な関係維持のために
テストとデバッグの違い
Javaの代表的なソフトウェアアーキテクチャ
開発が終わってもバージョン管理は終わらない
開発環境を統一しよう
「解析データ」の取得はセキュリティ的に危険?
復旧作業に失敗したときのことも考える
トラブルシュートのための設計とは?
ロック・ロック解除モデルのデメリット
一歩進んだバージョン管理
マルチスレッド処理のバグ
機能要件と非機能要件
開発環境の仮想化
ソースコードにログを埋め込む場合の注意点
記述ミスが表面化するタイミング
「仕様変更」という修正方法
暫定的なデバッグログを書かない
エラーメッセージに慌てない
対処策の実施を自動化する
GCの種類
仮想化技術を利用したシステムの構成図
トラブルシュートのゴールの明確化
Sorryサーバ
対処策の実施は柔軟に
-------------------------------------------------------

各種問い合わせは以下のリンクからご連絡ください

関連商品

入門Haskellプログラミング

販売価格:4,104円(税込)

2019.07.31発売

絵で見てわかる量子コンピューターの仕組み

販売価格:2,786円(税込)

2019.07.10発売

作れる!学べる!Unreal Engine 4 ゲーム開発入門 第2版

販売価格:3,542円(税込)

2019.07.03発売

おすすめ特集

今月のクーポン

翔泳社の通販SEshopなら全品送料無料、ポイント還元、さらに毎月更新の割引クーポンでお得!

Python特集

【今からはじめるPython特集】おすすめ本を入門~上級までレベル別にご紹介!

情報処理教科書シリーズ

情報処理技術者試験におすすめの参考書「EXAMPRESS 情報処理教科書シリーズ」で最短合格!

アルゴリズムと数学の本

プログラマ脳を鍛える!エンジニアが読むべきアルゴリズムと数学の本特集。

【特集】翔泳社のロングセラービジネス書

初版刊行以来人気を集め続けている翔泳社のロングセラービジネス書をご紹介。

SQL/データベース関連本特集

初心者向けの入門書から、達人レベルの専門書まで!SQL/データベース関連おすすめ本特集。

特集をもっと見る