Ah... that explains why your activemq didn't started. Activemq needs both 5672 and 61616 to be available. Can you please check what's running on 5672?
On Thu, Apr 17, 2014 at 4:17 AM, Jeffrey Nguyen (jeffrngu) < [email protected]> wrote: > Hi Nirmal, > > Activemq.log attached. Looks like it complained that JMX port 5672 is > already in use. Is this different from the active MQ listener port 61616? > > -Jeffrey > > From: Nirmal Fernando <[email protected]> > Reply-To: "[email protected]" < > [email protected]> > Date: Wednesday, April 16, 2014 2:13 PM > > To: "[email protected]" <[email protected]> > Subject: Re: Problem setting up multi-profile single JVM > > > > > On Thu, Apr 17, 2014 at 3:13 AM, Jeffrey Nguyen (jeffrngu) < > [email protected]> wrote: > >> Hi Chris, Nirmal, >> >> I didn't install activemq manually. I assumed the setup.sh script will >> do this for me. >> > > Yes, it will. > > Can you please attache the activemq.log file which can be found at > /opt/stratos/apache-activemq-5.8.0/data folder? > > Also, you can try to start activemq manually and see. > > The entire stratos-install.log is at the bottom of this email thread >> (copied again below). I ran setup.sh with "bash –x" option and didn't see >> any error, but somehow activeMQ was not started. >> >> Setup CC >> Setup AS >> Setup SM >> Create and configure MySql Databases >> Setup CEP >> Starting the servers >> 'default' profile selected. >> *INFO: Loading '/etc/default/activemq'* >> INFO: Using java '/opt/java/jdk1.7.0_07/bin/java' >> INFO: Starting - inspect logfiles specified in logging.properties and >> log4j.properties to get details >> INFO: pidfile created : >> '/opt/stratos/apache-activemq-5.8.0/data/activemq-coi-h1-stack.pid' (pid >> '57058') >> /opt/stratos/apache-stratos-default/bin/stratos.sh -Dprofile=default start >> >> -Jeffrey >> >> From: Nirmal Fernando <[email protected]> >> Reply-To: "[email protected]" < >> [email protected]> >> Date: Wednesday, April 16, 2014 10:40 AM >> >> To: "[email protected]" <[email protected]> >> Subject: Re: Problem setting up multi-profile single JVM >> >> Stratos would install activemq for you, following the steps Chris >> mentioned. >> >> >> On Wed, Apr 16, 2014 at 11:59 PM, chris snow <[email protected]> wrote: >> >>> .. also, how are you installing activemq? >>> >>> /etc/default/activemq sounds like something created by debian activemq >>> package, which will require additional setup to work with Stratos. >>> >>> You should be installing activemq similar to this: >>> >>> # grab activemq and put it in the STRATOS_PACK_PATH folder >>> wget -P $STRATOS_PACK_PATH >>> >>> http://archive.apache.org/dist//activemq/apache-activemq/5.8.0/apache-activemq-5.8.0-bin.tar.gz >>> >>> # create a temporary folder for unpacking activemq >>> [ -e tmp-activemq ] || mkdir tmp-activemq >>> >>> # unpack activemq ready for the stratos installer >>> tar -C tmp-activemq -xzf >>> $STRATOS_PACK_PATH/apache-activemq-5.8.0-bin.tar.gz >>> cp -f tmp-activemq/apache-activemq-5.8.0/lib/activemq-broker-5.8.0.jar >>> $STRATOS_PACK_PATH/ >>> cp -f tmp-activemq/apache-activemq-5.8.0/lib/activemq-client-5.8.0.jar >>> $STRATOS_PACK_PATH/ >>> cp -f >>> tmp-activemq/apache-activemq-5.8.0/lib/geronimo-j2ee-management_1.1_spec-1.0.1.jar >>> $STRATOS_PACK_PATH/ >>> cp -f >>> tmp-activemq/apache-activemq-5.8.0/lib/geronimo-jms_1.1_spec-1.1.1.jar >>> $STRATOS_PACK_PATH/ >>> rm -rf tmp-activemq >>> >>> # grab hawtbuf and put it in the STRATOS_PACK_PATH folder >>> wget -P $STRATOS_PACK_PATH >>> >>> http://repo1.maven.org/maven2/org/fusesource/hawtbuf/hawtbuf/1.2/hawtbuf-1.2.jar >>> >>> On Wed, Apr 16, 2014 at 7:15 PM, chris snow <[email protected]> wrote: >>> > Can you post the part of the log file where it states >>> /etc/default/activemq? >>> > >>> > On Wed, Apr 16, 2014 at 7:07 PM, Jeffrey Nguyen (jeffrngu) >>> > <[email protected]> wrote: >>> >> Thanks Chris, >>> >> >>> >> I fixed the connection issue with mysql below. It was because my >>> default >>> >> installation of mysql binds to external IP, while Stratos is trying to >>> >> connect to it using the 172.0.0.1. I fixed by changing the binding >>> port >>> >> for mysql. >>> >> >>> >> Now I'm hitting another connection issue my message broker. After >>> running >>> >> setup.sh, I noticed nothing is running on port 61616. I'm using >>> activeMQ. >>> >> From the Stratos install log, it says "/etc/default/activemq". I >>> looked >>> >> at that script, it looks like the home directory for active mq doesn't >>> >> match with where we install active MQ >>> (/opt/stratos/apache-activemq-5.8.0). >>> >> >>> >> >>> >> >>> >> TID: [0] [STRATOS] [2014-04-16 13:52:12,884] ERROR >>> >> {org.apache.stratos.messaging.broker.subscribe.TopicSubscriber} - >>> Error >>> >> while subscribing to the topic: instance-status >>> >> {org.apache.stratos.messaging.broker.subscribe.TopicSubscriber} >>> >> javax.jms.JMSException: Could not connect to broker URL: >>> >> tcp://127.0.0.1:61616. Reason: java.net.ConnectException: Connection >>> >> refused >>> >> at >>> >> >>> org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.jav >>> >> a:35) >>> >> at >>> >> >>> org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(Acti >>> >> veMQConnectionFactory.java:293) >>> >> at >>> >> >>> org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(Acti >>> >> veMQConnectionFactory.java:238) >>> >> at >>> >> >>> org.apache.activemq.ActiveMQConnectionFactory.createTopicConnection(ActiveM >>> >> QConnectionFactory.java:214) >>> >> at >>> >> >>> org.apache.stratos.messaging.broker.connect.TopicConnector.init(TopicConnec >>> >> tor.java:68) >>> >> at >>> >> >>> org.apache.stratos.messaging.broker.subscribe.TopicSubscriber.doSubscribe(T >>> >> opicSubscriber.java:65) >>> >> at >>> >> >>> org.apache.stratos.messaging.broker.subscribe.TopicSubscriber.run(TopicSubs >>> >> criber.java:101) >>> >> at java.lang.Thread.run(Thread.java:722) >>> >> Caused by: java.net.ConnectException: Connection refused >>> >> at java.net.PlainSocketImpl.socketConnect(Native Method) >>> >> at >>> >> >>> java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339 >>> >> ) >>> >> at >>> >> >>> java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.j >>> >> ava:200) >>> >> at >>> >> >>> java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) >>> >> at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391) >>> >> at java.net.Socket.connect(Socket.java:579) >>> >> at >>> >> >>> org.apache.activemq.transport.tcp.TcpTransport.connect(TcpTransport.java:49 >>> >> 6) >>> >> at >>> >> >>> org.apache.activemq.transport.tcp.TcpTransport.doStart(TcpTransport.java:45 >>> >> 9) >>> >> at >>> org.apache.activemq.util.ServiceSupport.start(ServiceSupport.java:55) >>> >> at >>> >> >>> org.apache.activemq.transport.AbstractInactivityMonitor.start(AbstractInact >>> >> ivityMonitor.java:140) >>> >> at >>> >> >>> org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:58 >>> >> ) >>> >> at >>> >> >>> org.apache.activemq.transport.WireFormatNegotiator.start(WireFormatNegotiat >>> >> or.java:72) >>> >> at >>> >> >>> org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:58 >>> >> ) >>> >> at >>> >> >>> org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:58 >>> >> ) >>> >> at >>> >> >>> org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(Acti >>> >> veMQConnectionFactory.java:273) >>> >> ... 6 more >>> >> >>> >> >>> >> >>> >> >>> >> On 4/16/14 10:48 AM, "chris snow" <[email protected]> wrote: >>> >> >>> >>>Hi Jeffrey, >>> >>> >>> >>>Are you able to connect to mysql using the mysql client like this? >>> >>> >>> >>>$ mysql -h your_host_or_ip -P 3306 -u your_username -pyour_password >>> >>> >>> >>>Cheers, >>> >>> >>> >>>Chris >>> >>> >>> >>>On Wed, Apr 16, 2014 at 6:42 PM, Jeffrey Nguyen (jeffrngu) >>> >>><[email protected]> wrote: >>> >>>> Hi Nirmal, >>> >>>> >>> >>>> I'm getting the exception below. I 've verified mysql is running >>> on >>> >>>>port >>> >>>> 3306, which I configured in setup.conf. Mysql's credential is also >>> >>>>correct. >>> >>>> >>> >>>> >>> >>>> TID: [0] [STRATOS] [2014-04-16 13:31:03,331] ERROR >>> >>>> {org.wso2.carbon.user.core.util.DatabaseUtil} - Database Error - >>> Could >>> >>>>not >>> >>>> create connection to database server. Attempted reconnect 3 times. >>> >>>>Giving >>> >>>> up. {org.wso2.carbon.user.core.util.DatabaseUtil} >>> >>>> >>> com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: >>> >>>>Could >>> >>>> not create connection to database server. Attempted reconnect 3 >>> times. >>> >>>> Giving up. >>> >>>> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native >>> Method) >>> >>>> at >>> >>>> >>> >>> >>>>sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAc >>> >>>>cessorImpl.java:57) >>> >>>> at >>> >>>> >>> >>> >>>>sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConst >>> >>>>ructorAccessorImpl.java:45) >>> >>>> at java.lang.reflect.Constructor.newInstance(Constructor.java:525) >>> >>>> at com.mysql.jdbc.Util.handleNewInstance(Util.java:409) >>> >>>> at com.mysql.jdbc.Util.getInstance(Util.java:384) >>> >>>> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013) >>> >>>> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987) >>> >>>> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:973) >>> >>>> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:918) >>> >>>> at >>> >>>> >>> >>> >>>>com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2405 >>> >>>>) >>> >>>> at >>> com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2326) >>> >>>> at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:832) >>> >>>> at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46) >>> >>>> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native >>> Method) >>> >>>> at >>> >>>> >>> >>> >>>>sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAc >>> >>>>cessorImpl.java:57) >>> >>>> at >>> >>>> >>> >>> >>>>sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConst >>> >>>>ructorAccessorImpl.java:45) >>> >>>> at java.lang.reflect.Constructor.newInstance(Constructor.java:525) >>> >>>> at com.mysql.jdbc.Util.handleNewInstance(Util.java:409) >>> >>>> at >>> com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:417) >>> >>>> at >>> >>>> >>> >>> >>>>com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:344 >>> >>>>) >>> >>>> at >>> >>>> >>> >>> >>>>org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledCon >>> >>>>nection.java:278) >>> >>>> at >>> >>>> >>> >>> >>>>org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.jav >>> >>>>a:182) >>> >>>> at >>> >>>> >>> >>> >>>>org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPoo >>> >>>>l.java:701) >>> >>>> at >>> >>>> >>> >>> >>>>org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPoo >>> >>>>l.java:635) >>> >>>> at >>> >>>> >>> >>> >>>>org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection(ConnectionPool.j >>> >>>>ava:188) >>> >>>> at >>> >>>> >>> >>> >>>>org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy >>> >>>>.java:127) >>> >>>> at >>> >>>> >>> >>> >>>>org.wso2.carbon.user.core.claim.dao.ClaimDAO.getDialectCount(ClaimDAO.jav >>> >>>>a:158) >>> >>>> at >>> >>>> >>> >>> >>>>org.wso2.carbon.user.core.common.DefaultRealm.populateProfileAndClaimMaps >>> >>>>(DefaultRealm.java:411) >>> >>>> at >>> >>> >>>>org.wso2.carbon.user.core.common.DefaultRealm.init(DefaultRealm.java:101) >>> >>>> at >>> >>>> >>> >>> >>>>org.wso2.carbon.user.core.common.DefaultRealmService.initializeRealm(Defa >>> >>>>ultRealmService.java:223) >>> >>>> at >>> >>>> >>> >>> >>>>org.wso2.carbon.user.core.common.DefaultRealmService.<init>(DefaultRealmS >>> >>>>ervice.java:101) >>> >>>> at >>> >>>> >>> >>> >>>>org.wso2.carbon.user.core.common.DefaultRealmService.<init>(DefaultRealmS >>> >>>>ervice.java:114) >>> >>>> at >>> >>>> >>> >>> >>>>org.wso2.carbon.user.core.internal.Activator.startDeploy(Activator.java:6 >>> >>>>9) >>> >>>> at >>> >>>> >>> >>> >>>>org.wso2.carbon.user.core.internal.BundleCheckActivator.start(BundleCheck >>> >>>>Activator.java:61) >>> >>>> at >>> >>>> >>> >>> >>>>org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleCo >>> >>>>ntextImpl.java:711) >>> >>>> at java.security.AccessController.doPrivileged(Native Method) >>> >>>> at >>> >>>> >>> >>> >>>>org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator >>> >>>>(BundleContextImpl.java:702) >>> >>>> at >>> >>>> >>> >>> >>>>org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleCo >>> >>>>ntextImpl.java:683) >>> >>>> at >>> >>>> >>> >>> >>>>org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHos >>> >>>>t.java:381) >>> >>>> at >>> >>>> >>> >>> >>>>org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBu >>> >>>>ndle.java:390) >>> >>>> at >>> >>>> >>> >>> >>>>org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework >>> >>>>.java:1176) >>> >>>> at >>> >>>> >>> >>> >>>>org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles( >>> >>>>StartLevelManager.java:559) >>> >>>> at >>> >>>> >>> >>> >>>>org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles( >>> >>>>StartLevelManager.java:544) >>> >>>> at >>> >>>> >>> >>> >>>>org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartL >>> >>>>evelManager.java:457) >>> >>>> at >>> >>>> >>> >>> >>>>org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLeve >>> >>>>l(StartLevelManager.java:243) >>> >>>> at >>> >>>> >>> >>> >>>>org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent( >>> >>>>StartLevelManager.java:438) >>> >>>> at >>> >>>> >>> >>> >>>>org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent( >>> >>>>StartLevelManager.java:1) >>> >>>> at >>> >>>> >>> >>> >>>>org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManag >>> >>>>er.java:230) >>> >>>> at >>> >>>> >>> >>> >>>>org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventMan >>> >>>>ager.java:340) >>> >>>> Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: >>> >>>> Communications link failure >>> >>>> >>> >>>> The last packet sent successfully to the server was 0 milliseconds >>> ago. >>> >>>>The >>> >>>> driver has not received any packets from the server. >>> >>>> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native >>> Method) >>> >>>> at >>> >>>> >>> >>> >>>>sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAc >>> >>>>cessorImpl.java:57) >>> >>>> at >>> >>>> >>> >>> >>>>sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConst >>> >>>>ructorAccessorImpl.java:45) >>> >>>> at java.lang.reflect.Constructor.newInstance(Constructor.java:525) >>> >>>> at com.mysql.jdbc.Util.handleNewInstance(Util.java:409) >>> >>>> at >>> >>> >>>>com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1127) >>> >>>> at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:356) >>> >>>> at >>> com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2502) >>> >>>> at >>> >>>> >>> >>> >>>>com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2344 >>> >>>>) >>> >>>> ... 39 more >>> >>>> Caused by: java.net.ConnectException: Connection refused >>> >>>> at java.net.PlainSocketImpl.socketConnect(Native Method) >>> >>>> at >>> >>>> >>> >>> >>>>java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:3 >>> >>>>39) >>> >>>> at >>> >>>> >>> >>> >>>>java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl >>> >>>>.java:200) >>> >>>> at >>> >>>> >>> >>> >>>>java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182 >>> >>>>) >>> >>>> at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391) >>> >>>> at java.net.Socket.connect(Socket.java:579) >>> >>>> at java.net.Socket.connect(Socket.java:528) >>> >>>> at java.net.Socket.<init>(Socket.java:425) >>> >>>> at java.net.Socket.<init>(Socket.java:241) >>> >>>> at >>> >>>> >>> >>> >>>>com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:2 >>> >>>>58) >>> >>>> at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:306) >>> >>>> ... 41 more >>> >>>> >>> >>>> >>> >>>> From: Nirmal Fernando <[email protected]> >>> >>>> Reply-To: "[email protected]" >>> >>>> <[email protected]> >>> >>>> Date: Wednesday, April 16, 2014 9:19 AM >>> >>>> To: "[email protected]" >>> >>>><[email protected]> >>> >>>> Subject: Re: Problem setting up multi-profile single JVM >>> >>>> >>> >>>> Can you please send the >>> >>>> /opt/stratos/apache-stratos-default/repository/logs/wso2carbon.log >>> file >>> >>>>? >>> >>>> >>> >>>> >>> >>>> On Wed, Apr 16, 2014 at 10:40 PM, Jeffrey Nguyen (jeffrngu) >>> >>>> <[email protected]> wrote: >>> >>>>> >>> >>>>> Hi, >>> >>>>> >>> >>>>> I followed the instructions on >>> >>>>> >>> >>>>> >>> https://cwiki.apache.org/confluence/display/STRATOS/4.0.0+Single+JVM+Pro >>> >>>>>duct+Configuration >>> >>>>> and went through the setup process. After the setup.sh script ran >>> >>>>> successfully (I used default profile), I was not able to load the >>> link >>> >>>>>to >>> >>>>> Stratos console. The Stratos install log looks clean (see below). >>> >>>>>Did >>> >>>>> "netstat" and found nothing running on port 9443 and 61616 >>> (activemq). >>> >>>>> There's no info on the wiki for troubleshooting of installation >>> issues. >>> >>>>> There aren't information on what sort of things to verify to make >>> sure >>> >>>>> installation was successful. Any ideas on how to debug this? >>> >>>>> >>> >>>>> Thanks, >>> >>>>> -Jeffrey >>> >>>>> >>> >>>>> >>> >>>>> >>> >>>>> Setup CC >>> >>>>> Setup AS >>> >>>>> Setup SM >>> >>>>> Create and configure MySql Databases >>> >>>>> Setup CEP >>> >>>>> Starting the servers >>> >>>>> 'default' profile selected. >>> >>>>> INFO: Loading '/etc/default/activemq' >>> >>>>> INFO: Using java '/opt/java/jdk1.7.0_07/bin/java' >>> >>>>> INFO: Starting - inspect logfiles specified in logging.properties >>> and >>> >>>>> log4j.properties to get details >>> >>>>> INFO: pidfile created : >>> >>>>> '/opt/stratos/apache-activemq-5.8.0/data/activemq-coi-h1-stack.pid' >>> >>>>>(pid >>> >>>>> '38648') >>> >>>>> /opt/stratos/apache-stratos-default/bin/stratos.sh >>> -Dprofile=default >>> >>>>>start >>> >>>> >>> >>>> >>> >>>> >>> >>>> >>> >>>> -- >>> >>>> Best Regards, >>> >>>> Nirmal >>> >>>> >>> >>>> Nirmal Fernando. >>> >>>> PPMC Member & Committer of Apache Stratos, >>> >>>> Senior Software Engineer, WSO2 Inc. >>> >>>> >>> >>>> Blog: http://nirmalfdo.blogspot.com/ >>> >>> >>> >>> >>> >>> >>> >>>-- >>> >>>Check out my professional profile and connect with me on LinkedIn. >>> >>>http://lnkd.in/cw5k69 >>> >> >>> > >>> > >>> > >>> > -- >>> > Check out my professional profile and connect with me on LinkedIn. >>> > http://lnkd.in/cw5k69 >>> >>> >>> >>> -- >>> Check out my professional profile and connect with me on LinkedIn. >>> http://lnkd.in/cw5k69 >>> >> >> >> >> -- >> Best Regards, >> Nirmal >> >> Nirmal Fernando. >> PPMC Member & Committer of Apache Stratos, >> Senior Software Engineer, WSO2 Inc. >> >> Blog: http://nirmalfdo.blogspot.com/ >> > > > > -- > Best Regards, > Nirmal > > Nirmal Fernando. > PPMC Member & Committer of Apache Stratos, > Senior Software Engineer, WSO2 Inc. > > Blog: http://nirmalfdo.blogspot.com/ > -- Best Regards, Nirmal Nirmal Fernando. PPMC Member & Committer of Apache Stratos, Senior Software Engineer, WSO2 Inc. Blog: http://nirmalfdo.blogspot.com/
