3 UAP の設計
3.3 性能向上,操作性向上に関する UAP の設 計
ここでは,性能向上と操作性向上に関して
UAP
設計時に考慮する点の中で,特にHiRDB
サーバを使用する場合とXDM/RD E2
を使用する場合で差異がある項目について 説明します。その他の性能向上,および操作性向上に関する
UAP
設計については,マニュアル「HiRDB Version 9 UAP開発ガイド」を参照してください。
3.3.1 配列を使用した FETCH 機能
XDM/RD E2
のバージョンによって,配列を使用したFETCH
機能を使用できる場合と できない場合があります。配列を使用したFETCH
機能を使用できるバージョンを次に 示します。配列を使用した
FETCH
機能を使用できるバージョンXDM/RD E2 08-00
以降3.3.2 複数接続機能
(1) 機能概要
複数接続機能は,HiRDBクライアントで一つの
UAP
から,XDM/RD E2に対して複数 のCONNECT
を別々に実行できるようにする機能です。複数接続機能のそれぞれの接続は独立していて,DBコネクションサーバのタスクは接続 ごとに割り当てられて別々のトランザクション(別々のアクティビティ)として処理さ れるので,UAPは複数の
SQL
文を同時に実行できます。一つのUAP
から複数接続でき るので,実行するUAP
の数を削減でき,全体としてのUAP
のメモリ所要量を削減でき ます。XDM/RD E2
の最大接続数は,接続ごとに別ユーザとしてカウントされるので,ユーザ 数の上限ではなく,同時にCONNECT
する接続数の上限となります。複数接続機能の特長を次に示します。
• 接続ごとに,異なるユーザ
ID,パスワードを使用できます。
• 接続ごとに,複数の
XDM/RD E2
へ接続できます。環境変数グループを使用する場合 は,ほかのHiRDB
サーバと同時に接続することもできます。複数接続機能の処理概要を図
3-2
および図3-3
に示します。図
3-2 複数接続機能の処理概要(マルチスレッドを使用しない場合)
3.
UAPの設計図
3-3 複数接続機能の処理概要(マルチスレッドを使用する場合)
(2) コーディング例
複数接続機能を使用した場合の
UAP
のコーディング例については,マニュアル「HiRDB Version 9 UAP開発ガイド」を参照してください。
(3) 規則
● 複数接続機能は,C言語の場合にだけ使用できます。
● 複数接続機能を使用する場合は,UAPのコンパイルおよびリンケージ時に専用のライ ブラリを指定する必要があります。
複数接続機能を使用する場合のコンパイルとリンケージについては,マニュアル
「HiRDB Version 9 UAP開発ガイド」を参照してください。
●
X/Open XA
インタフェース環境下での複数接続機能については,マニュアル「HiRDB Version 9 UAP開発ガイド」を参照してください。
● 複数接続機能用ライブラリを使用する
UAP
では,一つの接続を保持したままスレッ ドを分岐し,そのスレッドがSQL
を実行する場合,ほかのSQL
を発行するスレッド との間で処理のシリアライズを必要とします。したがって,同一接続に対するSQL
は 同時に発行できません。異なる接続に対するSQL
は同時に発行できます。●
ALLOCATE CONNECTION HANDLE,FREE CONNECTION HANDLE
のエラー 情報を参照する場合,SQLCODE,SQLERRMではなく,リターンコード受け取り変 数の値を参照してください。リターンコード受け取り変数については,マニュアル「HiRDB Version 9 SQLリファレンス」を参照してください。
● 各接続で発行する
SQL
は,XDM/RD E2上ではそれぞれ別のアクティビティとして扱 われます。このため,ほかの接続で排他されている資源を別の接続で排他しようとした場合に,
永久的な排他待ちになることがありますので注意してください※1。
また,スレッド間で発行する
SQL
の組み合わせによってデッドロックエラーになる場 合がありますので注意してください※2。注※
1 例を次に示します。
1. 接続 1
が表1
を更新
ドキュメント内
HiRDB V9 XDM/RD E2接続機能
(ページ 53-56)