Oracle技術者のためのバッチアプリケーション開発講座(1)

バッチアプリケーション設計のポイント

データベースの運用に当たって、効率のよいバッチアプリケーションが作成できるかどうか、は大きな課題です。本連載では、Oracle Databaseの管理運用を前提に、効率のよいバッチアプリケーション作成のためのテクニックを紹介していきます。
株式会社ワン・オー・ワン
白砂 丈太郎
2008/08/25


実行ログは重要

 すべてのアプリケーションにおいて実行ログは非常に重要なものですが、特にバッチアプリケーションではエラー発生時の原因を究明するうえで必要不可欠な情報です。

 オンラインアプリケーションでエラーが発生した場合、エラー情報は画面を通してユーザーに直接見える形でフィードバックされます。一方、バッチ処理はジョブ管理システムによってバックグラウンドで実行されることが多いので、エラー情報がユーザーに直接フィードバックされません。すなわち、処理の実行結果がブラックボックスになってしまうのです。

 エラーが発生した場合に実行ログがなかったら、「処理のどこでエラーが発生したのか」も「エラーの原因は何か」も分からないままになってしまいます。このため、一般的なバッチアプリケーションでは、処理経過やエラー内容に関するログを必ず出力します。

 また、オープンシステムにおけるバッチ処理では、OSコマンドやシステム製品のユーティリティなどの組み合わせによって処理をつないでいくのが一般的です。

 従って、一口に実行ログといっても、OSが出力するログもあればシステム製品によって出力されるログもあります。それぞれのログは異なるフォーマットで別々の場所に出力されるので、1つのバッチ処理から出力された実行ログであるにもかかわらず関連性が分からなくなってしまいます。よって、これらの個別ログの内容を集約したログを、各バッチ処理の実行単位で生成する必要があります。


図3 実行ログの集約

 さらに、実行ログの出力フォーマットについても注意が必要です。実行ログのフォーマットはプロジェクトごとに独自で設計しているケースをよく見ますが、オープンシステムでは独自のフォーマットを極力避けることをお勧めします。つまり、OSやシステム製品が出力するログをそのまま利用して、さらに必要な情報を追加で出力するのです。

 独自フォーマットとして設計する部分は、バッチアプリケーションの開始日時や終了日時などの共通情報に限った方がよいでしょう。独自のフォーマットでログを生成してしまうと、限られた運用担当者しかログを解読できなくなってしまいます。

 担当者が変わる際には、ログの見方などを次の担当者に引き継ぐ必要があります。このような独自色は、オープンシステムを利用するメリットを自ら削ってしまうことになります。

◆◆◆

 今回は、バッチアプリケーションを設計するうえで考慮するべき4つのポイントについて解説しました。

 次回は、バッチアプリケーションの実装テクニックについて解説する予定です。(次回へ続く)

次のページへ 3/3  

 Index
Oracle技術者のためのバッチアプリケーション開発講座(1)
バッチアプリケーション設計のポイント
  Page 1
・バッチ処理作業の抱える問題
・バッチアプリケーションは定型処理の組み合わせ
  Page 2
・設計段階から性能を考慮しよう
  トランザクション処理の特性を理解した設計を行う
  性能上のリスクは設計段階で極力排除
・リカバリ方式はシンプルに
→ Page 3
・実行ログは重要

Databaseフォーラム全記事インデックス

TechTargetジャパン

Database Expert フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH