第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 |
連載記事一覧 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|