Hi Evgeniy, I've checked the code and found we use projection for services configured in node startup config, but we miss this for dynamic service deployment. By default, ignite.cluster().forServers() projection should be used, but in your case it is ignored too.
I've created a ticket for this [1]. [1] https://issues.apache.org/jira/browse/IGNITE-6562 On Thu, Oct 5, 2017 at 1:15 PM, Evgeniy Ignatiev < [email protected]> wrote: > Hello, Igniters. > > We recently faced an issue with service deployment for server nodes only. > > When we tried to use a construction like this: > ignite.services(ignite.cluster().forServers()).deploy(serviceConfiguration), > but using this we see services getting deployed on client nodes too and > their init/execute methods being called there. > > Here is the minified example - https://github.com/YevIgn/igni > te-services-deployment-issue - this is on Ignite 2.2 version. Running its > Main class outputs names of Ignite instances of both client and server. > > We can use AttributeNodeFilter to guarantee that service is deployed on > server nodes only, but as per a javadoc of the > IgniteServices#deploy(ServiceConfiguration) - "The node filter will be > checked in addition to the underlying cluster group filter, or the whole > grid, if the underlying cluster group includes all the cluster nodes.", so > I assume the current behavior is a bug. > > Best Regards, > > Yevgeniy. > > -- Best regards, Andrey V. Mashenkov
