2009年12月6日日曜日

コンテナ管理トランザクションであそぶ - (3/10) -

DataSourceの設定をする

asadmin create-jdbc-connection-poolコマンドを使ってコネクションプールを作成します。

コマンドプロンプトを開き以下のように入力します。
asadmin create-jdbc-connection-pool ^
  --datasourceclassname org.apache.derby.jdbc.ClientDataSource ^
  --restype javax.sql.DataSource ^
  --property user=sa:password=sa:databaseName=example ^
  MyJDBCPool
コネクションプールのプロパティに接続文字列を追加します。
asadmin set ^
  domain.resources.jdbc-connection-pool.MyJDBCPool.property.url=jdbc:derby://localhost:1527/example
コネクションプールのプロパティに接続文字列属性を追加します。
asadmin set ^
  domain.resources.jdbc-connection-pool.MyJDBCPool.property.connectionAttributes=;create=true
コネクションの接続を確認します。
asadmin ping-connection-pool MyJDBCPool


asadmin create-jdbc-resourceコマンドを使ってコネクションプールをJNDIに登録します。

コマンドプロンプトを開き以下のように入力します。
asadmin create-jdbc-resource ^
  --connectionpoolid MyJDBCPool ^
  jdbc/MyJDBCResource
GlassFish管理コマンド

asadmin コマンドを使用するためには 『GLASSFISHインストールフォルダ/bin』 フォルダを
PATH変数に追加しておかないといけません。
コントロールパネルのシステムの詳細設定タブから環境変数を編集します。
それからGlassFishサーバーとJavaDBを起動します。
WebのGlassFish管理コンソールからコネクションプールをJDBCリソースに登録する場合は
『jdbc/MyJDBCResource』 でJNDIから参照できるようにします。
Persistence Unitを定義します。

persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
  xmlns="http://java.sun.com/xml/ns/persistence" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
                      http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
  <persistence-unit name="example-pu">
  <provider>oracle.toplink.essentials.PersistenceProvider</provider>
    <jta-data-source>jdbc/MyJDBCResource</jta-data-source>
    <properties>
      <property name="toplink.ddl-generation" value="drop-and-create-tables" />
    </properties>
  </persistence-unit>
</persistence>
Persistence UnitをJNDIのグローバルネームスペース 『example-pu』 に登録します。