Hi All,

I haven't seen the same dead lock situation when running with mysql and H2.
The situation may be related oracle ojdbc14.jar

Thanks,
Krishantha.

On Mon, Mar 1, 2010 at 12:05 AM, Krishantha Samaraweera <krishan...@wso2.com
> wrote:

> Hi all,
>
> Dead lock detected again with oracle even though we didn't get any dead
> locks with H2, after the fixes done on Friday evening. I got the following
> dead lock situation when running worker1 class with 1000 iterations and 40
> concurrent users.
>
> Increasing default max wait time didn't help for me.
>
> [2010-03-01 00:22:53,466] ERROR -  A SQLException error has occurred when
> trying to close result set or prepared statement
>
> java.sql.SQLException: ORA-00060: deadlock detected while waiting for
> resource
>
>         at
> oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
>         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
>         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
>         at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
>         at
> oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
>         at
> oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:955)
>         at
> oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168)
>         at
> oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)
>         at
> oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3368)
>         at
> org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)
>         at
> org.wso2.carbon.registry.core.jdbc.dao.ResourceDAO.deleteContentStream(ResourceDAO.java:660)
>
>         at
> org.wso2.carbon.registry.core.jdbc.dao.ResourceVersionDAO.versionResource(ResourceVersionDAO.java:1052)
>         at
> org.wso2.carbon.registry.core.jdbc.VersionRepository.createVersionForResource(VersionRepository.java:191)
>         at
> org.wso2.carbon.registry.core.jdbc.VersionRepository.createSnapshot(VersionRepository.java:77)
>         at
> org.wso2.carbon.registry.core.jdbc.Repository.deleteSubTree(Repository.java:473)
>
>         at
> org.wso2.carbon.registry.core.jdbc.Repository.delete(Repository.java:403)
>         at
> org.wso2.carbon.registry.core.jdbc.EmbeddedRegistry.delete(EmbeddedRegistry.java:805)
>
>         at
> org.wso2.carbon.registry.core.session.UserRegistry.delete(UserRegistry.java:625)
>         at
> org.wso2.carbon.registry.app.RegistryAdapter.processDeleteRequest(RegistryAdapter.java:602)
>         at
> org.wso2.carbon.registry.app.RegistryAdapter.extensionRequest(RegistryAdapter.java:124)
>         at
> org.apache.abdera.protocol.server.impl.AbstractProvider.processExtensionRequest(AbstractProvider.java:196)
>         at
> org.apache.abdera.protocol.server.impl.AbstractProvider.process(AbstractProvider.java:137)
>         at
> org.apache.abdera.protocol.server.FilterChain.next(FilterChain.java:42)
>         at
> org.apache.abdera.protocol.server.servlet.AbderaServlet.service(AbderaServlet.java:90)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>         at
> org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90)
>         at
> org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:111)
>         at
> org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:67)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>         at
> org.wso2.carbon.bridge.BridgeServlet.service(BridgeServlet.java:135)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>         at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
>         at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
>         at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>         at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
>         at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
>         at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
>         at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
>         at
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
>         at
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
>         at
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
>         at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
>         at java.lang.Thread.run(Thread.java:619)
> [2010-03-01 00:22:56,553] ERROR -  A SQLException error has occurred when
> trying to close result set or prepared statement
>
> java.sql.SQLException: ORA-00060: deadlock detected while waiting for
> resource
>
>
> Thanks,
> Krishantha.
>
>
> On Sun, Feb 28, 2010 at 11:57 AM, Senaka Fernando <sen...@wso2.com> wrote:
>
>> Hi all,
>>
>> We finally found a viable solution to this problem. Now, we have made sure
>> that all write operations will access database tables in the same order.
>> Therefore, the situation of A locking X, and waiting for Y, and B locking Y
>> and waiting for X is eliminated in the process.
>>
>> Looking forward to take a look into all the INSERT queries done within the
>> registry kernel and make sure that this protocol is adhered. We also need to
>> document this (inside the code perhaps), and make sure that people read
>> this, before introducing/modifying queries and operations involving queries.
>>
>> Thanks,
>> Senaka.
>>
>>
>> On Fri, Feb 26, 2010 at 10:42 AM, Amila Suriarachchi <am...@wso2.com>wrote:
>>
>>>
>>>
>>> On Fri, Feb 26, 2010 at 9:38 AM, Dimuthu Gamage <dimu...@wso2.com>wrote:
>>>
>>>> Hi,
>>>>
>>>> I think What 'READ_COMMITED' do is, in a case of doing reading, it will
>>>> continue reading the commited data from the tables locked by others.
>>>
>>> Again the question is why others have to lock. Are they in higher
>>> transaction levels?
>>>
>>>
>>>> So I think what 'READ_COMMITED' guarantee is , if all the operation are
>>>> 'READ' then it will not dead lock. But Apparently we are doing some 'WRITE'
>>>> operations in that test case. so deadlocks are possible.
>>>>
>>>> I'm trying to list the sequence of database accesses for simple GET,
>>>> PUT, DELETE registry operations at here[1]. So we can identify which
>>>> operation can cause the deadlocks.
>>>>
>>>
>>> I think writing a sample app with two threads to check the explanation we
>>> provide may helpful as well. i.e. we
>>> can control the event happening order using some sleeps.
>>>
>>> Amila.
>>>
>>>>
>>>> Thanks
>>>> Dimuthu
>>>>
>>>> [1]
>>>> https://spreadsheets.google.com/a/wso2.com/ccc?key=tX5iHIbwTIDDuyF8uwsERiw&hl=en
>>>>
>>>>
>>>> On Fri, Feb 26, 2010 at 9:14 AM, Amila Suriarachchi <am...@wso2.com>wrote:
>>>>
>>>>>
>>>>>
>>>>> On Fri, Feb 26, 2010 at 8:21 AM, Dimuthu Gamage <dimu...@wso2.com>wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Fri, Feb 26, 2010 at 7:50 AM, Amila Suriarachchi 
>>>>>> <am...@wso2.com>wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Feb 24, 2010 at 12:03 PM, Sumedha Rubasinghe <
>>>>>>> sume...@wso2.com> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Feb 24, 2010 at 11:57 AM, Ruwan Linton <ru...@wso2.com>wrote:
>>>>>>>>
>>>>>>>>> Senaka Fernando wrote:
>>>>>>>>> > This could be due to overlapping transactions in this particular
>>>>>>>>> > component that attempts to write to the registry at once.
>>>>>>>>> So does this mean that Registry cannot handle concurrent
>>>>>>>>> connections to
>>>>>>>>> a particular registry resource/collection? Well, even in that case
>>>>>>>>> it
>>>>>>>>> shouldn't deadlock :-(
>>>>>>>>>
>>>>>>>>
>>>>>>>> If an insert (write) happens the database locks the table allowing
>>>>>>>> only read. So the only option available for us is to speed up write
>>>>>>>> operation. working on it..
>>>>>>>>
>>>>>>>
>>>>>>> hi Sumedha,
>>>>>>>
>>>>>>> What is the transaction isolation level you use for these
>>>>>>> transactions?
>>>>>>>
>>>>>>
>>>>>> It is read committed.
>>>>>>
>>>>> Do you know why this deadlocks occur?. At this isolation level
>>>>> transactions do not have to lock the tables isn't it?
>>>>>
>>>>> Amila.
>>>>>
>>>>>
>>>>>> Thanks
>>>>>> Dimuthu
>>>>>>
>>>>>>>
>>>>>>> Amila.
>>>>>>>
>>>>>>>>
>>>>>>>> /sumedha
>>>>>>>>
>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> Ruwan
>>>>>>>>> >
>>>>>>>>> > Thanks,
>>>>>>>>> > Senaka.
>>>>>>>>> >
>>>>>>>>> > On Wed, Feb 24, 2010 at 11:28 AM, Hiranya Jayathilaka
>>>>>>>>> > <hira...@wso2.com <mailto:hira...@wso2.com>> wrote:
>>>>>>>>> >
>>>>>>>>> >     Following exception encountered in the ESB while updating a
>>>>>>>>> proxy
>>>>>>>>> >     service:
>>>>>>>>> >
>>>>>>>>> >
>>>>>>>>> >     Exception in thread "Thread-23"
>>>>>>>>> >
>>>>>>>>> org.wso2.carbon.mediation.initializer.persistence.ServiceBusPersistenceException:
>>>>>>>>> >     Error while saving mediation configuration changes
>>>>>>>>> >     at
>>>>>>>>> >
>>>>>>>>> org.wso2.carbon.mediation.initializer.persistence.MediationPersistenceManager.handleException(MediationPersistenceManager.java:278)
>>>>>>>>> >     at
>>>>>>>>> >
>>>>>>>>> org.wso2.carbon.mediation.initializer.persistence.MediationPersistenceManager.access$1200(MediationPersistenceManager.java:48)
>>>>>>>>> >     at
>>>>>>>>> >
>>>>>>>>> org.wso2.carbon.mediation.initializer.persistence.MediationPersistenceManager$MediationPersistenceWorker.run(MediationPersistenceManager.java:320)
>>>>>>>>> >     Caused by:
>>>>>>>>> >
>>>>>>>>> org.wso2.carbon.mediation.initializer.persistence.ServiceBusPersistenceException:
>>>>>>>>> >     Unable to persist the proxy service in the path :
>>>>>>>>> >     /repository/synapse/proxy-services/FooProxy
>>>>>>>>> >     at
>>>>>>>>> >
>>>>>>>>> org.wso2.carbon.mediation.initializer.persistence.registry.AbstractRegistryStore.handleException(AbstractRegistryStore.java:101)
>>>>>>>>> >     at
>>>>>>>>> >
>>>>>>>>> org.wso2.carbon.mediation.initializer.persistence.registry.ProxyServiceRegistryStore.persistElement(ProxyServiceRegistryStore.java:72)
>>>>>>>>> >     at
>>>>>>>>> >
>>>>>>>>> org.wso2.carbon.mediation.initializer.persistence.AbstractStore.saveToRegistry(AbstractStore.java:154)
>>>>>>>>> >     at
>>>>>>>>> >
>>>>>>>>> org.wso2.carbon.mediation.initializer.persistence.AbstractStore.save(AbstractStore.java:82)
>>>>>>>>> >     at
>>>>>>>>> >
>>>>>>>>> org.wso2.carbon.mediation.initializer.persistence.MediationPersistenceManager.persistElement(MediationPersistenceManager.java:335)
>>>>>>>>> >     at
>>>>>>>>> >
>>>>>>>>> org.wso2.carbon.mediation.initializer.persistence.MediationPersistenceManager.access$1000(MediationPersistenceManager.java:48)
>>>>>>>>> >     at
>>>>>>>>> >
>>>>>>>>> org.wso2.carbon.mediation.initializer.persistence.MediationPersistenceManager$MediationPersistenceWorker.run(MediationPersistenceManager.java:314)
>>>>>>>>> >     Caused by:
>>>>>>>>> >     org.wso2.carbon.registry.core.exceptions.RegistryException:
>>>>>>>>> Unable
>>>>>>>>> >     to persist element
>>>>>>>>> >     at
>>>>>>>>> >
>>>>>>>>> org.wso2.carbon.mediation.initializer.persistence.registry.AbstractRegistryStore.persistElement(AbstractRegistryStore.java:95)
>>>>>>>>> >     at
>>>>>>>>> >
>>>>>>>>> org.wso2.carbon.mediation.initializer.persistence.registry.ProxyServiceRegistryStore.persistElement(ProxyServiceRegistryStore.java:69)
>>>>>>>>> >     ... 5 more
>>>>>>>>> >     Caused by:
>>>>>>>>> >     org.wso2.carbon.registry.core.exceptions.RegistryException:
>>>>>>>>> Failed
>>>>>>>>> >     to add log entry for resource
>>>>>>>>> >     /_system/config/repository/synapse/proxy-services. Deadlock
>>>>>>>>> >     detected. The current transaction was rolled back. Details:
>>>>>>>>> >     Session #9 (user: WSO2CARBON) is waiting to lock
>>>>>>>>> >     PUBLIC.REG_RESOURCE while locking PUBLIC.REG_ASSOCIATION
>>>>>>>>> >     (exclusive), PUBLIC.REG_LOG (exclusive).
>>>>>>>>> >     Session #12 (user: WSO2CARBON) is waiting to lock
>>>>>>>>> PUBLIC.REG_LOG
>>>>>>>>> >     while locking PUBLIC.REG_CONTENT_HISTORY (exclusive),
>>>>>>>>> >     PUBLIC.REG_RESOURCE_HISTORY (exclusive), PUBLIC.REG_RESOURCE
>>>>>>>>> >     (exclusive), PUBLIC.REG_CONTENT (exclusive),
>>>>>>>>> PUBLIC.REG_SNAPSHOT
>>>>>>>>> >     (exclusive).; SQL statement:
>>>>>>>>> >     INSERT INTO REG_LOG (REG_PATH, REG_USER_ID, REG_LOGGED_TIME,
>>>>>>>>> >     REG_ACTION, REG_ACTION_DATA, REG_TENANT_ID) VALUES (?, ?, ?,
>>>>>>>>> ?, ?,
>>>>>>>>> >     ?) [40001-112]
>>>>>>>>> >     at
>>>>>>>>> >
>>>>>>>>> org.wso2.carbon.registry.core.jdbc.dao.LogsDAO.addLog(LogsDAO.java:79)
>>>>>>>>> >     at
>>>>>>>>> >
>>>>>>>>> org.wso2.carbon.registry.core.jdbc.Repository.update(Repository.java:966)
>>>>>>>>> >     at
>>>>>>>>> >
>>>>>>>>> org.wso2.carbon.registry.core.jdbc.Repository.updateParent(Repository.java:947)
>>>>>>>>> >     at
>>>>>>>>> >
>>>>>>>>> org.wso2.carbon.registry.core.jdbc.Repository.delete(Repository.java:403)
>>>>>>>>> >     at
>>>>>>>>> >
>>>>>>>>> org.wso2.carbon.registry.core.jdbc.EmbeddedRegistry.delete(EmbeddedRegistry.java:807)
>>>>>>>>> >     at
>>>>>>>>> >
>>>>>>>>> org.wso2.carbon.registry.core.session.UserRegistry.delete(UserRegistry.java:625)
>>>>>>>>> >     at
>>>>>>>>> >
>>>>>>>>> org.wso2.carbon.mediation.initializer.persistence.registry.AbstractRegistryStore.persistElement(AbstractRegistryStore.java:79)
>>>>>>>>> >     ... 6 more
>>>>>>>>> >     Caused by: org.h2.jdbc.JdbcSQLException: Deadlock detected.
>>>>>>>>> The
>>>>>>>>> >     current transaction was rolled back. Details:
>>>>>>>>> >     Session #9 (user: WSO2CARBON) is waiting to lock
>>>>>>>>> >     PUBLIC.REG_RESOURCE while locking PUBLIC.REG_ASSOCIATION
>>>>>>>>> >     (exclusive), PUBLIC.REG_LOG (exclusive).
>>>>>>>>> >     Session #12 (user: WSO2CARBON) is waiting to lock
>>>>>>>>> PUBLIC.REG_LOG
>>>>>>>>> >     while locking PUBLIC.REG_CONTENT_HISTORY (exclusive),
>>>>>>>>> >     PUBLIC.REG_RESOURCE_HISTORY (exclusive), PUBLIC.REG_RESOURCE
>>>>>>>>> >     (exclusive), PUBLIC.REG_CONTENT (exclusive),
>>>>>>>>> PUBLIC.REG_SNAPSHOT
>>>>>>>>> >     (exclusive).; SQL statement:
>>>>>>>>> >     INSERT INTO REG_LOG (REG_PATH, REG_USER_ID, REG_LOGGED_TIME,
>>>>>>>>> >     REG_ACTION, REG_ACTION_DATA, REG_TENANT_ID) VALUES (?, ?, ?,
>>>>>>>>> ?, ?,
>>>>>>>>> >     ?) [40001-112]
>>>>>>>>> >     at org.h2.message.Message.getSQLException(Message.java:107)
>>>>>>>>> >     at org.h2.message.Message.getSQLException(Message.java:118)
>>>>>>>>> >     at org.h2.message.Message.getSQLException(Message.java:77)
>>>>>>>>> >     at org.h2.table.TableData.doLock(TableData.java:428)
>>>>>>>>> >     at org.h2.table.TableData.lock(TableData.java:375)
>>>>>>>>> >     at org.h2.command.dml.Insert.update(Insert.java:99)
>>>>>>>>> >     at
>>>>>>>>> org.h2.command.CommandContainer.update(CommandContainer.java:71)
>>>>>>>>> >     at org.h2.command.Command.executeUpdate(Command.java:207)
>>>>>>>>> >     at
>>>>>>>>> >
>>>>>>>>> org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:139)
>>>>>>>>> >     at
>>>>>>>>> >
>>>>>>>>> org.h2.jdbc.JdbcPreparedStatement.executeUpdate(JdbcPreparedStatement.java:128)
>>>>>>>>> >     at
>>>>>>>>> >
>>>>>>>>> org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)
>>>>>>>>> >     at
>>>>>>>>> >
>>>>>>>>> org.wso2.carbon.registry.core.jdbc.dao.LogsDAO.addLog(LogsDAO.java:72)
>>>>>>>>> >     ... 12 more
>>>>>>>>> >
>>>>>>>>> >     Thanks
>>>>>>>>> >     --
>>>>>>>>> >     Hiranya Jayathilaka
>>>>>>>>> >     Software Engineer;
>>>>>>>>> >     WSO2 Inc.;  http://wso2.org
>>>>>>>>> >     E-mail: hira...@wso2.com <mailto:hira...@wso2.com>;  Mobile:
>>>>>>>>> +94
>>>>>>>>> >     77 633 3491
>>>>>>>>> >     Blog: http://techfeast-hiranya.blogspot.com
>>>>>>>>> >
>>>>>>>>> >     _______________________________________________
>>>>>>>>> >     Carbon-dev mailing list
>>>>>>>>> >     Carbon-dev@wso2.org <mailto:Carbon-dev@wso2.org>
>>>>>>>>> >     https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>>>>>>>> >
>>>>>>>>> >
>>>>>>>>> >
>>>>>>>>> >
>>>>>>>>> > --
>>>>>>>>> > Senaka Fernando
>>>>>>>>> > Software Engineer
>>>>>>>>> > WSO2 Inc.
>>>>>>>>> > E-mail: senaka AT wso2.com <http://wso2.com>;  Mobile: +94 77
>>>>>>>>> 322 1818
>>>>>>>>> >
>>>>>>>>> > http://www.wso2.com/ - "Lean . Enterprise . Middleware"
>>>>>>>>> >
>>>>>>>>> ------------------------------------------------------------------------
>>>>>>>>> >
>>>>>>>>> > _______________________________________________
>>>>>>>>> > Carbon-dev mailing list
>>>>>>>>> > Carbon-dev@wso2.org
>>>>>>>>> > https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>>>>>>>> >
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Ruwan Linton
>>>>>>>>> Technical Lead & Product Manager; WSO2 ESB; http://wso2.org/esb
>>>>>>>>> WSO2 Inc.; http://wso2.org
>>>>>>>>> email: ru...@wso2.com; cell: +94 77 341 3097
>>>>>>>>> blog: http://blog.ruwan.org
>>>>>>>>>
>>>>>>>>> Lean . Enterprise . Middleware
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Carbon-dev mailing list
>>>>>>>>> Carbon-dev@wso2.org
>>>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Carbon-dev mailing list
>>>>>>>> Carbon-dev@wso2.org
>>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Carbon-dev mailing list
>>>>>>> Carbon-dev@wso2.org
>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Carbon-dev mailing list
>>>>>> Carbon-dev@wso2.org
>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Carbon-dev mailing list
>>>>> Carbon-dev@wso2.org
>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> Carbon-dev mailing list
>>>> Carbon-dev@wso2.org
>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>>>
>>>>
>>>
>>> _______________________________________________
>>> Carbon-dev mailing list
>>> Carbon-dev@wso2.org
>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>>
>>>
>>
>>
>> --
>> Senaka Fernando
>> Software Engineer
>> WSO2 Inc.
>> E-mail: senaka AT wso2.com;  Mobile: +94 77 322 1818
>>
>>
>> http://www.wso2.com/ - "Lean . Enterprise . Middleware"
>>
>> _______________________________________________
>> Carbon-dev mailing list
>> Carbon-dev@wso2.org
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
>>
>>
>
_______________________________________________
Carbon-dev mailing list
Carbon-dev@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev

Reply via email to