[
https://issues.jboss.org/browse/WFLY-7214?page=com.atlassian.jira.plugin....
]
Lin Gao updated WFLY-7214:
--------------------------
Steps to Reproduce:
h2. Step 1. Try to add a data-source with missing information
{code:}
[standalone@localhost:9990 /]
/subsystem=datasources/data-source=XXX:add(jndi-name=java:/XXX,
datasource-class=XXX,driver-name=h2, connection-url="jdbc:h2:test")
"outcome" => "failed",
"failure-description" => {
"WFLYCTL0080: Failed services" =>
{"org.wildfly.data-source.XXX" => "org.jboss.msc.service.StartException
in service org.wildfly.data-source.XXX: WFLYJCA0033: Error during the deployment of XXX
Caused by: org.jboss.msc.service.StartException in anonymous service: WFLYJCA0032:
Unable to start the ds because it generated more than one cf"},
"WFLYCTL0412: Required services that are not installed:" =>
["org.wildfly.data-source.XXX"],
"WFLYCTL0180: Services with missing/unavailable dependencies" =>
undefined
},
"rolled-back" => true
}
{code}
There will be exception in server log:
{code:}
23:47:24,962 ERROR
[org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService$AS7DataSourceDeployer]
(MSC service thread 1-5) Error during the deployment of java:/XXX:
javax.resource.ResourceException: IJ031103: At least one connection property must be
defined for datasource-class: XXX
at
org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.createConnectionFactory(LocalManagedConnectionFactory.java:108)
at
org.jboss.jca.deployers.common.AbstractDsDeployer.deployDataSource(AbstractDsDeployer.java:775)
at
org.jboss.jca.deployers.common.AbstractDsDeployer.createObjectsAndInjectValue(AbstractDsDeployer.java:312)
at
org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService$AS7DataSourceDeployer.deploy(AbstractDataSourceService.java:371)
at
org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService.start(AbstractDataSourceService.java:149)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
23:47:24,964 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-5) MSC000001: Failed
to start service org.wildfly.data-source.XXX: org.jboss.msc.service.StartException in
service org.wildfly.data-source.XXX: WFLYJCA0033: Error during the deployment of XXX
at
org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService.start(AbstractDataSourceService.java:163)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.jboss.msc.service.StartException in anonymous service: WFLYJCA0032: Unable
to start the ds because it generated more than one cf
at
org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService.start(AbstractDataSourceService.java:151)
... 5 more
23:47:24,968 ERROR [org.jboss.as.controller.management-operation]
(management-handler-thread - 2) WFLYCTL0013: Operation ("add") failed - address:
([
("subsystem" => "datasources"),
("data-source" => "XXX")
]) - failure description: {
"WFLYCTL0080: Failed services" =>
{"org.wildfly.data-source.XXX" => "org.jboss.msc.service.StartException
in service org.wildfly.data-source.XXX: WFLYJCA0033: Error during the deployment of XXX
Caused by: org.jboss.msc.service.StartException in anonymous service: WFLYJCA0032:
Unable to start the ds because it generated more than one cf"},
"WFLYCTL0412: Required services that are not installed:" =>
["org.wildfly.data-source.XXX"],
"WFLYCTL0180: Services with missing/unavailable dependencies" =>
undefined
}
{code}
h2. Step 2. Fulfill the connection-url only:
{code:}
[standalone@localhost:9990 /]
/subsystem=datasources/data-source=XXX:add(jndi-name=java:/XXX,
driver-name=h2,connection-url="jdbc:h2:test")
{"outcome" => "success"}
{code}
h2. Step 3. Call test-connection-in-pool() operation of this created data-source
{code:}
[standalone@localhost:9990 /]
/subsystem=datasources/data-source=XXX:test-connection-in-pool()
{
"outcome" => "failed",
"failure-description" => "WFLYJCA0040: failed to invoke operation:
WFLYJCA0047: Connection is not valid",
"rolled-back" => true
}
{code}
There will be warning of exception in server log:
{code:}
10:30:39,185 WARN [org.jboss.jca.core.connectionmanager.pool.strategy.OnePool]
(management-handler-thread - 3) IJ000604: Throwable while attempting to get a new
connection: null: javax.resource.ResourceException: IJ031084: Unable to create connection
at
org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.createLocalManagedConnection(LocalManagedConnectionFactory.java:345)
at
org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.getLocalManagedConnection(LocalManagedConnectionFactory.java:352)
at
org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:287)
at
org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.createConnectionEventListener(SemaphoreConcurrentLinkedDequeManagedConnectionPool.java:1320)
at
org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.getConnection(SemaphoreConcurrentLinkedDequeManagedConnectionPool.java:496)
at
org.jboss.jca.core.connectionmanager.pool.AbstractPool.internalTestConnection(AbstractPool.java:1052)
at
org.jboss.jca.core.connectionmanager.pool.strategy.OnePool.testConnection(OnePool.java:93)
at
org.jboss.as.connector.subsystems.common.pool.PoolOperations$TestConnectionInPool.invokeCommandOn(PoolOperations.java:234)
at
org.jboss.as.connector.subsystems.common.pool.PoolOperations$1.execute(PoolOperations.java:90)
at
org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:940)
at
org.jboss.as.controller.AbstractOperationContext.processStages(AbstractOperationContext.java:683)
at
org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:382)
at
org.jboss.as.controller.OperationContextImpl.executeOperation(OperationContextImpl.java:1363)
at
org.jboss.as.controller.ModelControllerImpl.internalExecute(ModelControllerImpl.java:410)
at org.jboss.as.controller.ModelControllerImpl.execute(ModelControllerImpl.java:232)
at
org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler.doExecute(ModelControllerClientOperationHandler.java:213)
at
org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler.access$300(ModelControllerClientOperationHandler.java:136)
at
org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler$1$1.run(ModelControllerClientOperationHandler.java:157)
at
org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler$1$1.run(ModelControllerClientOperationHandler.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.jboss.as.controller.AccessAuditContext.doAs(AccessAuditContext.java:149)
at
org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler$1.execute(ModelControllerClientOperationHandler.java:153)
at
org.jboss.as.protocol.mgmt.ManagementRequestContextImpl$1.doExecute(ManagementRequestContextImpl.java:70)
at
org.jboss.as.protocol.mgmt.ManagementRequestContextImpl$AsyncTaskRunner.run(ManagementRequestContextImpl.java:160)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
at org.jboss.threads.JBossThread.run(JBossThread.java:320)
Caused by: javax.resource.ResourceException: IJ031087: Failed to register DriverClass for:
org.h2.Driver
at
org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.getDriver(LocalManagedConnectionFactory.java:602)
at
org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.createLocalManagedConnection(LocalManagedConnectionFactory.java:320)
... 28 more
Caused by: java.lang.IllegalStateException
at org.jboss.msc.value.InjectedValue.getValue(InjectedValue.java:47)
at
org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService.driverClassLoader(AbstractDataSourceService.java:310)
at
org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService.access$200(AbstractDataSourceService.java:103)
at
org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService$AS7DataSourceDeployer$2.getClassLoader(AbstractDataSourceService.java:472)
at
org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.getDriver(LocalManagedConnectionFactory.java:593)
... 29 more
{code}
{panel:title=NOTE}
Run a {{:reload()}} after Step 1 works fine
Same data-source name with different {{jndi-name}} works fine
Different data-source name with same {{jndi-name}} fails.
{panel}
was:
h2. Step 1. Try to add a data-source with missing information
{code:}
[standalone@localhost:9990 /]
/subsystem=datasources/data-source=XXX:add(jndi-name=java:/XXX,
datasource-class=XXX,driver-name=h2)
"outcome" => "failed",
"failure-description" => {
"WFLYCTL0080: Failed services" =>
{"org.wildfly.data-source.XXX" => "org.jboss.msc.service.StartException
in service org.wildfly.data-source.XXX: WFLYJCA0033: Error during the deployment of XXX
Caused by: org.jboss.msc.service.StartException in anonymous service: WFLYJCA0032:
Unable to start the ds because it generated more than one cf"},
"WFLYCTL0412: Required services that are not installed:" =>
["org.wildfly.data-source.XXX"],
"WFLYCTL0180: Services with missing/unavailable dependencies" =>
undefined
},
"rolled-back" => true
}
{code}
There will be exception in server log:
{code:}
23:47:24,962 ERROR
[org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService$AS7DataSourceDeployer]
(MSC service thread 1-5) Error during the deployment of java:/XXX:
javax.resource.ResourceException: IJ031103: At least one connection property must be
defined for datasource-class: XXX
at
org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.createConnectionFactory(LocalManagedConnectionFactory.java:108)
at
org.jboss.jca.deployers.common.AbstractDsDeployer.deployDataSource(AbstractDsDeployer.java:775)
at
org.jboss.jca.deployers.common.AbstractDsDeployer.createObjectsAndInjectValue(AbstractDsDeployer.java:312)
at
org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService$AS7DataSourceDeployer.deploy(AbstractDataSourceService.java:371)
at
org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService.start(AbstractDataSourceService.java:149)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
23:47:24,964 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-5) MSC000001: Failed
to start service org.wildfly.data-source.XXX: org.jboss.msc.service.StartException in
service org.wildfly.data-source.XXX: WFLYJCA0033: Error during the deployment of XXX
at
org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService.start(AbstractDataSourceService.java:163)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.jboss.msc.service.StartException in anonymous service: WFLYJCA0032: Unable
to start the ds because it generated more than one cf
at
org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService.start(AbstractDataSourceService.java:151)
... 5 more
23:47:24,968 ERROR [org.jboss.as.controller.management-operation]
(management-handler-thread - 2) WFLYCTL0013: Operation ("add") failed - address:
([
("subsystem" => "datasources"),
("data-source" => "XXX")
]) - failure description: {
"WFLYCTL0080: Failed services" =>
{"org.wildfly.data-source.XXX" => "org.jboss.msc.service.StartException
in service org.wildfly.data-source.XXX: WFLYJCA0033: Error during the deployment of XXX
Caused by: org.jboss.msc.service.StartException in anonymous service: WFLYJCA0032:
Unable to start the ds because it generated more than one cf"},
"WFLYCTL0412: Required services that are not installed:" =>
["org.wildfly.data-source.XXX"],
"WFLYCTL0180: Services with missing/unavailable dependencies" =>
undefined
}
{code}
h2. Step 2. Fulfill the missing information:
{code:}
[standalone@localhost:9990 /]
/subsystem=datasources/data-source=XXX:add(jndi-name=java:/XXX,
driver-name=h2,connection-url="jdbc:h2:test")
{"outcome" => "success"}
{code}
h2. Step 3. Call test-connection-in-pool() operation of this created data-source
{code:}
[standalone@localhost:9990 /]
/subsystem=datasources/data-source=XXX:test-connection-in-pool()
{
"outcome" => "failed",
"failure-description" => "WFLYJCA0040: failed to invoke operation:
WFLYJCA0047: Connection is not valid",
"rolled-back" => true
}
{code}
There will be warning of exception in server log:
{code:}
10:30:39,185 WARN [org.jboss.jca.core.connectionmanager.pool.strategy.OnePool]
(management-handler-thread - 3) IJ000604: Throwable while attempting to get a new
connection: null: javax.resource.ResourceException: IJ031084: Unable to create connection
at
org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.createLocalManagedConnection(LocalManagedConnectionFactory.java:345)
at
org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.getLocalManagedConnection(LocalManagedConnectionFactory.java:352)
at
org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:287)
at
org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.createConnectionEventListener(SemaphoreConcurrentLinkedDequeManagedConnectionPool.java:1320)
at
org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.getConnection(SemaphoreConcurrentLinkedDequeManagedConnectionPool.java:496)
at
org.jboss.jca.core.connectionmanager.pool.AbstractPool.internalTestConnection(AbstractPool.java:1052)
at
org.jboss.jca.core.connectionmanager.pool.strategy.OnePool.testConnection(OnePool.java:93)
at
org.jboss.as.connector.subsystems.common.pool.PoolOperations$TestConnectionInPool.invokeCommandOn(PoolOperations.java:234)
at
org.jboss.as.connector.subsystems.common.pool.PoolOperations$1.execute(PoolOperations.java:90)
at
org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:940)
at
org.jboss.as.controller.AbstractOperationContext.processStages(AbstractOperationContext.java:683)
at
org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:382)
at
org.jboss.as.controller.OperationContextImpl.executeOperation(OperationContextImpl.java:1363)
at
org.jboss.as.controller.ModelControllerImpl.internalExecute(ModelControllerImpl.java:410)
at org.jboss.as.controller.ModelControllerImpl.execute(ModelControllerImpl.java:232)
at
org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler.doExecute(ModelControllerClientOperationHandler.java:213)
at
org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler.access$300(ModelControllerClientOperationHandler.java:136)
at
org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler$1$1.run(ModelControllerClientOperationHandler.java:157)
at
org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler$1$1.run(ModelControllerClientOperationHandler.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.jboss.as.controller.AccessAuditContext.doAs(AccessAuditContext.java:149)
at
org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler$1.execute(ModelControllerClientOperationHandler.java:153)
at
org.jboss.as.protocol.mgmt.ManagementRequestContextImpl$1.doExecute(ManagementRequestContextImpl.java:70)
at
org.jboss.as.protocol.mgmt.ManagementRequestContextImpl$AsyncTaskRunner.run(ManagementRequestContextImpl.java:160)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
at org.jboss.threads.JBossThread.run(JBossThread.java:320)
Caused by: javax.resource.ResourceException: IJ031087: Failed to register DriverClass for:
org.h2.Driver
at
org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.getDriver(LocalManagedConnectionFactory.java:602)
at
org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.createLocalManagedConnection(LocalManagedConnectionFactory.java:320)
... 28 more
Caused by: java.lang.IllegalStateException
at org.jboss.msc.value.InjectedValue.getValue(InjectedValue.java:47)
at
org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService.driverClassLoader(AbstractDataSourceService.java:310)
at
org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService.access$200(AbstractDataSourceService.java:103)
at
org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService$AS7DataSourceDeployer$2.getClassLoader(AbstractDataSourceService.java:472)
at
org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.getDriver(LocalManagedConnectionFactory.java:593)
... 29 more
{code}
{panel:title=NOTE}
Run a {{:reload()}} after Step 1 works fine
Same data-source name with different {{jndi-name}} works fine
Different data-source name with same {{jndi-name}} fails.
{panel}
Warning of IllegalStateException on test-connection-pool for
DataSources added after previous failure addition
--------------------------------------------------------------------------------------------------------------
Key: WFLY-7214
URL:
https://issues.jboss.org/browse/WFLY-7214
Project: WildFly
Issue Type: Bug
Components: JCA
Reporter: Lin Gao
Assignee: Lin Gao
When a data-source was failed to be added either because of missing
connection-properties:
{code:}
/subsystem=datasources/data-source=XXX:add(jndi-name=java:/XXX,
datasource-class=XXX,driver-name=h2)
{code}
or missing of connection-url:
{code:}
/subsystem=datasources/data-source=XXX:add(jndi-name=java:/XXX, driver-name=h2)
{code}
, it can be added by correcting the information, like:
{code:}
[standalone@localhost:9990 /]
/subsystem=datasources/data-source=XXX:add(jndi-name=java:/XXX,
driver-name=h2,connection-url="jdbc:h2:test")
{"outcome" => "success"}
{code}
But the {{test-connection-in-pool()}} operation failed with {{IllegalStateException}} of
the new created data-source.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)