Hi Thanks much for investigating it with me.  After spending lot of time on
it, I found that client and servers were running on different JDK versions.
Client running in java 11 was submitting tasks to server node running on
java 8. I upgraded java version on server node and it worked.

Actually I have another question. Does ignite needs any extra dependencies
to run tasks written in Kotlin. I am getting below error when try to run
kotlin code as part of task

Caused by: java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
at com.test.TestTask.<clinit>(TestTask.kt:36)
Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics
at
java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at
java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 45 more

On Wed, Oct 27, 2021 at 9:57 PM Stephen Darlington <
stephen.darling...@gridgain.com> wrote:

> Using Ignite 2.11 and the following code works.
>
> Server:
>
> public class ComputeServer {
>     public static void main(String[] args) {
>         IgniteConfiguration igniteConfiguration = new IgniteConfiguration()
>                 .setPeerClassLoadingEnabled(true);
>         Ignite ignite = Ignition.start(igniteConfiguration);
>     }
> }
>
> Client:
>
> public class ComputeClient {
>     public static void main(String[] args) {
>         IgniteConfiguration igniteConfiguration = new IgniteConfiguration()
>                 .setClientMode(true)
>                 .setPeerClassLoadingEnabled(true);
>         try (Ignite ignite = Ignition.start(igniteConfiguration)) {
>             ignite.compute().run(() -> System.out.println("Hello, world"));
>         }
>
>     }
> }
>
> (It executes on server nodes by default; you don’t need to create a
> cluster group for that.)
>
> So I think you’ll need to share more about your configuration and/or code
> to get to the bottom of this.
>
> On 27 Oct 2021, at 16:47, Surinder Mehra <redni...@gmail.com> wrote:
>
> Just wondering if it is possible at all. All examples/demos I have seen
> are either using a thin client  or one server node submitting a task to the
> grid, or with affinity to a particular node. I have tried all compute apis,
> like run, call, runAffinity. callaffinity, broadcast. none of them works
> when submitted from client node. They do run if I change clusterGroup to
> local nodes. like ClusterGroup grp = ignite.cluster().forLocalNodes();
>
> On Wed, Oct 27, 2021 at 6:20 PM Surinder Mehra <redni...@gmail.com> wrote:
>
>> yes, it is enabled. Even if that wasn't enabled, I should get class not
>> found error. Here i dont get any error but its simply doesn't execute. I
>> see below flag needs to be enabled for thin client. Is there any
>> setting for thick clients as well ?
>>
>> https://ignite.apache.org/docs/latest/thin-clients/java-thin-client
>>
>> <bean class="org.apache.ignite.configuration.IgniteConfiguration" 
>> id="ignite.cfg">
>>     <property name="clientConnectorConfiguration">
>>         <bean 
>> class="org.apache.ignite.configuration.ClientConnectorConfiguration">
>>             <property name="thinClientConfiguration">
>>                 <bean 
>> class="org.apache.ignite.configuration.ThinClientConfiguration">
>>                     <property name="maxActiveComputeTasksPerConnection" 
>> value="100" />
>>                 </bean>
>>             </property>
>>         </bean>
>>     </property></bean>
>>
>>
>> On Wed, Oct 27, 2021 at 6:04 PM Stephen Darlington <
>> stephen.darling...@gridgain.com> wrote:
>>
>>> Did you enable peer class loading?
>>>
>>> > On 27 Oct 2021, at 13:18, Surinder Mehra <redni...@gmail.com> wrote:
>>> >
>>> > Hi,
>>> > I have a sever node and a thick client node running. I am trying to
>>> submit ignite compute job from client node to server node but it doesn't
>>> work.
>>> >
>>> > ClusterGroup grp = ignite.cluster().forServers()
>>> > IgniteCompute ignieCompute = ignite.compute(grp);
>>> > igniteCompute.run(() ->  System.out.println("Task Executed"));
>>> >
>>> > Sysout never printed on console and client keeps running. If I change
>>> it to server mode, tasks completed immediately.
>>> >
>>> > Can someone help me understand if I am missing some configuration?
>>> >
>>>
>>>
>>>
>
>

Reply via email to