[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