Great. I tried this on Ubuntu 10.04 a few minutes ago, and it works perfectly. Verified doing 'ps -ef', and performing multiple sequential restarts as well.
Thanks, Senaka. On Sat, Apr 16, 2011 at 4:28 PM, Afkham Azeez <[email protected]> wrote: > I have tested this on Mac OS x 10.6, Ubuntu 10.10 as well as Windows 7 > Ultimate. The solution works perfectly on all of this platforms and hence I > have committed the code. Now we can review and resolve all issues related to > memory leaks on restart. > > Azeez > > > On Sat, Apr 16, 2011 at 3:25 PM, Afkham Azeez <[email protected]> wrote: > >> This solution works well on Ubuntu 10.10 as well. >> >> >> On Sat, Apr 16, 2011 at 2:54 PM, Afkham Azeez <[email protected]> wrote: >> >>> Please try this distribution out and let me know [1]... I have tested on >>> Mac and Windows and works fine. If everything goes well, I will commit this >>> change today. >>> >>> >>> 1. >>> https://docs.google.com/a/wso2.com/leaf?id=0B3W7aoJmJW4wYWRmZDY4NDktZWI3ZC00ZWFmLTk2ZTQtYzhiZGU1YTM5OTMz&hl=en >>> >>> >>> On Sat, Apr 16, 2011 at 11:26 AM, Sanjiva Weerawarana >>> <[email protected]>wrote: >>> >>>> Ah ok now I understood what you want to do .. yep sounds good. >>>> >>>> Only change you could do is instead of saying "sh -c 'exec java ...'" >>>> you could simply say "java ...". Essentially you're creating a shell and >>>> immediately running one command so might as well run that command directly. >>>> >>>> Sanjiva. >>>> >>>> >>>> On Sat, Apr 16, 2011 at 10:53 AM, Afkham Azeez <[email protected]> wrote: >>>> >>>>> This is what I'm doing in the wso2server.sh. When I restart, I issue a >>>>> System.exit(121) command. So the shel will spawn a new Java process once >>>>> the >>>>> current one exits. This can be done on Windows too with the ERRORLEVEL >>>>> variable. So, we are relying on the original process which spawned the >>>>> java >>>>> process to spawn a new instance, instead of the dying java process >>>>> spawning >>>>> a new java process just before it dies. That solution is not working on >>>>> certain Windows environments. The exit code based approach is guaranteed >>>>> to >>>>> work since we are handing back the control to the original shell that >>>>> spawned the java process. >>>>> >>>>> Here is the relevant code segment in wso2server.sh >>>>> >>>>> START_EXIT_STATUS=121; >>>>> status=$START_EXIT_STATUS; >>>>> >>>>> while [ "$status" = "$START_EXIT_STATUS" ] >>>>> do >>>>> sh -c "exec "$JAVACMD" \ >>>>> -Xbootclasspath/a:"$CARBON_XBOOTCLASSPATH" \ >>>>> -Xms256m -Xmx512m -XX:MaxPermSize=128m \ >>>>> $JAVA_OPTS \ >>>>> -Dimpl.prefix=Carbon \ >>>>> -Dcom.sun.management.jmxremote \ >>>>> -classpath "$CARBON_CLASSPATH" \ >>>>> -Djava.endorsed.dirs="$CARBON_HOME/lib/endorsed":"$JAVA_HOME/jre/lib/endorsed":"$JAVA_HOME/lib/endorsed" >>>>> \ >>>>> -Djava.io.tmpdir="$CARBON_HOME/tmp" \ >>>>> -Dwso2.server.standalone=true \ >>>>> -Dcarbon.registry.root=/ \ >>>>> -Dcarbon.xbootclasspath="$CARBON_XBOOTCLASSPATH" \ >>>>> -Djava.command="$JAVACMD" \ >>>>> -Dcarbon.home="$CARBON_HOME" \ >>>>> -Dwso2.transports.xml="$CARBON_HOME/repository/conf/mgt-transports.xml" >>>>> \ >>>>> -Djava.util.logging.config.file="$CARBON_HOME/lib/log4j.properties" \ >>>>> -Dcarbon.config.dir.path="$CARBON_HOME/repository/conf" \ >>>>> -Dcomponents.repo="$CARBON_HOME/repository/components/plugins" \ >>>>> -Dcom.atomikos.icatch.file="$CARBON_HOME/lib/transactions.properties" \ >>>>> -Dcom.atomikos.icatch.hide_init_file_path=true \ >>>>> org.wso2.carbon.bootstrap.Bootstrap $*" >>>>> >>>>> status=$? >>>>> >>>>> done >>>>> >>>>> On Sat, Apr 16, 2011 at 10:41 AM, Afkham Azeez <[email protected]> wrote: >>>>> >>>>>> If you do; >>>>>> >>>>>> $ exec ./foo.sh >>>>>> >>>>>> You will simply see the following line; >>>>>> [Process completed] >>>>>> >>>>>> and the control does not return to the current shell. >>>>>> >>>>>> >>>>>> On Sat, Apr 16, 2011 at 10:21 AM, Sanjiva Weerawarana < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> No saying "sh -c .." means you're creating a new shell and then >>>>>>> exec'ng in there. In that case you might as well just say "java .." >>>>>>> (without >>>>>>> the exec at all). >>>>>>> >>>>>>> Doesn't having "exec java" at the end give the return code of the >>>>>>> java command to the calling shell? That's what's spsed to happen. >>>>>>> >>>>>>> Sanjiva. >>>>>>> >>>>>>> >>>>>>> On Sat, Apr 16, 2011 at 9:53 AM, Afkham Azeez <[email protected]>wrote: >>>>>>> >>>>>>>> Thanks! >>>>>>>> >>>>>>>> sh -c "exec java ..." >>>>>>>> worked! >>>>>>>> >>>>>>>> Earlier the script only had "exec java ..." >>>>>>>> >>>>>>>> >>>>>>>> On Sat, Apr 16, 2011 at 7:15 AM, Sanjiva Weerawarana < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> Its good to use exec so that the parent shell process doesn't hang >>>>>>>>> around. That's common practice for shell scripts which set up a bunch >>>>>>>>> of >>>>>>>>> stuff and run something else right at the end. >>>>>>>>> >>>>>>>>> But that should not be a problem as the process exit status should >>>>>>>>> be that of the exec'ed command IIRC (new command is run in the same >>>>>>>>> process). >>>>>>>>> >>>>>>>>> Here's a small test: >>>>>>>>> >>>>>>>>> $ cat /tmp/foo.sh >>>>>>>>> #!/bin/sh >>>>>>>>> >>>>>>>>> exit 79 >>>>>>>>> $ sh -c "exec /tmp/foo.sh" >>>>>>>>> $ echo $? >>>>>>>>> 79 >>>>>>>>> >>>>>>>>> Sanjiva. >>>>>>>>> >>>>>>>>> On Sat, Apr 16, 2011 at 4:13 AM, Afkham Azeez <[email protected]>wrote: >>>>>>>>> >>>>>>>>>> Instead of simply doing; "java ..." we do "exec java ...". Why >>>>>>>>>> have we used exec here? I'm trying to solve the restart issue using >>>>>>>>>> exit >>>>>>>>>> codes, and when exec is used, the process exit code cannot be >>>>>>>>>> captured. >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> *Afkham Azeez* >>>>>>>>>> Senior Software Architect & Senior Manager; WSO2, Inc.; >>>>>>>>>> http://wso2.com, >>>>>>>>>> * >>>>>>>>>> * >>>>>>>>>> *Member; Apache Software Foundation; >>>>>>>>>> **http://www.apache.org/*<http://www.apache.org/> >>>>>>>>>> * >>>>>>>>>> email: **[email protected]* <[email protected]>* cell: +94 77 3320919 >>>>>>>>>> blog: **http://blog.afkham.org* <http://blog.afkham.org>* >>>>>>>>>> twitter: >>>>>>>>>> **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez> >>>>>>>>>> * >>>>>>>>>> linked-in: **http://lk.linkedin.com/in/afkhamazeez* >>>>>>>>>> * >>>>>>>>>> * >>>>>>>>>> *Lean . Enterprise . Middleware* >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> _______________________________________________ >>>>>>>>>> Carbon-dev mailing list >>>>>>>>>> [email protected] >>>>>>>>>> http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Sanjiva Weerawarana, Ph.D. >>>>>>>>> Founder, Chairman & CEO; WSO2, Inc.; http://wso2.com/ >>>>>>>>> email: [email protected]; phone: +94 11 763 9614; cell: +94 77 787 >>>>>>>>> 6880 | +1 650 265 8311 >>>>>>>>> blog: http://sanjiva.weerawarana.org/ >>>>>>>>> >>>>>>>>> Lean . Enterprise . Middleware >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> *Afkham Azeez* >>>>>>>> Senior Software Architect & Senior Manager; WSO2, Inc.; >>>>>>>> http://wso2.com, >>>>>>>> * >>>>>>>> * >>>>>>>> *Member; Apache Software Foundation; >>>>>>>> **http://www.apache.org/*<http://www.apache.org/> >>>>>>>> * >>>>>>>> email: **[email protected]* <[email protected]>* cell: +94 77 3320919 >>>>>>>> blog: **http://blog.afkham.org* <http://blog.afkham.org>* >>>>>>>> twitter: >>>>>>>> **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez> >>>>>>>> * >>>>>>>> linked-in: **http://lk.linkedin.com/in/afkhamazeez* >>>>>>>> * >>>>>>>> * >>>>>>>> *Lean . Enterprise . Middleware* >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Sanjiva Weerawarana, Ph.D. >>>>>>> Founder, Chairman & CEO; WSO2, Inc.; http://wso2.com/ >>>>>>> email: [email protected]; phone: +94 11 763 9614; cell: +94 77 787 >>>>>>> 6880 | +1 650 265 8311 >>>>>>> blog: http://sanjiva.weerawarana.org/ >>>>>>> >>>>>>> Lean . Enterprise . Middleware >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> *Afkham Azeez* >>>>>> Senior Software Architect & Senior Manager; WSO2, Inc.; >>>>>> http://wso2.com, >>>>>> * >>>>>> * >>>>>> *Member; Apache Software Foundation; >>>>>> **http://www.apache.org/*<http://www.apache.org/> >>>>>> * >>>>>> email: **[email protected]* <[email protected]>* cell: +94 77 3320919 >>>>>> blog: **http://blog.afkham.org* <http://blog.afkham.org>* >>>>>> twitter: >>>>>> **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez> >>>>>> * >>>>>> linked-in: **http://lk.linkedin.com/in/afkhamazeez* >>>>>> * >>>>>> * >>>>>> *Lean . Enterprise . Middleware* >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> *Afkham Azeez* >>>>> Senior Software Architect & Senior Manager; WSO2, Inc.; >>>>> http://wso2.com, >>>>> * >>>>> * >>>>> *Member; Apache Software Foundation; >>>>> **http://www.apache.org/*<http://www.apache.org/> >>>>> * >>>>> email: **[email protected]* <[email protected]>* cell: +94 77 3320919 >>>>> blog: **http://blog.afkham.org* <http://blog.afkham.org>* >>>>> twitter: >>>>> **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez> >>>>> * >>>>> linked-in: **http://lk.linkedin.com/in/afkhamazeez* >>>>> * >>>>> * >>>>> *Lean . Enterprise . Middleware* >>>>> >>>>> >>>> >>>> >>>> -- >>>> Sanjiva Weerawarana, Ph.D. >>>> Founder, Chairman & CEO; WSO2, Inc.; http://wso2.com/ >>>> email: [email protected]; phone: +94 11 763 9614; cell: +94 77 787 6880| +1 >>>> 650 265 8311 >>>> blog: http://sanjiva.weerawarana.org/ >>>> >>>> Lean . Enterprise . Middleware >>>> >>> >>> >>> >>> -- >>> *Afkham Azeez* >>> Senior Software Architect & Senior Manager; WSO2, Inc.; http://wso2.com >>> , >>> * >>> * >>> *Member; Apache Software Foundation; >>> **http://www.apache.org/*<http://www.apache.org/> >>> * >>> email: **[email protected]* <[email protected]>* cell: +94 77 3320919 >>> blog: **http://blog.afkham.org* <http://blog.afkham.org>* >>> twitter: **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez> >>> * >>> linked-in: **http://lk.linkedin.com/in/afkhamazeez* >>> * >>> * >>> *Lean . Enterprise . Middleware* >>> >>> >> >> >> -- >> *Afkham Azeez* >> Senior Software Architect & Senior Manager; WSO2, Inc.; http://wso2.com, >> * >> * >> *Member; Apache Software Foundation; >> **http://www.apache.org/*<http://www.apache.org/> >> * >> email: **[email protected]* <[email protected]>* cell: +94 77 3320919 >> blog: **http://blog.afkham.org* <http://blog.afkham.org>* >> twitter: **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez> >> * >> linked-in: **http://lk.linkedin.com/in/afkhamazeez* >> * >> * >> *Lean . Enterprise . Middleware* >> >> > > > -- > *Afkham Azeez* > Senior Software Architect & Senior Manager; WSO2, Inc.; http://wso2.com, > * > * > *Member; Apache Software Foundation; > **http://www.apache.org/*<http://www.apache.org/> > * > email: **[email protected]* <[email protected]>* cell: +94 77 3320919 > blog: **http://blog.afkham.org* <http://blog.afkham.org>* > twitter: **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez> > * > linked-in: **http://lk.linkedin.com/in/afkhamazeez* > * > * > *Lean . Enterprise . Middleware* > > > _______________________________________________ > Carbon-dev mailing list > [email protected] > http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev > > -- *Senaka Fernando* Product Manager - WSO2 Governance Registry; Associate Technical Lead; WSO2, Inc.; http://wso2.com* Member; Apache Software Foundation; http://apache.org E-mail: senaka AT wso2.com **P: +1 408 754 7388; ext: 51736*; *M: +94 77 322 1818 Linked-In: http://www.linkedin.com/in/senakafernando *Lean . Enterprise . Middleware
_______________________________________________ Carbon-dev mailing list [email protected] http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev
