You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ignite.apache.org by Paolo Di Tommaso <pa...@gmail.com> on 2015/09/30 16:03:47 UTC
How shutdown all nodes
Hi,
Is there an API to gently shut-down all the nodes that made up an Ignite
cluster?
Cheers,
Paolo
Re: How shutdown all nodes
Posted by Paolo Di Tommaso <pa...@gmail.com>.
Perfect !
Thanks a lot.
Cheers,
p
On Wed, Sep 30, 2015 at 5:39 PM, Anton Vinogradov <av...@gridgain.com>
wrote:
> Hello,
>
> Please try
>
> grid.compute(grid.cluster().forRemotes()).broadcast(new PoisonPill());
>
> and
>
> static class PoisonPill implements IgniteRunnable {
> @IgniteInstanceResource
> private transient Ignite ignite;
>
> @Override
> public void run() {
> new Thread() {
> @Override public void run() {
> ignite.close();
> }
> }.start();
> }
> }
>
> On Wed, Sep 30, 2015 at 5:45 PM, Paolo Di Tommaso <
> paolo.ditommaso@gmail.com> wrote:
>
>> The best solution I've found so far is defining a "poison" task like the
>> following one (Groovy code):
>>
>> static class PoisonPill implements IgniteRunnable {
>>
>> @IgniteInstanceResource
>> private transient Ignite ignite
>>
>> @Override
>> void run() {
>> ignite.close()
>> }
>> }
>>
>>
>>
>> and broadcasting it to all remote nodes:
>>
>> def void shutdown() {
>> grid.cluster().forRemotes().ignite().compute().broadcast(new
>> PoisonPill())
>> }
>>
>>
>>
>> That works but in the "master" I'm getting the following exception:
>>
>> java.lang.IllegalStateException: Grid is in invalid state to perform this
>> operation. It either not started yet or has already being or have stopped
>> [gridName=nextflow, state=STOPPING]
>> at
>> org.apache.ignite.internal.GridKernalGatewayImpl.illegalState(GridKernalGatewayImpl.java:190)
>> ~[ignite-core-1.4.0.jar:1.4.0]
>> at
>> org.apache.ignite.internal.GridKernalGatewayImpl.readLock(GridKernalGatewayImpl.java:90)
>> ~[ignite-core-1.4.0.jar:1.4.0]
>> at
>> org.apache.ignite.internal.cluster.ClusterGroupAdapter.guard(ClusterGroupAdapter.java:170)
>> ~[ignite-core-1.4.0.jar:1.4.0]
>> at
>> org.apache.ignite.internal.cluster.ClusterGroupAdapter.forPredicate(ClusterGroupAdapter.java:367)
>> ~[ignite-core-1.4.0.jar:1.4.0]
>> at
>> org.apache.ignite.internal.cluster.ClusterGroupAdapter.forOthers(ClusterGroupAdapter.java:564)
>> ~[ignite-core-1.4.0.jar:1.4.0]
>> at
>> org.apache.ignite.internal.cluster.ClusterGroupAdapter.forRemotes(ClusterGroupAdapter.java:536)
>> ~[ignite-core-1.4.0.jar:1.4.0]
>> at org.apache.ignite.cluster.ClusterGroup$forRemotes$1.call(Unknown
>> Source) ~[na:na]
>> at nextflow.executor.IgConnector.shutdown(IgConnector.groovy:155)
>> ~[nxf-ignite-0.16.0-SNAPSHOT.jar:na]
>>
>>
>>
>> Is there a better way to shut-down all cluster instances ?
>>
>>
>> Cheers,
>> Paolo
>>
>>
>>
>>
>> On Wed, Sep 30, 2015 at 4:03 PM, Paolo Di Tommaso <
>> paolo.ditommaso@gmail.com> wrote:
>>
>>> Hi,
>>>
>>>
>>> Is there an API to gently shut-down all the nodes that made up an Ignite
>>> cluster?
>>>
>>>
>>> Cheers,
>>> Paolo
>>>
>>>
>>
>
Re: How shutdown all nodes
Posted by Anton Vinogradov <av...@gridgain.com>.
Hello,
Please try
grid.compute(grid.cluster().forRemotes()).broadcast(new PoisonPill());
and
static class PoisonPill implements IgniteRunnable {
@IgniteInstanceResource
private transient Ignite ignite;
@Override
public void run() {
new Thread() {
@Override public void run() {
ignite.close();
}
}.start();
}
}
On Wed, Sep 30, 2015 at 5:45 PM, Paolo Di Tommaso <paolo.ditommaso@gmail.com
> wrote:
> The best solution I've found so far is defining a "poison" task like the
> following one (Groovy code):
>
> static class PoisonPill implements IgniteRunnable {
>
> @IgniteInstanceResource
> private transient Ignite ignite
>
> @Override
> void run() {
> ignite.close()
> }
> }
>
>
>
> and broadcasting it to all remote nodes:
>
> def void shutdown() {
> grid.cluster().forRemotes().ignite().compute().broadcast(new
> PoisonPill())
> }
>
>
>
> That works but in the "master" I'm getting the following exception:
>
> java.lang.IllegalStateException: Grid is in invalid state to perform this
> operation. It either not started yet or has already being or have stopped
> [gridName=nextflow, state=STOPPING]
> at
> org.apache.ignite.internal.GridKernalGatewayImpl.illegalState(GridKernalGatewayImpl.java:190)
> ~[ignite-core-1.4.0.jar:1.4.0]
> at
> org.apache.ignite.internal.GridKernalGatewayImpl.readLock(GridKernalGatewayImpl.java:90)
> ~[ignite-core-1.4.0.jar:1.4.0]
> at
> org.apache.ignite.internal.cluster.ClusterGroupAdapter.guard(ClusterGroupAdapter.java:170)
> ~[ignite-core-1.4.0.jar:1.4.0]
> at
> org.apache.ignite.internal.cluster.ClusterGroupAdapter.forPredicate(ClusterGroupAdapter.java:367)
> ~[ignite-core-1.4.0.jar:1.4.0]
> at
> org.apache.ignite.internal.cluster.ClusterGroupAdapter.forOthers(ClusterGroupAdapter.java:564)
> ~[ignite-core-1.4.0.jar:1.4.0]
> at
> org.apache.ignite.internal.cluster.ClusterGroupAdapter.forRemotes(ClusterGroupAdapter.java:536)
> ~[ignite-core-1.4.0.jar:1.4.0]
> at org.apache.ignite.cluster.ClusterGroup$forRemotes$1.call(Unknown
> Source) ~[na:na]
> at nextflow.executor.IgConnector.shutdown(IgConnector.groovy:155)
> ~[nxf-ignite-0.16.0-SNAPSHOT.jar:na]
>
>
>
> Is there a better way to shut-down all cluster instances ?
>
>
> Cheers,
> Paolo
>
>
>
>
> On Wed, Sep 30, 2015 at 4:03 PM, Paolo Di Tommaso <
> paolo.ditommaso@gmail.com> wrote:
>
>> Hi,
>>
>>
>> Is there an API to gently shut-down all the nodes that made up an Ignite
>> cluster?
>>
>>
>> Cheers,
>> Paolo
>>
>>
>
Re: How shutdown all nodes
Posted by Paolo Di Tommaso <pa...@gmail.com>.
The best solution I've found so far is defining a "poison" task like the
following one (Groovy code):
static class PoisonPill implements IgniteRunnable {
@IgniteInstanceResource
private transient Ignite ignite
@Override
void run() {
ignite.close()
}
}
and broadcasting it to all remote nodes:
def void shutdown() {
grid.cluster().forRemotes().ignite().compute().broadcast(new
PoisonPill())
}
That works but in the "master" I'm getting the following exception:
java.lang.IllegalStateException: Grid is in invalid state to perform this
operation. It either not started yet or has already being or have stopped
[gridName=nextflow, state=STOPPING]
at
org.apache.ignite.internal.GridKernalGatewayImpl.illegalState(GridKernalGatewayImpl.java:190)
~[ignite-core-1.4.0.jar:1.4.0]
at
org.apache.ignite.internal.GridKernalGatewayImpl.readLock(GridKernalGatewayImpl.java:90)
~[ignite-core-1.4.0.jar:1.4.0]
at
org.apache.ignite.internal.cluster.ClusterGroupAdapter.guard(ClusterGroupAdapter.java:170)
~[ignite-core-1.4.0.jar:1.4.0]
at
org.apache.ignite.internal.cluster.ClusterGroupAdapter.forPredicate(ClusterGroupAdapter.java:367)
~[ignite-core-1.4.0.jar:1.4.0]
at
org.apache.ignite.internal.cluster.ClusterGroupAdapter.forOthers(ClusterGroupAdapter.java:564)
~[ignite-core-1.4.0.jar:1.4.0]
at
org.apache.ignite.internal.cluster.ClusterGroupAdapter.forRemotes(ClusterGroupAdapter.java:536)
~[ignite-core-1.4.0.jar:1.4.0]
at org.apache.ignite.cluster.ClusterGroup$forRemotes$1.call(Unknown Source)
~[na:na]
at nextflow.executor.IgConnector.shutdown(IgConnector.groovy:155)
~[nxf-ignite-0.16.0-SNAPSHOT.jar:na]
Is there a better way to shut-down all cluster instances ?
Cheers,
Paolo
On Wed, Sep 30, 2015 at 4:03 PM, Paolo Di Tommaso <paolo.ditommaso@gmail.com
> wrote:
> Hi,
>
>
> Is there an API to gently shut-down all the nodes that made up an Ignite
> cluster?
>
>
> Cheers,
> Paolo
>
>