ワークユニットを利用することにより、以下の運用が可能になります。
アプリケーションを実行するために必要となる環境を設定し、別管理できます。アプリケーションは実行環境から独立して開発できるため、新たにオブジェクトを追加する場合にも、ワークユニットにオブジェクトを追加するだけで良く、実行環境の作成が不要になります。
運用が同一となるオブジェクトを1つのワークユニットにまとめることで、運用操作を一元管理できます。ワークユニットの起動・停止により、ワークユニットに定義されたすべてのオブジェクトを一括してクライアントからアクセスできる状態にしたり、アクセスできない状態にすることができます。
ワークユニットを起動すると、アプリケーションがメモリ上にローディングされ、アプリケーションの前処理が実行されます。 前処理や後処理は本処理と独立して処理することができるため、 運用中には、クライアントからの要求に対し即座に本処理だけを行うことができます。また、ワークユニット停止時には後処理が行われます。なお、前処理(前出口プログラム)と後処理(後出口プログラム)はプロセス単位に呼び出されます。また、これらをまとめて出口プログラムと呼んでいます。アプリケーションの処理の仕組みについては、“I.15.1 APMを利用したサーバアプリケーションの作成”を参照してください。
以下に、ワークユニットに定義して利用できる主な機能について説明します。
機能 | トランザクションアプリケーションのワークユニット |
---|---|
アプリケーションプロセス多重度 | ○ |
アプリケーション自動再起動 | ○ |
サーバアプリケーションタイマ機能 | ○ |
カレントディレクトリ | ○ |
環境変数 | ○ |
キュー制御 | ○ |
キュー閉塞/閉塞解除 | ○ |
最大キューイング機能 | ○ |
滞留キュー数のアラーム通知機能 | ○ |
バッファ制御 | ○ |
優先度制御 | ○ |
ワークユニットのアプリケーション自動再起動失敗時の縮退運用 | - |
ワークユニットのプロセス多重度変更 | ○ |
コード変換 | - |
出口機能 | ○ |
○:対応 -:未対応
トランザクションアプリケーションを作成する作業について説明します。トランザクション連携の形態は、大きく以下の2つに分けられます。
1つのアプリケーションは、1つのデータベースとだけ連携します。トランザクションは、1つのサーバ内に閉じており、トランザクションはサーバ側で制御します。
1つのアプリケーションは、複数のデータベースと連携し、同時更新を行うことができます。トランザクションはクライアント側またはサーバ側で制御できます。
また、別のサーバシステムにあるデータベースとの連携も可能です。これにより、トランザクションアプリケーションやデータベースなどの資源が自由に配置できるようになり、より柔軟な運用設計が可能となります。なお、グローバルトランザクションは、X/Openの規定したXA仕様(インタフェース)に準拠しています。
以下に、ローカルトランザクション連携とグローバルトランザクション連携の場合の運用イメージを示します。
トランザクションアプリケーションを利用するためには、CORBAアプリケーションを利用する場合の作業のほかに、トランザクションに関連した作業が必要となります。
ここでは、トランザクションアプリケーションを利用する場合に必要な作業について説明します。
まず、トランザクション連携を行う前に理解しておく必要のある、以下の内容について説明します。
ワークユニットを利用したアプリケーションの実行環境
APMを利用したサーバアプリケーションの作成
サーバオブジェクトの登録
トランザクションの形態に応じてそれぞれ必要となる作業については、以下の内容で説明します。
ローカルトランザクション連携の場合
グローバルトランザクション連携の場合
また、トランザクションアプリケーションの以下について説明します。
セション情報の管理について
サーバアプリケーションプロセスの形態について
システム規模ごとのワークユニットに登録可能なオブジェクト数は、以下の計算式を満たす必要があります。
[条件式]
登録可能オブジェクト数 = システム規模ごとの内部制限値 - トランザクションアプリケーションのワークユニット数 - マルチオブジェクト常駐を使用するワークユニットの数
[内部制限値]
small : 202
moderate : 402
large : 602
super : 1002
ワークユニット1つに対してオブジェクトが1つの場合、それぞれ起動できるワークユニットの最大数は以下になります。
small : 101
moderate : 201
large : 301
super : 501