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

Reply via email to