WR blog

about Enterprise IT, Oracle Database, Jazz/Fusion Music, etc…

WR blog RSS Feed
 
 
 
 

Archive for May, 2005

エラーの分類とエラーハンドリング戦略

エラーの種類を簡単に。

ビジネスロジックエラー(代替フロー) システムエラー 入力エラー プログラミングエラー 内部状態不整合エラー (他にある?)

ビジネスロジックエラー

ユースケースにおける、いわゆる代替フロー。 残高1000円なのに、2000円引き出そうとしたときの処理フローに相当 機能定義・論理設計・基本設計段階で洗い出される必要がある。 機能の一部として、エラー発生時の処理が明確に洗い出されている必要がある。 アプリケーションは、エラー内容に応じた処理を実行するように実装されている必要がある。

システムエラー

動作環境などが正常に動いていない場合のエラー ATMシステムで、ATMとバックエンドシステムのネットワークが疎通していない場合や、バックエンドシステムにおいて、RDBMSが動作していない場合などに相当 基本設計・詳細設計段階で洗い出されている必要がある。 要件にも依存するが、致命的エラーであることをユーザーに通知できれば良い。エラーの種別毎に処理を行うなどは求められないケースが多い。 適切に不具合情報を入れ込んだロギングが重要。 2重化など、システムエラーが起こる原因自体を排除するor発生頻度を低める取り組みについては、ここでは触れない。

入力エラー

いわゆるvalidationエラー。入力したデータが、まずい場合 (機能定義・)論理設計・基本設計段階で洗い出される必要がある。 金額入力欄にアルファベットが入力された場合など (ビジネスロジックと同様?)

プログラミングエラー

API・クラスライブラリ・フレームワーク・ユーティリティクラスを適切に使用していないために生じるエラー。 基本的に、詳細設計・プログラミング作業中にしか発生しない。 結合テストにおいてこのエラーの発生する可能性を可能な限り低めるような努力がなされていなくてはならない。 DAOにConnectionをsetせずにfindXXX()メソッドを呼んだ場合など

内部状態エラー

主に2種類あると考える(もっとあるかも)

システムが保持するデータの不整合

マスタ不一致エラーとか 主に運用のミスによる

プログラムのロジックバグにより、満たされているべき前提条件が満たされなくなったため発生するエラー

たいていの場合DAOにConnectionがキチンと設定されるが、特定の処理を実行するとDAOにConnectionが設定されなくなり、nullPointerExceptionが発生する 設計・テスト段階で洗い出しに失敗したプログラミングエラーが顕在化したケースと考えることが出来る。

要件にも依存するが、致命的エラーであることをユーザーに通知できれば良い。エラーの種別毎に処理を行うなどは求められないケースが多い。 適切に不具合情報を入れ込んだロギングが重要。 (システムエラーと同様?)

フェーズとエラー種別とエラーハンドリング

フェーズとエラー種別により、適切なエラーハンドリング戦略は異なる。 プログラミングフェーズで好ましいエラーハンドリングと、保守・運用フェーズで好ましいエラーハンドリングは異なる。そもそも出るエラーの特性がまったく異なるのだから、乱暴な比較ではあるのだけれども。

すくなくとも、エラーハンドリングの目的が、「機能仕様を満たす」ことか、それとも、次のアクションを起こしやすくするための単なる「情報提供」か、で、求められる戦略が異なる点は留意したほうが良い。

ツッコミは愛をこめて。

artonさんの日記のやりとりに刺激されて、妄想含みで書いてみた。乱文失礼。

ホリエモンの錬金術

dkirokuでURLを見かけたので再度よむことにしてみた。

サマライズもしくは気になった箇所を抜粋する。 そして、自分の勉強のため出てきた用語をまとめてみる。

ホリエモンの錬金術 -4 (フォレスト・コンサルタンツ - 山根治blog)

ホリエモン・マジック・ショーの3つのトリック

光通信とかグッドウィルとか大和証券SMBCを仲間に引き入れた 通算3万分割にも及ぶ株式分割と、2回にわたる公募増資 決算数字のお化粧

決算数字のお化粧について

正体不明の仕掛品(565百万円の仕掛品; 第9期(平成16年9月期)単体;経常利益(単体)1,410百万円の38%に相当) 第8期に計上されていた貸倒引当金の大幅取り崩しによる、特別利益(貸倒引当金戻入額)の計上(141百万円) 46億円余りの無形固定資産の計上(第9期の連結B/S;46億円)と、その大半が過年度には経費として発生年度に一括処理 資産性に乏しい企業の買収による、営業権(1,121百万円)と連結調整勘定(2,408百万円)の計上 とか

ホリエモンの錬金術 -6 (フォレスト・コンサルタンツ - 山根治blog)

堀江さんは平成8年4月に、有限会社オン・ザ・エッヂを設立し、代表取締役に就任します。出資金600万円は、有馬晶子さん(現、株式会社クリアキューブ代表取締役)の父有馬純一郎さん(当時、ブルテルインターナショナル株式会社代表取締役)からの借入金で賄ったようです。社員は、堀江貴文、有馬晶子、有馬純一郎の三名。

当時は、1株5万円。

ホリエモンの錬金術 -7 (フォレスト・コンサルタンツ - 山根治blog)

一株300万円という異常に高い価格で第三者割当増資を行なったのです。平成11年9月4日に、株式会社光通信へ150株、同年9月30日に、株式会社グッドウィル・コミュニケーションへ50株。会社には、それぞれから450百万円(300万円×150株)、150百万円(300万円×50株)入金。資本として入ってきた6億円は、資本金と資本準備金に半分ずつ振り分けられています。

ホリエモンの錬金術 -8 (フォレスト・コンサルタンツ - 山根治blog)

この時に3億6千万円(300万円×120株)という購入資金は実際には動いている形跡がありませんので、この取引そのものが架空のものである可能性が高いのです。  何故このような小細工がなされたのでしょうか。それは、前回指摘した一株300万円という、額面の60倍にもつり上げた会社の株価を、いかにも現実らしく装うためであると考えられます。つまり、共同経営者である有馬晶子さんの株式を一株300万円で購入したように見せかけて、一株300万円という評価額が現実的なものであるかのように世間を欺いているらしいです。

1株300万円の価値があるように見せかけた。

平成11年12月17日、堀江さんは、大和証券エスビーキャピタル・マーケッツ株式会社(現、大和証券SMBC)と株式会社光通信パートナーズに対して、持株700株(580株+120株)のうちから、それぞれ、30株と10株とを譲渡しています。一株300万円、総額はそれぞれ、9,000万円と3,000万円。この譲渡についても、同じ(注5)が付けられ、「資金調達を目的とする発行」と虚偽の記載がなされています。この二者に対する株式譲渡は、ホリエモン・トリック(評価のつりあげ)のいわばアリバイ作りに使われたと思われるものです。

上と同様。

この時会社は、資本準備金を取り崩して資本に組み入れると同時に、1:12の株式分割を実施しています。その後矢継早に、法外な株式分割が4回も繰り返されるのですが、その第1号となるのがこのときの株式分割(1株を12株に分割)なのです。この株式分割こそ、ホリエモン・マジックの第三のカードです。

300万円にかさ上げした株価を分割して、1株あたりの価格を下げた。

 平成12年4月6日、マザーズ上場。会社は上場時に、1,000株を公募価格600万円で売り出します。この評価額(公募価格)600万円は、12分割後の評価額25万円の24倍に相当します。 場初日は、相場全体の地合いが悪く、公募価格の600万円を25%下回る450万円の売り気配で引けています。翌4月6日に440万円の初値がつき、263株の出来高で終わっています。

大和証券SMBCと、光通信パートナーズは、5万円のライブドア株の価値を300万円とかさ上げする片棒を担ぐ代わりに、(440万円 x 12 - 300万円) x 株数 の儲けを得た(or得る権利を得た)。

ホリエモンの錬金術 -9 (フォレスト・コンサルタンツ - 山根治blog)

 この5年間ライブドアは、まともな収益構造を持っておらず、赤字をタレ流しています。その赤字幅を縮めているのがIPO(新規上場)を支援するという名目でなされているインチキ上場システムです。

ここがよくわからない。

それにしても、5年の間に36万分割を敢行するなど、あきれてものが言えません。株価操作がみえみえのこの破廉恥な行為が、本当に適法と言えるのでしょうか。しかも、その最大の受益者が、会社の筆頭株主であるホリエモン自身なのですから。分割とセットになった増資をするたびに、ホリエモンの資産が自動的に増える仕組みになっているのです。

買う株主がいるから、ホリエモンはさらに肥える。

追記 2005/05/19

一概に言えないと思うし、自分も良くわかっていないので差し引いて考えてほしいのだけど、 【一般に】一般公募による増資は既存株主の利益を損ねる。 なぜなら、株の流通量が減る増えるため既存の株の価値を下げるから。 既存の株主の持ち株比率を下げるから。

ただし、資本量が増えるため、投資額を増やすことが可能になる。 よって、流通量の増大による価値の低下と、資本量増大にともなう追加投資による利益増加見込みのトレードオフの関係にあるといえる。 ゆえに、再投資を効率的に行うことができなかった場合、株価が低下して、既存株主の利益を損ねる。 ただ、如何に再投資を効率的に行っても、既存の株主の持ち株比率が下がってしまう。

しかし、株式分割を行いながら、増資を行うことで、

既存の株主の持ち株比率を下げることなく 増資にともなう株価低下を避ける

ことができた。と、整理。

用語

連結調整勘定 : B/S上の純資産(資産-負債)よりも実際の価値が高い場合の差額を計上する勘定科目

CyberSeminar - 連結経営 > 3:連結会計の基礎(その2) - [...]

XAエミュレート対象となるリソースマネージャの扱い

from S2.2.9 リリース - koichikのひとりごと

例えば XA に対応した Oracle (Oracle が提供する XADataSource を使用する) と対応していない HSQLDB (S2 が提供する XADataSource で XA をエミュレートする) を同一のトランザクション中で更新する場合,最初に HSQLDB からコネクションを取得することで,二つの DB がどちらもコミットされるかどちらもロールバックされるかという原子性 (ACID の A) が実現できます.

なるほどーそういうことか。理解できました! ありがとうございます! koichikさん。

昨日の質問

昨日のJ2EE勉強会(仮)で、以下の質問をさせていただいた。(若干、わかりやすく整理しています。昨日はもっと要領を得ない質問な感じ(苦笑)でした。)

S2JTAの枠組みの中で、XA非対応のリソースマネージャを扱う場合、XAをエミューレートするラッパ経由で扱うことになるようだが、その場合、

XA非対応のリソースマネージャ1つがJTA配下のトランザクションに参加している場合、1フェーズコミットプロトコルを使用する > XA対応のリソースマネージャ1つの場合、通常の1フェーズコミットプロトコルを使用する > XA対応のリソースマネージャ2つ以上の場合、2フェーズコミットプロトコルを使用する >

という理解でよいか?

なるほど、S2JTAの実装はLast Resource Commit Optimizationの機構を持っているため、 1番目、2番目の内容は正しいようだ。ただ、koichikさんの日記にかかれてあるように、

Last Resource Commit Optimization は,このように複数のリソースがある場合に,最後のリソースに対しては prepare ではなく,通常の 1 [...]

J2EE勉強会(仮)

J2EE勉強会(仮) - ひがやすを blog

参加してきた。

内容は、

Seasar2のJTA実装、コネクションプール実装をソースコード中心に追っかける JSFの特徴・アーキテクチャをPPTで説明する

でした。説明はすべてひがさん。お疲れ様でした&ありがとうございました。

リアルタイム・システムの構造化分析 リアルタイム・システムの仕様書作成手法

リアルタイム・システムの構造化分析 リアルタイム・システムの仕様書作成手法 - 電脳書房在庫目録

昔から読んでみたく思っていたのだけど、いまさら・・・・って感じだな。高いし。

なぜ読みたいと思っていたのか?というと、分析のためのツールキットはたくさん持っていたほうがよいと考えるから。 コンサルタントが経営分析などのテンプレートをたくさん用意しているように、 設計者・分析者はソフトウェアの分析のためのある程度のツールキットを用意すべきと考えるから。

Profile

Jazz/Fusion Musicを愛するIT技術者です。 現在、Oracle Database 関連の仕事をしています。

保有資格

  • Oracle Master 10g Platinum
  • Oracle Master 11g Gold
  • Oracle Master Expert 10g RAC
  • Oracle Master Expert Oracle on Linux
  • LPIC level2
  • 日商簿記3級

連絡先

ご連絡は、wrcsus4 _at_ gmail _dot_ com にお願いいたします。

 

May 2005
M T W T F S S
« Apr   Jun »
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Recent Posts

Recent Comments

Tags

Categories

Pages

Archives

Meta