この特集のトップページへ
Chapter 4:データストア層の構築

head2.gif 4.2.2 COM+カタログへの登録
 では,前項で作成したCOMコンポーネントを,さっそくCOM+カタログに登録してみる。COM+カタログに登録する手順は,次のようになる。

1)COM+アプリケーションを新規作成する

 [コンポーネントサービス]管理ツールから[コンピュータ]−[マイコンピュータ]の配下にある[COM+アプリケーション]を右クリックし,表示されたメニューから[新規作成]−[アプリケーション]を選択する(Fig.4-14)。

Fig.4-14 COM+アプリケーションの新規作成
fig4_14.gif

 すると,[COMアプリケーションインストールウィザード]が起動するので,[次へ]ボタンを押す(Fig.4-15)。

Fig.4-15 COMアプリケーションインストールウィザード
fig4_15.gif

 次に,既成のアプリケーションをインストールするか空のアプリケーションを作成するかを尋ねてくるので,[空のアプリケーションを作成する]ボタンを押す(Fig.4-16)。

Fig.4-16 インストールか新規作成かの選択
fig4_16.gif

 すると,アプリケーションの名称を尋ねられるので,適当な名前を入力する(Fig.4-17)。ここでは,アプリケーション名に“Complus Sample”と指定することにする。

 アプリケーションの名称の下にある[アクティブ化の種類]では,[サーバーアプリケーション]を選択する。ここで[ライブラリアプリケーション]を選択した場合,そのCOMコンポーネントはCOMクライアントと同じメモリエリア内に実体化される。そのため,リモートで呼び出すことはできなくなる。ビジネスロジック層のように別のコンピュータから呼び出されるような場合には,[サーバーアプリケーション]を選択するのが一般的である。

Fig.4-17 空のアプリケーションを作成
fig4_17.gif

 次に,このアプリケーション(に含まれるCOMコンポーネント)をどのユーザーのアカウントで実行するのかを選択する(Fig.4-18)。

 ユーザーは,[対話ユーザー]か[特定のユーザー]のどちらかを指定することができる。前者を選択したときには,そのコンピュータにログオンしているアカウントによってCOMコンポーネントが実体化される。もし誰もログオンしていなければ,COMコンポーネントは利用できない。後者を選択したときには,いつでも指定したユーザーのアカウントでCOMコンポーネントを実体化させることができる。

 一般的に,ビジネスロジック層においてCOM+を使う場合には,あるデータベースにアクセスできるだけの権限を備えたユーザーを作っておき,そのユーザーを指定してデータベースにアクセスする。つまり,[特定のユーザー]を利用する。もし[対話ユーザー]を選んでしまうと,COMコンポーネントを実体化しようとしたときに誰がログオンしていたのかによって権限が変わってしまうばかりか,誰もログオンしていないと利用できないため,都合が悪い。

 しかし,ここで作成しているのは簡単なサンプルであり,サンプルのためにユーザーを作成するのも面倒なので,[対話ユーザー]を選択することにする。もちろん,適当に利用できるアカウントがあれば,[特定のユーザー]を選択して,そのユーザーアカウントを指定してもかまわない。

Fig.4-18 対話ユーザーの選択
fig4_18.gif

 最後に完了のメッセージが表示され,COM+アプリケーションのインストールは完了する(Fig.4-19)。

Fig.4-19 完了
fig4_19.gif

 [コンポーネントサービス]管理ツールの[コンピュータ]−[マイコンピュータ]−[COM+アプリケーション]の配下に,登録したCOM+アプリケーションが表示されることを確認してほしい(Fig.4-20)。

Fig.4-20 登録されたCOM+アプリケーション
fig4_20.gif

attenticon.gifCOM+アプリケーションは,COM+アプリケーションの名前ではなく,アプリケーションID(AppID)と呼ばれる固有の識別値で認識される。アプリケーションIDは,COM+アプリケーションを作ったときに割り振られる128ビットのランダム値(GUID)である。あるCOM+アプリケーションを削除したあと,同じ名前で再度COM+アプリケーションを登録したとしても,両者のアプリケーションIDは同じ値にならないため,同一のCOM+アプリケーションとはみなされない。

2)COMコンポーネントを提供するCOMサーバーのファイルをドラッグ&ドロップする

 次に,1)で用意したCOM+アプリケーションのなかに,COMコンポーネントを登録する。具体的には,COM+アプリケーション(今回の場合には,[コンピュータ]−[マイコンピュータ]−[COM+アプリケーション]−[Complus Sample])の配下にある[コンポーネント]をクリックして開き,COMコンポーネントを提供するCOMサーバーのdllファイルをドラッグ&ドロップすればよい(Fig.4-21)。

Fig.4-21 COMコンポーネントの登録
fig4_21.gif

 すると,Fig.4-22に示すように,ドラッグ&ドロップしたCOMサーバーに含まれるCOMコンポーネントの一覧が表示される。

Fig.4-22 登録されたCOMコンポーネント
fig4_22.gif

 先に作成したdllファイルには2つのCOMコンポーネントが含まれるので,2つのアイコンが表示されることになる。もちろん,さらに別のdllファイルをドラッグ&ドロップして,COMコンポーネントを追加することもできる。


 以上で,COM+アプリケーションの設定は完了である。List 4-3のプログラムを実行すると,COM+の管理下にあるCOMコンポーネントを実体化して呼び出すことができる。といっても,まだCOM+の機能を何も使っていないため,このままでは,COMの状態で実行されているのか,COM+の管理下で実行されているのかの判断は付きにくい。唯一わかるのは,COM+で管理されているCOMオブジェクトが実体化されているあいだ,Fig.4-22に示した画面において,COMコンポーネントのアイコンがアニメーション表示されるという点くらいである(COMコンポーネントから実体化されたCOMオブジェクトがすべて破棄されると,アイコンのアニメーションは停止される)。

prevpg.gif Chapter 4 4/16 nextpg.gif