[
https://issues.jboss.org/browse/AS7-3615?page=com.atlassian.jira.plugin.s...
]
Alexey Loubyansky updated AS7-3615:
-----------------------------------
Assignee: Stefano Maestri (was: Alexey Loubyansky)
Component/s: Domain Management
JCA
It's because the add operation doesn't accept the xa properties. Once it does, the
add command in the cli will do as well.
[standalone@localhost:9999 /]
/subsystem=datasources/xa-data-source=?:read-operation-description(name=add)
{
"outcome" => "success",
"result" => {
"operation-name" => "add",
"description" => "Add a new XA data-source",
"request-properties" => {
"xa-datasource-class" => {
"description" => "The fully qualifed name of the
javax.sql.XADataSource implementation",
"type" => STRING,
"required" => false
},
"jndi-name" => {
"description" => "Specifies the JNDI name for the
datasource",
"type" => STRING,
"required" => true
},
"driver-name" => {
"description" => "Defines the JDBC driver the datasource
should use. It is a symbolic name matching the the name of installed driver. In case the
driver is deployed as jar, the name is the name of deployment unit",
"type" => STRING,
"required" => true
},
"new-connection-sql" => {
"description" => "Specifies an SQL statement to execute
whenever a connection is added to the connection pool",
"type" => STRING,
"required" => false
},
"url-delimiter" => {
"description" => "Specifies the delimeter for URLs in
connection-url for HA datasources",
"type" => STRING,
"required" => false
},
"url-selector-strategy-class-name" => {
"description" => "A class that implements
org.jboss.jca.adapters.jdbc.URLSelectorStrategy",
"type" => STRING,
"required" => false
},
"use-java-context" => {
"description" => "Setting this to false will bind the
datasource into global JNDI",
"type" => BOOLEAN,
"required" => false,
"default" => "true"
},
"max-pool-size" => {
"description" => "The max-pool-size element specifies
the maximum number of connections for a pool. No more connections will be created in each
sub-pool",
"type" => INT,
"required" => false,
"default" => "20"
},
"min-pool-size" => {
"description" => "The min-pool-size element specifies
the minimum number of connections for a pool",
"type" => INT,
"required" => false,
"default" => "0"
},
"pool-prefill" => {
"description" => "Should the pool be prefilled. Changing
this value requires a server restart",
"type" => BOOLEAN,
"required" => false,
"default" => "false"
},
"pool-use-strict-min" => {
"description" => "Specifies if the min-pool-size should
be considered strictly",
"type" => BOOLEAN,
"required" => false,
"default" => "false"
},
"interleaving" => {
"description" => "An element to enable interleaving for
XA connections",
"type" => BOOLEAN,
"required" => false,
"default" => "false"
},
"no-tx-separate-pool" => {
"description" => "Oracle does not like XA connections
getting used both inside and outside a JTA transaction. To workaround the problem you can
create separate sub-pools for the different contexts",
"type" => BOOLEAN,
"required" => false,
"default" => "false"
},
"pad-xid" => {
"description" => "Should the Xid be padded",
"type" => BOOLEAN,
"required" => false,
"default" => "false"
},
"same-rm-override" => {
"description" => "The is-same-rm-override element allows
one to unconditionally set whether the
javax.transaction.xa.XAResource.isSameRM(XAResource) returns true or false",
"type" => BOOLEAN,
"required" => false
},
"wrap-xa-resource" => {
"description" => "Should the XAResource instances be
wrapped in a org.jboss.tm.XAResourceWrapper instance",
"type" => BOOLEAN,
"required" => false,
"default" => "true"
},
"user-name" => {
"description" => "Specify the user name used when
creating a new connection",
"type" => STRING,
"required" => false
},
"password" => {
"description" => "Specifies the password used when
creating a new connection",
"type" => STRING,
"required" => false
},
"security-domain" => {
"description" => "Specifies the security domain which
defines the javax.security.auth.Subject that are used to distinguish connections in the
pool",
"type" => STRING,
"required" => false
},
"reauth-plugin-class-name" => {
"description" => "The fully qualified class name of the
reauthentication plugin implementation",
"type" => STRING,
"required" => false
},
"reauth-plugin-properties" => {
"description" => "The properties for the
reauthentication plugin",
"type" => OBJECT,
"value-type" => STRING,
"required" => false
},
"flush-strategy" => {
"description" => "Specifies how the pool should be flush
in case of an error. Valid values are: FailingConnectionOnly (default), IdleConnections
and EntirePool",
"type" => STRING,
"required" => false,
"default" => "\"FailingConnectionOnly\""
},
"prepared-statements-cache-size" => {
"description" => "The number of prepared statements per
connection in an LRU cache",
"type" => LONG,
"required" => false
},
"share-prepared-statements" => {
"description" => "Whether to share prepared statements,
i.e. whether asking for same statement twice without closing uses the same underlying
prepared statement",
"type" => BOOLEAN,
"required" => false,
"default" => "false"
},
"track-statements" => {
"description" => "Whether to check for unclosed
statements when a connection is returned to the pool, result sets are closed, a statement
is closed or return to the prepared statement cache. Valid values are: \"false\"
- do not track statements, \"true\" - track statements and result sets and warn
when they are not closed, \"nowarn\" - track statements but do not warn about
them being unclosed",
"type" => STRING,
"required" => false,
"default" => "\"NOWARN\""
},
"allocation-retry" => {
"description" => "The allocation retry element indicates
the number of times that allocating a connection should be tried before throwing an
exception",
"type" => INT,
"required" => false
},
"allocation-retry-wait-millis" => {
"description" => "The allocation retry wait millis
element specifies the amount of time, in milliseconds, to wait between retrying to
allocate a connection",
"type" => LONG,
"required" => false
},
"blocking-timeout-wait-millis" => {
"description" => "The blocking-timeout-millis element
specifies the maximum time, in milliseconds, to block while waiting for a connection
before throwing an exception. Note that this blocks only while waiting for locking a
connection, and will never throw an exception if creating a new connection takes an
inordinately long time",
"type" => LONG,
"required" => false
},
"idle-timeout-minutes" => {
"description" => "The idle-timeout-minutes elements
specifies the maximum time, in minutes, a connection may be idle before being closed. The
actual maximum time depends also on the IdleRemover scan time, which is half of the
smallest idle-timeout-minutes value of any pool. Changing this value requires a server
restart.",
"type" => LONG,
"required" => false
},
"query-timeout" => {
"description" => "Any configured query timeout in
seconds. If not provided no timeout will be set",
"type" => LONG,
"required" => false
},
"use-try-lock" => {
"description" => "Any configured timeout for internal
locks on the resource adapter objects in seconds",
"type" => LONG,
"required" => false
},
"set-tx-query-timeout" => {
"description" => "Whether to set the query timeout based
on the time remaining until transaction timeout. Any configured query timeout will be used
if there is no transaction",
"type" => BOOLEAN,
"required" => false,
"default" => "false"
},
"transaction-isolation" => {
"description" => "Set the java.sql.Connection
transaction isolation level. Valid values are: TRANSACTION_READ_UNCOMMITTED,
TRANSACTION_READ_COMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE and
TRANSACTION_NONE",
"type" => STRING,
"required" => false
},
"check-valid-connection-sql" => {
"description" => "Specify an SQL statement to check
validity of a pool connection. This may be called when managed connection is obtained from
the pool",
"type" => STRING,
"required" => false
},
"exception-sorter-class-name" => {
"description" => "An
org.jboss.jca.adapters.jdbc.ExceptionSorter that provides an
isExceptionFatal(SQLException) method to validate if an exception should broadcast an
error",
"type" => STRING,
"required" => false
},
"exception-sorter-properties" => {
"description" => "The exception sorter
properties",
"type" => OBJECT,
"value-type" => STRING,
"required" => false
},
"stale-connection-checker-class-name" => {
"description" => "An
org.jboss.jca.adapters.jdbc.StaleConnectionChecker that provides an
isStaleConnection(SQLException) method which if it returns true will wrap the exception in
an org.jboss.jca.adapters.jdbc.StaleConnectionException",
"type" => STRING,
"required" => false
},
"stale-connection-checker-properties" => {
"description" => "The stale connection checker
properties",
"type" => OBJECT,
"value-type" => STRING,
"required" => false
},
"valid-connection-checker-class-name" => {
"description" => "An
org.jboss.jca.adapters.jdbc.ValidConnectionChecker that provides an
isValidConnection(Connection) method to validate a connection. If an exception is returned
that means the connection is invalid. This overrides the check-valid-connection-sql
element",
"type" => STRING,
"required" => false
},
"valid-connection-checker-properties" => {
"description" => "The valid connection checker
properties",
"type" => OBJECT,
"value-type" => STRING,
"required" => false
},
"background-validation-millis" => {
"description" => "The background-validation-millis
element specifies the amount of time, in milliseconds, that background validation will
run. Changing this value requires a server restart",
"type" => LONG,
"required" => false
},
"background-validation" => {
"description" => "An element to specify that connections
should be validated on a background thread versus being validated prior to use. Changing
this value requires a server restart",
"type" => BOOLEAN,
"required" => false,
"default" => "false"
},
"use-fast-fail" => {
"description" => "Whether to fail a connection
allocation on the first try if it is invalid (true) or keep trying until the pool is
exhausted of all potential connections (false)",
"type" => BOOLEAN,
"required" => false,
"default" => "false"
},
"validate-on-match" => {
"description" => "The validate-on-match element
specifies if connection validation should be done when a connection factory attempts to
match a managed connection. This is typically exclusive to the use of background
validation",
"type" => BOOLEAN,
"required" => false,
"default" => "false"
},
"xa-resource-timeout" => {
"description" => "The value is passed to
XAResource.setTransactionTimeout(), in seconds. Default is zero",
"type" => INT,
"required" => false
},
"spy" => {
"description" => "Enable spying of SQL
statements",
"type" => BOOLEAN,
"required" => false,
"default" => "false"
},
"use-ccm" => {
"description" => "Enable the use of a cached connection
manager",
"type" => BOOLEAN,
"required" => false,
"default" => "true"
},
"recovery-username" => {
"description" => "The user name used for
recovery",
"type" => STRING,
"required" => false
},
"recovery-password" => {
"description" => "The password used for recovery",
"type" => STRING,
"required" => false
},
"recovery-security-domain" => {
"description" => "The security domain used for
recovery",
"type" => STRING,
"required" => false
},
"recovery-plugin-class-name" => {
"description" => "The fully qualified class name of the
recovery plugin implementation",
"type" => STRING,
"required" => false
},
"recovery-plugin-properties" => {
"description" => "The properties for the recovery
plugin",
"type" => OBJECT,
"value-type" => STRING,
"required" => false
},
"no-recovery" => {
"description" => "Specifies if the connection pool
should be excluded from recovery",
"type" => BOOLEAN,
"required" => false
},
"jta" => {
"description" => "Enable JTA integration",
"type" => BOOLEAN,
"required" => false,
"default" => "true"
}
},
"read-only" => false
}
}
CLI: xa-data-source add command does not allow to specify
xa-datasource-properties
----------------------------------------------------------------------------------
Key: AS7-3615
URL:
https://issues.jboss.org/browse/AS7-3615
Project: Application Server 7
Issue Type: Bug
Components: CLI, Domain Management, JCA
Affects Versions: 7.1.0.Final
Reporter: Dominik Pospisil
Assignee: Stefano Maestri
It seems that CLI xa-data-source add command does not allow to specify
xa-datasource-properties. As having non empty xa-tadasource-properties map is mandatory,
enabling such datasource fails:
[standalone@localhost:9999 xa-datasource-properties] xa-data-source add --name=TestXADS
--jndi-name=java:jboss/datasources/TestXADS --driver-name=h2
[standalone@localhost:9999 xa-datasource-properties] xa-data-source enable
--name=TestXADS
JBAS014750: Operation handler failed to complete
Server exception:
15:54:56,948 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-7) MSC00001: Failed
to start service jboss.data-source.java:jboss/datasources/TestXADS:
org.jboss.msc.service.StartException in service
jboss.data-source.java:jboss/datasources/TestXADS: JBAS010433: Error during the deployment
of TestXADS
at
org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService.start(AbstractDataSourceService.java:118)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
[jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
[jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
[:1.7.0_b147-icedtea]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
[:1.7.0_b147-icedtea]
at java.lang.Thread.run(Thread.java:722) [:1.7.0_b147-icedtea]
Caused by: org.jboss.jca.common.api.validator.ValidateException: IJ010069: Missing
required element xa-datasource-property in
org.jboss.jca.common.metadata.ds.XADataSourceImpl
at
org.jboss.jca.common.metadata.ds.XADataSourceImpl.validate(XADataSourceImpl.java:384)
at
org.jboss.jca.common.metadata.ds.XADataSourceImpl.<init>(XADataSourceImpl.java:115)
at
org.jboss.as.connector.subsystems.datasources.ModifiableXaDataSource.getUnModifiableInstance(ModifiableXaDataSource.java:372)
at
org.jboss.as.connector.subsystems.datasources.XaDataSourceService.getDeployer(XaDataSourceService.java:66)
at
org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService.start(AbstractDataSourceService.java:111)
... 5 more
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira