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

Reply via email to