# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
# 
#      http://www.apache.org/licenses/LICENSE-2.0
# 
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Default Geode Native distributed system properties
# Copy to current directory and uncomment to override defaults.
#
## Debugging support, enables stacktraces in apache::geode::client::Exception.
#
# The default is false, uncomment to enable stacktraces in exceptions.
#stacktrace-enabled=true
#crash-dump-enabled=true
#
#
## Cache region configuration
#
#cache-xml-file=cache.xml
#
## Log file config
#
#log-file=geode_native.log
#log-level=config
# zero indicates use no limit.
#log-file-size-limit=0
# zero indicates use no limit. 
#log-disk-space-limit=0 
#
## Statistics values
#
# the rate is in seconds.
#statistic-sample-rate=1
#statistic-sampling-enabled=false
#statistic-archive-file=statArchive.gfs
# zero indicates use no limit.
#archive-file-size-limit=0
# zero indicates use no limit.
#archive-disk-space-limit=0
#enable-time-statistics=false 
#
## Heap based eviction configuration
#
# maximum amount of memory used by the cache for all regions, 0 disables this feature
#heap-lru-limit=0
# percentage over heap-lru-limit when LRU will be called. 
#heap-lru-delta=10
#
## Durable client support
#
#durable-client-id=
#durable-timeout=300
#
## SSL socket support
#
#ssl-enabled=false
#ssl-keystore=
#ssl-keystore-password=
#ssl-truststore=
#
## .NET AppDomain support
#
#appdomain-enabled=false
#
## Misc
#
#conflate-events=server
#disable-shuffling-of-endpoints=false
#grid-client=false
#max-fe-threads=
#max-socket-buffer-size=66560
# the units are in seconds.
#connect-timeout=59
#notify-ack-interval=10
#notify-dupcheck-life=300
#ping-interval=10 
#redundancy-monitor-interval=10
#auto-ready-for-events=true
#suspended-tx-timeout=30
#enable-chunk-handler-thread=false
#tombstone-timeout=480000
#
## module name of the initializer pointing to sample
## implementation from templates/security
#security-client-auth-library=securityImpl
## static method name of the library mentioned above
#security-client-auth-factory=createUserPasswordAuthInitInstance
## credential for Dummy Authenticator configured in server.
## note: security-password property will be inserted by the initializer
## mentioned in the above property.
#security-username=root
