Looking back at history the native library has always only ever set that findDurable flag to false. I traced it back to its initial commit. Aside from the annoying log message, does client durable connection work correctly?
> On Apr 14, 2020, at 10:56 PM, Jakov Varenina <jakov.varen...@est.tech> wrote: > > Hi all, > > Could you please help me understand behavior of the native client when > configured as durable? > > I have been working on a bug GEODE-7944 > <https://issues.apache.org/jira/browse/GEODE-7944> which results with > exception "Unable to deserialize membership id java.io.EOFException" on > locator only when debug is enabled. This happens because native client, only > when subscription is enabled, sends towards locator QueueConnectionRequest > that doesn't encapsulate ClientProxyMembershipID (not properly serialized) > and therefore exception occurs when locator tries to deserialize membership > id to log it at debug level. > > I was trying to figure out why would locator need ClientProxyMembershipID > from native client and found following paragraph in the documentation (copied > from > https://geode.apache.org/docs/geode-native/cpp/112/connection-pools/subscription-properties.html): > > > /For durable subscriptions, the server locator must be able to > locate the servers that host the queues for the durable client. When > a durable client sends a request, the server locator queries all the > available servers to see if they are hosting the subscription region > queue for the durable client. If the server is located, the client > is connected to the server hosting the subscription region queue./ > > Locator behaves as described in above paragraph only when it receives > ///QueueConnectionRequest with ///findDurable flag set to "true" //and with > valid membership i//d. //I noticed that unlike java client, the native client > always sets //findDurable// to //"false" //and therefore locator will never > behave as described in above paragraph when native client is used. > > Does anybody know why native client always sets //findDurable=false//? > > BRs, > > Jakov