1.1.1

Table Of Contents
then the client creates a new connection on the y, uses it, and then returns it back to the connection. The default
value for sqlre.client.single-hop-max-connections is 5 connections per server. If you are developing a client
that requires more concurrent connections per server for single-hop access, increase the maximum number of
connections per server using the sqlre.client.single-hop-max-connections system property.
Note: To avoid degrading the performance of the network server, use the smallest number of concurrent
single-hop threads that satisfy performance requirements.
Configuring TCP Keepalive Settings
By default, SQLFire servers use a TCP keepalive probe to help determine when clients have gone ofine. SQLFire
thin clients can also use these keepalive settings to accurately determine when a server has gone ofine. The
relevant conguration properties are:
keepalive-count on page 334
keepalive-idle on page 334
keepalive-interval on page 334
To use these properties with a SQLFire thin client, include the jna.jar library in your CLASSPATH.
Note: Windows platforms do not support per-socket conguration for keepalive-count. As an
alternative, you can congure a system-wide keepalive-count value in some versions of Windows.
See http://msdn.microsoft.com/en-us/library/windows/desktop/dd877220%28v=vs.85%29.aspx. Windows
Vista and later versions keep this value xed at 10.
Note: On Solaris platforms prior to r10, system-wide TCP keepalive settings must be changed to larger
values (approximately 30 seconds) in order to detect server failures by clients and vice versa. See
http://docs.oracle.com/cd/E19082-01/819-2724/fsvdg/index.html. This also applies to other non-Linux,
non-Windows platforms. For example, see
http://www-01.ibm.com/support/docview.wss?uid=swg21231084.
Thin Client Driver Limitations
When the default batching mode is enabled for transactions, SQLFire detects any conicts in DML operations
lazily. DML conicts may be thrown by the system at some point later in the transaction (for example, even
when executing queries or at commit time). You can congure SQLFire to immediately detect conicts at
operation time by setting the gemfire.tx-disable-batching system property to "true" on all data store
members in the distributed system.
Note: Enabling gemfire.tx-disable-batching can degrade performance signicantly. Enable
this option only after you have thoroughly tested the setting in your system and have determined that the
performance tradeoff is necessary to provide immediate conict detection with thin clients.
If you use the thin client driver to perform an insert to table that has no primary key, an automatic retry of the
insert due to a failover (available when connecting via a locator member) can result in duplicate rows being
added to the table.
The thin-client driver has the following limitations when the single-hop connection property is enabled:
Single-hop access is not provided when using transactions or WAN replication.
Note: Do not enable single-hop access when using transactions or WAN congurations, as it can lead
to unexpected behavior.
119
Developing Java Clients and Peers