Narges, Also, keep in mind that if a local query is executed over a partitioned table and it happens that partitions rebalancing starts, the local query might return a wrong result (if partitions the query was executed over were rebalanced to another node during the query execution time). To address this:
1. Execute the local query inside of an affinityCall/Run function ( https://ignite.apache.org/docs/latest/distributed-computing/collocated-computations#colocating-by-key). Those functions don't let partitions be evicted until the function execution completes. 2. Don't use the local queries, let the Ignite SQL engine to run standard queries, and to take care of possible optimizations. - Denis On Mon, Oct 26, 2020 at 8:50 AM Ilya Kasnacheev <ilya.kasnach...@gmail.com> wrote: > Hello! > > You are using an Ignite Thick Client driver. As its name implies, it will > start a local client node and then connect to it, without the option of > doing local queries. > > You need to use Ignite Thin JDBC driver: jdbc:ignite:thin://<server ip> > Then you can do local queries. > > Regards, > -- > Ilya Kasnacheev > > > сб, 24 окт. 2020 г. в 16:04, narges saleh <snarges...@gmail.com>: > >> Hello Ilya >> Yes, it happens all the time. It seems ignite forces the "client" >> establishing the jdbc connection into a client mode, even if I set >> client=false. The sample code and config are attached. The question is how >> do I force JDBC connections from a server node. >> thanks. >> >> On Fri, Oct 23, 2020 at 10:31 AM Ilya Kasnacheev < >> ilya.kasnach...@gmail.com> wrote: >> >>> Hello! >>> >>> Does this happen every time? If so, do you have a reproducer for the >>> issue? >>> >>> Regards, >>> -- >>> Ilya Kasnacheev >>> >>> >>> пт, 23 окт. 2020 г. в 13:06, narges saleh <snarges...@gmail.com>: >>> >>>> Denis -- Just checked. I do specify my services to be deployed on >>>> server nodes only. Why would ignite think that I am running my code on a >>>> client node? >>>> >>>> On Fri, Oct 23, 2020 at 3:50 AM narges saleh <snarges...@gmail.com> >>>> wrote: >>>> >>>>> Hi Denis >>>>> What would make an ignite node a client node? The code is invoked via >>>>> an ignite service deployed on each node and I am not setting the client >>>>> mode anywhere. The code sets the jdbc connection to local and tries to >>>>> execute a sql code on the node in some interval. By the way, I didn't know >>>>> one could deploy a service on client nodes. Do I need to explicitly mark a >>>>> node as a server node when deploying a service? >>>>> thanks >>>>> >>>>> On Thu, Oct 22, 2020 at 9:42 PM Denis Magda <dma...@apache.org> wrote: >>>>> >>>>>> The error message says you're attempting to run the query on a client >>>>>> node. If that's the case (if the service is deployed on the client node), >>>>>> then the local flag has no effect because client nodes don't keep your >>>>>> data >>>>>> locally but rather consume it from servers. >>>>>> >>>>>> - >>>>>> Denis >>>>>> >>>>>> >>>>>> On Thu, Oct 22, 2020 at 6:26 PM narges saleh <snarges...@gmail.com> >>>>>> wrote: >>>>>> >>>>>>> Hi All, >>>>>>> I am trying to execute a sql query via a JDBC connection on the >>>>>>> service node (the query is run via a service), but I am getting >>>>>>> *Execution >>>>>>> of local SqlFieldsQuery on client node disallowed.* >>>>>>> *The JDBC connection has the option local=true as I want to run the >>>>>>> query on the data on the local node only.* >>>>>>> *Any idea why I am getting this error?* >>>>>>> >>>>>>> *thanks.* >>>>>>> >>>>>>