データベースを更新する処理は、データの整合性を保持するためにも、切り離すことのできない一貫した処理を行う必要があります。このような処理のことをトランザクション処理と言います。単一のオブジェクトやリソースで発生するトランザクションをローカルトランザクションと言います。
これに対して、複数のオブジェクトや複数のリソースで発生するローカルトランザクションを一元管理し、一つのトランザクションとして連携させることをグローバルトランザクションと言います。つまり、複数のローカルトランザクションを一つのトランザクションとして扱うことができるのがグローバルトランザクションです。
Interstageのデータベース連携サービスは、X/OPENの分散トランザクション処理モデル(DTPモデル)を実現することが可能であり、分散トランザクションにおけるACID特性を保証します。
Atomicity | 原子性 | トランザクションはすべて完了するか、または元の状態かのいずれかであり、データベースなどのデータは更新されているか、されていないかのいずれかの状態であることを保証します。 |
Consistency | 一貫性 | トランザクションが完了するかどうかに関わらず、データベースなどデータに矛盾がないことを保証します。 |
Isolation | 独立性 | 複数のトランザクションが同時並行的に処理されたとしても、それらはお互いに干渉せず、データの内容にも影響を与えないことを保証します。 |
Durability | 耐久性 | 一度、完了したトランザクション処理は、どのような障害があっても、結果を維持することを保証します。 |
AP(Application Program) | アプリケーション開発者によって実装されるコンポーネントです。 APは、TMやRMから提供されるサービスを利用して、トランザクションの制御を行ないます。 EJBなどのJ2EEアプリケーションが該当します。 |
TM(Transaction Manager) | トランザクションの管理を行なうトランザクションサービスです。 Interstageではトランザクションサービスとして、データベース連携サービスを提供しています。 |
RM(Resource Manager) | リソースのトランザクション管理をするプログラムです。 データベース管理システムなどが該当します。 |
cRM(Communication RM) | トランザクション制御可能な通信基盤を提供するサービスです。 InterstageではcRMとしてCORBAサービスを提供しています。 |
データベース連携サービスは、OMGによって規定されたCORBAのOTS(ObjectTransactionService)規約とSunによって提唱されたJ2EEのJTS(JavaTransactionService)規約を含めたトランザクションサービスです。Interstageでは、CORBAアプリケーションおよびトランザクションアプリケーションから利用されるデータベース連携サービスを“OTS”、J2EEアプリケーションから利用されるデータベース連携サービスを“JTS”として分類しています。
トランザクションサービスで提供される機能は以下の2つです。
グローバルトランザクション機能(グローバルトランザクション連携)
複数のリソース(データベース、MQD、JMSおよびリソースアダプタなど)で発生したトランザクションを1つのトランザクションとして連携する機能です。複数のトランザクションの完了を同期させることができます。
CORBAアプリケーションおよびトランザクションアプリケーションでは、OTSシステムとOTS用リソース管理プログラムを利用して機能を実現します。また、トランザクションの操作にはCurrentインターフェースを利用します。
J2EEアプリケーションでは、OTSシステムとJTS用リソース管理プログラムを利用して機能を実現します。また、トランザクションの操作にはJTAインターフェースを利用します。
分散トランザクション機能
CurrentインターフェースおよびJTAインターフェースを利用して分散したアプリケーション配下でトランザクションを操作するものです。リソースの数に関係なく、アプリケーション間でトランザクションを操作することができます。