アノテーション型 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
- 関連事項:
DataSource
SE,XADataSource
SE,ConnectionPoolDataSource
SE
オプション要素のサマリー
オプション要素 修飾子と型 オプションの要素 説明 StringSE
databaseName
サーバー上のデータベースの名前。StringSE
description
このデータソースの説明int
initialPoolSize
接続プールの初期化時に作成する必要がある接続の数。int
isolationLevel
接続の分離レベル。int
loginTimeout
データベースへの接続試行中にこのデータソースが待機する最大時間を秒単位で設定します。int
maxIdleTime
接続が接続プールに対して閉じられるまでに、物理接続がプール内で未使用のままでいる必要がある秒数。int
maxPoolSize
接続プールに同時に割り当てられる接続の最大数。int
maxStatements
接続プールを開いたままにしておくべきステートメントの総数。int
minPoolSize
接続プールに割り当てる必要がある接続の最小数。StringSE
password
接続認証に使用するパスワード。int
portNumber
サーバーがリクエストをリスニングするポート番号。StringSE[]
properties
ベンダー固有のプロパティを指定するために使用され、以下のようなあまり使用されないDataSource
プロパティ:StringSE
serverName
データベースサーバー名。boolean
transactional
接続がトランザクションに参加しない場合は、false
に設定します。StringSE
url
JDBC URL。StringSE
user
接続認証に使用するユーザー名。
要素の詳細
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
- デフォルト:
- {}