Harm
Can you issue a "kill - 3 <pid_of_esb>" and get me a thread dump?
Evanthika, can you test this scenario tomorrow to try to reproduce this
issue?
asankha
Harm Verhagen wrote:
Hoi,
I'm experiencing something that looks like a deadlock in wso2esb.
I have a sequence with a number of database accesses. (using mysql).
Basicaly I want to store every message in a database.
When stress testing the esb sometimes locks up, not processing any
messages anymore.
Only stop/start seems to help
The logging seems to indicate its related to the databasepool management.
*ESB logging*
2008-09-25 17:31:56,199 [127.0.0.1-vloeki_v01] [HttpServerWorker-5]
DEBUG DBReportMediator End : DBReport mediator
2008-09-25 17:31:56,199 [127.0.0.1-vloeki_v01] [HttpServerWorker-5]
DEBUG DBLookupMediator Start : DBLookup mediator
2008-09-25 17:31:56,199 [127.0.0.1-vloeki_v01] [HttpServerWorker-5]
DEBUG DBLookupMediator Getting a connection from DataSource
jdbc:mysql://localhost:3306/esb and preparing statement : select id
from transaction_uuid where uuid = ?
2008-09-25 17:31:56,200 [127.0.0.1-vloeki_v01] [HttpServerWorker-5]
DEBUG DBLookupMediator Setting as parameter : 1 value :
urn:uuid:953256D70E1C3B31A21222356730663 as JDBC Type : 12(see
java.sql.Types for valid types)
2008-09-25 17:31:56,200 [127.0.0.1-vloeki_v01] [HttpServerWorker-5]
DEBUG DBLookupMediator Successfully prepared statement : select id
from transaction_uuid where uuid = ? against DataSource :
jdbc:mysql://localhost:3306/esb
2008-09-25 17:31:56,200 [127.0.0.1-vloeki_v01] [HttpServerWorker-5]
DEBUG DBLookupMediator Processing the first row returned : select id
from transaction_uuid where uuid = ?
2008-09-25 17:31:56,200 [127.0.0.1-vloeki_v01] [HttpServerWorker-5]
DEBUG DBLookupMediator Column : 1 returned value : 6004 Setting this
as the message property : transaction_id
2008-09-25 17:31:56,201 [127.0.0.1-vloeki_v01] [HttpServerWorker-5]
DEBUG DBLookupMediator End : DBLookup mediator
2008-09-25 17:31:56,201 [127.0.0.1-vloeki_v01] [HttpServerWorker-5]
DEBUG DBReportMediator Start : DBReport mediator
2008-09-25 17:31:56,201 [127.0.0.1-vloeki_v01] [HttpServerWorker-5]
DEBUG DBReportMediator Getting a connection from DataSource
jdbc:mysql://localhost:3306/esb and preparing statement : delete from
transaction_uuid where id = ?
...
Here it hangs.. I can get more debug prints out of it by pressing
Configuration -> save but _no_ messages are processed.
When the ESB hangs, Mysql is still up & running fine, I can happily
view the database with mysql querybrowser, make new connections etc.
Any Idea what goes on ?
*how to reproduce*
issue soap request with a stress test tool, 5 threads simultaneously
doing a medium load (30-60 request/second)
Its pretty reproducable, after a few thousens requests I get wso2 to
hang. so withing a few minutues.
*The sequence:*
<syn:sequence name="md_seq">
<syn:property name="Authorization" value="Basic
ZnJlZGRpZTpoZWluZWtlbg==" scope="transport"/>
<syn:log level="headers" separator=",">
<syn:property xmlns:ns1="http://org.apache.synapse/xsd"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" name="type"
expression="get-property('axis2','messageType')"/>
<syn:property xmlns:ns1="http://org.apache.synapse/xsd"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" name="test"
expression="get-property('transport', 'Authorization')"/>
<syn:property xmlns:ns1="http://org.apache.synapse/xsd"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
name="RemoteIP" expression="get-property('axis2','REMOTE_ADDR')"/>
<syn:property xmlns:ns1="http://org.apache.synapse/xsd"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" name="time"
expression="get-property('SYSTEM_DATE', 'yyyy-MM-dd HH:mm:ss z')"/>
<syn:property xmlns:ns1="http://org.apache.synapse/xsd"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" name="uid"
expression="get-property('transport', 'MessageID')"/>
<syn:property name="text" value="XXXXXX"/>
<syn:property xmlns:ns1="http://org.apache.synapse/xsd"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" name="uid"
expression="get-property('MessageID')"/>
</syn:log>
<syn:dblookup>
<syn:connection>
<syn:pool>
<syn:password>esb</syn:password>
<syn:user>esb</syn:user>
<syn:url>jdbc:mysql://localhost:3306/esb</syn:url>
<syn:driver>com.mysql.jdbc.Driver</syn:driver>
<syn:property name="poolstatements" value="true"/>
</syn:pool>
</syn:connection>
<syn:statement>
<syn:sql><![CDATA[select * from customer c where token
= '00000000-00';]]></syn:sql>
<syn:result name="customer_id" column="id"/>
</syn:statement>
</syn:dblookup>
<syn:dbreport>
<syn:connection>
<syn:pool>
<syn:password>esb</syn:password>
<syn:user>esb</syn:user>
<syn:url>jdbc:mysql://localhost:3306/esb</syn:url>
<syn:driver>com.mysql.jdbc.Driver</syn:driver>
<syn:property name="autocommit" value="false"/>
</syn:pool>
</syn:connection>
<syn:statement>
<syn:sql><![CDATA[insert into transaction (
customer_id, token, ip, transaction_type ) values ( ?, ?, ?,1
);]]></syn:sql>
<syn:parameter
xmlns:ns1="http://org.apache.synapse/xsd"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
expression="get-property('customer_id')" type="INTEGER"/>
<syn:parameter value="A0000000-02BBDDE" type="VARCHAR"/>
<syn:parameter
xmlns:ns1="http://org.apache.synapse/xsd"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
expression="get-property('axis2','REMOTE_ADDR')" type="VARCHAR"/>
</syn:statement>
<syn:statement>
<syn:sql><![CDATA[insert into transaction_uuid(id,
uuid) values(LAST_INSERT_ID(),?)]]></syn:sql>
<syn:parameter
xmlns:ns1="http://org.apache.synapse/xsd"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
expression="get-property('MessageID')" type="VARCHAR"/>
</syn:statement>
</syn:dbreport>
<syn:dblookup>
<syn:connection>
<syn:pool>
<syn:password>esb</syn:password>
<syn:user>esb</syn:user>
<syn:url>jdbc:mysql://localhost:3306/esb</syn:url>
<syn:driver>com.mysql.jdbc.Driver</syn:driver>
</syn:pool>
</syn:connection>
<syn:statement>
<syn:sql><![CDATA[select id from transaction_uuid
where uuid = ?]]></syn:sql>
<syn:parameter
xmlns:ns1="http://org.apache.synapse/xsd"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
expression="get-property('MessageID')" type="VARCHAR"/>
<syn:result name="transaction_id" column="1"/>
</syn:statement>
</syn:dblookup>
<syn:dbreport>
<syn:connection>
<syn:pool>
<syn:password>esb</syn:password>
<syn:user>esb</syn:user>
<syn:url>jdbc:mysql://localhost:3306/esb</syn:url>
<syn:driver>com.mysql.jdbc.Driver</syn:driver>
<syn:property name="autocommit" value="false"/>
</syn:pool>
</syn:connection>
<syn:statement>
<syn:sql><![CDATA[delete from transaction_uuid where
id = ?]]></syn:sql>
<syn:parameter
xmlns:ns1="http://org.apache.synapse/xsd"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
expression="get-property('transaction_id')" type="INTEGER"/>
</syn:statement>
</syn:dbreport>
<syn:send>
<syn:endpoint>
<syn:address
uri="http://127.0.0.1:8180/boost-platform/services/messageDelivery"/>
</syn:endpoint>
</syn:send>
</syn:sequence>
*version
*OS: debian
wso2 v1.7.1
mysql 5.0
mysql-connector-java-5.0.4
------------------------------------------------------------------------
_______________________________________________
Esb-java-user mailing list
[email protected]
http://mailman.wso2.org/cgi-bin/mailman/listinfo/esb-java-user
_______________________________________________
Esb-java-user mailing list
[email protected]
http://mailman.wso2.org/cgi-bin/mailman/listinfo/esb-java-user