Our cache server nodes use a config file as follows - server.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE cache PUBLIC "-//GemStone Systems, Inc.//GemFire Declarative Caching 6.6//EN" "http://www.gemstone.com/dtd/cache6_6.dtd"> <cache> <disk-store name="ds1" auto-compact="true" max-oplog-size="1024" queue-size="10000" time-interval="15"> <disk-dirs> <disk-dir dir-size="4096">persistData</disk-dir> </disk-dirs> </disk-store> <region name="AllObjectRegion"> <region-attributes refid="PARTITION_PERSISTENT" disk-store-name="ds1"> <partition-attributes redundant-copies="1" /> <eviction-attributes> <lru-heap-percentage action="overflow-to-disk" /> </eviction-attributes> </region-attributes> <index name="ownerIdx"> <functional from-clause="/AllObjectRegion" expression="owner"/> </index> </region> <function-service> <function> <class-name>vmware.au.se.demo.SizeFunction</class-name> </function> </function-service> <resource-manager critical-heap-percentage="75" eviction-heap-percentage="65"/> </cache>
Our JRuby client uses a client config as follows - client.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE client-cache PUBLIC "-//GemStone Systems, Inc.//GemFire Declarative Caching 6.6//EN" "http://www.gemstone.com/dtd/cache6_6.dtd"> <client-cache> <pool name="client" subscription-enabled="true"> <locator host="localhost" port="41111"/> </pool> <!-- No cache storage in the client region because of the PROXY client region shortcut setting. --> <region name="AllObjectRegion"> <region-attributes refid="PROXY" /> </region> <resource-manager critical-heap-percentage="75" eviction-heap-percentage="65"/> </client-cache>
Our JRuby code is as follows - gemfire-caching-proxy-client.rb
require 'java' require File.dirname(__FILE__) + '/lib/gemfire.jar' require File.dirname(__FILE__) + '/lib/antlr.jar' require File.dirname(__FILE__) + '/lib/gemfire-quickstart.jar' import java.util.Collection; import java.util.Iterator; import "vmware.au.se.demo.domain.AllDBObject"; import com.gemstone.gemfire.cache.Region; import com.gemstone.gemfire.cache.client.ClientCache; import com.gemstone.gemfire.cache.client.ClientCacheFactory; import com.gemstone.gemfire.cache.query.Query; import com.gemstone.gemfire.cache.query.QueryService; import com.gemstone.gemfire.cache.query.SelectResults; puts "*********************************************************" puts "GemFire 6.6 Proxy Client Example from JRUBY" puts "*********************************************************" print "Started at ", Time.now, "\n" begin ccf = ClientCacheFactory.new ccf.set("cache-xml-file", "client.xml") cache = ccf.create allObjectRegion = cache.getRegion("AllObjectRegion") queryService = cache.getQueryService query = queryService.newQuery("SELECT * FROM /AllObjectRegion where owner = 'SCOTT'") print "\n** All OBJECTS with owner = 'SCOTT'\n" result = query.execute collection = result.asList iter = collection.iterator i = 0 while iter.hasNext i = i + 1 entry = iter.next print "Entry ", i , " : " , entry , " \n" end cache.close rescue print "\n** Error occured **\n" print "Failed to obtian data from gemfire region ", $!, "\n\n" end print "\nEnded at ", Time.now, "\n"
Output as follows
Note: Some of the gemfire output is omitted to make it a little more readable.
Pas-Apicellas-MacBook-Pro:quickstart-client papicella$ jruby gemfire-caching-proxy-client.rb ********************************************************* GemFire 6.6 Proxy Client Example from JRUBY ********************************************************* Started at Wed Nov 09 12:10:29 +1100 2011 [info 2011/11/09 12:10:29.319 EST <main> tid=0x1] --------------------------------------------------------------------------- .... udp-recv-buffer-size="1048576" udp-send-buffer-size="65535" writable-working-dir="" [info 2011/11/09 12:10:29.335 EST <main> tid=0x1] Running in local mode since mcast-port was 0 and locators was empty. [info 2011/11/09 12:10:29.392 EST <Thread-1 StatSampler> tid=0xf] Disabling statistic archival. [info 2011/11/09 12:10:29.645 EST <poolTimer-client-2> tid=0x14] AutoConnectionSource discovered new locators [/10.117.85.62:41111] [config 2011/11/09 12:10:29.646 EST <poolTimer-client-3> tid=0x15] Updating membership port. Port changed from 0 to 50,522. [config 2011/11/09 12:10:29.669 EST <main> tid=0x1] Pool client started with multiuser-authentication=false [info 2011/11/09 12:10:29.671 EST <main> tid=0x1] Overridding MemoryPoolMXBean heap threshold bytes 0 on pool CMS Old Gen with 344,064,000 [info 2011/11/09 12:10:29.673 EST <main> tid=0x1] Overridding MemoryPoolMXBean heap threshold bytes 344,064,000 on pool CMS Old Gen with 344,064,000 [info 2011/11/09 12:10:29.673 EST <Cache Client Updater Thread on Pas-Apicellas-MacBook-Pro(2183)<v2>:37232/49977> tid=0x16] Cache Client Updater Thread on Pas-Apicellas-MacBook-Pro(2183)<v2>:37232/49977 (10.117.85.62:49987) : ready to process messages. [config 2011/11/09 12:10:29.753 EST <main> tid=0x1] Cache initialized using "jar:file:/Users/papicella/vmware/scripting/demos/jruby/gemfire/quickstart-client/./lib/gemfire-quickstart.jar!/client.xml". ** All OBJECTS with owner = 'SCOTT' Entry 1 : AllDBObject [owner=SCOTT, objectName=EMP, objectId=74211, objectType=TABLE, status=VALID] Entry 2 : AllDBObject [owner=SCOTT, objectName=PK_EMP, objectId=74212, objectType=INDEX, status=VALID] Entry 3 : AllDBObject [owner=SCOTT, objectName=JDBC_BATCH_TABLE, objectId=75753, objectType=TABLE, status=VALID] Entry 4 : AllDBObject [owner=SCOTT, objectName=PK_DEPT, objectId=74210, objectType=INDEX, status=VALID] Entry 5 : AllDBObject [owner=SCOTT, objectName=BONUS, objectId=74213, objectType=TABLE, status=VALID] Entry 6 : AllDBObject [owner=SCOTT, objectName=SALGRADE, objectId=74214, objectType=TABLE, status=VALID] Entry 7 : AllDBObject [owner=SCOTT, objectName=DEPT, objectId=74209, objectType=TABLE, status=VALID] [info 2011/11/09 12:10:29.962 EST <main> tid=0x1] GemFireCache[id = 1691463635; isClosing = true; created = Wed Nov 09 12:10:29 EST 2011; server = false; copyOnRead = false; lockLease = 120; lockTimeout = 60]: Now closing. [info 2011/11/09 12:10:29.986 EST <main> tid=0x1] Resetting original MemoryPoolMXBean heap threshold bytes 0 on pool CMS Old Gen [config 2011/11/09 12:10:30.015 EST <main> tid=0x1] Destroying connection pool client Ended at Wed Nov 09 12:10:30 +1100 2011
No comments:
Post a Comment