[jboss-as7-dev] Datasource operations: Inconsistent state after failure
Brian Stansberry
brian.stansberry at redhat.com
Thu Apr 7 19:05:21 EDT 2011
Jesper/Stefano:
Heiko's executing an operation against the DomainController here, which
first applies it to the domain model and then pushes it to the running
servers. When I tried this, what I see is that when this operation is
applied to the servers it fails due to validation problems[1]:
This operation handler has nice validation logic, but it's executed
inside the RuntimeTask, which only gets executed on the server, and thus
allows invalid state to be stored in the domain model. Can the call to
DataSourceModelNodeUtil.from / xaFrom be moved out of the RuntimeTask
and happen earlier? This will allow the operation to be validated on the
DomainController and the error to be handled more cleanly.
[1]
org.jboss.jca.common.api.validator.ValidateException: jndiName (xml
attribure jndi-name) is required in
org.jboss.jca.common.metadata.ds.DataSourceImpl
at
org.jboss.jca.common.metadata.ds.DataSourceAbstractImpl.partialCommonValidation(DataSourceAbstractImpl.java:262)
at
org.jboss.jca.common.metadata.ds.DataSourceAbstractImpl.<init>(DataSourceAbstractImpl.java:142)
at
org.jboss.jca.common.metadata.ds.DataSourceImpl.<init>(DataSourceImpl.java:90)
at
org.jboss.as.connector.subsystems.datasources.DataSourceModelNodeUtil.from(DataSourceModelNodeUtil.java:348)
at
org.jboss.as.connector.subsystems.datasources.DataSourceAdd.createDataSourceService(DataSourceAdd.java:48)
at
org.jboss.as.connector.subsystems.datasources.DataSourceAdd.createDataSourceService(DataSourceAdd.java:48)
at
org.jboss.as.connector.subsystems.datasources.AbstractDataSourceAdd$1.execute(AbstractDataSourceAdd.java:95)
at
org.jboss.as.server.ServerControllerImpl.doExecute(ServerControllerImpl.java:190)
On 4/7/11 3:27 AM, Heiko Braun wrote:
>
>
> [localhost:9999 /]
> /*profile=default/subsystem=datasources/data-source="custom-datasource-name":add*
> {
> "outcome" => "*failed*",
> "result" => {"server-groups" => {"main-server-group" => {
> "server-one" => {
> "host" => "local",
> "response" => {
> "outcome" => "failed",
> "failure-description" => "Failed to create DataSource instance for [{
> \"operation\" => \"add\",
> \"address\" => [
> (\"subsystem\" => \"datasources\"),
> (\"data-source\" => \"custom-datasource-name\")
> ]
> [...]
>
> And then a subsequent read operation blows up:
>
> {
> "operation" : "*read-children-resources*",
> "address" : [
> {
> "PROPERTY_VALUE" : {
> "profile" : "default"
> }
> },
> {
> "PROPERTY_VALUE" : {
> "subsystem" : "datasources"
> }
> }
> ],
> "child-type" : "data-source"
> }
>
>
> [Host Controller] 10:18:06,349 *ERROR* [org.jboss.as.controller]
> (pool-2-thread-21) operation ("read-children-resources") failed -
> address: ([
> [Host Controller] ("profile" => "default"),
> [Host Controller] ("subsystem" => "datasources")
> [Host Controller] ]): java.lang.IllegalArgumentException
> [Host Controller] at org.jboss.dmr.ModelValue.getKeys(ModelValue.java:124)
> [Host Controller] at org.jboss.dmr.ModelNode.keys(ModelNode.java:1085)
> [Host Controller] at
> org.jboss.as.controller.operations.global.GlobalOperationHandlers$ReadResourceHandler.readModel(GlobalOperationHandlers.java:128)
>
>
>
>
>
> _______________________________________________
> jboss-as7-dev mailing list
> jboss-as7-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
--
Brian Stansberry
Principal Software Engineer
JBoss by Red Hat
More information about the jboss-as7-dev
mailing list