[jboss-jira] [JBoss JIRA] (WFLY-2551) AS7.2 - JMX Datasource pool & jdbc statistics dissapear if you enable validation

Brian Stansberry (JIRA) issues at jboss.org
Mon Jul 28 17:27:29 EDT 2014


    [ https://issues.jboss.org/browse/WFLY-2551?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12988468#comment-12988468 ] 

Brian Stansberry edited comment on WFLY-2551 at 7/28/14 5:26 PM:
-----------------------------------------------------------------

I've figured out how to reproduce this and what the underlying issue is. The latter is complex, so first I'll post how to reproduce:

1) Start the system running the standard standalone.xml. Connect jconsole, go to mbeans tab, navigate to jboss.as->datasources->ExampleDS, you'll see "jdbc" and "pool" children.

2) Get the system such that the subsystem has loaded with the datasource disabled. You could edit xml, but here I'll use the CLI against a server started from a standard standalone.xml

{code}
[standalone at localhost:9990 /] cd subsystem=datasources/data-source=ExampleDS
[standalone at localhost:9990 data-source=ExampleDS] :disable
{
    "outcome" => "success",
    "response-headers" => {
        "operation-requires-reload" => true,
        "process-state" => "reload-required"
    }
}
[standalone at localhost:9990 data-source=ExampleDS] reload
{code}

3) Change an attribute on the datasource resource. I don't think it much matters which one; check-valid-connection-sql is just the one the reporter was changing:

{code}
[standalone at localhost:9990 data-source=ExampleDS] :write-attribute(name=check-valid-connection-sql,value="select 1")
{"outcome" => "success"}
{code}

4) Enable the datasource

{code}
[standalone at localhost:9990 data-source=ExampleDS] :enable
{"outcome" => "success"}
{code} 

5) Close the jconsole connection and reconnect (which refreshes the mbean tree). Under jboss.as->datasources->ExampleDS, you no longer see "jdbc" and "pool" children.

6) Some CLI operations won't work also

{code}
[standalone at localhost:9990 data-source=ExampleDS] cd statistics=jdbc
WFLYCTL0217: Child resource '"statistics" => "jdbc"' not found
[standalone at localhost:9990 data-source=ExampleDS] cd statistics=pool
WFLYCTL0217: Child resource '"statistics" => "pool"' not found
{code}

7) Interestingly, many CLI operations still work, e.g.:

{code}
[standalone at localhost:9990 data-source=ExampleDS] ./statistics=jdbc:read-resource(include-runtime=true)
{
    "outcome" => "success",
    "result" => {
        "PreparedStatementCacheAccessCount" => "0",
        "PreparedStatementCacheAddCount" => "0",
        "PreparedStatementCacheCurrentSize" => "0",
        "PreparedStatementCacheDeleteCount" => "0",
        "PreparedStatementCacheHitCount" => "0",
        "PreparedStatementCacheMissCount" => "0",
        "statistics-enabled" => false
    }
}
{code}

The reason for this is just that the handler for "read-resource" happens to be forgiving of the underlying problem, which I'll get to next.


was (Author: brian.stansberry):
I've figured out how to reproduce this and what the underlying issue is. The latter is complex, so first I'll post how to reproduce:

1) Start the system running the standard standalone.xml. Connect jconsole, go to mbeans tab, navigate to jboss.as->datasources->ExampleDS, you'll see "jdbc" and "pool" children.

2) Get the system such that the subsystem has loaded with the datasource disabled. You could edit xml, but here I'll use the CLI against a server started from a standard standalone.xml

{code}
[standalone at localhost:9990 /] cd subsystem=datasources/data-source=ExampleDS
[standalone at localhost:9990 data-source=ExampleDS] :disable
{
    "outcome" => "success",
    "response-headers" => {
        "operation-requires-reload" => true,
        "process-state" => "reload-required"
    }
}
[standalone at localhost:9990 data-source=ExampleDS] reload
{code}

2) Change an attribute on the datasource resource. I don't think it much matters which one; check-valid-connection-sql is just the one the reporter was changing:

{code}
[standalone at localhost:9990 data-source=ExampleDS] :write-attribute(name=check-valid-connection-sql,value="select 1")
{"outcome" => "success"}
{code}

3) Enable the datasource

{code}
[standalone at localhost:9990 data-source=ExampleDS] :enable
{"outcome" => "success"}
{code} 

4) Close the jconsole connection and reconnect (which refreshes the mbean tree). Under jboss.as->datasources->ExampleDS, you no longer see "jdbc" and "pool" children.

5) Some CLI operations won't work also

{code}
[standalone at localhost:9990 data-source=ExampleDS] cd statistics=jdbc
WFLYCTL0217: Child resource '"statistics" => "jdbc"' not found
[standalone at localhost:9990 data-source=ExampleDS] cd statistics=pool
WFLYCTL0217: Child resource '"statistics" => "pool"' not found
{code}


6) Interestingly, many CLI operations still work, e.g.:

{code}
[standalone at localhost:9990 data-source=ExampleDS] ./statistics=jdbc:read-resource(include-runtime=true)
{
    "outcome" => "success",
    "result" => {
        "PreparedStatementCacheAccessCount" => "0",
        "PreparedStatementCacheAddCount" => "0",
        "PreparedStatementCacheCurrentSize" => "0",
        "PreparedStatementCacheDeleteCount" => "0",
        "PreparedStatementCacheHitCount" => "0",
        "PreparedStatementCacheMissCount" => "0",
        "statistics-enabled" => false
    }
}
{code}

The reason for this is just that the handler for "read-resource" happens to be forgiving of the underlying problem, which I'll get to next.

> AS7.2 - JMX Datasource pool & jdbc statistics dissapear if you enable validation
> --------------------------------------------------------------------------------
>
>                 Key: WFLY-2551
>                 URL: https://issues.jboss.org/browse/WFLY-2551
>             Project: WildFly
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: JCA, JMX
>            Reporter: Will Tatam
>            Assignee: Stefano Maestri
>
> If you just create a basic datasource under AS 7.2 the you can view the current statistics about the pool under
> jboss.as:subsystem=datasources,data-source=mySQL,statistics=pool
> However, if you add the following then sometimes the statistics=pool and statistics=jdbc entries disspaear
> <validation><check-valid-connection-sql>select 1</check-valid-connection-sql></validation>



--
This message was sent by Atlassian JIRA
(v6.2.6#6264)


More information about the jboss-jira mailing list