[case study] transaction types

■abs
commit or rollback??

■env+conditions
□operation flow

opeA→opeB→opeC

ParentBean#test(){
 opeA;
 ParentBean.childBean.test();
 opeC;→EXCEPTION!!!
}
ChildBean#test(){ opeB }

□relations

childBean -DI→ parentBean

□bean def file

<'bean id="parentBean" class="ParentBean">
 <'property name="childBean" ref="childBean"/>
<'/bean>
<'bean id="childBean" class="ChildBean"/>

□bean def file (transaction)

 <'bean id="applyTransactionAttribute"
    class="org.springframework.transaction.interceptor.NameMatchTransactionAttributeSource">
  <'property name="properties">
  <'props>
   <'prop key="test">PROPAGATION_REQUIRED<'/prop>★
  <'/props>
 <'/property>
 <'/bean>

 <'bean id="autoProxy"
  class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
  <'property name="interceptorNames">
   <'list>
    <'value>applyInterceptor<'/value>
   <'/list>
  <'/property>
  <'property name="beanNames">
   <'list>
    <'value>parentBean<'/value>
    <'value>childBean<'/value>
   <'/list>
  <'/property>
 <'/bean>

■case study
PROPAGATION_REQUIRED―既存トランザクションを流用
 opeA: 新規トランザクションAを生成
 opeB: 既存トランザクションAがあるので そいつを流用
 opeC: opeA時に生成されたトランザクションAをそのまま使用
 ↓
 opeCでEXCEPTIONが発生した場合
 opeAもopeBもロールバックされる。

PROPAGATION_REQUIRES_NEW―常に新規トランザクション
 opeA: 新規トランザクションAを生成
 opeB: 新規トランザクションBを生成
    この時 トランザクションAは消える
 opeC: 新規トランザクションCを生成
    この時 トランザクションBは消える
 ↓
 opeCでEXCEPTIONが発生した場合
 opeAは トランザクションAがコミットされる前に消されるので コミットされない
 opeBは トランザクションBが無事終了するのでコミットされる
 opeCは 普通にロールバックされる
 
PPROPAGATION_NESTED―子トランザクションを利用
 [bean def file (transaction)]を変更し childBeanにはPPROPAGATION_NESTEDを指定
 opeA: 新規トランザクションAを生成
 opeB: 新規トランザクションBを生成
    この時 トランザクションAは消える
 opeC: 新規トランザクションCを生成(たぶん)
    この時 トランザクションBは消える
 ↓
 opeCでEXCEPTIONが発生した場合
 opeAは トランザクションAがコミットされる前に消されるので コミットされない
 opeBは トランザクションBが無事終了するのでコミットされる
 opeCは 普通にロールバックされる



ref:
http://8318.blog100.fc2.com/blog-entry-225.html

tag : PPROPAGATION_NESTED PROPAGATION_REQUIRES_NEW PROPAGATION_REQUIRED

2008-07-29 07:36 : __fw__spring : コメント : 0 : トラックバック : 0 :

[旅][US][査証申請] 在日中国人がアメリカへゆく

短期観光ビザ(B-2)
パスポートに米国出国日+6ヶ月以上の残存有効期間の残存有効期間があること
ビザ申請料:$100
ビザ発行料:NONE
必要書類:
・現在有効なパスポート
 有効余白頁が2頁以上あること
・過去10年に発行されたパスポート
・最後に発給されたビザが貼ってあるパスポート
・EVAF DS-156「オンライン入力式非移民ビザ申請書」
 申請書は3ページで1セット
 ホチキスで留めないこと
 申請書は折らないこと
・カラー写真
 5cm x 5cm
 背景は白
 最近6ヶ月以内に撮影されたこと
 頭部が25mm~35mmあること
 →DS-156の所定の場所に糊またはテープで貼付(ホッチキス不可)
申請料支払い証明
 大使館の支払いページにログインし、支払い情報番号を入手後、ペイジー(PAY-EASY)マーク付のATMで申請料$100を支払。
 →ATM領収証(利用明細)を面接時に提出。
・有効な日本の再入国許可証
・外国人登録証の両面コピー
・家族のパスポート(ご家族が日本で同居している場合のみ)
・婚姻の証明(該当者のみ)
・在職証明または在学証明 (観光ビザを申請する方、該当者のみ)
・財政証明
 銀行残高証明書、旅行費用支払領収証等
・英文会社推薦状(商用ビザを申請する方のみ)
・Conference Questionnaire
・面接予約確認書
 アメリカ国務省のウェブページにアクセスし、DS-156を電子登録後、面接予約を取得。
 →面接予約確認書を印刷
・返信用封筒として宛先を記入したエクスパック 500 (EXPACK 500)
・クリアーフォルダー

ref:
http://www.arukikata.co.jp/visa/visa_b.html, 2008/7/1
http://travel.state.gov/visa/frvi/reciprocity/reciprocity_3537.html

links:
地球の歩き方 ビザ取得代行センター
http://www.arukikata.co.jp/visa/
About the Visa Office
http://travel.state.gov/visa/temp/wait/wait_4638.html
Map to the U.S. Embassy in Japan
http://tokyo.usembassy.gov/e/acs/tacs-7125c.html
Visa Waiver Program (VWP)
http://travel.state.gov/visa/temp/without/without_1990.html
ビザ申請・発行料金
http://tokyo.usembassy.gov/j/visa/tvisaj-applicationfeesfaq.html
駐日アメリカ合衆国大使館・総領事館
http://www.mofa.go.jp/mofaj/link/emblist/n_america.html#01
申請書
http://tokyo.usembassy.gov/j/visa/tvisaj-nivforms.html
非移民ビザ
http://tokyo.usembassy.gov/j/visa/tvisaj-nivgeneral.html
非移民ビザ: 予約ステップ
http://tokyo.usembassy.gov/j/visa/tvisaj-niv-walkin1.html
郵送によるビザ申請
http://tokyo.usembassy.gov/j/visa/tvisaj-niv-mail1.html

tag : アメリカ ビザ 査証 申請 在日 中国人 VISA US

2008-07-24 18:55 : ├ 北米 : コメント : 0 : トラックバック : 0 :

Factory Method Pattern

オブジェクトの生成方法に工夫を加えて、
より柔軟なオブジェクト生成することが目的。

FactoryMethodパターンは、
インスタンスの生成をサブクラスに行わせることで、
より柔軟な生成するインスタンスの選択を可能にする。

FactoryMethodパターンでは、
オブジェクトの生成を担うメソッド(factory method)を通して
間接的にオブジェクトを生成する。
メソッドを介することで、直接new Object()とするより
柔軟性に優れる。

ref:
http://www.techscore.com/tech/DesignPattern/FactoryMethod.html

tag : GoF Factory Method パターン

2008-07-19 11:07 : designpattern : コメント : 0 : トラックバック : 0 :

正規表現

特殊文字列
. ^ $ [ ] * + ? | ( )
→メタ文字列

メタ文字列を単なる文字として使う場合は[\]を前に足す
\. \^ \$ \[ \] \* \+ \? \| \( \) \\

□とにかく何でもいい1文字[.]
半角の[.]で とにかくなんでもいい1文字を表現
ex. 私は...が..→私は早起きが苦手

□行の先頭と最後[^$]
行の先頭や最後にのみ存在する文字列を検索したい場合に[^$]
ex. ^ありがとう→ありがとうから始まるもの
  ありがとう$→ありがとうで終わるもの

□同じ文字の繰り返し[* + ?]
同じ文字の繰り返しを表す正規表現は [*]、[+]、[?]の3つ
・[*]:[*]の直前の文字が0個以上連続するか
 ex. おー*い→おい、おーい、おーーーい
・[+]:[+]の直前の文字が1個以上連続するか
 ex. おー+い→おーい、おーーーい
・[?]:[?]の直前の文字が0個か1個だけ存在するか
 ex. Windows?→Window、Windows

□何でもいい文字の連続[.*]
[* + ?]は[.]と併用可
ex. コーヒーが好き.*。→コーヒーが好きです。、コーヒーが好きかもね。
  [.]が[*]であるもの→何でもいい1文字が0個以上連続するもの

□いずれかの文字列[|]
| で区切られた文字列のいずれかの文字列が存在するもの
ex. hoge|piyo→hoge、piyo

□指定した文字のどれか[[]]
[]中のどれか1つに合致するもの
ex. 今日は[晴曇雨]です→今日は晴です
  A[A-Z]C→ABC
  1[0-9]8→108
  A[^A-Z0-9]Z→A-Z
  []の中で^→XX以外→2番目の文字はアルファベットと数字以外の文字

□グループ化[()]
まとめて数文字単位で処理
ex. (じゃ)+ーん→じゃーん、じゃじゃーん
  明日(ぼく|わたし)は帰宅します→明日ぼくは帰宅します、明日わたしは帰宅します


ref:
http://www.mnet.ne.jp/~nakama/

tag : 正規表現

2008-07-16 05:35 : j2ee : コメント : 0 : トラックバック : 0 :

Template Method Pattern

templateは。「文字の形に穴が開いている薄いプラスチック板」のこと。
その穴をペンでなぞれば、手書きでも綺麗な文字が書けるわけ。
ペンなのか、マジックなのか、鉛筆なのか、筆なのか。
仕上がりは違うけど同じ文字が書ける。
templateは、形を決定する枠組みを提供するだけ。

TemplateMethodパターンは、
テンプレートの機能を持つパターン
スーパークラスで処理の枠組みを決め、
サブクラスでその具体的内容を実装する。
スーパークラスでは、
アルゴリズムの流れの中で利用される抽象的メソッドと、
この抽象的なメソッドを利用した処理のアルゴリズムを定義するTemplateMethodを定義する。


ref:
http://www.techscore.com/tech/DesignPattern/TemplateMethod.html

tag : GoF Template Method パターン

2008-07-16 00:53 : designpattern : コメント : 0 : トラックバック : 0 :

Adapter Pattern

adapterは「適合させる」ゆう意味。
Adapterパターンは、
インタフェースに互換性のないクラス同士を組み合わせることが目的のパターン

これまで利用していたメソッドAと同じ機能を、選りすぐれた形で提供するメソッドBを発見。が、
メソッドBは、メソッドAとは異なるインタフェースを実装しているため、
メソッドBを使用するには、あれこれ変更が必要。大変。
で、
メソッドAとメソッドBの違いを吸収するAdapterを準備。
少ない変更で新しいメソッドに乗り換えられる!

この目的のために
Adapterパターンは2つの方法を与えている。
一つは、継承する方法。もう一つは、委譲しちゃう方法。

ref:
http://www.techscore.com/tech/DesignPattern/Adapter.html

tag : GoF Adapter パターン

2008-07-15 22:20 : designpattern : コメント : 0 : トラックバック : 0 :

Iterator Pattern

「繰り返す」ゆう意味。
日本語で「反復子」
Iteratorパターン
要素の集まりを保有するオブジェクトの各要素に順番にアクセスする方法を提供する為のパターン

たとえば

集約オブジェクトとしてListクラスを想定する。
Listクラスは、要素としていくつかのオブジェクトを持てる。
このListオブジェクトが持つ要素に順番にアクセスするような場合、
そのような順番で各要素にアクセスするかによって、様々さ走査方法がある。
名前順だったり、パラメータを利用した順番だったり。
これら走査方法は、Listでは提供していない。
目的によっても異なるし、沢山あるから、Listには用意し切れない。
で、
走査方法を与えるクラスをListとは別に独立させておき、
必要な走査方法を与えるクラスをユーザが自分で作成する。
結果、より柔軟な設計ができる。
プラス、
集約オブジェクトのクラスが変更になっても、影響範囲を小さく出来る。


Iteratorパターンでは、
何らかの集約体が必ずAggregateインタフェースを実装するようにしてる。
Aggregateとは、
「集合」ゆう意味で、Aggregateインタフェースでは、
Iteratorインタフェースの実装クラスを返す、iterator()メソッドを定義してるだけ。
Interatorインタフェースは、
この集約体をメンバ変数として持ち、
この集約体に次の要素が存在するかしないかをbooleanで返すhasNext()メソッドと、
次の要素を返すnext()メソッドを定義している。

ref:
http://www.techscore.com/tech/DesignPattern/Iterator.html

tag : Gof Iterator パターン

2008-07-15 22:18 : designpattern : コメント : 0 : トラックバック : 0 :

J2EEパターン

J2EEプラットフォームは多層システムから成る。
・client層:client application, etc.
・presentation層:receive the request from client.
・business層:business logic and kepping data.
・integration層:manage the connection of outer resource like db.
・resource層:outer system like database.

J2EEパターンもこの多層システムに基づいて構成されている。

・patterns of presentation phase
 ・Intercepting Filter Pattern
  リクエストの前後処理を行う。
 ・Front Controller Pattern
  リクエスト処理を集中して管理するためのコントローラを提供する。
 ・View Helper Patter
  表示用の整形に関係ないロジックをヘルパコンポーネントにカプセル化する。
 ・Composite View Pattern
  原始的なサブコンポーネントから構成されたビューを生成する。
 ・Service to Worker Pattern
  ディスパッチャコンポーネントを使ってFrontControllerPatternとViewHelperPatternとを結合し、より多くの仕事をビューに処理させる。

・patterns of business phase
 ・Business Delegate Pattern
  プレゼン層とビジネス層とを切り離し、サービスに対するファサードやプロキシの役割を持つインタフェースを提供する。
 ・Value Object Pattern
  ネットワークのトラフィックを減らして、層と層の間のデータ交換を行う。
 ・Session Facade Pattern
  ビジネスオブジェクトの複雑さを隠蔽するために、ワークフローの処理を一箇所に纏める。
 ・Composite Entity Pattern
  依存関係にある複数の永続オブジェクトを1つのエンティティBeanに纏めて、粗粒度のエンティティBeanを設計する。
 ・Value Object Assembler Pattern
  複数のデータソースから複合バリューオブジェクトを組み立てる。
 ・Value List Handler Pattern
  問い合わせの実行と結果のキャッシュ、および結果の処理方法を管理する。
 ・Service Locator Pattern
  複雑なビジネスサービスの検索や生成の処理をカプセル化し、ビジネスサービスのファクトリを検索する。

・patterns of integration phase
 ・Data Access Object Pattern
  データソースを抽象化し、データに対する透過的なアクセスを提供する。
 ・Service Activator Pattern
  EJBコンポーネントの非同期処理を行う。


ref:
http://www.techscore.com/tech/J2EEPattern/introduction2.html
2008-07-15 07:20 : designpattern : コメント : 0 : トラックバック : 0 :
ホーム  次のページ »

search

ad



counter


tag cloud

category cloud