synapse-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anjana Fernando (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (SYNAPSE-871) Connection Leaks When Using DBReport Mediator with XADataSources
Date Mon, 07 May 2012 23:19:47 GMT

     [ https://issues.apache.org/jira/browse/SYNAPSE-871?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Anjana Fernando updated SYNAPSE-871:
------------------------------------

    Attachment: SYNAPSE-871-Patch.txt

A patch to fix the above mentioned issue has been attached here.
                
> Connection Leaks When Using DBReport Mediator with XADataSources
> ----------------------------------------------------------------
>
>                 Key: SYNAPSE-871
>                 URL: https://issues.apache.org/jira/browse/SYNAPSE-871
>             Project: Synapse
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.1
>         Environment: Tomcat 7, Atomikos 3.7.0, Synapse 2.1.0, MySQL 5.1.0.
>            Reporter: Anjana Fernando
>         Attachments: SYNAPSE-871-Patch.txt
>
>
> When using Synapse inside Tomcat with the Atomikos transaction manager, when DBReport
is participating in a distributed transaction, the connections it is created are not getting
returned back to the connection pool, and the connections eventually runs out. By looking
at the code, it seems to be that, the mediator gets a new connection from the data source,
and it also looks up the connection for a second time using a Statement object it created,
it seems, this getting the connection again from the Statement is faulty in some cases, where
when used with MySQL, it ends up with connection leaks. So I'm proposing to just create the
connection at one time and pass the connection to others methods that are needed, i.e. AbstractDBMediator#getPreparedStatement.
> * The entry in Tomcat's context.xml for defining the data source is as follows:
> =======================================================
>     <Resource
> name="jdbc/db1"
> auth="Container"
> type="com.atomikos.jdbc.AtomikosDataSourceBean"
> factory="com.atomikos.tomcat.BeanFactory"
> uniqueResourceName="java:comp/env/jdbc/db1"
> xaDataSourceClassName="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource"
> xaProperties.databaseName="SEQUENCE_DB"
> xaProperties.serverName="localhost"
> xaProperties.port="3306"
> xaProperties.user="root"
> xaProperties.password="123"
> xaProperties.url="jdbc:mysql://localhost:3306/SEQUENCE_DB?pinGlobalTxToPhysicalConnection=true"
> />
> =======================================================
> * The database used above contains a single table called "SEQUENCE" which only has a
auto increment integer as the primary key. 
> * Atomikos has been integrated with Tomcat as it is mentioned here: http://www.atomikos.com/Documentation/Tomcat7Integration35
> * The DBReport mediator definition:-
> =======================================================
> <dbreport useTransaction="true">
>                      <connection>
>                         <pool>
>                            <password>123</password>
>                            <user>root</user>
>                            <dsName>java:comp/env/jdbc/db1</dsName>
>                            <url>jdbc:mysql://localhost:3306/SEQUENCE_DB</url>
>                            <icClass>org.apache.naming.java.javaURLContextFactory</icClass>
>                         </pool>
>                      </connection>
>                      <statement>
>                         <sql>INSERT INTO SEQUENCE VALUES ()</sql>
>                      </statement>
>                   </dbreport>
> =======================================================
> * Execute the above DBReport mediator to reproduce the connection leak scenario. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
For additional commands, e-mail: dev-help@synapse.apache.org


Mime
View raw message