Created attachment 882720 [details] RAR The current call of flush(true) will also remove connections that are actively in use by a client. The behavior of destroying active connections may be desired additional functionality but should not be the default behavior for the flush. Setup: Clean EAP 6.2.2 with TRACE JCA logging on default standalone.xml and adding [1]. 1) Profile -> Subsystems -> Connectors -> Resource Adapters 2) Select or View the desired Resource Adapter -> Connection Definition 3) Select "Pool" 4) Select "Flush" [1] <subsystem xmlns="urn:jboss:domain:resource-adapters:1.1"> <resource-adapters> <resource-adapter id="gss.rar"> <archive> gss.rar </archive> <transaction-support>XATransaction</transaction-support> <connection-definitions> <connection-definition class-name="org.redhat.gss.AcmeManagedConnectionFactory" jndi-name="java:jboss/eis/AcmeConnection" enabled="true" use-java-context="true" pool-name="AcmeConnection" use-ccm="true"> <xa-pool> <min-pool-size>5</min-pool-size> <max-pool-size>10</max-pool-size> <prefill>true</prefill> <use-strict-min>true</use-strict-min> <flush-strategy>FailingConnectionOnly</flush-strategy> <pad-xid>false</pad-xid> <wrap-xa-resource>true</wrap-xa-resource> </xa-pool> <recovery no-recovery="true"> <recover-credential> <user-name>user</user-name> <password>password</password> </recover-credential> </recovery> </connection-definition> </connection-definitions> <admin-objects> <admin-object class-name="org.redhat.gss.AcmeAdminObjectImpl" jndi-name="java:jboss/eis/ao/AcmeAdminObjectImpl" enabled="true" use-java-context="true" pool-name="AcmeAdminObjectImpl"/> </admin-objects> </resource-adapter> </resource-adapters> </subsystem>
I'm trying to rebuild your setup. I added the subsystem configuration and deployed the gss.rar. What I don't fully understand is what you mean with "flush(true)"? Looking at the available management operations, I can see two flush operations: [standalone@localhost:9999 /] /subsystem=resource-adapters/resource-adapter=gss.rar/connection-definitions=AcmeConnection:read-operation-names { "outcome" => "success", "result" => [ "add", "flush-all-connection-in-pool", "flush-idle-connection-in-pool", ... ] } The "Flush" button in the console is bound to "flush-all-connection-in-pool". Are you referring to this operation when saying "flush(true)"?
Yes. flush-idle-connection-in-pool will destroy all active connections (flush(true)) which may not be desired. It would be best to display both options. ie: "flush all connections" and "flush idle connections". I'm not sure how (or if) supplemental information is wired in, but it would be nice for the admin to know how these can affect a running client.
To reflect the new requirement I changed the title of this issue
we should change it to use "flush-idle-connection-in-pool"
Moving to 6.4 as the issue is still valid for 6.3
Harald Pehl <hpehl> updated the status of jira HAL-389 to Coding In Progress
Harald Pehl <hpehl> updated the status of jira HAL-389 to Resolved
Should this still remain in POST state?
Verified for EAP 6.4.0.DR13