1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3 ~ JBoss, Home of Professional Open Source.
4 ~ Copyright 2011, Red Hat, Inc., and individual contributors
5 ~ as indicated by the @author tags. See the copyright.txt file in the
6 ~ distribution for a full listing of individual contributors.
7 ~
8 ~ This is free software; you can redistribute it and/or modify it
9 ~ under the terms of the GNU Lesser General Public License as
10 ~ published by the Free Software Foundation; either version 2.1 of
11 ~ the License, or (at your option) any later version.
12 ~
13 ~ This software is distributed in the hope that it will be useful,
14 ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
15 ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 ~ Lesser General Public License for more details.
17 ~
18 ~ You should have received a copy of the GNU Lesser General Public
19 ~ License along with this software; if not, write to the Free
20 ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
21 ~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
22 -->
23
24 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
25 targetNamespace="urn:jboss:domain:datasources:1.2" xmlns="urn:jboss:domain:datasources:1.2"
26 elementFormDefault="qualified" attributeFormDefault="unqualified">
27
28 <xs:element name="subsystem" type="subsystemType"/>
29
30 <xs:complexType name="subsystemType">
31 <xs:all>
32 <xs:element name="datasources" type="datasourcesType" minOccurs="1" maxOccurs="1"/>
33 </xs:all>
34 </xs:complexType>
35
36 <xs:complexType name="datasourcesType">
37 <xs:sequence>
38 <xs:choice minOccurs="0" maxOccurs="unbounded">
39 <xs:element name="datasource" type="datasourceType">
40 <xs:annotation>
41 <xs:documentation>
42 <![CDATA[[
43 Specifies a non-XA datasource, using local transactions
44 ]]>
45 </xs:documentation>
46 </xs:annotation>
47 </xs:element>
48 <xs:element name="xa-datasource" type="xa-datasourceType">
49 <xs:annotation>
50 <xs:documentation>
51 <![CDATA[[
52 Specifies a XA datasource
53 ]]>
54 </xs:documentation>
55 </xs:annotation>
56 </xs:element>
57 </xs:choice>
58 <xs:element name="drivers" type="driversType" maxOccurs="1" minOccurs="0"></xs:element>
59 </xs:sequence>
60 </xs:complexType>
61 <xs:complexType name="datasourceType" mixed="false">
62 <xs:sequence>
63 <xs:element name="connection-url" type="xs:token">
64 <xs:annotation>
65 <xs:documentation>
66 <![CDATA[[
67 The JDBC driver connection URL Ex: <connection-url>jdbc:hsqldb:hsql://localhost:1701</connection-url>
68 ]]>
69 </xs:documentation>
70 </xs:annotation>
71 </xs:element>
72 <xs:element name="driver-class" type="xs:token" maxOccurs="1" minOccurs="0">
73 <xs:annotation>
74 <xs:documentation>
75 <![CDATA[[
76 The fully qualifed name of the JDBC driver class Ex: <driver-class>org.hsqldb.jdbcDriver</driver-class>
77 ]]>
78 </xs:documentation>
79 </xs:annotation>
80 </xs:element>
81 <xs:element name="datasource-class" type="xs:token" maxOccurs="1" minOccurs="0">
82 <xs:annotation>
83 <xs:documentation>
84 <![CDATA[[
85 The fully qualifed name of the JDBC datasource class Ex: <datasource-class>org.h2.jdbcx.JdbcDataSource</datasource-class>
86 ]]>
87 </xs:documentation>
88 </xs:annotation>
89 </xs:element>
90 <xs:element name="driver" type="xs:token" minOccurs="0">
91 <xs:annotation>
92 <xs:documentation>
93 <![CDATA[[
94 An unique reference to the classloader module which contains the JDBC driver
95 The accepted format is driverName#majorVersion.minorVersion
96 ]]>
97 </xs:documentation>
98 </xs:annotation>
99 </xs:element>
100 <xs:element name="connection-property" type="connection-propertyType" minOccurs="0" maxOccurs="unbounded">
101 <xs:annotation>
102 <xs:documentation>
103 <![CDATA[[
104 The connection-property element allows you to pass in arbitrary connection
105 properties to the Driver.connect(url, props) method. Each connection-property
106 specifies a string name/value pair with the property name coming from the
107 name attribute and the value coming from the element content. Ex:
108 <connection-property name="char.encoding">UTF-8</connection-property>
109 ]]>
110 </xs:documentation>
111 </xs:annotation>
112 </xs:element>
113 <xs:element name="new-connection-sql" type="xs:string" minOccurs="0">
114 <xs:annotation>
115 <xs:documentation>
116 <![CDATA[[
117 Specify an SQL statement to execute whenever a connection is added
118 to the connection pool.
119 ]]>
120 </xs:documentation>
121 </xs:annotation>
122 </xs:element>
123 <xs:element name="transaction-isolation" type="transaction-isolationType" minOccurs="0">
124 <xs:annotation>
125 <xs:documentation>
126 <![CDATA[[
127 Set java.sql.Connection transaction isolation level to use. The constants
128 defined by transaction-isolation-values are the possible transaction isolation
129 levels and include: TRANSACTION_READ_UNCOMMITTED TRANSACTION_READ_COMMITTED
130 TRANSACTION_REPEATABLE_READ TRANSACTION_SERIALIZABLE TRANSACTION_NONE
131 ]]>
132 </xs:documentation>
133 </xs:annotation>
134 </xs:element>
135 <xs:element name="url-delimiter" type="xs:token" minOccurs="0">
136 <xs:annotation>
137 <xs:documentation>
138 <![CDATA[[
139 Specifies the delimeter for URLs in connection-url for HA datasources
140 ]]>
141 </xs:documentation>
142 </xs:annotation>
143 </xs:element>
144 <xs:element name="url-selector-strategy-class-name" type="xs:token" minOccurs="0">
145 <xs:annotation>
146 <xs:documentation>
147 <![CDATA[[
148 A class that implements org.jboss.jca.adapters.jdbc.URLSelectorStrategy
149 ]]>
150 </xs:documentation>
151 </xs:annotation>
152 </xs:element>
153 <xs:element name="pool" type="poolType" minOccurs="0" maxOccurs="1">
154 <xs:annotation>
155 <xs:documentation>
156 <![CDATA[[
157 Specifies the pooling settings
158 ]]>
159 </xs:documentation>
160 </xs:annotation>
161 </xs:element>
162 <xs:element name="security" type="dsSecurityType" minOccurs="0">
163 <xs:annotation>
164 <xs:documentation>
165 <![CDATA[[
166 Specifies the security settings
167 ]]>
168 </xs:documentation>
169 </xs:annotation>
170 </xs:element>
171 <xs:element name="validation" type="validationType" minOccurs="0">
172 <xs:annotation>
173 <xs:documentation>
174 <![CDATA[[
175 Specifies the validation settings
176 ]]>
177 </xs:documentation>
178 </xs:annotation>
179 </xs:element>
180 <xs:element name="timeout" type="timeoutType" minOccurs="0">
181 <xs:annotation>
182 <xs:documentation>
183 <![CDATA[[
184 Specifies the time out settings
185 ]]>
186 </xs:documentation>
187 </xs:annotation>
188 </xs:element>
189 <xs:element name="statement" type="statementType" minOccurs="0">
190 <xs:annotation>
191 <xs:documentation>
192 <![CDATA[[
193 Specifies the statement settings
194 ]]>
195 </xs:documentation>
196 </xs:annotation>
197 </xs:element>
198 </xs:sequence>
199 <xs:attribute name="jta" type="xs:boolean" default="true" use="optional">
200 <xs:annotation>
201 <xs:documentation>
202 <![CDATA[[
203 Enable JTA integration
204 ]]>
205 </xs:documentation>
206 </xs:annotation>
207 </xs:attribute>
208 <xs:attribute default="false" name="connectable" type="xs:boolean">
209 <xs:annotation>
210 <xs:documentation>
211 <![CDATA[[
212 Enable cmr functionality on this datsource's connections
213 ]]>
214 </xs:documentation>
215 </xs:annotation>
216 </xs:attribute>
217 <xs:attributeGroup ref="common-datasourceAttributes" />
218 </xs:complexType>
219 <xs:complexType name="xa-datasourceType">
220 <xs:sequence>
221 <xs:element name="xa-datasource-property" type="xa-datasource-propertyType" minOccurs="1" maxOccurs="unbounded">
222 <xs:annotation>
223 <xs:documentation>
224 <![CDATA[[
225 Specifies a property to assign to the XADataSource implementation class.
226 Each property is identified by the name attribute and the property value
227 is given by the xa-datasource-property element content. The property is mapped
228 onto the XADataSource implementation by looking for a JavaBeans style getter
229 method for the property name. If found, the value of the property is set
230 using the JavaBeans setter with the element text translated to the true property
231 type using the java.beans.PropertyEditor for the type. Ex:
232 <xa-datasource-property name="IfxWAITTIME">10</xa-datasource-property>
233 <xa-datasource-property name="IfxIFXHOST">myhost.mydomain.com</xa-datasource-property>
234 <xa-datasource-property name="PortNumber">1557</xa-datasource-property>
235 <xa-datasource-property name="DatabaseName">mydb</xa-datasource-property>
236 <xa-datasource-property name="ServerName">myserver</xa-datasource-property>
237 ]]>
238 </xs:documentation>
239 </xs:annotation>
240 </xs:element>
241 <xs:element name="xa-datasource-class" type="xs:token" maxOccurs="1" minOccurs="0">
242 <xs:annotation>
243 <xs:documentation>
244 <![CDATA[[
245 The fully qualifed name of the javax.sql.XADataSource implementation
246 class. Ex: <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
247 ]]>
248 </xs:documentation>
249 </xs:annotation>
250 </xs:element>
251 <xs:element name="driver" type="xs:token" minOccurs="0">
252 <xs:annotation>
253 <xs:documentation>
254 <![CDATA[[
255 An unique reference to the classloader module which contains the JDBC driver
256 The accepted format is driverName#majorVersion.minorVersion
257 ]]>
258 </xs:documentation>
259 </xs:annotation>
260 </xs:element>
261 <xs:element name="url-delimiter" type="xs:token" minOccurs="0">
262 <xs:annotation>
263 <xs:documentation>
264 <![CDATA[[
265 Specifies the delimeter for URLs in the connection url for HA datasources
266 ]]>
267 </xs:documentation>
268 </xs:annotation>
269 </xs:element>
270 <xs:element name="url-selector-strategy-class-name" type="xs:token" minOccurs="0">
271 <xs:annotation>
272 <xs:documentation>
273 <![CDATA[[
274 A class that implements org.jboss.jca.adapters.jdbc.URLSelectorStrategy
275 ]]>
276 </xs:documentation>
277 </xs:annotation>
278 </xs:element>
279 <xs:element name="new-connection-sql" type="xs:string" minOccurs="0">
280 <xs:annotation>
281 <xs:documentation>
282 <![CDATA[[
283 Specifies an SQL statement to execute whenever a connection is added
284 to the connection pool.
285 ]]>
286 </xs:documentation>
287 </xs:annotation>
288 </xs:element>
289 <xs:element name="transaction-isolation" type="transaction-isolationType" minOccurs="0">
290 <xs:annotation>
291 <xs:documentation>
292 <![CDATA[[
293 Set java.sql.Connection transaction isolation level to use. The constants
294 defined by transaction-isolation-values are the possible transaction isolation
295 levels and include: TRANSACTION_READ_UNCOMMITTED TRANSACTION_READ_COMMITTED
296 TRANSACTION_REPEATABLE_READ TRANSACTION_SERIALIZABLE TRANSACTION_NONE
297 ]]>
298 </xs:documentation>
299 </xs:annotation>
300 </xs:element>
301 <xs:element name="xa-pool" type="xa-poolType" minOccurs="0" maxOccurs="1">
302 <xs:annotation>
303 <xs:documentation>
304 <![CDATA[[
305 Specifies the pooling settings
306 ]]>
307 </xs:documentation>
308 </xs:annotation>
309 </xs:element>
310 <xs:element name="security" type="dsSecurityType" minOccurs="0">
311 <xs:annotation>
312 <xs:documentation>
313 <![CDATA[[
314 Specifies the security settings
315 ]]>
316 </xs:documentation>
317 </xs:annotation>
318 </xs:element>
319 <xs:element name="validation" type="validationType" minOccurs="0">
320 <xs:annotation>
321 <xs:documentation>
322 <![CDATA[[
323 Specifies the validation settings
324 ]]>
325 </xs:documentation>
326 </xs:annotation>
327 </xs:element>
328 <xs:element name="timeout" type="timeoutType" minOccurs="0">
329 <xs:annotation>
330 <xs:documentation>
331 <![CDATA[[
332 Specifies the time out settings
333 ]]>
334 </xs:documentation>
335 </xs:annotation>
336 </xs:element>
337 <xs:element name="statement" type="statementType" minOccurs="0">
338 <xs:annotation>
339 <xs:documentation>
340 <![CDATA[[
341 Specifies the statement settings
342 ]]>
343 </xs:documentation>
344 </xs:annotation>
345 </xs:element>
346 <xs:element name="recovery" type="recoverType" minOccurs="0" maxOccurs="1"></xs:element>
347 </xs:sequence>
348 <xs:attributeGroup ref="common-datasourceAttributes" />
349 </xs:complexType>
350 <xs:complexType name="boolean-presenceType" />
351 <xs:attributeGroup name="common-datasourceAttributes">
352 <xs:attribute name="jndi-name" type="xs:token" use="required">
353 <xs:annotation>
354 <xs:documentation>
355 <![CDATA[[
356 Specifies the JNDI name for the datasource
357 ]]>
358 </xs:documentation>
359 </xs:annotation>
360 </xs:attribute>
361 <xs:attribute name="pool-name" type="xs:token" use="required">
362 <xs:annotation>
363 <xs:documentation>
364 <![CDATA[[
365 Specifies the pool name for the datasource used for management
366 ]]>
367 </xs:documentation>
368 </xs:annotation>
369 </xs:attribute>
370 <xs:attribute name="enabled" type="xs:boolean" default="true" form="unqualified" use="optional">
371 <xs:annotation>
372 <xs:documentation>
373 <![CDATA[[
374 Specifies if the datasource should be enabled
375 ]]>
376 </xs:documentation>
377 </xs:annotation>
378 </xs:attribute>
379 <xs:attribute default="true" name="use-java-context" type="xs:boolean">
380 <xs:annotation>
381 <xs:documentation>
382 <![CDATA[[
383 Setting this to false will bind the DataSource into global JNDI
384 Ex: use-java-context="true"
385 ]]>
386 </xs:documentation>
387 </xs:annotation>
388 </xs:attribute>
389 <xs:attribute default="false" name="spy" type="xs:boolean">
390 <xs:annotation>
391 <xs:documentation>
392 <![CDATA[[
393 Enable spy functionality on the JDBC layer - e.g. log all JDBC traffic to the datasource.
394 Remember to enable the logging category (org.jboss.jdbc) too.
395 Ex: spy="true"
396 ]]>
397 </xs:documentation>
398 </xs:annotation>
399 </xs:attribute>
400 <xs:attribute default="true" name="use-ccm" type="xs:boolean">
401 <xs:annotation>
402 <xs:documentation>
403 <![CDATA[[
404 Enable the use of a cached connection manager
405 Ex: use-ccm="true"
406 ]]>
407 </xs:documentation>
408 </xs:annotation>
409 </xs:attribute>
410 </xs:attributeGroup>
411 <xs:simpleType name="transaction-isolationType">
412 <xs:annotation>
413 <xs:documentation>
414 <![CDATA[[
415 Define constants used as the possible transaction isolation levels in transaction-isolation
416 type. Include: TRANSACTION_READ_UNCOMMITTED, TRANSACTION_READ_COMMITTED, TRANSACTION_REPEATABLE_READ,
417 TRANSACTION_SERIALIZABLE, TRANSACTION_NONE
418 ]]>
419 </xs:documentation>
420 </xs:annotation>
421 <xs:restriction base="xs:token">
422 <xs:enumeration value="TRANSACTION_READ_UNCOMMITTED" />
423 <xs:enumeration value="TRANSACTION_READ_COMMITTED" />
424 <xs:enumeration value="TRANSACTION_REPEATABLE_READ" />
425 <xs:enumeration value="TRANSACTION_SERIALIZABLE" />
426 <xs:enumeration value="TRANSACTION_NONE" />
427 </xs:restriction>
428 </xs:simpleType>
429 <xs:complexType name="xa-datasource-propertyType" mixed="true">
430 <xs:attribute name="name" use="required" type="xs:token" />
431 </xs:complexType>
432 <xs:complexType name="connection-propertyType" mixed="true">
433 <xs:attribute name="name" use="required" type="xs:token" />
434 </xs:complexType>
435 <xs:complexType name="validationType">
436 <xs:sequence>
437 <xs:element name="valid-connection-checker" type="extensionType" minOccurs="0">
438 <xs:annotation>
439 <xs:documentation>
440 <![CDATA[[
441 An org.jboss.jca.adapters.jdbc.ValidConnectionChecker that provides
442 a SQLException isValidConnection(Connection e) method to validate is a connection
443 is valid. An exception means the connection is destroyed. This overrides
444 the check-valid-connection-sql when present. Ex:
445 <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.vendor.OracleValidConnectionChecker"/>
446 ]]>
447 </xs:documentation>
448 </xs:annotation>
449 </xs:element>
450
451 <xs:element name="check-valid-connection-sql" type="xs:string" minOccurs="0">
452 <xs:annotation>
453 <xs:documentation>
454 <![CDATA[[
455 Specify an SQL statement to check validity of a pool connection. This
456 may be called when managed connection is taken from pool for use.
457 ]]>
458 </xs:documentation>
459 </xs:annotation>
460 </xs:element>
461 <xs:element name="validate-on-match" type="xs:boolean" minOccurs="0">
462 <xs:annotation>
463 <xs:documentation>
464 <![CDATA[[
465 The validate-on-match element indicates whether or not connection
466 level validation should be done when a connection factory attempts to match
467 a managed connection for a given set. This is typically exclusive to the
468 use of background validation
469 ]]>
470 </xs:documentation>
471 </xs:annotation>
472 </xs:element>
473 <xs:element name="background-validation" type="xs:boolean" minOccurs="0">
474 <xs:annotation>
475 <xs:documentation>
476 <![CDATA[[
477 An element to specify that connections should be validated on a background
478 thread versus being validated prior to use
479 ]]>
480 </xs:documentation>
481 </xs:annotation>
482 </xs:element>
483 <xs:element name="background-validation-millis" type="xs:nonNegativeInteger" minOccurs="0">
484 <xs:annotation>
485 <xs:documentation>
486 <![CDATA[[
487 The background-validation-millis element specifies the amount of
488 time, in millis, that background validation will run.
489 ]]>
490 </xs:documentation>
491 </xs:annotation>
492 </xs:element>
493 <xs:element name="use-fast-fail" type="xs:boolean" minOccurs="0">
494 <xs:annotation>
495 <xs:documentation>
496 <![CDATA[[
497 Whether fail a connection allocation on the first connection if it
498 is invalid (true) or keep trying until the pool is exhausted of all potential
499 connections (false) default false. e.g. <use-fast-fail>true</use-fast-fail>
500 ]]>
501 </xs:documentation>
502 </xs:annotation>
503 </xs:element>
504 <xs:element minOccurs="0" name="stale-connection-checker" type="extensionType">
505 <xs:annotation>
506 <xs:documentation>
507 <![CDATA[[
508 An org.jboss.jca.adapters.jdbc.StaleConnectionChecker that provides
509 a boolean isStaleConnection(SQLException e) method which if it it returns
510 true will wrap the exception in an org.jboss.jca.adapters.jdbc.StaleConnectionException
511 which is a subclass of SQLException. Ex:
512 <stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.vendor.OracleStaleConnectionChecker"/>
513 ]]>
514 </xs:documentation>
515 </xs:annotation>
516 </xs:element>
517 <xs:element name="exception-sorter" type="extensionType" minOccurs="0">
518 <xs:annotation>
519 <xs:documentation>
520 <![CDATA[[
521 An org.jboss.jca.adapters.jdbc.ExceptionSorter that provides a
522 boolean isExceptionFatal(SQLException e) method to validate is an exception
523 should be broadcast to all javax.resource.spi.ConnectionEventListener as
524 a connectionErrorOccurred message. Ex:
525 <exception-sorter class-name="org.jboss.jca.adapters.jdbc.vendor.OracleExceptionSorter"/>
526 ]]>
527 </xs:documentation>
528 </xs:annotation>
529 </xs:element>
530 </xs:sequence>
531 </xs:complexType>
532 <xs:complexType name="timeoutType">
533 <xs:sequence>
534 <xs:element name="blocking-timeout-millis" type="xs:nonNegativeInteger" minOccurs="0">
535 <xs:annotation>
536 <xs:documentation>
537 <![CDATA[[
538 The blocking-timeout-millis element indicates the maximum time in
539 milliseconds to block while waiting for a connection before throwing an exception.
540 Note that this blocks only while waiting for a permit for a connection, and
541 will never throw an exception if creating a new connection takes an inordinately
542 long time. The default is 30000 (30 seconds).
543 ]]>
544 </xs:documentation>
545 </xs:annotation>
546 </xs:element>
547 <xs:element name="idle-timeout-minutes" type="xs:nonNegativeInteger" minOccurs="0">
548 <xs:annotation>
549 <xs:documentation>
550 <![CDATA[[
551 The idle-timeout-minutes elements indicates the maximum time in minutes
552 a connection may be idle before being closed. The actual maximum time depends
553 also on the IdleRemover scan time, which is 1/2 the smallest idle-timeout-minutes
554 of any pool.
555 ]]>
556 </xs:documentation>
557 </xs:annotation>
558 </xs:element>
559 <xs:element name="set-tx-query-timeout" type="boolean-presenceType" minOccurs="0">
560 <xs:annotation>
561 <xs:documentation>
562 <![CDATA[[
563 Whether to set the query timeout based on the time remaining until
564 transaction timeout, any configured query timeout will be used if there is
565 no transaction. The default is false. e.g. <set-tx-query-timeout/>
566 ]]>
567 </xs:documentation>
568 </xs:annotation>
569 </xs:element>
570 <xs:element name="query-timeout" type="xs:nonNegativeInteger" minOccurs="0">
571 <xs:annotation>
572 <xs:documentation>
573 <![CDATA[[
574 Any configured query timeout in seconds The default is no timeout
575 e.g. 5 minutes <query-timeout>300</query-timeout>
576 ]]>
577 </xs:documentation>
578 </xs:annotation>
579 </xs:element>
580 <xs:element name="use-try-lock" type="xs:nonNegativeInteger" minOccurs="0">
581 <xs:annotation>
582 <xs:documentation>
583 <![CDATA[[
584 Any configured timeout for internal locks on the resource adapter
585 objects in seconds The default is a 60 second timeout e.g. 5 minutes <use-try-lock>300</use-try-lock>
586 ]]>
587 </xs:documentation>
588 </xs:annotation>
589 </xs:element>
590 <xs:element name="allocation-retry" type="xs:nonNegativeInteger" minOccurs="0">
591 <xs:annotation>
592 <xs:documentation>
593 <![CDATA[[
594 The allocation retry element indicates the number of times that allocating
595 a connection should be tried before throwing an exception. The default is 0.
596 ]]>
597 </xs:documentation>
598 </xs:annotation>
599 </xs:element>
600 <xs:element name="allocation-retry-wait-millis" type="xs:nonNegativeInteger" minOccurs="0">
601 <xs:annotation>
602 <xs:documentation>
603 <![CDATA[[
604 The allocation retry wait millis element indicates the time in milliseconds
605 to wait between retrying to allocate a connection. The default is 5000 (5 seconds).
606 ]]>
607 </xs:documentation>
608 </xs:annotation>
609 </xs:element>
610 <xs:element name="xa-resource-timeout" type="xs:token" minOccurs="0">
611 <xs:annotation>
612 <xs:documentation>
613 <![CDATA[[
614 Passed to XAResource.setTransactionTimeout() Default is zero which
615 does not invoke the setter. In seconds e.g. 5 minutes <xa-resource-timeout>300</xa-resource-timeout>
616 ]]>
617 </xs:documentation>
618 </xs:annotation>
619 </xs:element>
620 </xs:sequence>
621 </xs:complexType>
622 <xs:simpleType name="track-statementsType">
623 <xs:restriction base="xs:token">
624 <xs:enumeration value="true" />
625 <xs:enumeration value="false" />
626 <xs:enumeration value="nowarn" />
627 </xs:restriction>
628 </xs:simpleType>
629 <xs:complexType name="statementType">
630 <xs:sequence>
631 <xs:element name="track-statements" type="track-statementsType" minOccurs="0">
632 <xs:annotation>
633 <xs:documentation>
634 <![CDATA[[
635 Whether to check for unclosed statements when a connection is returned
636 to the pool and result sets are closed when a statement is closed/return
637 to the prepared statement cache. valid values are: false - do not track statements
638 and results true - track statements and result sets and warn when they are
639 not closed nowarn - track statements but do no warn about them being unclosed
640 (the default) e.g. <track-statements>nowarn</track-statements>
641 ]]>
642 </xs:documentation>
643 </xs:annotation>
644 </xs:element>
645 <xs:element name="prepared-statement-cache-size" type="xs:nonNegativeInteger" minOccurs="0">
646 <xs:annotation>
647 <xs:documentation>
648 <![CDATA[[
649 The number of prepared statements per connection in an LRU cache
650 ]]>
651 </xs:documentation>
652 </xs:annotation>
653 </xs:element>
654 <xs:element name="share-prepared-statements" type="boolean-presenceType" minOccurs="0">
655 <xs:annotation>
656 <xs:documentation>
657 <![CDATA[[
658 Whether to share prepare statements, i.e. whether asking for same
659 statement twice without closing uses the same underlying prepared statement.
660 The default is false. e.g. <share-prepared-statements/>
661 ]]>
662 </xs:documentation>
663 </xs:annotation>
664 </xs:element>
665 </xs:sequence>
666 </xs:complexType>
667 <xs:complexType name="poolType">
668 <xs:sequence>
669 <xs:element name="min-pool-size" type="xs:nonNegativeInteger" minOccurs="0">
670 <xs:annotation>
671 <xs:documentation>
672 <![CDATA[[
673 The min-pool-size element indicates the minimum number of connections
674 a pool should hold. These are not created until a Subject is known from a
675 request for a connection. This default to 0. Ex: <min-pool-size>1</min-pool-size>
676 ]]>
677 </xs:documentation>
678 </xs:annotation>
679 </xs:element>
680 <xs:element name="max-pool-size" type="xs:nonNegativeInteger" minOccurs="0">
681 <xs:annotation>
682 <xs:documentation>
683 <![CDATA[[
684 The max-pool-size element indicates the maximum number of connections
685 for a pool. No more connections will be created in each sub-pool.
686 This defaults to 20.
687 ]]>
688 </xs:documentation>
689 </xs:annotation>
690 </xs:element>
691 <xs:element name="prefill" type="xs:boolean" minOccurs="0">
692 <xs:annotation>
693 <xs:documentation>
694 <![CDATA[[
695 Whether to attempt to prefill the connection pool. Empty element denotes
696 a true value. e.g. <prefill>true</prefill>.
697 Default is false
698 ]]>
699 </xs:documentation>
700 </xs:annotation>
701 </xs:element>
702 <xs:element name="use-strict-min" type="xs:boolean" minOccurs="0" maxOccurs="1">
703 <xs:annotation>
704 <xs:documentation>
705 <![CDATA[[
706 Define if the min-pool-size should be considered a strictly.
707 Default false
708 ]]>
709 </xs:documentation>
710 </xs:annotation>
711 </xs:element>
712 <xs:element name="flush-strategy" type="xs:token" minOccurs="0" maxOccurs="1">
713 <xs:annotation>
714 <xs:documentation>
715 <![CDATA[[
716 Specifies how the pool should be flush in case of an error.
717 Valid values are: FailingConnectionOnly (default), IdleConnections, EntirePool
718 ]]>
719 </xs:documentation>
720 </xs:annotation>
721 </xs:element>
722 <xs:element name="allow-multiple-users" type="boolean-presenceType" minOccurs="0" maxOccurs="1">
723 <xs:annotation>
724 <xs:documentation>
725 <![CDATA[[
726 Specifies if multiple users will access the datasource through the getConnection(user, password)
727 method and hence if the internal pool type should account for that
728 ]]>
729 </xs:documentation>
730 </xs:annotation>
731 </xs:element>
732 </xs:sequence>
733 </xs:complexType>
734 <xs:complexType name="xa-poolType">
735 <xs:complexContent>
736 <xs:extension base="poolType">
737 <xs:sequence>
738 <xs:element name="is-same-rm-override" type="xs:boolean" minOccurs="0">
739 <xs:annotation>
740 <xs:documentation>
741 <![CDATA[[
742 The is-same-rm-override element allows one to unconditionally
743 set whether the javax.transaction.xa.XAResource.isSameRM(XAResource) returns
744 true or false. Ex: <is-same-rm-override>true</is-same-rm-override>
745 ]]>
746 </xs:documentation>
747 </xs:annotation>
748 </xs:element>
749 <xs:element name="interleaving" type="boolean-presenceType" minOccurs="0">
750 <xs:annotation>
751 <xs:documentation>
752 <![CDATA[[
753 An element to enable interleaving for XA connection factories
754 Ex: <interleaving/>
755 ]]>
756 </xs:documentation>
757 </xs:annotation>
758 </xs:element>
759 <xs:element name="no-tx-separate-pools" type="boolean-presenceType" minOccurs="0">
760 <xs:annotation>
761 <xs:documentation>
762 <![CDATA[[
763 Oracle does not like XA connections getting used both inside and outside a JTA transaction.
764 To workaround the problem you can create separate sub-pools for the different contexts
765 using <no-tx-separate-pools/>
766 Ex: <no-tx-separate-pools/>
767 ]]>
768 </xs:documentation>
769 </xs:annotation>
770 </xs:element>
771 <xs:element name="pad-xid" type="xs:boolean" default="false" minOccurs="0">
772 <xs:annotation>
773 <xs:documentation>
774 <![CDATA[[
775 Should the Xid be padded
776 Ex: <pad-xid>true</pad-xid>
777 ]]>
778 </xs:documentation>
779 </xs:annotation>
780 </xs:element>
781 <xs:element name="wrap-xa-resource" type="xs:boolean" default="false" minOccurs="0">
782 <xs:annotation>
783 <xs:documentation>
784 <![CDATA[[
785 Should the XAResource instances be wrapped in a org.jboss.tm.XAResourceWrapper
786 instance
787 Ex: <wrap-xa-resource>true</wrap-xa-resource>
788 ]]>
789 </xs:documentation>
790 </xs:annotation>
791 </xs:element>
792 </xs:sequence>
793 </xs:extension>
794 </xs:complexContent>
795 </xs:complexType>
796 <xs:complexType name="dsSecurityType">
797 <xs:sequence>
798 <xs:element name="user-name" type="xs:token" minOccurs="0">
799 <xs:annotation>
800 <xs:documentation>
801 <![CDATA[[
802 Specify the username used when creating a new connection.
803 Ex: <user-name>sa</user-name>
804 ]]>
805 </xs:documentation>
806 </xs:annotation>
807 </xs:element>
808 <xs:element name="password" type="xs:token" minOccurs="0">
809 <xs:annotation>
810 <xs:documentation>
811 <![CDATA[[
812 Specify the password used when creating a new connection.
813 Ex: <password>sa-pass</password>
814 ]]>
815 </xs:documentation>
816 </xs:annotation>
817 </xs:element>
818 <xs:element name="security-domain" type="xs:token" minOccurs="0" maxOccurs="1">
819 <xs:annotation>
820 <xs:documentation>
821 <![CDATA[[
822 Indicates Subject (from security domain) are used to distinguish connections in the pool.
823 The content of the security-domain is the name of the JAAS security manager that will handle
824 authentication. This name correlates to the JAAS login-config.xml descriptor
825 application-policy/name attribute.
826 Ex:
827 <security-domain>HsqlDbRealm</security-domain>
828 ]]>
829 </xs:documentation>
830 </xs:annotation>
831 </xs:element>
832 <xs:element name="reauth-plugin" type="extensionType" minOccurs="0" maxOccurs="1"></xs:element>
833 </xs:sequence>
834 </xs:complexType>
835
836 <xs:complexType name="extensionType">
837 <xs:sequence>
838 <xs:element name="config-property" type="config-propertyType" minOccurs="0" maxOccurs="unbounded"></xs:element>
839 </xs:sequence>
840 <xs:attribute name="class-name" type="xs:token" use="required"></xs:attribute>
841 </xs:complexType>
842
843 <xs:complexType name="config-propertyType" mixed="true">
844 <xs:annotation>
845 <xs:documentation>
846 <![CDATA[[
847 Specifies a Java bean property value
848 ]]>
849 </xs:documentation>
850 </xs:annotation>
851 <xs:simpleContent>
852 <xs:extension base="xs:token">
853 <xs:attribute use="required" name="name" type="xs:token">
854 <xs:annotation>
855 <xs:documentation>
856 <![CDATA[[
857 Specifies the name of the config-property
858 ]]>
859 </xs:documentation>
860 </xs:annotation>
861 </xs:attribute>
862 </xs:extension>
863 </xs:simpleContent>
864 </xs:complexType>
865 <xs:complexType name="recoverType">
866 <xs:sequence>
867 <xs:element name="recover-credential" type="dsSecurityType" minOccurs="0" maxOccurs="1">
868 <xs:annotation>
869 <xs:documentation>
870 <![CDATA[[
871 Specifies the security options used when creating a connection during recovery.
872 Note: if this credential are not specified the security credential are used for recover too
873 ]]>
874 </xs:documentation>
875 </xs:annotation>
876 </xs:element>
877 <xs:element name="recover-plugin" type="extensionType" minOccurs="0" maxOccurs="1">
878 <xs:annotation>
879 <xs:documentation>
880 <![CDATA[[
881 Specifies the extension plugin used in spi (core.spi.xa)
882 which can be implemented by various plugins to provide better feedback to the XA recovery system.
883 ]]>
884 </xs:documentation>
885 </xs:annotation>
886 </xs:element>
887 </xs:sequence>
888 <xs:attribute name="no-recovery" type="xs:boolean" default="false" use="optional">
889 <xs:annotation>
890 <xs:documentation>
891 <![CDATA[[
892 Specify if the xa-datasource should be excluded from recovery.
893 Default false.
894 ]]>
895 </xs:documentation>
896 </xs:annotation>
897 </xs:attribute>
898 </xs:complexType>
899
900 <xs:complexType name="driverType">
901 <xs:sequence>
902 <xs:element name="driver-class" type="xs:token" maxOccurs="1" minOccurs="0">
903 <xs:annotation>
904 <xs:documentation>
905 <![CDATA[[
906 The fully qualifed name of the JDBC driver class Ex: <driver-class>org.hsqldb.jdbcDriver</driver-class>
907 ]]>
908 </xs:documentation>
909 </xs:annotation>
910 </xs:element>
911 <xs:element name="datasource-class" type="xs:token" maxOccurs="1" minOccurs="0">
912 <xs:annotation>
913 <xs:documentation>
914 <![CDATA[[
915 The fully qualifed name of the javax.sql.DataSource implementation
916 class.
917 ]]>
918 </xs:documentation>
919 </xs:annotation></xs:element>
920 <xs:element name="xa-datasource-class" type="xs:token" maxOccurs="1" minOccurs="0">
921 <xs:annotation>
922 <xs:documentation>
923 <![CDATA[[
924 The fully qualifed name of the javax.sql.XADataSource implementation
925 class. Ex: <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
926 ]]>
927 </xs:documentation>
928 </xs:annotation></xs:element>
929 </xs:sequence>
930 <xs:attribute name="name" type="xs:token" use="required">
931 <xs:annotation>
932 <xs:documentation>
933 <![CDATA[[
934 Specifies the symbolic name of this driver used to reference this driver
935 ]]>
936 </xs:documentation>
937 </xs:annotation>
938 </xs:attribute>
939 <xs:attribute name="module" type="xs:token" use="optional">
940 <xs:annotation>
941 <xs:documentation>
942 <![CDATA[[
943 Specifies the name of AS7 module providing this driver.
944 Thios tag is not used in IronJacamar standalone container.
945 ]]>
946 </xs:documentation>
947 </xs:annotation>
948 </xs:attribute>
949 <xs:attribute name="major-version" type="xs:int" use="optional">
950 <xs:annotation>
951 <xs:documentation>
952 <![CDATA[[
953 Specifies the major version of this driver. If the major and minor version is obmitted the fist availabe
954 Driver in module will be used.
955 ]]>
956 </xs:documentation>
957 </xs:annotation>
958 </xs:attribute>
959 <xs:attribute name="minor-verion" type="xs:int" use="optional">
960 <xs:annotation>
961 <xs:documentation>
962 <![CDATA[[
963 Specifies the minor version of this driver. If the major and minor version is obmitted the fist availabe
964 Driver in module will be used.
965 ]]>
966 </xs:documentation>
967 </xs:annotation>
968 </xs:attribute>
969 </xs:complexType>
970
971 <xs:complexType name="driversType">
972 <xs:sequence>
973 <xs:element name="driver" type="driverType" maxOccurs="unbounded" minOccurs="1"></xs:element>
974 </xs:sequence>
975 </xs:complexType>
976 </xs:schema>
|