読者です 読者をやめる 読者になる 読者になる

感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

JBossのデータソース周りの知識のまとめ

JBoss JavaEE
<スポンサーリンク>

J2EEアプリケーションのお作法

・web.xml

<servlet-mapping>

は、WEB-INF以下の見えないリソースを公開するために設定するもの。

・WARファイルがweb.xmlを定義するように、EARファイルはapplication.xmlを定義する。

・EARファイルのMETA-INFディレクトリにapplication.xmlを配置する。

・コンテキストルートというのは、ウェブサイトのURLのこと。

・EARファイルをJBossにデプロイするのと、WARファイルをJBossにデプロイするのは同じこと。
hoge.earなるファイルを$JBOSS_HOME/server/default/deploy以下にコピーすればいい。

サーブレットはHTTPリクエスト/レスポンスの処理を扱うべきであって、persist処理を扱うべきではない。

DataSource

・Container-Managed DataSourceを使えば、コミットやロールバックはコンテナに任せてよく、自分でトランザクションを管理する必要はなくなる。

・JNDIは、様々なバックエンドリソースに対して、統一されたアクセスを提供する。

Java EEにとってのJNDIというのは、インターネットにとってのDNSと同じ

コンポーネントが実際の値に対するエイリアスを使うことで、例えばJDBCドライバ名を交換しても、実際のコードに影響なく裏のDBを変更できる
JNDIを使ってバックエンドのDBを隠すことで、例えばOracleMySQLを交換したりすることができる。

・JNDIの変数はInitialContextに保存されている。
以下のようにJNDIを取り出す。

Context ctx = new InitialContext();
DataSource dataSource = (DataSource) ctx.lookup(dataSourceJndiName);

web.xmlには以下のようにJNDI参照の定義を書く。

<resource-ref>
	<res-ref-name>jdbc/MyApplication</res-ref-name>
	<res-type>javax.sql.DataSource</res-type>
	<res-auth>Container</res-auth>
</resource-ref>

Javaの道が詳しく解説してくれている。さすが!
http://www.javaroad.jp/opensource/js_tomcat8.htm

<jboss-web>
	<resouce-ref>
		<res-ref-name>jdbc/MyApplication</res-ref-name>
		<jndi-name>java:/MyApplication</jndi-name>
	</resource-ref>
</jboss-web>

このサイトなどが詳しく説明してくれている。
http://www63.tok2.com/home2/jd4/defineDS4JBoss.html

・*-ds.xmlという定義ファイルをdeploy以下に配置することで、データベースに対して、MBeanとしてアクセスできる。

・datasouceの定義を参考にするなら、

$JBOSS_HOME/docs/exapmles/jca

に主要なデータベースの定義は書かれている。
JCAというのはJ2EE Connector Architectureのことで、J2EEが外部のデータベースに接続する際の標準的な方法だ。
mysql-ds.xmlは以下のように定義されている。

<datasources>
  <local-tx-datasource>
    <jndi-name>MySqlDS</jndi-name>
    <connection-url>jdbc:mysql://dell:3306/jbossdb</connection-url>
    <driver-class>org.gjt.mm.mysql.Driver</driver-class>
    <user-name>x</user-name>
    <password>y</password>
  </local-tx-datasource>
</datasources>

参考にした本

JBoss at Work: A Practical Guide

JBoss at Work: A Practical Guide

感謝のプログラミング

今回で感謝のプログラミングは【390時間目】
10000時間まで、あと【9610時間】