[teiid-issues] [JBoss JIRA] (TEIID-5939) connection pool not destroyed after datasource deletion without server reload(java)

Steven Hawkins (Jira) issues at jboss.org
Fri Apr 17 08:10:00 EDT 2020


    [ https://issues.redhat.com/browse/TEIID-5939?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14041101#comment-14041101 ] 

Steven Hawkins edited comment on TEIID-5939 at 4/17/20 8:09 AM:
----------------------------------------------------------------

We created WFLY-6773 to address this situation in general, but from what I can see in our code https://github.com/teiid/teiid/blob/7bff0daf09935a87d98618f6b13ede7a5cbfad3c/wildfly/wildfly-admin/src/main/java/org/teiid/adminapi/jboss/AdminFactory.java#L816 we did not circle back to add the allow-resource-service-restart header https://developer.jboss.org/wiki/DesignNotesForSupportingAbilityToAddremoveDataSourceWithoutReload-requiredState that would immediately remove the datasource.

The workaround is just to directly issue the as cli call: https://developer.jboss.org/thread/278741




was (Author: shawkins):
We created https://issues.redhat.com/browse/WFLY-6773 to address this situation in general, but from what I can see in our code https://github.com/teiid/teiid/blob/7bff0daf09935a87d98618f6b13ede7a5cbfad3c/wildfly/wildfly-admin/src/main/java/org/teiid/adminapi/jboss/AdminFactory.java#L816 we did not circle back to add the allow-resource-service-restart header https://developer.jboss.org/wiki/DesignNotesForSupportingAbilityToAddremoveDataSourceWithoutReload-requiredState that would immediately remove the datasource.

The workaround is just to directly issue the as cli call: https://developer.jboss.org/thread/278741



> connection pool not destroyed after datasource deletion without server reload(java)
> -----------------------------------------------------------------------------------
>
>                 Key: TEIID-5939
>                 URL: https://issues.redhat.com/browse/TEIID-5939
>             Project: Teiid
>          Issue Type: Bug
>          Components: AdminApi
>    Affects Versions: 11.1.2
>            Reporter: Manoj Majumdar
>            Assignee: Steven Hawkins
>            Priority: Major
>
> Hi Team,
> Connection pool is not removed after deletion of datasource using java code.
> Teiid(Jboss) server reload required to reflect the deletion of connection pool from actual database(we are using mysql as database). 
> Until server reloads, connections in deleted datasource's connection pool remain in sleep mode.
> *Pre-requisite*
> * Connection is created with the mysql database using teiid
> * Datasource is created in teiid.
> * Delete the above created connection through java using code i.e by using AdminApiClientAccessor.
> * That removed the datasource from teiid.
> * Through below code I am able to delete the datasource.
> *Java code*
> {code:java}
> import org.teiid.adminapi.Admin;
> ..
> private Admin admin;                            //assigned object to admin;
> ..
> ..
> public void deleteDataSource(String datasourceName){	
> 		try {
> 			admin.deleteDataSource(datasourceName);
> 		} catch (Exception e) {
> 			logger.error(e);
> 		}
> }
> {code}
> datasourceName = name of the datasource created earlier.
> *standalone-teiid.xml*
> </xa-datasource>
>                     ..
>                     ..
>                    <xa-pool>
>                         <min-pool-size>3</min-pool-size>
>                         <max-pool-size>10</max-pool-size>
>                         <flush-strategy>IdleConnections</flush-strategy>
>                     </xa-pool>
>                    <validation>
>                         <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
>                         <background-validation>true</background-validation>
>                         <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
>                     </validation>
> </xa-datasource>
> *Issues :*
> * Even though datasource removed, connection pool is not destroyed
> * Able to see connection threads available on Mysql admin console using the command 
>      
> {code:java}
>  show processlist;
> {code}
> * Changes reflect only when the Teiid (jboss) server is reloaded.
> * Once server reloads connections in connection pool is closed/removed from the database.
> * 'Too many connection' issue facing on mysql server due to multiple connection threads remains in sleep mode even though datasource are already removed.
> Please let us know :
> * Is there any method to remove connection pool from actual database.
> * Is server reload mandatory.



--
This message was sent by Atlassian Jira
(v7.13.8#713008)


More information about the teiid-issues mailing list