vFabric GemFire Native Client 3.6.0 Release Notes
VMware® vFabric™ GemFire® Native Client provides access to the vFabric GemFire distributed system for C++ and Microsoft® .NET™ clients. For information on setting up GemFire for use by your native client applications, see the vFabric GemFire documentation.
What's in the Release NotesThe release notes cover the following topics:
This section summarizes new functionality in vFabric GemFire Native Client 3.6.0 and refers you to more detailed information in the GemFire documentation.
The .NET API now supports .NET generic types. The new API is in GemStone::GemFire::Cache::Generic. You can still use the non-generic GemFire APIs in GemStone::GemFire::Cache. The non-generic Cache APIs are deprecated, but still completely functional in this release. Do not mix Cache with Cache::Generic or you will get errors at runtime. Declarative configuration via XML of user plugins such as cachelistener, cachewriter, cacheloader and
In the GemFire Native Client User's Guide, see "The .NET Caching API."
GemFire has a new, more feature-rich option for data serialization for the .NET client. This is in addition to the existing data serializable option.
Note: PDX serialization cannot be used for data that may be exchanged with C++ clients.
GemFire's Portable Data eXchange (PDX) serialization format provides the following:
GemFire now supports transactions run from a client member. Previously, to perform a transaction from a client member, you needed to run a function on a server node that executed a transaction. In the GemFire Native Client User's Guide, see the "Transactions" chapter.
The GemFire licensing model has changed to more closely resemble VMware's licensing model. You no longer need to provide licensing information to your client applications. All licensing for clients is provided in the server side. The peer/server licensing has new configuration requirements.
In the vFabric GemFire User's Guide under Deploying and Running vFabric GemFire, see the "Licensing" chapter.
The order of your method calls on durable client reconnection needs to be changed. Before this version, you created your cache and regions, called Cache.readyForEvents, then called your interest registration methods. The order of the last two steps needs to be switched. The new instructions read as follows:
Program the durable client to perform these steps, in order, when it reconnects:
Modify your durable client code accordingly.
Added support for query bind parameters in client queries.
OnServer function execution now supports high availability (HA).
Pool default settings now are the same as the Java client. Review your pool configurations to make sure they are appropriate.
It is now possible to set a partition resolver through the C# setPartitionResolver function.
ContainsKeyOnServer Caused Infinite Loop
Modified ContainsKeyOnServer so it correctly passes security credentials to the server when security is enabled. Before this version, ContainsKeyOnServer did not pass credentials, which caused an infinite loop when it was called. This issue was tracked with bug 667 and customer support ticket 7549.
Authentication Failure with Security and Fire-and-Forget Functions
Resolved a problem that caused authentication to fail if security was enabled and a fire-and-forget function call was made from the client.
Improper Firing of AppDomain Event Handling
AppDomain UnhandledException event user handler now fires properly.
This section lists known issues in the GemFire product and its supported platforms.
Non-Primitive Key Types Require a Java Class Registered with the Cache Server
For non-primitive key types, a Java class defining the type is needed so the cache server can store the value in the cache. The applications accessing the cache may not involve Java at all, but the Java class still needs to be written and registered with the cache server.
Timeout Can Occur While Registering Interest in a Large Number of Keys
Individually registering interest in a large number of keys can result in a timeout condition. Instead, call registerAllKeys if you need to register interest in thousands of keys on the server.
Requirements for Non-Primitive Key and Value Types
Non-primitive objects that require deserialization on the server must have their Java classes registered on the server. This affects keys and values in these ways: