アノテーション型 DataSourceDefinition
@TargetSE(TYPESE) @RetentionSE(RUNTIMESE) @RepeatableSE(DataSourceDefinitions.class) public @interface DataSourceDefinition
JNDI に登録されるコンテナーDataSourceを定義するために使用されるアノテーション。DataSourceは、一般的に使用されるDataSourceプロパティのアノテーション要素を設定することで構成できます。properties要素を使用して、追加の標準およびベンダー固有のプロパティを指定できます。データソースは、
name要素で指定された名前で登録されます。これは、他のコンポーネントからのデータソースへのアクセス可能性を決定する、任意の有効な Jakarta EE 名前空間にあるように定義できます。適切な型の JDBC ドライバー実装クラス(
DataSource、ConnectionPoolDataSource、XADataSource)は、className要素で示される必要があります。ドライバークラスの可用性は、実行時に想定されます。DataSource プロパティは複数回指定しないでください。url アノテーション要素に、対応するアノテーション要素を使用して指定された、またはプロパティアノテーション要素で指定された DataSource プロパティが含まれている場合、優先順位は未定義で実装固有です。
@DataSourceDefinition(name="java:global/MyApp/MyDataSource", className="org.apache.derby.jdbc.ClientDataSource", url="jdbc:derby://localhost:1527/myDB;user=bill", user="lance", password="secret", databaseName="testDB", serverName="luckydog" )// DO NOT DO THIS!!!上記の例では、
databaseName、user、serverNameプロパティは、urlプロパティの一部として、対応するアノテーション要素を使用して指定されています。これは避けるべきです。propertiesアノテーション要素が使用され、対応するアノテーション要素を使用して指定された DataSource プロパティが含まれている場合、アノテーション要素の値が優先されます。例:@DataSourceDefinition(name="java:global/MyApp/MyDataSource", className="org.apache.derby.jdbc.ClientDataSource", user="lance", password="secret", databaseName="testDB", serverName="luckydog", properties= {"databaseName=myDB", "databaseProp=doThis"} )// DO NOT DO THIS!!!これにより、DataSource の構成時に次の値が使用されます。
- serverName = luckydog
- portNumber = 1527
- databaseName = testDB
- user = lance
- password = secret
- databaseProp = doThis
ベンダーは、特定のデータソース型には通常適用されないプロパティをサポートする必要はありません。例:
transactionalプロパティをtrueに指定するが、XADataSource以外のデータソースクラスを実装するclassNameに値を提供することはサポートされない場合があります。ベンダー固有のプロパティは、このアノテーションを使用して定義された標準のデータソースプロパティと組み合わせるか、オーバーライドするために使用できます。
指定された構成でサポートされていない、またはベンダー固有の構成プロパティにマップできない
DataSourceプロパティは無視される場合があります。例:
@DataSourceDefinition(name="java:global/MyApp/MyDataSource", className="com.foobar.MyDataSource", portNumber=6689, serverName="myserver.com", user="lance", password="secret" )URLの使用:@DataSourceDefinition(name="java:global/MyApp/MyDataSource", className="org.apache.derby.jdbc.ClientDataSource", url="jdbc:derby://localhost:1527/myDB", user="lance", password="secret" )Jakarta Enterprise Beans からの DataSource のルックアップの例:
@Stateless public class MyStatelessEJB { @Resource(lookup="java:global/MyApp/myDataSource") DataSource myDB; ... }- 導入:
- 共通のアノテーション 1.1
- 関連事項:
DataSourceSE,XADataSourceSE,ConnectionPoolDataSourceSE
オプション要素の概要
オプション要素 修飾子と型 オプションの要素 説明 StringSEdatabaseNameサーバー上のデータベースの名前。StringSEdescriptionこのデータソースの説明intinitialPoolSize接続プールの初期化時に作成する必要がある接続の数。intisolationLevel接続の分離レベル。intloginTimeoutデータベースへの接続試行中にこのデータソースが待機する最大時間を秒単位で設定します。intmaxIdleTime接続が接続プールに対して閉じられるまでに、物理接続がプール内で未使用のままでいる必要がある秒数。intmaxPoolSize接続プールに同時に割り当てられる接続の最大数。intmaxStatements接続プールを開いたままにしておくべきステートメントの総数。intminPoolSize接続プールに割り当てる必要がある接続の最小数。StringSEpassword接続認証に使用するパスワード。intportNumberサーバーがリクエストをリスニングするポート番号。StringSE[]propertiesベンダー固有のプロパティを指定するために使用され、以下のようなあまり使用されないDataSourceプロパティ:StringSEserverNameデータベースサーバー名。booleantransactional接続がトランザクションに参加しない場合は、falseに設定します。StringSEurlJDBC URL。StringSEuser接続認証に使用するユーザー名。
要素の詳細
name
StringSE name
データソースの登録に使用する JNDI 名。- 導入:
- 1.1
className
StringSE className
javax.sql.DataSourceまたはjavax.sql.XADataSourceまたはjavax.sql.ConnectionPoolDataSourceを実装する DataSource クラスの名前。- 導入:
- 1.1
description
StringSE description
このデータソースの説明- 導入:
- 1.1
- デフォルト:
- ""
url
StringSE url
JDBCURL。urlアノテーション要素に対応するアノテーション要素を使用して指定された DataSource プロパティが含まれている場合、優先順位は定義されておらず、実装固有です。- 導入:
- 1.1
- デフォルト:
- ""
user
StringSE user
接続認証に使用するユーザー名。- 導入:
- 1.1
- デフォルト:
- ""
password
StringSE password
接続認証に使用するパスワード。- 導入:
- 1.1
- デフォルト:
- ""
databaseName
StringSE databaseName
サーバー上のデータベースの名前。- 導入:
- 1.1
- デフォルト:
- ""
serverName
StringSE serverName
データベースサーバー名。- 導入:
- 1.1
- デフォルト:
- "localhost"
properties
StringSE[] properties
ベンダー固有のプロパティを指定するために使用され、以下のようなあまり使用されないDataSourceプロパティ:- dataSourceName
- networkProtocol
- propertyCycle
- roleName
プロパティは、propertyName = propertyValue の形式を使用して指定され、配列要素ごとに 1 つのプロパティがあります。
DataSource プロパティが
properties要素で指定され、プロパティのアノテーション要素も指定されている場合、アノテーション要素の値が優先されます。- 導入:
- 1.1
- デフォルト:
- {}