Hi Krishantha, Thanks for the information.
Regards, Senaka. On Fri, Feb 26, 2010 at 12:51 AM, Krishantha Samaraweera < [email protected]> wrote: > On Fri, Feb 26, 2010 at 12:03 AM, Senaka Fernando <[email protected]> wrote: > >> I wonder whether the changes made by Sumedha went into alpha2. Anyway, the >> results don't seem very informative to understand what actually happened. >> Can you do the same tests on H2 and paste any issues you see. >> > > AFAIK, H2 doesn't support for higher concurrency. Hence I run with minimal > load. It was 100 iterations with 10 concurrent users. > > [2010-02-26 00:31:35,494] ERROR - Failed to add resource to path > /test/thread_T29/resourceZ9. Deadlock detected. The current transaction was > rolled back. Details: > Session #312 (user: WSO2CARBON) is waiting to lock PUBLIC.REG_CONTENT while > locking PUBLIC.REG_CONTENT_HISTORY (exclusive), PUBLIC.REG_RESOURCE_HISTORY > (exclusive), PUBLIC.REG_RESOURCE (exclusive). > Session #309 (user: WSO2CARBON) is waiting to lock PUBLIC.REG_RESOURCE > while locking PUBLIC.REG_CONTENT (exclusive).; SQL statement: > INSERT INTO REG_RESOURCE (REG_PATH_ID, REG_NAME, REG_MEDIA_TYPE, > REG_CREATOR, REG_CREATED_TIME, REG_LAST_UPDATOR, REG_LAST_UPDATED_TIME, > REG_DESCRIPTION, REG_CONTENT_ID, REG_TENANT_ID) VALUES (?, ?, ?, ?, ?, ?, ?, > ?, ?, ?) [40001-112] > > org.h2.jdbc.JdbcSQLException: Deadlock detected. The current transaction > was rolled back. Details: > Session #312 (user: WSO2CARBON) is waiting to lock PUBLIC.REG_CONTENT while > locking PUBLIC.REG_CONTENT_HISTORY (exclusive), PUBLIC.REG_RESOURCE_HISTORY > (exclusive), PUBLIC.REG_RESOURCE (exclusive). > Session #309 (user: WSO2CARBON) is waiting to lock PUBLIC.REG_RESOURCE > while locking PUBLIC.REG_CONTENT (exclusive).; SQL statement: > INSERT INTO REG_RESOURCE (REG_PATH_ID, REG_NAME, REG_MEDIA_TYPE, > REG_CREATOR, REG_CREATED_TIME, REG_LAST_UPDATOR, REG_LAST_UPDATED_TIME, > REG_DESCRIPTION, REG_CONTENT_ID, 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.ResourceDAO.addResource(ResourceDAO.java:1267) > at > org.wso2.carbon.registry.core.jdbc.dao.ResourceDAO.add(ResourceDAO.java:573) > at > org.wso2.carbon.registry.core.jdbc.Repository.add(Repository.java:933) > at > org.wso2.carbon.registry.core.jdbc.Repository.put(Repository.java:287) > at > org.wso2.carbon.registry.core.jdbc.EmbeddedRegistry.put(EmbeddedRegistry.java:711) > at > org.wso2.carbon.registry.core.session.UserRegistry.put(UserRegistry.java:599) > at > org.wso2.carbon.registry.app.RegistryAdapter.postEntry(RegistryAdapter.java:1184) > at > org.wso2.carbon.registry.app.RegistryAdapter.postEntry(RegistryAdapter.java:52) > at > org.apache.abdera.protocol.server.impl.AbstractEntityCollectionAdapter.createNonMediaEntry(AbstractEntityCollectionAdapter.java:665) > at > org.apache.abdera.protocol.server.impl.AbstractEntityCollectionAdapter.postEntry(AbstractEntityCollectionAdapter.java:122) > at > org.wso2.carbon.registry.app.RegistryAdapter.postEntry(RegistryAdapter.java:1028) > at > org.apache.abdera.protocol.server.processors.CollectionRequestProcessor.processCollection(CollectionRequestProcessor.java:47) > at > org.apache.abdera.protocol.server.processors.CollectionRequestProcessor.process(CollectionRequestProcessor.java:38) > at > org.apache.abdera.protocol.server.impl.AbstractProvider.process(AbstractProvider.java:136) > > 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-02-26 00:31:49,743] ERROR - Failed to add resource to path /tes > > Thanks, > Krishantha. > > [1] http://pastebin.com/Ji6zTqMP > >> >> Thanks, >> Senaka. >> >> >> On Thu, Feb 25, 2010 at 11:16 PM, Krishantha Samaraweera < >> [email protected]> wrote: >> >>> Since it will take time to setup perf tests with embedded registry, >>> APP based perf tests have been executed with alpha2 build using >>> Oracle. Following dead lock situation occurred just after starting the >>> worker1 class with 500 iterations and 20 concurrent users. Please >>> refer to [1] detail error log. >>> >>> [2010-02-25 22:39:25,171] 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:658) >>> 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:471) >>> 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) >>> >>> Thanks, >>> Krishantha. >>> >>> [1] http://pastebin.com/Wi5RADvm >>> >>> >>> On Wed, Feb 24, 2010 at 1:08 PM, Krishantha Samaraweera >>> <[email protected]> wrote: >>> > On Wed, Feb 24, 2010 at 12:18 PM, Dimuthu Gamage <[email protected]> >>> wrote: >>> >> +1 for running perf tests. We can't rely on the atom based remote >>> registry >>> >> based perf tests that we used to run earlier, which doesn't have the >>> >> transactional database access across registry operations. We can use >>> the >>> >> same tests to run with embedded registry. >>> > >>> > Dimuthu, Can you help me to convert exiting APP based pref tests to >>> > run with embedded registry. >>> > >>> > We delayed perf test execution until we resolve oracle and MSSQL >>> > support with G-Reg. However, It is not good to delay this further >>> > anymore. >>> > >>> > So I will start perf tests with mysql within today. >>> > >>> > Thanks, >>> > Krishantha. >>> > >>> >> >>> >> With multiple registry operations are runing in one transaction, this >>> kind >>> >> of deadlock are possible. As senaka pointed out the solution can be >>> >> introducing a retry mechanism (handle exception and retry after a >>> random >>> >> interval). >>> >> >>> >> Thanks >>> >> Dimuthu >>> >> >>> >> >>> >> On Wed, Feb 24, 2010 at 12:08 PM, Senaka Fernando <[email protected]> >>> wrote: >>> >>> >>> >>> Hi it seems that you have persisted a resource + created an >>> association at >>> >>> the same time in two threads. How could this happen? Is it a part of >>> the >>> >>> same process? or two things? And +1 for running perf tests. But, this >>> time >>> >>> we need to eradicate the possibilities of such or at least introduce >>> some >>> >>> retry mechanism (or handle exceptions), instead of simply treating >>> this as a >>> >>> perf issue. Not everybody have the same hardware configurations that >>> we do, >>> >>> and there can be possibilities of such. >>> >>> >>> >>> Thanks, >>> >>> Senaka. >>> >>> >>> >>> On Wed, Feb 24, 2010 at 11:52 AM, Sumedha Rubasinghe < >>> [email protected]> >>> >>> wrote: >>> >>>> >>> >>>> Hi Hiranya, >>> >>>> Did you press save config button multiple times? >>> >>>> /sumedha >>> >>>> >>> >>>> >>> >>>> On Wed, Feb 24, 2010 at 11:28 AM, Hiranya Jayathilaka < >>> [email protected]> >>> >>>> 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: [email protected]; Mobile: +94 77 633 3491 >>> >>>>> Blog: http://techfeast-hiranya.blogspot.com >>> >>>>> >>> >>>>> _______________________________________________ >>> >>>>> Carbon-dev mailing list >>> >>>>> [email protected] >>> >>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev >>> >>>>> >>> >>>> >>> >>>> >>> >>>> _______________________________________________ >>> >>>> Carbon-dev mailing list >>> >>>> [email protected] >>> >>>> 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 >>> >>> [email protected] >>> >>> https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev >>> >>> >>> >> >>> >> >>> >> _______________________________________________ >>> >> Carbon-dev mailing list >>> >> [email protected] >>> >> https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev >>> >> >>> >> >>> > >>> >>> _______________________________________________ >>> Carbon-dev mailing list >>> [email protected] >>> 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 >> [email protected] >> https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev >> >> > > _______________________________________________ > Carbon-dev mailing list > [email protected] > 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 [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
