第6回 最適な設計はホスト時代の流儀に同じ?


接続マネージャは誰が用意するのか?

 ところで皆さんには、接続マネージャというのは、いったいどこでだれが用意しているのか、という疑問がわいてくるのではないでしょうか? いままで話した接続マネージャの仕組みは、相手がどのようなシステムであっても応用できる仕組みです。連携したいシステムが基幹システムであっても、DBなどのミドルソフトであっても、一番初めに相手に接続するという作業が発生するからです。ですからこの接続マネージャというのは、多くの先人のアーキテクトたちが知恵を絞って、自力で仕組みを開発したものなのです。

 接続マネージャというのは事前の接続作業やプーリング、制限割り当てなどの仕組みを持っていますから、接続したい相手のミドルソフトに合わせて個別に作られている必要があります。

 でもJ2EEの世界では、DBに対する接続マネージャとして「データソース」という標準化がされています。サーバ・サイドJavaの世界では、世の中に無数にあるミドルソフトや基幹システムに対して、このミドルソフトと対となって動く接続マネージャが存在しないと、性能の面で問題になる可能性が出てきます。上記ではデータソースという接続マネージャはJ2EEで標準化されているとお話ししましたが、実はデータソースの仕組みは、Webアプリケーションサーバを作っているメーカーがWebアプリケーションサーバの中にすでに組み込んでいます。

 このおかげで、皆さんがリレーショナルDBを使う場合には、必ずデータソースという接続マネージャを使うことができるわけです。J2EEの標準で決められているというのは大きいことですね。

 とはいっても、サーバ・サイドJavaの標準化もどんどん進んできています。例えば最近、Webアプリケーションサーバに標準的に組み込まれるようになった接続マネージャとして、例えばメール(JavaMail)とかメッセージング(JMS)、あるいはJ2Cという標準に準拠したミドルソフトがあり、一般的に接続マネージャを経由したアクセスができることになっています。

図6 接続マネージャの標準化(J2EEではさまざまな接続マネージャの仕様が標準化されている)


Webアプリケーションサーバを使った
接続マネージャの作成

 接続マネージャというのはWebアプリケーションサーバに組み込まれて動きます。そのためWebアプリケーションサーバ自体も1台だけではなく複数存在している可能性があります。たくさんあるWebアプリケーションサーバの中で、本当に自分の使いたい接続マネージャが存在するかどうか探し出して使わないといけないのです。

 そのときに使われる仕組みが、JavaのネーミングサービスのJNDI(Java Naming and Directory Service)というものです。JNDIはサーバ・サイドJavaの環境で、インターネット環境でいうネットワーク上で目的のサイトの在りかを探すために使われるDNS(Domain Name Server)のような役目をします。使いたい接続マネージャの場所を探し出して、その在りかを教えてくれるわけです。

 こういう仕組みを使えば、複数のWebアプリケーションサーバの中でたくさんのプログラムが動いていても、たちどころに接続マネージャが存在する/しない、その場所を特定することができて、一挙にシステム全体の使い勝手が向上するわけです。

 ここで注意しないといけないのは接続マネージャからアクセスする資源については、きちんとWebアプリケーションサーバに登録しておかないといけないことです。この作業を実施して初めて、接続マネージャからアクセスできる資源がネーミングサービスを使って探し出せるようになるわけです。

 では、接続マネージャの例としてデータソースをWebアプリケーションサーバで登録する例を見てもらいましょう。今回のWebアプリケーションサーバは、IBM社のWebSphere Application Serverを使っていますが、ほかのWebアプリケーションサーバでもこのような手順を取ることに変わりはありません。

(1)データソースの名前を決定する

 この画面は、WebSphereのデータソースを設定する画面です。プログラムの中でJNDIを使ってデータソースを探すときに使われる名前と、そのデータソースから実際にアクセスされるリレーショナルDBのDB名を登録します。これでデータソースが作成されました。

画面1 データソースの設定ウイザード

(2)データソースの内容をみる

 この画面は、WebSphereに作成されたデータソースに定義されている、DBに接続する数などを事前に見ることができます。これ以外にも、最大接続数の制限値や、プログラムがデータソースに接続できない場合に時間切れ(タイムアウトといいます)にする時間など、いろいろな情報を決めることができます。

画面2 管理コンソール画面

4/6

 INDEX

第6回 最適な設計はホスト時代の流儀に同じ?
  今回の目的は? 
  eビジネスアプリケーションは基幹連携の方法に違いがある
プログラムが他の機能の恩恵を受ける、それは相手の資源を使うこと
システム連携処理には、ミドルソフトの存在が欠かせない
クラサバの基幹連携をサーブレットに置き換えてみると
  システム連携を集中管理する接続マネージャの考え方
接続マネージャは誰が用意するのか?
Webアプリケーションサーバを使った接続マネージャの作成
  eビジネスアプリケーションは、お作法を守って記述されないといけない
悪いサーブレットを改善しましょう
  もっとパフォーマンスUPを狙った改造をする
まとめ


連載記事一覧




Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間