<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;D0AFRXw_fyp7ImA9WhBbGEs.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256</id><updated>2013-05-18T18:28:34.247+10:00</updated><category term="PPR" /><category term="Connection Pooling" /><category term="JSP" /><category term="vFabric Application Director" /><category term="Connection" /><category term="Database Change Notification" /><category term="FCF" /><category term="External Table" /><category term="Write-Behind" /><category term="hyperic HQ" /><category term="WLS" /><category term="JAX-RS" /><category term="CacheStore" /><category term="ADF BC" /><category term="Oracle Enterprise manager" /><category term="JavaSP" /><category term="JDeveloper" /><category term="LIST" /><category term="Oracle JDBC" /><category term="Java IDE" /><category term="admin_client.jar" /><category term="JRuby" /><category term="RAC" /><category term="Refcursor" /><category term="Data Source" /><category term="JMS" /><category term="Apache Velocity" /><category term="LOB" /><category term="JCsonole" /><category term="MBeanServer" /><category term="TABLE" /><category term="NCLOB" /><category term="Web Services" /><category term="Distributed Database" /><category term="COLLECT" /><category term="vFabric Application Performance Manager" /><category term="Groovy" /><category term="FMW Control" /><category term="RA" /><category term="T4CSTATEMENT" /><category term="RESTful" /><category term="Tomcat" /><category term="HA" /><category term="ORA-1403" /><category term="VMware" /><category term="OFM" /><category term="JMX" /><category term="POF" /><category term="VFabric" /><category term="ADF faces" /><category term="Memory Profile" /><category term="Debug" /><category term="SCAN" /><category term="SQLFire" /><category term="Facelets" /><category term="jython" /><category term="DCN" /><category term="DEPLOY" /><category term="JSF 2.0" /><category term="OEM" /><category term="MVC" /><category term="GemF" /><category term="MBean" /><category term="Driver Version" /><category term="SQLPlus" /><category term="Security" /><category term="Oracle" /><category term="Log4j" /><category term="OAS" /><category term="JavaSSO" /><category term="OC4J" /><category term="ORA-29532" /><category term="JNDI" /><category term="OCI" /><category term="python" /><category term="ORA-01461" /><category term="Derby" /><category term="RabbitMQ" /><category term="PLSQL" /><category term="spring data" /><category term="JAX-WS" /><category term="SSL" /><category term="SQLException" /><category term="Spring" /><category term="Cluster" /><category term="BLOB" /><category term="UTL_DBWS" /><category term="EJB3" /><category term="Active GridLinbk" /><category term="LONG" /><category term="TCPS" /><category term="Query Tuning" /><category term="ASC" /><category term="Coherence" /><category term="GFMon" /><category term="Java" /><category term="Web Service" /><category term="FMW 11g" /><category term="SQL*Plus" /><category term="ADF" /><category term="JDBC" /><category term="GemFire" /><category term="JAR" /><category term="Session Trace" /><category term="Exalogic" /><category term="Oracle JVM" /><category term="Google Chrome" /><category term="SOAPElement" /><category term="JPQL" /><category term="SQL_TRACE" /><category term="ANT" /><category term="UCP" /><category term="Weblogic" /><category term="Authentication" /><category term="DESCRIBE" /><category term="JSTL1.2" /><category term="Active GridLink" /><category term="vFabric Data Director" /><category term="Struts 2" /><title>The Blas from Pas</title><subtitle type="html">Information on Pivotal -&amp;gt; Product Family - GemFire, SQLFire, tc Server, RabbitMQ, Pivotal HD, Greenplum DB</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://theblasfrompas.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Pas Apicella</name><uri>http://www.blogger.com/profile/09389663166398991762</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="15" src="http://wiki.r31skylineclub.com/images/thumb/d/d4/Gts2-side.jpg/100px-Gts2-side.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>227</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/blogspot/PEqWE" /><feedburner:info uri="blogspot/peqwe" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DEMEQH0-fSp7ImA9WhBbFU8.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-8740459041086908467</id><published>2013-05-14T20:12:00.001+10:00</published><updated>2013-05-14T20:13:21.355+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-14T20:13:21.355+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SQLFire" /><category scheme="http://www.blogger.com/atom/ns#" term="VFabric" /><title>Naming Members in vFabric SQLFire</title><content type="html">I find it useful to give a member a meaningful&amp;nbsp; name. In SQLFire you could simply give each member a name by adding a property "&lt;b&gt;name&lt;/b&gt;" as follows to the &lt;b&gt;sqlfire.properties&lt;/b&gt; file for the member.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;sqlfire.properties&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;# sqlfire.properties for data store or accessor member&lt;br /&gt;license-serial-number=XXXXXXXXXXX&lt;br /&gt;name=server1&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Note: The same can be done with GemFire as well.&lt;br /&gt;
&lt;br /&gt;
Then when the system is up the ID for each system member includes the given name as shown below.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="sql" name="code"&gt;  
sqlf&amp;gt; select substr(id, 1 , 35) as "Member" from sys.members;
Member                             
-----------------------------------
172.16.62.1(server2:38971)&amp;lt;v2&amp;gt;:4265
172.16.62.1(server1:38970)&amp;lt;v1&amp;gt;:1660
127.0.0.1(38744):29535             

3 rows selected
&lt;/pre&gt;
&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/c3nKLd2OxJU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/8740459041086908467/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=8740459041086908467" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/8740459041086908467?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/8740459041086908467?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/c3nKLd2OxJU/naming-members-in-sqlfire.html" title="Naming Members in vFabric SQLFire" /><author><name>Pas Apicella</name><uri>http://www.blogger.com/profile/09389663166398991762</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="15" src="http://wiki.r31skylineclub.com/images/thumb/d/d4/Gts2-side.jpg/100px-Gts2-side.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2013/05/naming-members-in-sqlfire.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEDQ30_cSp7ImA9WhBUFEg.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-6884034311080501460</id><published>2013-05-02T10:31:00.000+10:00</published><updated>2013-05-02T10:31:12.349+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-02T10:31:12.349+10:00</app:edited><title>JMX access to vFabric SQLFire </title><content type="html">With the release of vFabric SQLFire 11 we can now start a JMX manager with the locator itself. To do that we add the following to the sqlfire.properties file of the locator itself.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;jmx-manager=true&lt;br /&gt;jmx-manager-start=true&lt;br /&gt;jmx-manager-ssl=false&lt;br /&gt;jmx-manager-http-port=8083&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;
Then with the locator started we can verify we have it running on the default port of 1099 as shown below.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;[Thu May 02 09:45:49 papicella@:~/sqlfire/vFabric_SQLFire_11_b40332/pasdemos/agent-test/locator ] $ netstat -an | grep 1099&lt;br /&gt;tcp4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 127.0.0.1.1099&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 127.0.0.1.64803&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESTABLISHED&lt;br /&gt;tcp4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 127.0.0.1.1099&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 127.0.0.1.64801&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESTABLISHED&lt;br /&gt;tcp4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 127.0.0.1.64801&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 127.0.0.1.1099&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESTABLISHED&lt;br /&gt;tcp4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 127.0.0.1.64803&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 127.0.0.1.1099&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESTABLISHED&lt;br /&gt;tcp4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 127.0.0.1.1099&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 127.0.0.1.64799&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESTABLISHED&lt;br /&gt;tcp4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 127.0.0.1.64799&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 127.0.0.1.1099&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESTABLISHED&lt;br /&gt;tcp46&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp; *.1099&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *.*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LISTEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;
Finally start &lt;b&gt;jconsole&lt;/b&gt; and connect using a service URL as follows&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Format:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #3d85c6;"&gt;service:jmx:rmi://{hotname}/jndi/rmi://{hostname}:1099/jmxrmi&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Example:&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="color: #3d85c6;"&gt;service:jmx:rmi://Pas-Apicellas-MacBook-Pro.local/jndi/rmi://Pas-Apicellas-MacBook-Pro.local:1099/jmxrmi&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Once connected you can browse the MBean as shown in the image below.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-HAei2ij_o7g/UYGzbLutx5I/AAAAAAAAAQI/IcQD_NBuDis/s1600/Screen+Shot+2013-05-02+at+10.28.14+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="198" src="http://2.bp.blogspot.com/-HAei2ij_o7g/UYGzbLutx5I/AAAAAAAAAQI/IcQD_NBuDis/s320/Screen+Shot+2013-05-02+at+10.28.14+AM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;More Information&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://pubs.vmware.com/vfabric53/index.jsp?topic=/com.vmware.vfabric.sqlfire.1.1/manage_guide/jmx/jmx_intro.html"&gt;http://pubs.vmware.com/vfabric53/index.jsp?topic=/com.vmware.vfabric.sqlfire.1.1/manage_guide/jmx/jmx_intro.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/63Y2LHqZz9U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/6884034311080501460/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=6884034311080501460" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/6884034311080501460?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/6884034311080501460?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/63Y2LHqZz9U/jmx-access-to-vfabric-sqlfire.html" title="JMX access to vFabric SQLFire " /><author><name>Pas Apicella</name><uri>http://www.blogger.com/profile/09389663166398991762</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="15" src="http://wiki.r31skylineclub.com/images/thumb/d/d4/Gts2-side.jpg/100px-Gts2-side.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-HAei2ij_o7g/UYGzbLutx5I/AAAAAAAAAQI/IcQD_NBuDis/s72-c/Screen+Shot+2013-05-02+at+10.28.14+AM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2013/05/jmx-access-to-vfabric-sqlfire.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIDQns4fyp7ImA9WhBUE0o.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-9069066137261830014</id><published>2013-05-01T11:42:00.000+10:00</published><updated>2013-05-01T11:42:53.537+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-01T11:42:53.537+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SQLFire" /><category scheme="http://www.blogger.com/atom/ns#" term="VFabric" /><title>Explain Plan in vFabric SQLFire improved</title><content type="html">With the recently released vFabric SQLFire 11 version the query execution plan is much easier to read then previously. An example below.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="sql" name="code"&gt;  
[Wed May 01 11:32:11 papicella@:~/sqlfire/vFabric_SQLFire_11_b40332/pasdemos/sqlfire ] $ sqlf
sqlf version 10.4
sqlf&amp;gt; connect peer 'bind-address=localhost;mcast-port=12333;host-data=false' as peerClient;
sqlf&amp;gt; explain select * from emp where deptno = 20;
MEMBER_PLAN                                                                                                                     
--------------------------------------------------------------------------------------------------------------------------------
ORIGINATOR 192.168.14.167(73118)&amp;lt;v6&amp;gt;:61492 BEGIN TIME 2013-05-01 11:32:39.735 END TIME 2013-05-01 11:32:39.777
DISTRIBUTION to &amp;amp;
Slowest Member Plan:
member 192.168.14.167(72048)&amp;lt;v1&amp;gt;:42223 begin_execution 2013-05-01 11:32:39.74 end_execution 2013-05-01 11:&amp;amp;
Fastest Member Plan:
member 192.168.14.167(72048)&amp;lt;v1&amp;gt;:42223 begin_execution 2013-05-01 11:32:39.74 end_execution 2013-05-01 11:&amp;amp;

3 rows selected
sqlf&amp;gt; select STMT_ID, STMT_TEXT from SYS.STATEMENTPLANS;
STMT_ID                             |STMT_TEXT                                                                                                                       
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
00000001-ffff-ffff-ffff-000400000016| select * from emp where deptno = &amp;lt;?&amp;gt;                                                                                           

1 row selected
sqlf&amp;gt; explain '00000001-ffff-ffff-ffff-000400000016';
stmt_id 00000001-ffff-ffff-ffff-000400000016 SQL_stmt select * from emp where deptno = &amp;lt;?&amp;gt; begin_execution 2013-05-01 11:32:39.735 end_execution 2013-05-01 11:32:39.777
QUERY-SCATTER  execute_time 0.0 ms
  QUERY-SEND 
    RESULT-RECEIVE 
      SEQUENTIAL-ITERATION (0.38%) execute_time 0.136 ms returned_rows 5 no_opens 1
        RESULT-HOLDER  returned_rows 5 no_opens 1
          DISTRIBUTION-END (99.61%) execute_time 35.073 ms returned_rows 5
member 192.168.14.167(72048)&amp;lt;v1&amp;gt;:42223 begin_execution 2013-05-01 11:32:39.74 end_execution 2013-05-01 11:32:39.774
QUERY-RECEIVE 
  RESULT-SEND 
    RESULT-HOLDER  returned_rows 5 no_opens 1
      ROWIDSCAN (1.71%) execute_time 0.148 ms returned_rows 5 no_opens 1 node_details EMP : 
        CONSTRAINTSCAN (98.28%) execute_time 8.482 ms returned_rows 5 no_opens 1 scan_qualifiers None scanned_object APP.6__EMP__DEPTNO:base-table:APP.EMP scan_type  node_details WHERE : ((DEPTNO = CONSTANT:20) and true) 
&lt;/pre&gt;
&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/aNm6UM7xZVY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/9069066137261830014/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=9069066137261830014" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/9069066137261830014?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/9069066137261830014?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/aNm6UM7xZVY/explain-plan-in-vfabric-sqlfire-improved.html" title="Explain Plan in vFabric SQLFire improved" /><author><name>Pas Apicella</name><uri>http://www.blogger.com/profile/09389663166398991762</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="15" src="http://wiki.r31skylineclub.com/images/thumb/d/d4/Gts2-side.jpg/100px-Gts2-side.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2013/05/explain-plan-in-vfabric-sqlfire-improved.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMERX89eip7ImA9WhBWGUQ.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-6903623617366073504</id><published>2013-04-15T10:30:00.002+10:00</published><updated>2013-04-15T11:46:44.162+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-15T11:46:44.162+10:00</app:edited><title>Handling DML Events Synchronously with vFabric SQLFire</title><content type="html">SQLFire provides synchronous cache plug-in mechanisms to handle cache events. This example is a synchronous listener. A listener
    enables you to receive after-event notifications of changes to a table (insert,
    update and delete). Any number of listeners can be defined for the same table.
    Listener callbacks are called synchronously, so they will cause the DML
    operation to block if the callback blocks. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;CommandTableEventCallBackListenerImpl.java&lt;/b&gt;&lt;br /&gt;
&lt;pre class="java" name="code"&gt;  
package pivotal.au.demo.poc.listener;

import java.sql.ResultSet;
import java.sql.SQLException;
import pivotal.au.demo.poc.domain.Command;
import pivotal.au.demo.poc.executor.ExecutorCommand;
import pivotal.au.demo.poc.executor.ExecutorFactory;

import com.vmware.sqlfire.callbacks.Event;
import com.vmware.sqlfire.callbacks.Event.Type;
import com.vmware.sqlfire.callbacks.EventCallback;

public class CommandTableEventCallBackListenerImpl implements EventCallback
{ 
 public void close() throws SQLException 
 {
 }

 public void init(String configuration) throws SQLException 
 {  
  System.out.println("configuration = " + configuration);
 
  System.out.println("CommandTableEventCallBackListenerImpl.init");
  
 }

 public void onEvent(Event event) throws SQLException 
 {
  if (event.getType() == Type.AFTER_INSERT)
  {
   ResultSet rset = event.getNewRowsAsResultSet();
   Command cmd = 
     new Command(rset.getInt(1), 
        rset.getString(2),
        rset.getString(3),
        rset.getString(4),
        rset.getString(5));
   
   System.out.println("Table[" + event.getTableName() + "] Command = " + cmd.toString());
   handleEvent(cmd); 
  }
  else
  {
   System.out.println("Not processing event " + event.getType().toString());
  }
  
 }
 
 private void handleEvent (Command cmd)
 {
  System.out.println("Handling event for Command with id = " + cmd.getId());
  
  ExecutorCommand execCommand = null;
  
  if (cmd.getType().equalsIgnoreCase("OS"))
  {
   execCommand = ExecutorFactory.getOSExecutorImpl();
   execCommand.runCommand(cmd.getCommand(), null);
  }
  else
  {
   // expecting to execute SQL so check if firing on sqlfire or greenplum at this stage
   execCommand = ExecutorFactory.getSQLExecutorImpl();
   if (cmd.getExecuteOnGreenplum().equalsIgnoreCase("Y"))
   {
    execCommand.runCommand(cmd.getCommand(), "GP");
   }
   
   if (cmd.getExecuteOnSqlfire().equalsIgnoreCase("Y"))
   {
    execCommand.runCommand(cmd.getCommand(), "SQLFIRE");
   }
  }

 }

}
&lt;/pre&gt;
&lt;br /&gt;
Attach Listener to a table.&lt;br /&gt;
&lt;pre class="sql" name="code"&gt;  
CREATE TABLE command_table 
(ID INT generated always as identity NOT NULL, 
 EXECUTE_ON_SQLFIRE VARCHAR(1) default 'N',
 EXECUTE_ON_GREENPLUM VARCHAR(1) default 'Y',
 command_type varchar(10),
 COMMAND VARCHAR(200) not null
 )
SERVER GROUPS (MYGROUP);

call sys.ADD_LISTENER('CommandTableEventCallBackListenerImpl', 'apples', 'command_table', 'pivotal.au.demo.poc.listener.CommandTableEventCallBackListenerImpl', '', 'MYGROUP');
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
More Information&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://pubs.vmware.com/vfabricNoSuite/index.jsp?topic=/com.vmware.vfabric.sqlfire.1.1/caching_database/cache-plug-ins.html"&gt;http://pubs.vmware.com/vfabricNoSuite/index.jsp?topic=/com.vmware.vfabric.sqlfire.1.1/caching_database/cache-plug-ins.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/H3aMlpBhKik" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/6903623617366073504/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=6903623617366073504" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/6903623617366073504?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/6903623617366073504?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/H3aMlpBhKik/handling-dml-events-synchronously-with.html" title="Handling DML Events Synchronously with vFabric SQLFire" /><author><name>Pas Apicella</name><uri>http://www.blogger.com/profile/09389663166398991762</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="15" src="http://wiki.r31skylineclub.com/images/thumb/d/d4/Gts2-side.jpg/100px-Gts2-side.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2013/04/handling-dml-events-synchronously-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0ABRHg4eCp7ImA9WhBWFko.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-5561353671623087910</id><published>2013-04-11T21:29:00.001+10:00</published><updated>2013-04-11T21:29:15.630+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-11T21:29:15.630+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SQLFire" /><category scheme="http://www.blogger.com/atom/ns#" term="VFabric" /><title>ADO .NET c# Connection Pooling with vFabric SQLFire</title><content type="html">Whether it's accessing a database using JAVA or in this case c# I always want to use a connection pool and in this example I show and simple way to do this with a c# ADO .NET client accessing SQLFire. &lt;br /&gt;
&lt;br /&gt;
1. Add a reference to your
    Visual Studio project in the 
    &lt;span class="filepath"&gt;VMware.Data.SQLFire.dll&lt;/span&gt;. This DLL is installed in
    the 
    &lt;span class="filepath"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&lt;span class="filepath"&gt;vFabric_SQLFire_11_bNNNNN\adonet\lib&lt;/span&gt;&lt;/span&gt; directory. 
     
  &lt;a href="http://www.blogger.com/blogger.g?blogID=6527688743456205256" name="concept_2837340A23154E02BDB2E362497DF4CB__li_D08146910ADB452BB3A1671598EEA1DC" shape="rect"&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-JZGZegpU_7I/UWadTak45mI/AAAAAAAAAP4/FgC0__HeWg0/s1600/Screen+Shot+2013-04-11+at+9.22.56+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-JZGZegpU_7I/UWadTak45mI/AAAAAAAAAP4/FgC0__HeWg0/s1600/Screen+Shot+2013-04-11+at+9.22.56+PM.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
2. Reference the driver
    namespace in each source file where you want to use SQLFire components. For
    example, include this directive with all other references required in your
    application:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="codeblock"&gt;&lt;span style="color: #3d85c6;"&gt;using VMware.Data.SQLFire;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
3.&amp;nbsp; Create a c# console application as follows&lt;br /&gt;
&lt;pre class="cSharp" name="code"&gt;  
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VMware.Data.SQLFire;
using System.Data;

namespace SQLFireDemo
{
    class QueryDemo
    {
        private string sqlfHost = "192.168.1.4";
        private int sqlfPort = 1527;

        public QueryDemo()
        {
        }

        private string GetConnectionString()
        {
            return string.Format(@"server={0}:{1}", sqlfHost, sqlfPort);
        }

        public void run()
        {
            using (SQLFClientConnection conn = new SQLFClientConnection(GetConnectionString()))
            {
                conn.Open();
                SQLFCommand command = new SQLFCommand
                      (string.Format("SELECT * FROM dept"), conn);
                SQLFDataReader reader = command.ExecuteReader();

                try
                {
                    StringBuilder row = new StringBuilder();
                    while (reader.Read())
                    {
                        Console.WriteLine(string.Format("Dept[deptno={0}, dname={1}]",
                                          reader.GetString(0),
                                          reader.GetString(1)));
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
                finally
                {
                    reader.Close();
                }
            }

        }

        static void Main(string[] args)
        {
            QueryDemo test = new QueryDemo();
            test.run();
        }
    }
}
&lt;/pre&gt;
&lt;br /&gt;
Output as follows&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Dept[deptno=10, dname=ACCOUNTING]&lt;br /&gt;Dept[deptno=20, dname=RESEARCH]&lt;br /&gt;Dept[deptno=30, dname=SALES]&lt;br /&gt;Dept[deptno=40, dname=OPERATIONS]&lt;br /&gt;Dept[deptno=50, dname=MARKETING]&lt;br /&gt;Dept[deptno=60, dname=DEV]&lt;br /&gt;Dept[deptno=70, dname=SUPPORT]&lt;br /&gt;Press any key to continue . . .&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/an4Dr97ySpM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/5561353671623087910/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=5561353671623087910" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/5561353671623087910?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/5561353671623087910?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/an4Dr97ySpM/ado-net-c-connection-pooling-with.html" title="ADO .NET c# Connection Pooling with vFabric SQLFire" /><author><name>Pas Apicella</name><uri>http://www.blogger.com/profile/09389663166398991762</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="15" src="http://wiki.r31skylineclub.com/images/thumb/d/d4/Gts2-side.jpg/100px-Gts2-side.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-JZGZegpU_7I/UWadTak45mI/AAAAAAAAAP4/FgC0__HeWg0/s72-c/Screen+Shot+2013-04-11+at+9.22.56+PM.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2013/04/ado-net-c-connection-pooling-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUICQHw_cCp7ImA9WhBWF0k.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-8039895280784571274</id><published>2013-04-08T21:17:00.000+10:00</published><updated>2013-04-12T15:12:41.248+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-12T15:12:41.248+10:00</app:edited><title>vFabric GemFire and the Native Client World using c#</title><content type="html">Recently I had to step out of my comfort zone and learn how to create a c# client to access a GemFire 7 distributed system for a demo to a customer. OIf course there was more to it then just that but this outlines what you need to do to connect as a c# client to GemFire. I was using the following here.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Visual Studio 2012&lt;/li&gt;
&lt;li&gt;GemFire 32 bit Naive Client&lt;/li&gt;
&lt;/ul&gt;
1. Install GemFire Native client 32 bit or 64 bit depending on your OS. It can be downloaded from the following location.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://my.vmware.com/web/vmware/info/slug/application_platform/vmware_vfabric_gemfire/7_0"&gt;https://my.vmware.com/web/vmware/info/slug/application_platform/vmware_vfabric_gemfire/7_0&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
2. Once installed setup an ENV variable as shown below pointing to the location of the native client install.&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="color: #3d85c6;"&gt;&lt;span style="font-family: monospace;"&gt;C:\Windows\system32&amp;gt;echo %GFCPP%&lt;br /&gt;
  &lt;span style="font-weight: bold;"&gt;C:\vFabric_NativeClient_32bit_7010&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
3. In your Visual Studio 2012 Project / Solution add a reference to GemFire DLL as shown below.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-z4vdtWWP7aI/UWKkRjN_4EI/AAAAAAAAAPg/KhTREjtPX10/s1600/Screen+Shot+2013-04-08+at+9.03.34+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="60" src="http://1.bp.blogspot.com/-z4vdtWWP7aI/UWKkRjN_4EI/AAAAAAAAAPg/KhTREjtPX10/s320/Screen+Shot+2013-04-08+at+9.03.34+PM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-FRibT15u4oc/UWKkhjfFURI/AAAAAAAAAPs/d0OyILbmEyc/s1600/image2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-FRibT15u4oc/UWKkhjfFURI/AAAAAAAAAPs/d0OyILbmEyc/s1600/image2.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
4. In Visual Studio 2012 create a cache.xml as shown below. This client cache is going to use a locator to connect to a cache server instance for the client itself.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;xml/cache.xml&lt;/b&gt;&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;  
&amp;lt;?xml version="1.0"?&amp;gt;
&amp;lt;!DOCTYPE client-cache PUBLIC
    "-//GemStone Systems, Inc.//GemFire Declarative Caching 7.0//EN"
    "http://www.gemstone.com/dtd/cache7_0.dtd"&amp;gt;

&amp;lt;client-cache&amp;gt;
  &amp;lt;pool name="client" subscription-enabled="true"&amp;gt;
    &amp;lt;locator host="172.16.62.1" port="10334" /&amp;gt;
  &amp;lt;/pool&amp;gt;

  &amp;lt;region name="CommandRegion"&amp;gt;
    &amp;lt;region-attributes refid="PROXY" pool-name="client"&amp;gt;
    &amp;lt;/region-attributes&amp;gt;
  &amp;lt;/region&amp;gt;
  
  &amp;lt;region name="changeTrackingRegion"&amp;gt;
    &amp;lt;region-attributes data-policy="normal" pool-name="client"&amp;gt;
    &amp;lt;/region-attributes&amp;gt;
  &amp;lt;/region&amp;gt;
&amp;lt;/client-cache&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;
5. Create 2 c# classes as shown below.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;GemFireClient.cs&lt;/b&gt;&lt;br /&gt;
&lt;pre class="cSharp" name="code"&gt;  
using GemStone.GemFire.Cache.Generic;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace pivotal.au.company.poc
{
    class GemFireClient
    {
        private static bool isStarted = false;
        private static GemFireClient instance = new GemFireClient();
        private string configFileLocation = "xml/cache.xml";
        private Properties&amp;lt;string, string&amp;gt; properties = Properties&amp;lt;string, string&amp;gt;.Create&amp;lt;string, string&amp;gt;();
        private CacheFactory cacheFactory;
        private Cache cache;
        IRegion&amp;lt;string, string&amp;gt; ctrRegion;

        private GemFireClient()
        {
            Console.WriteLine("Reading properties file xml/cache.xml...");
            string clientCacheXml = getCacheConfigLocation(configFileLocation);
            properties.Insert("cache-xml-file", clientCacheXml);
            Serializable.RegisterPdxSerializer(new ReflectionBasedAutoSerializer());

            cacheFactory = CacheFactory.CreateCacheFactory(properties);
            cache = cacheFactory.Create();
  
            ctrRegion = cache.GetRegion&amp;lt;string, string&amp;gt;("changeTrackingRegion");
            ctrRegion.GetSubscriptionService().RegisterRegex("."); 
            
            Console.WriteLine("ctrRegion size = " + ctrRegion.Count);
        }

        public static GemFireClient getInstance()
        {
            return instance;
        }

        public void closeClientCache()
        {
            cache.Close();
            Console.WriteLine("Client Cache closed...");
        }

        public Cache getCache()
        {
            return cache;
        }

        private static string getCacheConfigLocation(string cacheXml)
        {
            var directoryName = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
            if (File.Exists(System.Environment.GetEnvironmentVariable("COMPANY_CONFIG") + "/" + cacheXml) == true)
            {
                return System.Environment.GetEnvironmentVariable("COMPANY_CONFIG") + "/" + cacheXml;
            }
            else if (File.Exists(Path.Combine(directoryName, cacheXml)) == true)
            {
                return Path.Combine(directoryName, cacheXml);
            }
            else
            {
                throw new SystemException("Unable to find /" + cacheXml);
            }
        }
    }
}
&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;GemFireTest.cs&lt;/b&gt;&lt;br /&gt;
&lt;pre class="cSharp" name="code"&gt;  
using pivotal.au.company.poc.domain;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using GemStone.GemFire.Cache.Generic;

namespace pivotal.au.company.poc
{
    class GemFireTest
    {
        GemFireClient gfClient;

        public void doInsert()
        {
            gfClient = GemFireClient.getInstance();

            // get command region
            IRegion&amp;lt;string, Command&amp;gt; commandRegion = gfClient.getCache().GetRegion&amp;lt;string, Command&amp;gt;("CommandRegion");

            // insert a Command Object into the region
            Command command = new Command();
            command.eventType = "INSERT";
            command.tableName = "Holiday";
            command.tableKey = "1";
            command.sequence = 31;
            command.payload = new Dictionary&amp;lt;object, object&amp;gt;()
                { 
                  {"Id", "1"},
               {"name", "apples"},
                  {"createdate", "10-10-2009"}
                };

            Console.WriteLine(command.ToString());

            commandRegion[command.tableKey] = command;

        }

        public void queryCommandRegion()
        {
            gfClient = GemFireClient.getInstance();

            Console.WriteLine("about to query commandRegion");

            QueryService&amp;lt;string, Command&amp;gt; queryService = gfClient.getCache().GetQueryService&amp;lt;string, Command&amp;gt;();
            Query&amp;lt;Command&amp;gt; qry = queryService.NewQuery("SELECT * FROM /CommandRegion");
            ISelectResults&amp;lt;Command&amp;gt; results = qry.Execute();
            SelectResultsIterator&amp;lt;Command&amp;gt; iter = results.GetIterator();
            while (iter.MoveNext())
            {
                Console.WriteLine(iter.Current.ToString());
            }

        }

        public void closeCache()
        {
            gfClient.closeClientCache();
        }

        public void run()
        {
            GemFireTest test = new GemFireTest();
            test.doInsert();
            test.queryCommandRegion();
            test.closeCache();
        }

    }
}
&lt;/pre&gt;
&lt;br /&gt;
Output omitted but this should give you the general idea. &lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/xwlsaGi5pEU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/8039895280784571274/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=8039895280784571274" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/8039895280784571274?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/8039895280784571274?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/xwlsaGi5pEU/vfabric-gemfire-and-native-client-world.html" title="vFabric GemFire and the Native Client World using c#" /><author><name>Pas Apicella</name><uri>http://www.blogger.com/profile/09389663166398991762</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="15" src="http://wiki.r31skylineclub.com/images/thumb/d/d4/Gts2-side.jpg/100px-Gts2-side.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-z4vdtWWP7aI/UWKkRjN_4EI/AAAAAAAAAPg/KhTREjtPX10/s72-c/Screen+Shot+2013-04-08+at+9.03.34+PM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2013/04/vfabric-gemfire-and-native-client-world.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQFRng_fyp7ImA9WhBRE0Q.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-7632054077580716459</id><published>2013-03-04T20:45:00.001+11:00</published><updated>2013-03-04T20:45:17.647+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-03-04T20:45:17.647+11:00</app:edited><title>Implementing an AsyncEventListener for Write-Behind Cache Event Handling</title><content type="html">As part of GemFire 70 release they have introduced as AsyncEventListener for write behind capability which is more or less very similar to the Gateway Listener in GemFire 6.x&lt;br /&gt;
&lt;br /&gt;
An 
  &lt;samp class="codeph"&gt;AsyncEventListener&lt;/samp&gt; receives callbacks for events that
  change region data. You can use an 
  &lt;samp class="codeph"&gt;AsyncEventListener&lt;/samp&gt; implementation as a write-behind cache
  event handler to synchronize region updates with a database.&lt;br /&gt;
&lt;br /&gt;
It documented as follows.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://pubs.vmware.com/vfabricNoSuite/index.jsp?topic=/com.vmware.vfabric.gemfire.7.0/developing/events/implementing_write_behind_event_handler.html"&gt;http://pubs.vmware.com/vfabricNoSuite/index.jsp?topic=/com.vmware.vfabric.gemfire.7.0/developing/events/implementing_write_behind_event_handler.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
So how would my cache.xml file for a member look like here.&lt;br /&gt;
&lt;pre name="code" class="xml"&gt;  
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;
&amp;lt;!DOCTYPE cache PUBLIC
    &amp;quot;-//GemStone Systems, Inc.//GemFire Declarative Caching 7.0//EN&amp;quot;
    &amp;quot;http://www.gemstone.com/dtd/cache7_0.dtd&amp;quot;&amp;gt;

&amp;lt;cache&amp;gt;
    &amp;lt;async-event-queue id=&amp;quot;GreenplumQueue&amp;quot; parallel=&amp;quot;true&amp;quot; batch-size=&amp;quot;500&amp;quot;&amp;gt;
       &amp;lt;async-event-listener&amp;gt;
             &amp;lt;class-name&amp;gt;vmware.pivotal.example.listener.GreenplumGatewayListener&amp;lt;/class-name&amp;gt;
       &amp;lt;/async-event-listener&amp;gt;      
    &amp;lt;/async-event-queue&amp;gt;
    &amp;lt;cache-server port=&amp;quot;40001&amp;quot; notify-by-subscription=&amp;quot;true&amp;quot;/&amp;gt;
    &amp;lt;region name=&amp;quot;greenplumRegion&amp;quot;&amp;gt;
      &amp;lt;region-attributes refid=&amp;quot;PARTITION_REDUNDANT&amp;quot; async-event-queue-ids=&amp;quot;GreenplumQueue&amp;quot;/&amp;gt;
   &amp;lt;/region&amp;gt;
&amp;lt;/cache&amp;gt;
&lt;/pre&gt; 
&lt;br /&gt;
Finally the code to write an AsyncEventListener would be as follows.
&lt;br /&gt;
&lt;pre name="code" class="java"&gt;  
package vmware.pivotal.example.listener;

import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import vmware.pivotal.example.dao.jdbcbatch.JdbcBatch;
import vmware.pivotal.example.dao.jdbcbatch.JdbcBatchDAO;

import com.gemstone.gemfire.cache.Declarable;
import com.gemstone.gemfire.cache.Operation;
import com.gemstone.gemfire.cache.asyncqueue.AsyncEvent;
import com.gemstone.gemfire.cache.asyncqueue.AsyncEventListener;

public class GreenplumGatewayListener implements AsyncEventListener, Declarable
{

 private Logger logger = Logger.getLogger(this.getClass().getSimpleName());
 private ApplicationContext context;
 private static final String BEAN_NAME = &amp;quot;jdbcBatchDAOImpl&amp;quot;;
 private JdbcBatchDAO jdbcBatchDAO;
 
 public GreenplumGatewayListener()
 {
     context = new ClassPathXmlApplicationContext(&amp;quot;application-context.xml&amp;quot;);
     jdbcBatchDAO = (JdbcBatchDAO) context.getBean(BEAN_NAME);  
     logger.log (Level.INFO, &amp;quot;GreenplumGatewayListener started...&amp;quot;);
 }
 
 @Override
 public boolean processEvents(@SuppressWarnings(&amp;quot;rawtypes&amp;quot;) List&amp;lt;AsyncEvent&amp;gt; list) 
 {
     logger.log (Level.INFO, String.format(&amp;quot;Size of List&amp;lt;GatewayEvent&amp;gt; = %s&amp;quot;, list.size()));
     List&amp;lt;JdbcBatch&amp;gt; newEntries = new ArrayList&amp;lt;JdbcBatch&amp;gt;();
     
     List&amp;lt;JdbcBatch&amp;gt; updatedEntries = new ArrayList&amp;lt;JdbcBatch&amp;gt;();
     List&amp;lt;String&amp;gt; destroyedEntries = new ArrayList&amp;lt;String&amp;gt;();
     int possibleDulicates = 0;
     
     for (@SuppressWarnings(&amp;quot;rawtypes&amp;quot;) AsyncEvent ge: list)
     {
       
       if (ge.getPossibleDuplicate())
        possibleDulicates++;
        
       if ( ge.getOperation().equals(Operation.UPDATE)) 
       {
      updatedEntries.add((JdbcBatch) ge.getDeserializedValue());
       }
       else if ( ge.getOperation().equals(Operation.CREATE))
       {
         newEntries.add((JdbcBatch) ge.getDeserializedValue());
       }
       else if ( ge.getOperation().equals(Operation.DESTROY))
       {
      destroyedEntries.add(ge.getKey().toString());
       }
      
     }
     
     if (newEntries.size() &amp;gt; 0)
     {
      jdbcBatchDAO.storeInsertBatch(newEntries); 
     }
     
     if (updatedEntries.size() &amp;gt; 0)
     {
      jdbcBatchDAO.storeUpdateBatch(updatedEntries);
     }
     
     if (destroyedEntries.size() &amp;gt; 0)
     {
      jdbcBatchDAO.storeDeleteBatch(destroyedEntries);
     }
     
     logger.log (Level.INFO, 
           String.format(&amp;quot;New Entries = [%s], Updated Entries = [%s], Destroyed Entries = [%s], Possible Duplicates = [%s]&amp;quot;, 
                   newEntries.size(), 
                   updatedEntries.size(), 
                   destroyedEntries.size(), 
                   possibleDulicates));
     
     return true;
 }


 public void init(Properties arg0) {
  // TODO Auto-generated method stub
  
 }

 public void close() {
  // TODO Auto-generated method stub
  
 }

}
&lt;/pre&gt; &lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/xCOdQHbPj4E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/7632054077580716459/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=7632054077580716459" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/7632054077580716459?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/7632054077580716459?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/xCOdQHbPj4E/implementing-asynceventlistener-for.html" title="Implementing an AsyncEventListener for Write-Behind Cache Event Handling" /><author><name>Pas Apicella</name><uri>http://www.blogger.com/profile/09389663166398991762</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="15" src="http://wiki.r31skylineclub.com/images/thumb/d/d4/Gts2-side.jpg/100px-Gts2-side.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2013/03/implementing-asynceventlistener-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EGRXwyeyp7ImA9WhBSE0g.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-8466716377140268940</id><published>2013-02-20T21:20:00.001+11:00</published><updated>2013-02-20T21:20:24.293+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-20T21:20:24.293+11:00</app:edited><title>MyBatis-Spring with vFabric SQLFire</title><content type="html">MyBatis-Spring helps you integrate your MyBatis code seamlessly with 
Spring. Using the classes in this library, Spring will load the 
necessary MyBatis factory and session classes for you. This library also
 provides an easy way to inject MyBatis data mappers into your service 
beans. Finally, MyBatis-Spring will handle transactions and translate 
MyBatis exceptions into Spring DataAccessExceptions.&lt;br /&gt;
&lt;br /&gt;
Here is a simple exampled based on the classic DEPT table.&lt;br /&gt;
&lt;br /&gt;
1. We are working with a DEPT table in SQLFire defined as follows.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;DEPT table &lt;/b&gt;&lt;br /&gt;
&lt;pre class="sql" name="code"&gt;  
sqlf&amp;gt; describe dept;
COLUMN_NAME         |TYPE_NAME|DEC&amp;amp;|NUM&amp;amp;|COLUM&amp;amp;|COLUMN_DEF|CHAR_OCTE&amp;amp;|IS_NULL&amp;amp;
------------------------------------------------------------------------------
DEPTNO              |INTEGER  |0   |10  |10    |NULL      |NULL      |NO      
DNAME               |VARCHAR  |NULL|NULL|14    |NULL      |28        |YES     
LOC                 |VARCHAR  |NULL|NULL|13    |NULL      |26        |YES     

3 rows selected
&lt;/pre&gt;
&lt;br /&gt;
2. Setup your pom.xml to include the following.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;pom.xml &lt;/b&gt;&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;  
&amp;lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"&amp;gt;
  &amp;lt;modelVersion&amp;gt;4.0.0&amp;lt;/modelVersion&amp;gt;
  &amp;lt;groupId&amp;gt;sqlfire-mybatis&amp;lt;/groupId&amp;gt;
  &amp;lt;artifactId&amp;gt;sqlfire-mybatis&amp;lt;/artifactId&amp;gt;
  &amp;lt;version&amp;gt;0.0.1-SNAPSHOT&amp;lt;/version&amp;gt;
  &amp;lt;name&amp;gt;sqlfire-mybatis&amp;lt;/name&amp;gt;
  &amp;lt;properties&amp;gt;
    &amp;lt;spring.version&amp;gt;3.1.2.RELEASE&amp;lt;/spring.version&amp;gt;
    &amp;lt;mybatis.version&amp;gt;3.1.1&amp;lt;/mybatis.version&amp;gt;
    &amp;lt;mybatis.spring.version&amp;gt;1.1.1&amp;lt;/mybatis.spring.version&amp;gt;
    &amp;lt;dbcp.version&amp;gt;1.4&amp;lt;/dbcp.version&amp;gt;
    &amp;lt;cglib.version&amp;gt;2.2.2&amp;lt;/cglib.version&amp;gt;
  &amp;lt;/properties&amp;gt;
  &amp;lt;dependencies&amp;gt;
 &amp;lt;dependency&amp;gt;
   &amp;lt;groupId&amp;gt;org.mybatis&amp;lt;/groupId&amp;gt;
   &amp;lt;artifactId&amp;gt;mybatis&amp;lt;/artifactId&amp;gt;
   &amp;lt;version&amp;gt;${mybatis.version}&amp;lt;/version&amp;gt;
 &amp;lt;/dependency&amp;gt;
 &amp;lt;dependency&amp;gt;
   &amp;lt;groupId&amp;gt;org.mybatis&amp;lt;/groupId&amp;gt;
   &amp;lt;artifactId&amp;gt;mybatis-spring&amp;lt;/artifactId&amp;gt;
   &amp;lt;version&amp;gt;${mybatis.spring.version}&amp;lt;/version&amp;gt;
 &amp;lt;/dependency&amp;gt;
 &amp;lt;dependency&amp;gt;
   &amp;lt;groupId&amp;gt;commons-dbcp&amp;lt;/groupId&amp;gt;
   &amp;lt;artifactId&amp;gt;commons-dbcp&amp;lt;/artifactId&amp;gt;
   &amp;lt;version&amp;gt;${dbcp.version}&amp;lt;/version&amp;gt;
 &amp;lt;/dependency&amp;gt;
    &amp;lt;dependency&amp;gt;
      &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt;
      &amp;lt;artifactId&amp;gt;spring-core&amp;lt;/artifactId&amp;gt;
      &amp;lt;version&amp;gt;${spring.version}&amp;lt;/version&amp;gt;
    &amp;lt;/dependency&amp;gt;
 &amp;lt;dependency&amp;gt;
   &amp;lt;groupId&amp;gt;cglib&amp;lt;/groupId&amp;gt;
   &amp;lt;artifactId&amp;gt;cglib&amp;lt;/artifactId&amp;gt;
   &amp;lt;version&amp;gt;${cglib.version}&amp;lt;/version&amp;gt;
 &amp;lt;/dependency&amp;gt;
  &amp;lt;/dependencies&amp;gt;
  &amp;lt;repositories&amp;gt;
 &amp;lt;repository&amp;gt;
     &amp;lt;id&amp;gt;mybatis-snapshot&amp;lt;/id&amp;gt;
     &amp;lt;name&amp;gt;MyBatis Snapshot Repository&amp;lt;/name&amp;gt;
     &amp;lt;url&amp;gt;https://oss.sonatype.org/content/repositories/snapshots&amp;lt;/url&amp;gt;
 &amp;lt;/repository&amp;gt;
  &amp;lt;/repositories&amp;gt;
&amp;lt;/project&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;
3. Create the domain modelclass Dept.java, with the standard getter/setters for each attribute. Omitting the full class here.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Dept.java&lt;/b&gt;&lt;br /&gt;
&lt;pre class="java" name="code"&gt;  
package pas.au.vmware.se.mybatis.domain;

public class Dept 
{
 private int deptno;
 private String dname;
 private String loc;
 
 public Dept()
 {
  
 }
 
 public Dept(int deptno, String dname, String loc) 
 {
  super();
  this.deptno = deptno;
  this.dname = dname;
  this.loc = loc;
 }

......
 
&lt;/pre&gt;
&lt;br /&gt;
4.Create a DeptMapper.xml file. I prefer to keep SQL out of the java class wheever I can , hence avoided using annotations here.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;DeptMapper.xml &lt;/b&gt;&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;  
&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;
&amp;lt;!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd"&amp;gt;
 
&amp;lt;mapper namespace="pas.au.vmware.se.mybatis.mapper.DeptMapper"&amp;gt;
 
    &amp;lt;resultMap id="result" type="pas.au.vmware.se.mybatis.domain.Dept"&amp;gt;
        &amp;lt;result property="deptno" column="DEPTNO"/&amp;gt;
        &amp;lt;result property="dname" column="DNAME"/&amp;gt;
        &amp;lt;result property="loc" column="LOC"/&amp;gt;
    &amp;lt;/resultMap&amp;gt;
 
    &amp;lt;select id="getAll" resultMap="result"&amp;gt;
        SELECT * FROM DEPT
    &amp;lt;/select&amp;gt;

 &amp;lt;select id="getById" parameterType="int" resultMap="result"&amp;gt;
  SELECT * FROM DEPT WHERE DEPTNO = #{deptno}
 &amp;lt;/select&amp;gt;
    
    &amp;lt;insert id="insertDept" parameterType="pas.au.vmware.se.mybatis.domain.Dept"&amp;gt;
        INSERT INTO dept (deptno, dname, loc)
        VALUES (#{deptno}, #{dname}, #{loc})
    &amp;lt;/insert&amp;gt;
&amp;lt;/mapper&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;
5. Create a DeptMapper interface file. Notice how this is a clean interface and no annotations to specify the SQL we are using as that's in the DeptMapper.xml file above.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;DeptMapper.java&lt;/b&gt;&lt;br /&gt;
&lt;pre class="java" name="code"&gt;  
package pas.au.vmware.se.mybatis.mapper;

import java.util.List;

import pas.au.vmware.se.mybatis.domain.Dept;

public interface DeptMapper 
{
  public List&amp;lt;Dept&amp;gt; getAll();
  public Dept getById (int deptno);
  public void insertDept (Dept dept);
}
&lt;/pre&gt;
&lt;br /&gt;
6. Create a service class for the DEPT table as shown below.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;DeptService.java &lt;/b&gt;&lt;br /&gt;
&lt;pre class="java" name="code"&gt;  
package pas.au.vmware.se.mybatis.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import pas.au.vmware.se.mybatis.domain.Dept;
import pas.au.vmware.se.mybatis.mapper.DeptMapper;

@Service("deptService")
public class DeptService 
{

 @Autowired
 private DeptMapper deptMapper;

 public DeptMapper getDeptMapper() {
  return deptMapper;
 }

 public void setDeptMapper(DeptMapper deptMapper) {
  this.deptMapper = deptMapper;
 }
 
 public List&amp;lt;Dept&amp;gt; getAll()
 {
  return getDeptMapper().getAll();
 }
 
 public Dept getById(int deptno)
 {
  return getDeptMapper().getById(deptno);
 }
 
 @Transactional
 public void insertDept (Dept dept)
 {
  getDeptMapper().insertDept(dept);
 }
}  
&lt;/pre&gt;
&lt;br /&gt;
7. Create a spring application context file as shown below.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;application-context.xml&lt;/b&gt;&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;  
&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;
&amp;lt;beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:tx="http://www.springframework.org/schema/tx"
 xmlns:context="http://www.springframework.org/schema/context"
 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
  http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd"&amp;gt;

 &amp;lt;bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"&amp;gt;
     &amp;lt;property name="driverClassName" value="com.vmware.sqlfire.jdbc.ClientDriver" /&amp;gt;
     &amp;lt;property name="url" value="jdbc:sqlfire://localhost:1527/" /&amp;gt;
     &amp;lt;property name="username" value="app" /&amp;gt;
     &amp;lt;property name="password" value="app" /&amp;gt;
 &amp;lt;/bean&amp;gt;

 &amp;lt;bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"&amp;gt;
  &amp;lt;property name="dataSource" ref="dataSource" /&amp;gt;
 &amp;lt;/bean&amp;gt;

   &amp;lt;bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"&amp;gt;
      &amp;lt;property name="dataSource" ref="dataSource" /&amp;gt;
   &amp;lt;/bean&amp;gt;
  
    &amp;lt;tx:annotation-driven /&amp;gt;

 &amp;lt;context:component-scan base-package="pas.au.vmware.se.mybatis.service" /&amp;gt;

   &amp;lt;bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"&amp;gt;
     &amp;lt;property name="basePackage" value="pas.au.vmware.se.mybatis.mapper" /&amp;gt;
   &amp;lt;/bean&amp;gt;
      
&amp;lt;/beans&amp;gt; 
&lt;/pre&gt;
&lt;br /&gt;
8. Finally create a test class to verify the setup as shown below.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;SpringDeptTest.java&lt;/b&gt;&lt;br /&gt;
&lt;pre class="java" name="code"&gt;  
package pas.au.vmware.se.mybatis.test;

import java.util.List;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import pas.au.vmware.se.mybatis.domain.Dept;
import pas.au.vmware.se.mybatis.service.DeptService;

public class SpringDeptTest 
{

 /**
  * @param args
  */
 public static void main(String[] args) 
 {
        ApplicationContext context = new ClassPathXmlApplicationContext(
                "application-context.xml");
        
        DeptService deptService = (DeptService) context.getBean("deptService");
        
        Dept dept = new Dept(99, "MYBATIS-TEST", "BUNDOORA");
        deptService.insertDept(dept);
        System.out.println("New DEPT added to SQLFire\n");
          
        List&amp;lt;Dept&amp;gt; deps = deptService.getAll();
        
        for (Dept d: deps)
        {
         System.out.println(d);
        }
        
        System.out.println("\n" + deptService.getById(20));
        
 }

}
&lt;/pre&gt;
&lt;br /&gt;
9. Run SpringDeptTest.java and verfy output as shown below.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Feb 20, 2013 9:14:39 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh&lt;br /&gt;INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@1fff7a1e: startup date [Wed Feb 20 21:14:39 EST 2013]; root of context hierarchy&lt;br /&gt;Feb 20, 2013 9:14:39 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions&lt;br /&gt;INFO: Loading XML bean definitions from class path resource [application-context.xml]&lt;br /&gt;Feb 20, 2013 9:14:40 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons&lt;br /&gt;INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@57ac3379: defining beans [dataSource,sqlSessionFactory,transactionManager,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor,deptService,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.mybatis.spring.mapper.MapperScannerConfigurer#0,org.springframework.context.annotation.ConfigurationClassPostProcessor$ImportAwareBeanPostProcessor#0,deptMapper]; root of factory hierarchy&lt;br /&gt;New DEPT added to SQLFire&lt;br /&gt;&lt;br /&gt;Dept [deptno=10, dname=ACCOUNTING, loc=NEW YORK]&lt;br /&gt;Dept [deptno=20, dname=RESEARCH, loc=DALLAS]&lt;br /&gt;Dept [deptno=30, dname=SALES, loc=CHICAGO]&lt;br /&gt;Dept [deptno=40, dname=OPERATIONS, loc=BRISBANE]&lt;br /&gt;Dept [deptno=50, dname=MARKETING, loc=ADELAIDE]&lt;br /&gt;Dept [deptno=60, dname=DEV, loc=PERTH]&lt;br /&gt;Dept [deptno=70, dname=SUPPORT, loc=SYDNEY]&lt;br /&gt;Dept [deptno=99, dname=MYBATIS-TEST, loc=BUNDOORA]&lt;br /&gt;&lt;br /&gt;Dept [deptno=20, dname=RESEARCH, loc=DALLAS]&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
The full project structure is as follows showing where the XML files exists in this setup.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-l-tYtL1T5LQ/USSjPLvT3II/AAAAAAAAAPI/eujcypvxQXI/s1600/Screen+Shot+2013-02-20+at+9.18.22+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-l-tYtL1T5LQ/USSjPLvT3II/AAAAAAAAAPI/eujcypvxQXI/s320/Screen+Shot+2013-02-20+at+9.18.22+PM.png" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/DwVcMiBcbBA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/8466716377140268940/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=8466716377140268940" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/8466716377140268940?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/8466716377140268940?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/DwVcMiBcbBA/mybatis-spring-with-vfabric-sqlfire.html" title="MyBatis-Spring with vFabric SQLFire" /><author><name>Pas Apicella</name><uri>http://www.blogger.com/profile/09389663166398991762</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="15" src="http://wiki.r31skylineclub.com/images/thumb/d/d4/Gts2-side.jpg/100px-Gts2-side.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-l-tYtL1T5LQ/USSjPLvT3II/AAAAAAAAAPI/eujcypvxQXI/s72-c/Screen+Shot+2013-02-20+at+9.18.22+PM.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2013/02/mybatis-spring-with-vfabric-sqlfire.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUICQH08fCp7ImA9WhBTF08.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-7685275646083816128</id><published>2013-02-13T13:46:00.000+11:00</published><updated>2013-02-13T13:46:01.374+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-13T13:46:01.374+11:00</app:edited><title>Adding JSON Documents into GemFire Cache</title><content type="html">The 
  &lt;samp class="codeph"&gt;&lt;span class="resultofText" name="resultofMatch"&gt;JSON&lt;/span&gt;Formatter&lt;/samp&gt; API allows you to put &lt;span class="resultofText" name="resultofMatch"&gt;JSON&lt;/span&gt; formatted
  documents into regions and retrieve them later by storing the documents
  internally as PdxInstances. vFabric GemFire now supports the use of &lt;span class="resultofText" name="resultofMatch"&gt;JSON&lt;/span&gt; formatted documents
  natively. When you add a &lt;span class="resultofText" name="resultofMatch"&gt;JSON&lt;/span&gt; document to a GemFire cache, you call the
  &lt;span class="resultofText" name="resultofMatch"&gt;JSON&lt;/span&gt;Formatter APIs to transform them into the PDX format (as a 
  &lt;samp class="codeph"&gt;PdxInstance&lt;/samp&gt;), which enables GemFire to understand the
  &lt;span class="resultofText" name="resultofMatch"&gt;JSON&lt;/span&gt; document at a field level.&lt;br /&gt;
&amp;nbsp;
 
  &lt;br /&gt;
In terms of querying and indexing, because the documents are stored
  internally as PDX, applications can index on any field contained inside the
  &lt;span class="resultofText" name="resultofMatch"&gt;JSON&lt;/span&gt; document including any nested field (within &lt;span class="resultofText" name="resultofMatch"&gt;JSON&lt;/span&gt; objects or &lt;span class="resultofText" name="resultofMatch"&gt;JSON&lt;/span&gt; arrays.)
  Any queries run on these stored documents will return PdxInstances as results.
  To update a &lt;span class="resultofText" name="resultofMatch"&gt;JSON&lt;/span&gt; document stored in GemFire, you can execute a function on the
  PdxInstance. 
  &lt;br /&gt;
&lt;br /&gt;
You can then use the 
  &lt;samp class="codeph"&gt;&lt;span class="resultofText" name="resultofMatch"&gt;JSON&lt;/span&gt;Formatter&lt;/samp&gt; to convert the PdxInstance results back
  into the &lt;span class="resultofText" name="resultofMatch"&gt;JSON&lt;/span&gt; document.&lt;br /&gt;
&lt;br /&gt;
Here is a simple example. &lt;br /&gt;
&lt;br /&gt;
1. server side cache.xml file, in this demo we just start up one cache server&lt;br /&gt;
&lt;br /&gt;
cache.xml&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;  
&amp;lt;?xml version="1.0"?&amp;gt;
&amp;lt;!DOCTYPE cache PUBLIC
    "-//GemStone Systems, Inc.//GemFire Declarative Caching 7.0//EN"
    "http://www.gemstone.com/dtd/cache7_0.dtd"&amp;gt;

&amp;lt;cache&amp;gt;
    &amp;lt;cache-server port="40404"/&amp;gt;
    &amp;lt;region name="jsonregion"&amp;gt;
       &amp;lt;region-attributes refid="REPLICATE" /&amp;gt;
    &amp;lt;/region&amp;gt;
&amp;lt;/cache&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;
2. Client side cache.xml&lt;br /&gt;
&lt;br /&gt;
client.xml&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;  
&amp;lt;?xml version="1.0"?&amp;gt;
&amp;lt;!DOCTYPE client-cache PUBLIC
    "-//GemStone Systems, Inc.//GemFire Declarative Caching 7.0//EN"
    "http://www.gemstone.com/dtd/cache7_0.dtd"&amp;gt;

&amp;lt;!--
  | Client.xml
  |
  | Configures a region as a client region in a client/server cache. The 
  | region's pool connects to a cacheserver listening on port 40404.
 --&amp;gt;
&amp;lt;client-cache&amp;gt;
  &amp;lt;pool name="client" subscription-enabled="true"&amp;gt;
    &amp;lt;server host="localhost" port="40404" /&amp;gt;
  &amp;lt;/pool&amp;gt;

  &amp;lt;region name="jsonregion"&amp;gt;
    &amp;lt;region-attributes refid="PROXY"&amp;gt;      
    &amp;lt;/region-attributes&amp;gt;
  &amp;lt;/region&amp;gt;
&amp;lt;/client-cache&amp;gt;  
&lt;/pre&gt;
&lt;br /&gt;
3. Java class to insert some JSON formatted documents into the cache then how to query them back using a field from the JSON document itself.&lt;br /&gt;
&lt;br /&gt;
JSONGemFireClient.java&lt;br /&gt;
&lt;pre class="java" name="code"&gt;  
package vmware.au.gemfire7.json.client;

import java.util.List;

import org.json.simple.JSONObject;

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.SelectResults;
import com.gemstone.gemfire.pdx.JSONFormatter;
import com.gemstone.gemfire.pdx.PdxInstance;

public class JSONGemFireClient 
{

   public static final String REGION_NAME = "jsonregion";
   public ClientCache cache = null;
   
   public JSONGemFireClient()
   {
    cache = new ClientCacheFactory()
          .set("name", "JSONClient")
          .set("cache-xml-file", "xml/client.xml")
          .create();   
   }
 
   @SuppressWarnings("unchecked")
   public void run() throws Exception
   {
    JSONObject obj = null;
    
    System.out.println("Connecting to the distributed system and creating the cache.");
      
    // Get the exampleRegion
    Region&amp;lt;String, PdxInstance&amp;gt; jsonregion = cache.getRegion(REGION_NAME);
    System.out.println("Example region \"" + jsonregion.getFullPath() + "\" created in cache.");
    
    // add 5 entries with age = 30
     
    for (int i = 1; i &amp;lt;= 5; i++)
    {
      obj = new JSONObject();
      
      obj.put("name", String.format("Person%s", i));
      obj.put("age", 30);
     
      jsonregion.put(String.valueOf(i), JSONFormatter.fromJSON(obj.toJSONString()));
    }
      
    // add 5 entries with age = 20
    for (int i = 6; i &amp;lt;= 10; i++)
    {
      obj = new JSONObject();
      
      obj.put("name", String.format("Person%s", i));
      obj.put("age", 20);
     
      jsonregion.put(String.valueOf(i), JSONFormatter.fromJSON(obj.toJSONString()));
    }
    
    // Query region
    SelectResults&amp;lt;PdxInstance&amp;gt; sr = jsonregion.query("age = 30");
    
    System.out.println("Number of entries where age = 30 is -&amp;gt; " + sr.size());
    
    List&amp;lt;PdxInstance&amp;gt; entries = sr.asList();
    for (PdxInstance val: entries)
    {
     System.out.println("\n** JSON data ** ");
     System.out.println("Name = " + val.getField("name"));
     System.out.println("Full JSON data -&amp;gt; \n" + JSONFormatter.toJSON(val));
    }
    
    cache.close();
   }
 
   /**
    * @param args
    */
   public static void main(String[] args) 
   {
    // TODO Auto-generated method stub
    JSONGemFireClient test = new JSONGemFireClient();
    
    try 
    {
   test.run();
    } 
    catch (Exception e) 
    {
   // TODO Auto-generated catch block
   e.printStackTrace();
    }
   }

}
&lt;/pre&gt;
&lt;br /&gt;
4. Run the java class above and verify output as follows&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;.... &lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;[info 2013/02/13 09:41:15.464 EST &lt;main&gt; tid=0x1] Defining: PdxType[&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id=1, name=__GEMFIRE_JSON, fields=[&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; age:byte:0:idx0(relativeOffset)=0:idx1(vlfOffsetIndex)=0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name:String:1:idx0(relativeOffset)=1:idx1(vlfOffsetIndex)=-1]]&lt;br /&gt;Number of entries where age = 30 is -&amp;gt; 5&lt;br /&gt;&lt;br /&gt;** JSON data ** &lt;br /&gt;Name = Person1&lt;br /&gt;Full JSON data -&amp;gt; &lt;br /&gt;{&lt;br /&gt;&amp;nbsp; "age" : 30,&lt;br /&gt;&amp;nbsp; "name" : "Person1"&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;** JSON data ** &lt;br /&gt;Name = Person4&lt;br /&gt;Full JSON data -&amp;gt; &lt;br /&gt;{&lt;br /&gt;&amp;nbsp; "age" : 30,&lt;br /&gt;&amp;nbsp; "name" : "Person4"&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;** JSON data ** &lt;br /&gt;Name = Person2&lt;br /&gt;Full JSON data -&amp;gt; &lt;br /&gt;{&lt;br /&gt;&amp;nbsp; "age" : 30,&lt;br /&gt;&amp;nbsp; "name" : "Person2"&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;** JSON data ** &lt;br /&gt;Name = Person5&lt;br /&gt;Full JSON data -&amp;gt; &lt;br /&gt;{&lt;br /&gt;&amp;nbsp; "age" : 30,&lt;br /&gt;&amp;nbsp; "name" : "Person5"&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;** JSON data ** &lt;br /&gt;Name = Person3&lt;br /&gt;Full JSON data -&amp;gt; &lt;br /&gt;{&lt;br /&gt;&amp;nbsp; "age" : 30,&lt;br /&gt;&amp;nbsp; "name" : "Person3"&lt;br /&gt;}&lt;br /&gt;....&lt;/main&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Finally use GFSH to query the region itself and you wouldn't even know your using JSON stored documents and would rely on using JSONFormatter&amp;nbsp; to convert the data back into JSON document. &lt;br /&gt;
&lt;pre class="sql" name="code"&gt;  
gfsh&amp;gt;connect --jmx-manager=localhost[1099]
Connecting to Manager at [host=localhost, port=1099] ..
Successfully connected to: [host=localhost, port=1099]

gfsh&amp;gt;list regions;
List of regions
---------------
jsonregion

gfsh&amp;gt;query --query="select * from /jsonregion";

Result     : true
startCount : 0
endCount   : 20
Rows       : 10

age | name
--- | --------
30  | Person1
30  | Person4
20  | Person8
20  | Person10
20  | Person6
30  | Person2
30  | Person5
20  | Person9
20  | Person7
30  | Person3

NEXT_STEP_NAME : END 
&lt;/pre&gt;
&lt;br /&gt;
More information can be found on the link below.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://pubs.vmware.com/vfabricNoSuite/index.jsp?topic=/com.vmware.vfabric.gemfire.7.0/developing/data_serialization/jsonformatter_pdxinstances.html"&gt;http://pubs.vmware.com/vfabricNoSuite/index.jsp?topic=/com.vmware.vfabric.gemfire.7.0/developing/data_serialization/jsonformatter_pdxinstances.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/Xe_KaRc6IxI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/7685275646083816128/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=7685275646083816128" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/7685275646083816128?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/7685275646083816128?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/Xe_KaRc6IxI/adding-json-documents-into-gemfire-cache.html" title="Adding JSON Documents into GemFire Cache" /><author><name>Pas Apicella</name><uri>http://www.blogger.com/profile/09389663166398991762</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="15" src="http://wiki.r31skylineclub.com/images/thumb/d/d4/Gts2-side.jpg/100px-Gts2-side.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2013/02/adding-json-documents-into-gemfire-cache.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMHQ34-eSp7ImA9WhBTFUU.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-2271276956560755753</id><published>2013-02-11T22:12:00.000+11:00</published><updated>2013-02-11T22:50:32.051+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-11T22:50:32.051+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="RabbitMQ" /><category scheme="http://www.blogger.com/atom/ns#" term="VFabric" /><title>JSON messages with RabbitMQ</title><content type="html">Using JSON message solution in RabbitMQ gives you something that's a bit more friendly in polyglot systems, and leaves your application with more future flexibility. Although we can use Java Objects this puts restrictions on the the recipients of your message as they're also going to need to be in Java. JSON (JavaScript Object Notation) is rather common
      alternative that is more flexible and portable across different
      languages and platforms.&lt;br /&gt;
&lt;br /&gt;
In the example below we use the following&lt;br /&gt;
&lt;br /&gt;
RabbitMQ 3.0 - &lt;a href="http://www.rabbitmq.com/"&gt;http://www.rabbitmq.com/&lt;/a&gt;&lt;br /&gt;
JSON-Simple - &lt;a href="http://code.google.com/p/json-simple/"&gt;http://code.google.com/p/json-simple/&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
1. Create a start up script to start a single RabbitMQ server.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&lt;span style="background-color: white;"&gt;export RABBITMQ_NODE_PORT=5676 &lt;br /&gt;export RABBITMQ_NODENAME=rabbit_standalone&lt;br /&gt;&lt;br /&gt;export RABBIT_HOME=/Users/papicella/vmware/software/rabittMQ/rabbitmq_server-3.0.0&lt;br /&gt;&lt;br /&gt;$RABBIT_HOME/sbin/rabbitmq-server -detached&lt;br /&gt;&lt;br /&gt;netstat -an | grep 5676&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
2. Start as shown below.&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="color: #3d85c6;"&gt;[Mon Feb 11 21:07:17 papicella@:~/rabbitMQ/standalone-rabbit ] $ sudo ./node1.sh &lt;br /&gt;Warning: PID file not written; -detached was passed.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;tcp4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp; *.5676&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *.*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LISTEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;tcp46&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp; *.5676&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *.*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LISTEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
3. Create a RECEIVE client which will create a QUEUE and wait for messages. IT is expecting a JSON string to be sent.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;JSONRecv.java&lt;/u&gt;&lt;br /&gt;
&lt;pre class="java" name="code"&gt;  
package pas.au.rabbitmq30.tutorial.helloworld.json;

import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.QueueingConsumer;

public class JSONRecv 
{
 private final static String QUEUE_NAME = "json-example";
 private ConnectionFactory factory = null;
 private JSONParser parser;
 
 public JSONRecv() 
 {
  parser = new JSONParser();
 }

 public void run () throws Exception
 {
  factory = new ConnectionFactory();
     factory.setHost("localhost");
     factory.setPort(5676);
     Connection connection = factory.newConnection();
     Channel channel = connection.createChannel();

     channel.queueDeclare(QUEUE_NAME, false, false, false, null);
     System.out.println(" [*] Waiting for messages. To exit press CTRL+C");
     
     QueueingConsumer consumer = new QueueingConsumer(channel);
     channel.basicConsume(QUEUE_NAME, true, consumer);
     
     while (true) 
     {
       QueueingConsumer.Delivery delivery = consumer.nextDelivery();
       String message = new String(delivery.getBody()); 
       JSONObject obj = (JSONObject) parser.parse(message);
       
       System.out.println(" [x] Received '" + obj.toJSONString() + "'");
     }  
 }
 
 /**
  * @param args
  * @throws Exception 
  */
 public static void main(String[] args) throws Exception 
 {
  // TODO Auto-generated method stub
  JSONRecv test = new JSONRecv();
  test.run();
 }

}  
&lt;/pre&gt;
&lt;br /&gt;
4. Create a SEND client and place 10 JSON objects onto the QUEUE&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;JSONSend.java&lt;/u&gt;&lt;br /&gt;
&lt;pre class="java" name="code"&gt;  
package pas.au.rabbitmq30.tutorial.helloworld.json;

import org.json.simple.JSONObject;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

public class JSONSend 
{
 private final static String QUEUE_NAME = "json-example";
 private ConnectionFactory factory = null;
 
 public JSONSend() 
 {
  // TODO Auto-generated constructor stub
 }
 
 @SuppressWarnings("unchecked")
 public void run() throws Exception
 {
     factory = new ConnectionFactory(); 
     factory.setHost("localhost"); 
     factory.setPort(5676);
     
     System.out.println("connected to rabbitMQ on localhost ...");
     Connection connection = factory.newConnection();
     Channel channel = connection.createChannel();

     channel.queueDeclare(QUEUE_NAME, false, false, false, null);
     for (int i = 1; i &amp;lt;= 10; i++)
     {
      JSONObject obj = new JSONObject();
      
      obj.put("name", String.format("Person%s", i));
      obj.put("age", new Integer(37));
     
      channel.basicPublish("", QUEUE_NAME, null, obj.toJSONString().getBytes()); 
      System.out.println(" [x] Sent '" + obj.toJSONString() + "'");
     }
     
     channel.close();
     connection.close();
 }
 
 /**
  * @param args
  * @throws Exception 
  */
 public static void main(String[] args) throws Exception 
 {
  // TODO Auto-generated method stub
  JSONSend test = new JSONSend();
  test.run();
 }

}
&lt;/pre&gt;
&lt;br /&gt;
5. Run JSONRecv.java and verify output as follows&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;[*] Waiting for messages. To exit press CTRL+C&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
6. Run JSONSend.java and then check the output from JSONRecv.java.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;[*] Waiting for messages. To exit press CTRL+C&lt;br /&gt;&amp;nbsp;[x] Received '{"name":"Person1","age":37}'&lt;br /&gt;&amp;nbsp;[x] Received '{"name":"Person2","age":37}'&lt;br /&gt;&amp;nbsp;[x] Received '{"name":"Person3","age":37}'&lt;br /&gt;&amp;nbsp;[x] Received '{"name":"Person4","age":37}'&lt;br /&gt;&amp;nbsp;[x] Received '{"name":"Person5","age":37}'&lt;br /&gt;&amp;nbsp;[x] Received '{"name":"Person6","age":37}'&lt;br /&gt;&amp;nbsp;[x] Received '{"name":"Person7","age":37}'&lt;br /&gt;&amp;nbsp;[x] Received '{"name":"Person8","age":37}'&lt;br /&gt;&amp;nbsp;[x] Received '{"name":"Person9","age":37}'&lt;br /&gt;&amp;nbsp;[x] Received '{"name":"Person10","age":37}'&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
For more information on RabbitMQ view the link below.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.rabbitmq.com/"&gt;http://www.rabbitmq.com/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/wARmQ0huIwI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/2271276956560755753/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=2271276956560755753" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/2271276956560755753?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/2271276956560755753?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/wARmQ0huIwI/json-messages-with-rabbitmq.html" title="JSON messages with RabbitMQ" /><author><name>Pas Apicella</name><uri>http://www.blogger.com/profile/09389663166398991762</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="15" src="http://wiki.r31skylineclub.com/images/thumb/d/d4/Gts2-side.jpg/100px-Gts2-side.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2013/02/json-messages-with-rabbitmq.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcCR345cCp7ImA9WhNbFEo.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-1754389766406383992</id><published>2013-01-18T14:01:00.000+11:00</published><updated>2013-01-18T14:01:06.028+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-01-18T14:01:06.028+11:00</app:edited><title>JMX URL for GemFire 7 </title><content type="html">In order to connect to the MBean server within a GemFire 7 Distributed System you would need to use a JMX service URL as follows.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Format:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #3d85c6;"&gt;service:jmx:rmi://{hotname}/jndi/rmi://{hostname}:1099/jmxrmi&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Example:&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="color: #3d85c6;"&gt;service:jmx:rmi://Pas-Apicellas-MacBook-Pro.local/jndi/rmi://Pas-Apicellas-MacBook-Pro.local:1099/jmxrmi&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Another way is to use GFSH and start jconsole issuing the command "&lt;b&gt;start jconsole&lt;/b&gt;" as shown below. This will automatically connect for you providing you have the ability to display jconsole graphically.&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;  
gfsh&amp;gt;start jconsole
Running JDK JConsole
&lt;/pre&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-kysXK35xtmg/UPi6uea5QZI/AAAAAAAAAO0/MQ9tM99wSfI/s1600/Screen+Shot+2013-01-18+at+1.59.45+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="223" src="http://3.bp.blogspot.com/-kysXK35xtmg/UPi6uea5QZI/AAAAAAAAAO0/MQ9tM99wSfI/s320/Screen+Shot+2013-01-18+at+1.59.45+PM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/OYR0pvzaHMI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/1754389766406383992/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=1754389766406383992" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/1754389766406383992?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/1754389766406383992?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/OYR0pvzaHMI/jmx-url-for-gemfire-7.html" title="JMX URL for GemFire 7 " /><author><name>Pas Apicella</name><uri>http://www.blogger.com/profile/09389663166398991762</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="15" src="http://wiki.r31skylineclub.com/images/thumb/d/d4/Gts2-side.jpg/100px-Gts2-side.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-kysXK35xtmg/UPi6uea5QZI/AAAAAAAAAO0/MQ9tM99wSfI/s72-c/Screen+Shot+2013-01-18+at+1.59.45+PM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2013/01/jmx-url-for-gemfire-7.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEMRnYzcCp7ImA9WhNbGEU.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-8961155544540951151</id><published>2013-01-18T13:50:00.000+11:00</published><updated>2013-01-23T07:48:07.888+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-01-23T07:48:07.888+11:00</app:edited><title>Viewing Data Distribution on GemFire Members</title><content type="html">The following code can be used to show which member is hosting which primary piece of data in a partitioned region within GemFire. This was done with gemFire 7 but should work with GemFire 6.6 as well.&lt;br /&gt;
&lt;br /&gt;
1. The server side cache.xml is as follows which pre populates some data into the region to save having to write a client to add data.&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;  
&amp;lt;?xml version="1.0"?&amp;gt;
&amp;lt;!DOCTYPE cache PUBLIC
    "-//GemStone Systems, Inc.//GemFire Declarative Caching 7.0//EN"
    "http://www.gemstone.com/dtd/cache7_0.dtd"&amp;gt;

&amp;lt;cache&amp;gt;
    &amp;lt;cache-server port="40001" notify-by-subscription="true"/&amp;gt;
    &amp;lt;region name="exampleRegion"&amp;gt;
      &amp;lt;region-attributes refid="PARTITION_REDUNDANT"/&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;1&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue1&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;2&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue2&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;3&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue3&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;4&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue4&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;5&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue5&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;6&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue6&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;7&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue7&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;8&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue8&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;9&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue9&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;10&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue10&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;11&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue11&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;12&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue12&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;13&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue13&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;14&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue14&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;15&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue15&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;16&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue16&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;17&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue17&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;18&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue18&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;19&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue19&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;20&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue20&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;21&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue21&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;22&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue22&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;23&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue23&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;24&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue24&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;25&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue25&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;26&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue26&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;27&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue27&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;28&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue28&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;29&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue29&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
      &amp;lt;entry&amp;gt;&amp;lt;key&amp;gt;&amp;lt;string&amp;gt;30&amp;lt;/string&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;value&amp;gt;&amp;lt;string&amp;gt;MyValue30&amp;lt;/string&amp;gt;&amp;lt;/value&amp;gt;&amp;lt;/entry&amp;gt;
   &amp;lt;/region&amp;gt;
&amp;lt;/cache&amp;gt; 
&lt;/pre&gt;
&lt;br /&gt;
2. When listing members we have one locator and 2 cache servers.&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;  
gfsh&amp;gt;list members;
  Name   | Id
-------- | -------------------------------------------------------
server2  | Pas-Apicellas-MacBook-Pro(server2:78035)&amp;lt;v2&amp;gt;:4641
server1  | Pas-Apicellas-MacBook-Pro(server1:78002)&amp;lt;v1&amp;gt;:13379
locator1 | Pas-Apicellas-MacBook-Pro(locator1:77992:locator):23631
&lt;/pre&gt;
&lt;br /&gt;
3. Get a query to ensure we indeed have 30 entries in the region.&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;  
gfsh&amp;gt;query --query="select count(*) from /exampleRegion";

Result     : true
startCount : 0
endCount   : 20
Rows       : 1

Result
------
30

NEXT_STEP_NAME : END
&lt;/pre&gt;
&lt;br /&gt;
4. Create an XML cache.xml file which will enable us to connect as a cache server to the Distributed System with storage disabled.&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;  
&amp;lt;?xml version="1.0"?&amp;gt;
&amp;lt;!DOCTYPE cache PUBLIC
    "-//GemStone Systems, Inc.//GemFire Declarative Caching 7.0//EN"
    "http://www.gemstone.com/dtd/cache7_0.dtd"&amp;gt;

&amp;lt;cache&amp;gt;
  &amp;lt;cache-server port="0" /&amp;gt;

  &amp;lt;region name="exampleRegion" &amp;gt;
       &amp;lt;region-attributes data-policy="partition" &amp;gt;
           &amp;lt;partition-attributes local-max-memory="0" redundant-copies="1"/&amp;gt;
           &amp;lt;subscription-attributes interest-policy="all"/&amp;gt;            
       &amp;lt;/region-attributes&amp;gt;
  &amp;lt;/region&amp;gt;
&amp;lt;/cache&amp;gt; 
&lt;/pre&gt;
&lt;br /&gt;
5. Write a java client with code as follows&lt;br /&gt;
&lt;pre class="java" name="code"&gt;  
package vmware.au.gemfire.demos.deptemp;

import java.util.Map;
import java.util.Set;

import com.gemstone.gemfire.cache.Cache;
import com.gemstone.gemfire.cache.CacheFactory;
import com.gemstone.gemfire.cache.Region;
import com.gemstone.gemfire.cache.partition.PartitionRegionHelper;
import com.gemstone.gemfire.distributed.DistributedMember;

public class VerifyDataLocations 
{
 private Cache cache = null;
   
 public VerifyDataLocations() 
 {
     CacheFactory cf = new CacheFactory();
     cf.set("cache-xml-file", "xml/datalocations-cache-no-storage.xml");
     cf.set("locators", "localhost[10334]");
     cache = cf.create();
 }

 public void run() throws InterruptedException
 {
  Region&amp;lt;String,String&amp;gt; exampleRegion = cache.getRegion("exampleRegion");
  System.out.println("exampleRegion size = " + exampleRegion.size());

     Set&amp;lt;Map.Entry&amp;lt;String, String&amp;gt;&amp;gt; entries = exampleRegion.entrySet();

     for (Map.Entry entry: entries) 
     {

       DistributedMember member = 
         PartitionRegionHelper.getPrimaryMemberForKey(exampleRegion, (String) entry.getKey());
       System.out.println
         (String.format("\"Primary Member [Host=%s, Id=%s - Key=%s, Value=%s]", 
          member.getHost(), member.getId(), entry.getKey(), (String) entry.getValue())); 
        
     }
     
     System.out.println("Sleeping for 20 seconds..");
     
        cache.close();
     
 }
 
 /**
  * @param args
  * @throws InterruptedException 
  */
 public static void main(String[] args) throws InterruptedException 
 {
  // TODO Auto-generated method stub
  VerifyDataLocations test = new VerifyDataLocations();
  test.run();
 }

}
&lt;/pre&gt;
&lt;br /&gt;
6. Output as follows.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #6fa8dc;"&gt;&lt;span style="color: #3d85c6;"&gt;exampleRegion size = 30&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server2:78035)&lt;v2&gt;:4641 - Key=20, Value=MyValue20]&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server2:78035)&lt;v2&gt;:4641 - Key=21, Value=MyValue21]&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server2:78035)&lt;v2&gt;:4641 - Key=22, Value=MyValue22]&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server2:78035)&lt;v2&gt;:4641 - Key=23, Value=MyValue23]&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server2:78035)&lt;v2&gt;:4641 - Key=24, Value=MyValue24]&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server2:78035)&lt;v2&gt;:4641 - Key=25, Value=MyValue25]&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server2:78035)&lt;v2&gt;:4641 - Key=26, Value=MyValue26]&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server2:78035)&lt;v2&gt;:4641 - Key=27, Value=MyValue27]&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server2:78035)&lt;v2&gt;:4641 - Key=28, Value=MyValue28]&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server2:78035)&lt;v2&gt;:4641 - Key=29, Value=MyValue29]&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server2:78035)&lt;v2&gt;:4641 - Key=30, Value=MyValue30]&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server2:78035)&lt;v2&gt;:4641 - Key=1, Value=MyValue1]&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server2:78035)&lt;v2&gt;:4641 - Key=2, Value=MyValue2]&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server2:78035)&lt;v2&gt;:4641 - Key=3, Value=MyValue3]&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server2:78035)&lt;v2&gt;:4641 - Key=4, Value=MyValue4]&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server1:78002)&lt;v1&gt;:13379 - Key=5, Value=MyValue5]&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server1:78002)&lt;v1&gt;:13379 - Key=6, Value=MyValue6]&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server1:78002)&lt;v1&gt;:13379 - Key=7, Value=MyValue7]&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server1:78002)&lt;v1&gt;:13379 - Key=8, Value=MyValue8]&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server1:78002)&lt;v1&gt;:13379 - Key=9, Value=MyValue9]&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server1:78002)&lt;v1&gt;:13379 - Key=10, Value=MyValue10]&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server1:78002)&lt;v1&gt;:13379 - Key=11, Value=MyValue11]&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server1:78002)&lt;v1&gt;:13379 - Key=12, Value=MyValue12]&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server1:78002)&lt;v1&gt;:13379 - Key=13, Value=MyValue13]&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server1:78002)&lt;v1&gt;:13379 - Key=14, Value=MyValue14]&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server1:78002)&lt;v1&gt;:13379 - Key=15, Value=MyValue15]&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server1:78002)&lt;v1&gt;:13379 - Key=16, Value=MyValue16]&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server1:78002)&lt;v1&gt;:13379 - Key=17, Value=MyValue17]&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server1:78002)&lt;v1&gt;:13379 - Key=18, Value=MyValue18]&lt;br /&gt;"Primary Member [Host=Pas-Apicellas-MacBook-Pro.local, Id=Pas-Apicellas-MacBook-Pro(server1:78002)&lt;v1&gt;:13379 - Key=19, Value=MyValue19]&lt;/v1&gt;&lt;/v1&gt;&lt;/v1&gt;&lt;/v1&gt;&lt;/v1&gt;&lt;/v1&gt;&lt;/v1&gt;&lt;/v1&gt;&lt;/v1&gt;&lt;/v1&gt;&lt;/v1&gt;&lt;/v1&gt;&lt;/v1&gt;&lt;/v1&gt;&lt;/v1&gt;&lt;/v2&gt;&lt;/v2&gt;&lt;/v2&gt;&lt;/v2&gt;&lt;/v2&gt;&lt;/v2&gt;&lt;/v2&gt;&lt;/v2&gt;&lt;/v2&gt;&lt;/v2&gt;&lt;/v2&gt;&lt;/v2&gt;&lt;/v2&gt;&lt;/v2&gt;&lt;/v2&gt;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/ry1-Awd96Kk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/8961155544540951151/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=8961155544540951151" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/8961155544540951151?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/8961155544540951151?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/ry1-Awd96Kk/viewing-data-distrubution-on-gemfire.html" title="Viewing Data Distribution on GemFire Members" /><author><name>Pas Apicella</name><uri>http://www.blogger.com/profile/09389663166398991762</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="15" src="http://wiki.r31skylineclub.com/images/thumb/d/d4/Gts2-side.jpg/100px-Gts2-side.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2013/01/viewing-data-distrubution-on-gemfire.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEAGRXk5fCp7ImA9WhNbEk0.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-7779738921543185737</id><published>2013-01-15T10:37:00.004+11:00</published><updated>2013-01-15T10:38:44.724+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-01-15T10:38:44.724+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="VFabric" /><category scheme="http://www.blogger.com/atom/ns#" term="GemFire" /><category scheme="http://www.blogger.com/atom/ns#" term="hyperic HQ" /><title>vFabric Gemfire 7 Monitoring Plugin (Hyperic)</title><content type="html">Hyperic plug-in for vFabric Gemfire, manages&amp;nbsp;GemFire Distributed System (DS) and the servers and services it comprises. Recenbtly a new version was released which supports GemFire 7. You can obtain it from the VMware Sulution Exchange link below.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://solutionexchange.vmware.com/store/products/vfabric-gemfire-monitoring-plugin-hyperic"&gt;https://solutionexchange.vmware.com/store/products/vfabric-gemfire-monitoring-plugin-hyperic&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
To set GemFire 7 monitoring on Hyperic 50 the steps are as follows&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Download plugin from link above&lt;/li&gt;
&lt;li&gt;If plugin name contains version such as vfgf-plugin-1.0.M1.jar, rename to vfgf-plugin.jar.&lt;/li&gt;
&lt;li&gt;Log in to HQ UI&lt;/li&gt;
&lt;li&gt;Click on Administration&lt;/li&gt;
&lt;li&gt;Click on Plugin Manager&lt;/li&gt;
&lt;li&gt;Click Add/Update Plugins&lt;/li&gt;
&lt;li&gt;Select vfgf-plugin.jar from your filesystem&lt;/li&gt;
&lt;li&gt;Click Ok&lt;/li&gt;
&lt;li&gt;Wait for plugin sync to complete (usually not more than a minute or two)&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-CJkOerakQsE/UPSUOBfE_8I/AAAAAAAAANw/60C-RPO3y6c/s1600/img1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="161" src="http://3.bp.blogspot.com/-CJkOerakQsE/UPSUOBfE_8I/AAAAAAAAANw/60C-RPO3y6c/s320/img1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Click on Resources&lt;/li&gt;
&lt;li&gt;Click on the Tools menu&lt;/li&gt;
&lt;li&gt;Click on New Platform&lt;/li&gt;
&lt;li&gt;Enter a name for this platform such as "Gemfire 7.0" this name must be unique in HQ Inventory&lt;/li&gt;
&lt;li&gt;Optionally enter Description and Location&lt;/li&gt;
&lt;li&gt;From Platform Type drop down select either "vFabric Gemfire Distributed System 7.x"&lt;/li&gt;
&lt;li&gt;Choose the HQ agent you wish to monitor gemfire from in the Agent 
Connection drop down. (Note: If the HQ agent will be monitoring GF 
remotely be sure firewall allows the selected HQ agent to connect to the
 gemfire agent/locators)&lt;/li&gt;
&lt;li&gt;Enter the IP Address of the GemFire system into IP Address &lt;/li&gt;
&lt;li&gt;Enter a unique name to use in the Fully Qualified Domain Name box.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Once done it should look as follows once servers have been picked up and discovered.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-yi14bvvGFc8/UPSWdkqsN9I/AAAAAAAAAOU/l3qAYGIHPFk/s1600/img4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="145" src="http://3.bp.blogspot.com/-yi14bvvGFc8/UPSWdkqsN9I/AAAAAAAAAOU/l3qAYGIHPFk/s320/img4.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Click OK - This will add the platform to inventory. It still needs to be configured&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-0u8tWB-Vikg/UPSVhc-wvgI/AAAAAAAAAOM/4n69bG5_83U/s1600/img2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="158" src="http://3.bp.blogspot.com/-0u8tWB-Vikg/UPSVhc-wvgI/AAAAAAAAAOM/4n69bG5_83U/s320/img2.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Click on Edit under Configuration Properties under the Inventory tab of the new platform you added&lt;/li&gt;
&lt;li&gt;Enter in the details for the locator(s) and their ports. If there are multiple locators then separate then by a comma. &lt;/li&gt;
&lt;/ul&gt;
Finally when done you can save charts to the main dashboard as required.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-W3ypJK8fR2E/UPSVcQWXQZI/AAAAAAAAAOE/-QiETZTAjYs/s1600/img3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="160" src="http://3.bp.blogspot.com/-W3ypJK8fR2E/UPSVcQWXQZI/AAAAAAAAAOE/-QiETZTAjYs/s320/img3.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/D1gtpe6rdbg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/7779738921543185737/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=7779738921543185737" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/7779738921543185737?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/7779738921543185737?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/D1gtpe6rdbg/vfabric-gemfire-7-monitoring-plugin.html" title="vFabric Gemfire 7 Monitoring Plugin (Hyperic)" /><author><name>Pas Apicella</name><uri>http://www.blogger.com/profile/09389663166398991762</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="15" src="http://wiki.r31skylineclub.com/images/thumb/d/d4/Gts2-side.jpg/100px-Gts2-side.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-CJkOerakQsE/UPSUOBfE_8I/AAAAAAAAANw/60C-RPO3y6c/s72-c/img1.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2013/01/vfabric-gemfire-7-monitoring-plugin.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEUAR389fyp7ImA9WhNWGUw.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-3243958830838243736</id><published>2012-12-19T21:18:00.000+11:00</published><updated>2012-12-19T22:24:06.167+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-12-19T22:24:06.167+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SQLFire" /><category scheme="http://www.blogger.com/atom/ns#" term="VFabric" /><category scheme="http://www.blogger.com/atom/ns#" term="spring data" /><title>Spring Data JPA Repository with vFabric SQLFire</title><content type="html">Spring JPA is part of the umbrella &lt;a href="http://www.springsource.org/spring-data"&gt;Spring Data&lt;/a&gt; project that makes it easy to easily implement JPA based repositories. In this example below we use Hibernate 4.1 as the JPA implementation along with with our Spring Data JPA repository to get up and running as quickly as possible. Finally in this example we use the SQLFire Hibernate Dialect given we are connecting to a SQLFire distributed database system. More info on the SQLFire Hibernate Dialect can be found &lt;a href="http://communities.vmware.com/docs/DOC-20294"&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
The project I have created in STS is as follows.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-VXaTYHQrbX8/UNGOQ4Kq-EI/AAAAAAAAANQ/5gYjvSMcwbk/s1600/img1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-VXaTYHQrbX8/UNGOQ4Kq-EI/AAAAAAAAANQ/5gYjvSMcwbk/s320/img1.png" width="300" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
In no particular order lets show how we defined this project. Like most other blog entries this is based on the classic DEPT/EMP RDBMS tables. Before we start the maven STS project has the following defined. This will ensure you can use this code without compilation errors as all libraries required are defined with maven dependencies.&lt;br /&gt;
&lt;br /&gt;
pom.xml&lt;br /&gt;
&lt;pre name="code" class="xml"&gt;  
&amp;lt;project xmlns=&amp;quot;http://maven.apache.org/POM/4.0.0&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xsi:schemaLocation=&amp;quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&amp;quot;&amp;gt;
  &amp;lt;modelVersion&amp;gt;4.0.0&amp;lt;/modelVersion&amp;gt;
  &amp;lt;groupId&amp;gt;spring-hibernate-jpa-sqlfire&amp;lt;/groupId&amp;gt;
  &amp;lt;artifactId&amp;gt;spring-hibernate-jpa-sqlfire&amp;lt;/artifactId&amp;gt;
  &amp;lt;version&amp;gt;0.0.1-SNAPSHOT&amp;lt;/version&amp;gt;
  &amp;lt;name&amp;gt;spring-hibernate-jpa-sqlfire&amp;lt;/name&amp;gt;
   &amp;lt;properties&amp;gt;
       &amp;lt;spring.version&amp;gt;3.1.2.RELEASE&amp;lt;/spring.version&amp;gt;
   &amp;lt;/properties&amp;gt;
  &amp;lt;dependencies&amp;gt;
   &amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;org.hibernate&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;hibernate-entitymanager&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;4.1.6.Final&amp;lt;/version&amp;gt;
   &amp;lt;/dependency&amp;gt;
   &amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;org.hibernate.javax.persistence&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;hibernate-jpa-2.0-api&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;1.0.0.Final&amp;lt;/version&amp;gt;
   &amp;lt;/dependency&amp;gt;   
   &amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;spring-core&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;${spring.version}&amp;lt;/version&amp;gt;
   &amp;lt;/dependency&amp;gt;
        &amp;lt;dependency&amp;gt;
            &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt;
            &amp;lt;artifactId&amp;gt;spring-aop&amp;lt;/artifactId&amp;gt;
            &amp;lt;version&amp;gt;${spring.version}&amp;lt;/version&amp;gt;
        &amp;lt;/dependency&amp;gt;
   &amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;spring-tx&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;${spring.version}&amp;lt;/version&amp;gt;
   &amp;lt;/dependency&amp;gt;
   &amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;spring-orm&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;${spring.version}&amp;lt;/version&amp;gt;
   &amp;lt;/dependency&amp;gt;
   &amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;spring-jdbc&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;${spring.version}&amp;lt;/version&amp;gt;
   &amp;lt;/dependency&amp;gt;
   &amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;spring-context&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;${spring.version}&amp;lt;/version&amp;gt;
   &amp;lt;/dependency&amp;gt;
   &amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;spring-test&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;${spring.version}&amp;lt;/version&amp;gt;
   &amp;lt;/dependency&amp;gt;
   &amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;spring-jpa&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;2.0.8&amp;lt;/version&amp;gt;
   &amp;lt;/dependency&amp;gt;
   &amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;junit&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;junit&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;4.8.2&amp;lt;/version&amp;gt;
   &amp;lt;/dependency&amp;gt;
     &amp;lt;dependency&amp;gt;
     &amp;lt;groupId&amp;gt;org.springframework.data&amp;lt;/groupId&amp;gt;
     &amp;lt;artifactId&amp;gt;spring-data-jpa&amp;lt;/artifactId&amp;gt;
     &amp;lt;version&amp;gt;1.2.0.RELEASE&amp;lt;/version&amp;gt;
    &amp;lt;/dependency&amp;gt;
    &amp;lt;dependency&amp;gt;
      &amp;lt;groupId&amp;gt;com.vmware&amp;lt;/groupId&amp;gt;
      &amp;lt;artifactId&amp;gt;sqlf-client&amp;lt;/artifactId&amp;gt;
      &amp;lt;version&amp;gt;1.0.3&amp;lt;/version&amp;gt;
      &amp;lt;scope&amp;gt;system&amp;lt;/scope&amp;gt;
      &amp;lt;systemPath&amp;gt;/Users/papicella/sqlfire/vFabric_SQLFire_103/lib/sqlfireclient.jar&amp;lt;/systemPath&amp;gt;
    &amp;lt;/dependency&amp;gt;
    &amp;lt;dependency&amp;gt;
      &amp;lt;groupId&amp;gt;com.vmware&amp;lt;/groupId&amp;gt;
      &amp;lt;artifactId&amp;gt;sqlf-dialect&amp;lt;/artifactId&amp;gt;
      &amp;lt;version&amp;gt;1.0.3&amp;lt;/version&amp;gt;
      &amp;lt;scope&amp;gt;system&amp;lt;/scope&amp;gt;
      &amp;lt;systemPath&amp;gt;/Users/papicella/sqlfire/vFabric_SQLFire_103/lib/sqlfHibernateDialect.jar&amp;lt;/systemPath&amp;gt;
    &amp;lt;/dependency&amp;gt;
  &amp;lt;/dependencies&amp;gt;   
    
&amp;lt;/project&amp;gt;&lt;/pre&gt; 
1. Create a persistence.xml file in META-INF as shown below.&lt;br /&gt;
&lt;br /&gt;
persistence.xml&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;  
&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;
&amp;lt;persistence xmlns="http://java.sun.com/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
             version="1.0"&amp;gt;

 &amp;lt;persistence-unit name="application" transaction-type="RESOURCE_LOCAL"&amp;gt;
     &amp;lt;mapping-file&amp;gt;META-INF/persistence-query.xml&amp;lt;/mapping-file&amp;gt;
        &amp;lt;class&amp;gt;pas.au.spring.hibernate.sqlfire.model.Dept&amp;lt;/class&amp;gt;
        &amp;lt;class&amp;gt;pas.au.spring.hibernate.sqlfire.model.Emp&amp;lt;/class&amp;gt;
  &amp;lt;exclude-unlisted-classes&amp;gt;true&amp;lt;/exclude-unlisted-classes&amp;gt;
 &amp;lt;/persistence-unit&amp;gt;

&amp;lt;/persistence&amp;gt; 
&lt;/pre&gt;
&lt;br /&gt;
2. Optionally created named queries in it's own XML. I prefer to do this then add annotations as this gives you the ability to tweak the queries without altering the code.&lt;br /&gt;
&lt;br /&gt;
persistence-query.xml&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;  
&amp;lt;?xml version="1.0" encoding="UTF-8" ?&amp;gt;
 
&amp;lt;entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"
        version="1.0"&amp;gt;

    &amp;lt;named-query name="Dept.findByDeptnoNamedQuery"&amp;gt;
        &amp;lt;query&amp;gt;
            from Dept
            where deptno = ?1
        &amp;lt;/query&amp;gt;
    &amp;lt;/named-query&amp;gt;
        
&amp;lt;/entity-mappings&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;
3. Create the Dept and Emp domain model classes as shown below. These are referenced in persistence.xml above.&lt;br /&gt;
&lt;br /&gt;
Dept.java&lt;br /&gt;
&lt;pre class="java" name="code"&gt;  
package pas.au.spring.hibernate.sqlfire.model;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;

@Entity
public class Dept 
{
 @Id
 @GeneratedValue (strategy=GenerationType.IDENTITY)
 @Column(name="deptno")
 private Long deptno;
 
 @Column(length = 20, unique = true)
 private String dname;
 
 private String loc;

    @OneToMany(mappedBy = "dept", fetch = FetchType.EAGER)
    private List&amp;lt;Emp&amp;gt; empList;

 public Dept()
 { 
 }
 
 public Dept(Long deptno, String dname, String loc) 
 {
  super();
  this.deptno = deptno;
  this.dname = dname;
  this.loc = loc;
 }

 public Long getDeptno() {
  return deptno;
 }

 public void setDeptno(Long deptno) {
  this.deptno = deptno;
 }

 public String getDname() {
  return dname;
 }

 public void setDname(String dname) {
  this.dname = dname;
 }

 public String getLoc() {
  return loc;
 }

 public void setLoc(String loc) {
  this.loc = loc;
 }

 
    public List&amp;lt;Emp&amp;gt; getEmpList() {
  return empList;
 }

 public void setEmpList(List&amp;lt;Emp&amp;gt; empList) {
  this.empList = empList;
 }

 public Emp addEmp(Emp emp) {
        getEmpList().add(emp);
        emp.setDept(this);
        return emp;
    }

    public Emp removeEmp(Emp emp) {
        getEmpList().remove(emp);
        emp.setDept(null);
        return emp;
    }

 @Override
 public String toString() {
  return "Dept [deptno=" + deptno + ", dname=" + dname + ", loc=" + loc
    + "]";
 }
 
} 
&lt;/pre&gt;
Emp.java&lt;br /&gt;
&lt;pre class="java" name="code"&gt;  
package pas.au.spring.hibernate.sqlfire.model;

import java.sql.Timestamp;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

@Entity
public class Emp 
{
 @Id
 @GeneratedValue (strategy=GenerationType.IDENTITY)
 @Column(name="empno")
 private Long empno;
 
 @Column(length = 20)
 private String ename;

 private Timestamp hiredate;
    private String job;
    private Long mgr;
    private Double sal;
    @ManyToOne
    @JoinColumn(name = "DEPTNO")
    private Dept dept;
    
    public Emp()
    {
    }

 public Emp(Long empno, String ename, String job, Long mgr, Double sal, Timestamp hiredate, Dept dept) {
  super();
  this.empno = empno;
  this.ename = ename;
  this.job = job;
  this.mgr = mgr;
  this.sal = sal;
  this.hiredate = hiredate;
  this.dept = dept;
 }

 public Long getEmpno() {
  return empno;
 }

 public void setEmpno(Long empno) {
  this.empno = empno;
 }

 public String getEname() {
  return ename;
 }

 public void setEname(String ename) {
  this.ename = ename;
 }

 public String getJob() {
  return job;
 }

 public void setJob(String job) {
  this.job = job;
 }

 public Long getMgr() {
  return mgr;
 }

 public void setMgr(Long mgr) {
  this.mgr = mgr;
 }

 public Double getSal() {
  return sal;
 }

 public void setSal(Double sal) {
  this.sal = sal;
 }

 public Dept getDept() {
  return dept;
 }

 public void setDept(Dept dept) {
  this.dept = dept;
 }

 public Timestamp getHiredate() {
  return hiredate;
 }

 public void setHiredate(Timestamp hiredate) {
  this.hiredate = hiredate;
 }

 @Override
 public String toString() {
  return "Emp [empno=" + empno + ", ename=" + ename + ", hiredate="
    + hiredate + ", job=" + job + ", mgr=" + mgr + ", sal=" + sal
    + ", dept=" + dept + "]";
 }
 
} 
&lt;/pre&gt;
4. Create a spring XML file in the META-INF/spring directory named "&lt;b&gt;applicationContext-persistence.xml&lt;/b&gt;"&lt;br /&gt;
&lt;br /&gt;
applicationContext-persistence.xml &lt;br /&gt;
&lt;pre class="xml" name="code"&gt;  
&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;

&amp;lt;beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:tx="http://www.springframework.org/schema/tx"
 xmlns:repository="http://www.springframework.org/schema/data/repository"
 xmlns:jpa="http://www.springframework.org/schema/data/jpa"
 xsi:schemaLocation="http://www.springframework.org/schema/data/repository http://www.springframework.org/schema/data/repository/spring-repository-1.4.xsd
  http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.2.xsd
  http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"&amp;gt;
 
    &amp;lt;bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"&amp;gt;
        &amp;lt;property name="jpaDialect"&amp;gt;
            &amp;lt;bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" /&amp;gt;
        &amp;lt;/property&amp;gt;
        &amp;lt;property name="jpaVendorAdapter"&amp;gt;
            &amp;lt;bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" /&amp;gt;
        &amp;lt;/property&amp;gt;
        &amp;lt;property name="persistenceUnitName" value="application" /&amp;gt;
        &amp;lt;property name="persistenceUnitManager"&amp;gt;
            &amp;lt;bean class="org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager" /&amp;gt;
        &amp;lt;/property&amp;gt;
        &amp;lt;property name="jpaProperties"&amp;gt;
            &amp;lt;props&amp;gt;
                &amp;lt;prop key="hibernate.dialect"&amp;gt;com.vmware.sqlfire.hibernate.SQLFireDialect&amp;lt;/prop&amp;gt;
                &amp;lt;prop key="hibernate.show_sql"&amp;gt;true&amp;lt;/prop&amp;gt;
    &amp;lt;prop key="hibernate.format_sql"&amp;gt;true&amp;lt;/prop&amp;gt;
                &amp;lt;prop key="hibernate.connection.driver_class"&amp;gt;com.vmware.sqlfire.jdbc.ClientDriver&amp;lt;/prop&amp;gt;
                &amp;lt;prop key="hibernate.connection.url"&amp;gt;jdbc:sqlfire://localhost:1527&amp;lt;/prop&amp;gt;
                &amp;lt;prop key="hibernate.connection.username"&amp;gt;APP&amp;lt;/prop&amp;gt;
                &amp;lt;prop key="hibernate.connection.password"&amp;gt;APP&amp;lt;/prop&amp;gt;
            &amp;lt;/props&amp;gt;
        &amp;lt;/property&amp;gt;
        &amp;lt;property name="packagesToScan" value="pas.au.spring.hibernate.sqlfire.repository" /&amp;gt;
    &amp;lt;/bean&amp;gt;
 
    &amp;lt;bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"&amp;gt;
        &amp;lt;property name="entityManagerFactory" ref="entityManagerFactory" /&amp;gt;
    &amp;lt;/bean&amp;gt;
 
    &amp;lt;tx:annotation-driven/&amp;gt;

 
 &amp;lt;!-- CRUD JPA Repositories Here loaded by default  --&amp;gt;
 &amp;lt;jpa:repositories base-package="pas.au.spring.hibernate.sqlfire.repository" /&amp;gt;
 
&amp;lt;/beans&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;
5. Create a JPA CRUD repository as shown below. This will automatically be picked up by spring JPA repository component scanner as defined in "&lt;b&gt;applicationContext-persistence.xml&lt;/b&gt;" above.&lt;br /&gt;
&lt;br /&gt;
JPADeptRepository.java&lt;br /&gt;
&lt;pre class="java" name="code"&gt;  
package pas.au.spring.hibernate.sqlfire.repository;

import java.util.List;

import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;

import pas.au.spring.hibernate.sqlfire.model.Dept;

/*
 * Define a repository with all CRUD methods written for you
 */
public interface JPADeptRepository extends CrudRepository&amp;lt;Dept, Long&amp;gt;
{
 /*
  * Method which will invoke the JPQL required for a find by the attribute name
  */
 public Dept findByDeptno (Long deptno);
 
 /* 
  * Shows how to access  a named query using a method name to identify it
  * The method name must match the defined query name
  * 
  */
 public Dept findByDeptnoNamedQuery (Long deptno);

 /*
  * Method that allows us to supply a JPQL query to execute for the method
  */
 @Query("SELECT d FROM Dept d WHERE d.dname LIKE '%'")
    public List&amp;lt;Dept&amp;gt; findDeptsWithCustomJPQLQuery();

 /*
  * Method that allows us to supply a JPQL query to execute for the method with a parameter
  */
 @Query("SELECT d FROM Dept d WHERE d.loc = ?1")
    public Dept findDeptWithCustomJPQLQueryWithParam(String loc);
 
 @Query("SELECT d FROM Dept d WHERE d.deptno = ?1")
 public Dept findEmpsInDeptno (Long deptno);
 
 @Query(value = "SELECT * FROM DEPT where deptno = ?1", nativeQuery = true)
 public Dept findDeptByNativeQuery(Long deptno);
 
 @Query(value = "SELECT d, e FROM Dept d, Emp e where e.dept = d and d.deptno = ?1")
 public List&amp;lt;Object[]&amp;gt; findWithJoin(Long deptno);

} 
&lt;/pre&gt;
&lt;br /&gt;
6. Finally create a test class to verify the repository. It's assumed you have SQLFire running and the DEPT/EMP table already exist. You can use this previous blog entry to get that setup.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://theblasfrompas.blogspot.com.au/2011/12/sqlfire-in-few-minutes.html"&gt;http://theblasfrompas.blogspot.com.au/2011/12/sqlfire-in-few-minutes.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
JPAReposDeptTest.java&lt;br /&gt;
&lt;pre class="java" name="code"&gt;  
package pas.au.spring.hibernate.sqlfire.test.repository;

import static org.junit.Assert.*;
import java.util.List;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import pas.au.spring.hibernate.sqlfire.repository.JPADeptRepository;
import pas.au.spring.hibernate.sqlfire.model.Dept;
import pas.au.spring.hibernate.sqlfire.model.Emp;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:META-INF/spring/applicationContext-persistence.xml")
public class JPAReposDeptTest 
{
 @Autowired
 JPADeptRepository deptRespository;
 
 @Test
 public void invokeFindAll() 
 {
  List&amp;lt;Dept&amp;gt; deps = (List&amp;lt;Dept&amp;gt;) deptRespository.findAll();
  
  System.out.println("deps size = " + deps.size());
  assertNotNull(deps);
 }

 @Test
 public void invokeFindOne() 
 {
  Dept dept = deptRespository.findOne(new Long(20));
  
  System.out.println(dept);
  assertNotNull(dept);
  assertEquals(new Long(20), dept.getDeptno());
 }
 
 @Test
 public void invokeFindByDeptno() 
 {
  Dept dept = deptRespository.findByDeptno(new Long(10));
  
  System.out.println(dept);
  assertNotNull(dept);
  assertEquals(new Long(10), dept.getDeptno());
 }

 @Test
 public void invokeNamedQuery() 
 {
  Dept dept = deptRespository.findByDeptnoNamedQuery(new Long(30));
  
  System.out.println(dept);
  assertNotNull(dept);
  assertEquals(new Long(30), dept.getDeptno());
 }

 @Test
 public void invokefindDeptsWithCustomJPQLQuery() 
 {
  List&amp;lt;Dept&amp;gt; deps = (List&amp;lt;Dept&amp;gt;) deptRespository.findDeptsWithCustomJPQLQuery();
  
  System.out.println("deps size = " + deps.size());
  assertNotNull(deps);
 }

 @Test
 public void invokefindDeptsWithCustomJPQLQueryWithParam() 
 {
  Dept dept = deptRespository.findDeptWithCustomJPQLQueryWithParam("CHICAGO");
  
  System.out.println(dept);
  assertNotNull(dept);
  assertEquals(new Long(30), dept.getDeptno());
 }

 @Test
 public void invokefindEmpInDeptno() 
 {
  Dept dept = deptRespository.findEmpsInDeptno(new Long(20));
  
  System.out.println(dept);
  assertNotNull(dept);
  
  List&amp;lt;Emp&amp;gt; emps = dept.getEmpList();
  for (Emp e: emps)
  {
   System.out.println(e);
  }
  
  assertEquals(5, emps.size());
 }
 
 @Test
 public void invokeFindDeptByNativeQuery()
 {
  Dept dept = deptRespository.findDeptByNativeQuery(new Long(40));
  
  System.out.println(dept);
  assertNotNull(dept);
  assertEquals(new Long(40), dept.getDeptno());  
 }
 
 @Test
 public void invokeFindWithJoin()
 {
  List&amp;lt;Object[]&amp;gt; results = deptRespository.findWithJoin(new Long(10));
  
  System.out.println("Size of results = " + results.size());
  assertEquals(3, results.size());
  
  for (Object[] result: results)
  {
   System.out.println("Dept: " + result[0] + ", Emp: " + result[1]);
  }
  
 }
}
&lt;/pre&gt;
&lt;br /&gt;
7. Run the test class above.&lt;br /&gt;
&lt;br /&gt;
Verify output as shown below.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-YTGEuUhIklY/UNGSnvgfUnI/AAAAAAAAANg/OyPtwXEO7oA/s1600/img2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="129" src="http://2.bp.blogspot.com/-YTGEuUhIklY/UNGSnvgfUnI/AAAAAAAAANg/OyPtwXEO7oA/s320/img2.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Dec 19, 2012 9:11:41 PM org.hibernate.engine.transaction.internal.TransactionFactoryInitiator initiateService&lt;br /&gt;INFO: HHH000268: Transaction strategy: org.hibernate.engine.transaction.internal.jdbc.JdbcTransactionFactory&lt;br /&gt;Dec 19, 2012 9:11:41 PM org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory &lt;init&gt;&lt;br /&gt;INFO: HHH000397: Using ASTQueryTranslatorFactory&lt;br /&gt;Hibernate: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dept0_.deptno as deptno0_,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dept0_.dname as dname0_,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dept0_.loc as loc0_ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; from&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dept dept0_&lt;br /&gt;Hibernate: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; emplist0_.DEPTNO as DEPTNO0_1_,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; emplist0_.empno as empno1_,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; emplist0_.empno as empno1_0_,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; emplist0_.DEPTNO as DEPTNO1_0_,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; emplist0_.ename as ename1_0_,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; emplist0_.hiredate as hiredate1_0_,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; emplist0_.job as job1_0_,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; emplist0_.mgr as mgr1_0_,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; emplist0_.sal as sal1_0_ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; from&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Emp emplist0_ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; where&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; emplist0_.DEPTNO=?&lt;/init&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;.......&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Size of results = 3&lt;br /&gt;Dept: Dept [deptno=10, dname=ACCOUNTING, loc=NEW YORK], Emp: Emp [empno=7934, ename=MILLER, hiredate=1982-01-23 00:00:00.0, job=CLERK, mgr=7782, sal=1300.0, dept=Dept [deptno=10, dname=ACCOUNTING, loc=NEW YORK]]&lt;br /&gt;Dept: Dept [deptno=10, dname=ACCOUNTING, loc=NEW YORK], Emp: Emp [empno=7782, ename=CLARK, hiredate=1981-06-09 00:00:00.0, job=MANAGER, mgr=7839, sal=2450.0, dept=Dept [deptno=10, dname=ACCOUNTING, loc=NEW YORK]]&lt;br /&gt;Dept: Dept [deptno=10, dname=ACCOUNTING, loc=NEW YORK], Emp: Emp [empno=7839, ename=KING, hiredate=1981-11-17 00:00:00.0, job=PRESIDENT, mgr=null, sal=5000.0, dept=Dept [deptno=10, dname=ACCOUNTING, loc=NEW YORK]]&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
More Information on Spring data JPA and SQLFire Hibernate Dialect can be can be found here.&lt;br /&gt;
&lt;br /&gt;
Spring Data JPA&lt;br /&gt;
&lt;a href="http://www.springsource.org/spring-data/jpa"&gt;http://www.springsource.org/spring-data/jpa&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
vFabric SQLFire Hibernate Dialect&lt;br /&gt;
&lt;a href="http://communities.vmware.com/docs/DOC-20294"&gt;http://communities.vmware.com/docs/DOC-20294&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/QTszHkbnLq0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/3243958830838243736/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=3243958830838243736" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/3243958830838243736?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/3243958830838243736?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/QTszHkbnLq0/spring-data-jpa-with-sqlfire.html" title="Spring Data JPA Repository with vFabric SQLFire" /><author><name>Pas Apicella</name><uri>http://www.blogger.com/profile/09389663166398991762</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="15" src="http://wiki.r31skylineclub.com/images/thumb/d/d4/Gts2-side.jpg/100px-Gts2-side.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-VXaTYHQrbX8/UNGOQ4Kq-EI/AAAAAAAAANQ/5gYjvSMcwbk/s72-c/img1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2012/12/spring-data-jpa-with-sqlfire.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUAQXczfip7ImA9WhNXGEk.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-4833757010212269917</id><published>2012-12-07T13:44:00.000+11:00</published><updated>2012-12-07T13:44:00.986+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-12-07T13:44:00.986+11:00</app:edited><title>GemFire 70 - Gemcached client adapter for Memcache</title><content type="html">As part of GemFire 70 Gemcached is a vFabric GemFire adapter that allows memcached
  clients to communicate with a GemFire server cluster, as if the servers were
  memcached servers. Memcached is an open-source caching solution that uses a
  distributed, in-memory hash map to store key-value pairs of string or object
  data.&lt;br /&gt;
&lt;br /&gt;
In this example below we are using the following&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.vmware.com/products/application-platform/vfabric-gemfire/overview.html"&gt;GemFire 70&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://code.google.com/p/spymemcached/"&gt;SpyMemcache JAVA API&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
1. Start a GemFire 70 cluster as shown below. We are ommitting the files required here but this shows what is required to ensure Memcache clients can connect to GemFire. Simple unix script below.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;gfsh &amp;lt;&amp;lt;!&lt;br /&gt;start locator --name=locator1 --properties-file=gemfire.properties --bind-address=localhost --port=10334 --dir=locator;&lt;br /&gt;start server --name=server1 &lt;b&gt;--memcached-port=11211 --memcached-protocol=BINARY&lt;/b&gt; --properties-file=gemfire.properties --locators=localhost[10334] --dir=server1&lt;br /&gt;start server --name=server2 &lt;b&gt;--memcached-port=11212 --memcached-protocol=BINARY&lt;/b&gt; --properties-file=gemfire.properties --locators=localhost[10334] --dir=server2&lt;br /&gt;list members;&lt;br /&gt;list regions;&lt;br /&gt;exit;&lt;br /&gt;!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;
2. Verify we have Memcache ports established and running&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;[Fri Dec 07 13:10:48 papicella@:~/gf7/gemcache ] $ ./memcache-status.sh &lt;br /&gt;tcp4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 10.117.85.71.11212&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *.*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LISTEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;tcp4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp; 10.117.85.71.11211&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *.*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LISTEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;udp4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp; *.62112&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *.*&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
3. Create a java client as follows which connects to the Gemcached servers we have in our cluster&lt;br /&gt;
&lt;pre class="java" name="code"&gt;  
package vmware.au.gemfire.demos.gemcached;

import net.spy.memcached.AddrUtil;
import net.spy.memcached.BinaryConnectionFactory;
import net.spy.memcached.MemcachedClient;

public class GemcacheClient 
{

 private MemcachedClient c = null;
 
 public GemcacheClient() throws Exception
 {
  c = new MemcachedClient(new BinaryConnectionFactory(),
          AddrUtil.getAddresses("10.117.85.71:11212 10.117.85.71:11212"));  
 }
 
 public void run()
 {

  for (int i = 1; i &amp;lt;= 20; i++)
  {
   c.set(String.valueOf(i), 0, "Customer" + i);
  }
  
  System.out.println("added 20 entries \n");
  
  String value =  (String) c.get("5");
  
  System.out.println("Value with key [5] = " + value);
  
  c.shutdown();  
 }
 
 /**
  * @param args
  * @throws Exception 
  */
 public static void main(String[] args) throws Exception 
 {
  GemcacheClient test = new GemcacheClient();
  test.run();
  System.out.println("all done..");
 }

}
&lt;/pre&gt;
&lt;br /&gt;
4. Run it and verify output as shown below. Ensure you alter the connect address correctly.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;2012-12-07 13:25:05.577 INFO net.spy.memcached.MemcachedConnection:&amp;nbsp; Added {QA sa=/10.117.85.71:11212, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue&lt;br /&gt;2012-12-07 13:25:05.578 INFO net.spy.memcached.MemcachedConnection:&amp;nbsp; Added {QA sa=/10.117.85.71:11212, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue&lt;br /&gt;2012-12-07 13:25:05.582 INFO net.spy.memcached.MemcachedConnection:&amp;nbsp; Connection state changed for sun.nio.ch.SelectionKeyImpl@52cc95d&lt;br /&gt;2012-12-07 13:25:05.584 INFO net.spy.memcached.MemcachedConnection:&amp;nbsp; Connection state changed for sun.nio.ch.SelectionKeyImpl@4393722c&lt;br /&gt;added 20 entries &lt;br /&gt;&lt;br /&gt;Value with key [5] = Customer5&lt;br /&gt;2012-12-07 13:25:05.942 INFO net.spy.memcached.MemcachedConnection:&amp;nbsp; Shut down memcached client&lt;br /&gt;all done..&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
5. Now in GFSH verify we have a region called "&lt;b&gt;gemcached&lt;/b&gt;" and it now has data.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="sql" name="code"&gt;  
[Fri Dec 07 13:40:27 papicella@:~/gf7/gemcache ] $ gfsh
WARNING: JDK/lib/tools.jar is required for some GFSH commands. Please set JAVA_HOME to point to the JDK directory. Currently using JRE.
    _________________________     __
   / _____/ ______/ ______/ /____/ /
  / /  __/ /___  /_____  / _____  / 
 / /__/ / ____/  _____/ / /    / /  
/______/_/      /______/_/    /_/    v7.0

Monitor and Manage GemFire
gfsh&amp;gt;connect --locator=localhost[10334];
Connecting to Locator at [host=localhost, port=10334] ..
Connecting to Manager at [host=Pas-Apicellas-MacBook-Pro.local, port=1099] ..
Successfully connected to: [host=Pas-Apicellas-MacBook-Pro.local, port=1099]

gfsh&amp;gt;list regions;
List of regions
---------------
gemcached
test

gfsh&amp;gt;query --query="select count(*) from /gemcached";

Result     : true
startCount : 0
endCount   : 20
Rows       : 1

Result
------
20

NEXT_STEP_NAME : END 
&lt;/pre&gt;
&lt;br /&gt;
More information can be found in the documentation below.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://pubs.vmware.com/vfabricNoSuite/index.jsp?topic=/com.vmware.vfabric.gemfire.7.0/tools_modules/gemcached/deploying_gemcached.html"&gt;http://pubs.vmware.com/vfabricNoSuite/index.jsp?topic=/com.vmware.vfabric.gemfire.7.0/tools_modules/gemcached/deploying_gemcached.html &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/0EZPBthn7FU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/4833757010212269917/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=4833757010212269917" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/4833757010212269917?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/4833757010212269917?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/0EZPBthn7FU/gemfire-70-gemcached-client-adapter-for.html" title="GemFire 70 - Gemcached client adapter for Memcache" /><author><name>Pas Apicella</name><uri>http://www.blogger.com/profile/09389663166398991762</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="15" src="http://wiki.r31skylineclub.com/images/thumb/d/d4/Gts2-side.jpg/100px-Gts2-side.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2012/12/gemfire-70-gemcached-client-adapter-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0AGRXw8fSp7ImA9WhNXEUs.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-6300484001138503863</id><published>2012-11-29T15:02:00.000+11:00</published><updated>2012-11-29T15:02:04.275+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-11-29T15:02:04.275+11:00</app:edited><title>GemFire 70 and Parallel WAN and Simplified WAN Configuration</title><content type="html">With the introduction of GemFire 70 the WAN replication has been simplified. IN fact the simplest setup is as shown below.&lt;br /&gt;
&lt;br /&gt;
1. A cache sever started with a cache.xml as follows which defines a single sender and a receiver&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;  
&amp;lt;?xml version="1.0"?&amp;gt;
&amp;lt;!DOCTYPE cache PUBLIC
    "-//GemStone Systems, Inc.//GemFire Declarative Caching 7.0//EN"
    "http://www.gemstone.com/dtd/cache7_0.dtd"&amp;gt;

&amp;lt;cache&amp;gt;
    &amp;lt;gateway-sender id="sender1" parallel="true" remote-distributed-system-id="2" dispatcher-threads="2" order-policy="partition"/&amp;gt;
    &amp;lt;gateway-receiver start-port="1530" end-port="1551"/&amp;gt;
    &amp;lt;cache-server port="40001"/&amp;gt;
    &amp;lt;region name="wantest"&amp;gt;
        &amp;lt;region-attributes refid="PARTITION" gateway-sender-ids="sender1"/&amp;gt;
    &amp;lt;/region&amp;gt;
&amp;lt;/cache&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;
2. Some commands in GFSH to verify the gateway senders/recievers&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;  
Cluster-1 gfsh&amp;gt;list gateways
Gateways


GatewaySender

GatewaySender Id |                       Member                       | Remote Cluster Id |   Type   | Status  | Queued Events | Receiver Location
---------------- | -------------------------------------------------- | ----------------- | -------- | ------- | ------------- | -----------------
sender1          | Pas-Apicellas-MacBook-Pro(server1:22361)&amp;lt;v1&amp;gt;:10766 | 2                 | Parallel | Running | 0             | null
sender1          | Pas-Apicellas-MacBook-Pro(server2:22362)&amp;lt;v2&amp;gt;:25822 | 2                 | Parallel | Running | 0             | null


GatewayReceiver

                      Member                       | Port | Sender Count | Sender's Connected
-------------------------------------------------- | ---- | ------------ | ------------------------------------------------------
Pas-Apicellas-MacBook-Pro(server1:22361)&amp;lt;v1&amp;gt;:10766 | 1541 | 2            | ["Pas-Apicellas-MacBook-Pro(server1:22385)&amp;lt;v1&amp;gt;:55223"]
Pas-Apicellas-MacBook-Pro(server2:22362)&amp;lt;v2&amp;gt;:25822 | 1537 | 2            | ["Pas-Apicellas-MacBook-Pro(server2:22386)&amp;lt;v2&amp;gt;:11991"]

Cluster-1 gfsh&amp;gt;status gateway-sender --id=sender1

                      Member                       |   Type   | Status
-------------------------------------------------- | -------- | -------
Pas-Apicellas-MacBook-Pro(server1:22361)&amp;lt;v1&amp;gt;:10766 | Parallel | Running
Pas-Apicellas-MacBook-Pro(server2:22362)&amp;lt;v2&amp;gt;:25822 | Parallel | Running 
&lt;/pre&gt;
&lt;br /&gt;
More information on this can be found at the following link&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://pubs.vmware.com/vfabricNoSuite/index.jsp?topic=/com.vmware.vfabric.gemfire.7.0/topologies_and_comm/multi_site_configuration/setting_up_a_multisite_system.html"&gt;http://pubs.vmware.com/vfabricNoSuite/index.jsp?topic=/com.vmware.vfabric.gemfire.7.0/topologies_and_comm/multi_site_configuration/setting_up_a_multisite_system.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/x7OzyzPR-LM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/6300484001138503863/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=6300484001138503863" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/6300484001138503863?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/6300484001138503863?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/x7OzyzPR-LM/gemfire-70-and-parallel-wan-and.html" title="GemFire 70 and Parallel WAN and Simplified WAN Configuration" /><author><name>Pas Apicella</name><uri>http://www.blogger.com/profile/09389663166398991762</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="15" src="http://wiki.r31skylineclub.com/images/thumb/d/d4/Gts2-side.jpg/100px-Gts2-side.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2012/11/gemfire-70-and-parallel-wan-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4HQ3kzcCp7ImA9WhNQFUs.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-6180744669074014878</id><published>2012-11-22T16:41:00.000+11:00</published><updated>2012-11-22T16:42:12.788+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-11-22T16:42:12.788+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="GemF" /><category scheme="http://www.blogger.com/atom/ns#" term="VFabric" /><category scheme="http://www.blogger.com/atom/ns#" term="spring data" /><title>Spring data repository for GemFire 7</title><content type="html">The example below shows the various config and code required to use Spring Data Repository with GemFire7. It is assumed we have a GemFire distributed system up and running with some department and employee data. For this example we will connect as a client proxy where all requests go to the server side for processing.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;client.xml&lt;/b&gt; - client cache file for access to the remote servers&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;  
&amp;lt;!DOCTYPE client-cache PUBLIC 
"-//GemStone Systems, Inc.//GemFire Declarative Caching 7//EN" 
"http://www.gemstone.com/dtd/cache7_0.dtd"&amp;gt;
&amp;lt;client-cache&amp;gt;	
	&amp;lt;!-- No cache storage in the client region because of the PROXY client region shortcut setting. --&amp;gt;

    &amp;lt;region name="departments"&amp;gt;
      &amp;lt;region-attributes refid="PROXY" pool-name="gfPool"/&amp;gt;
    &amp;lt;/region&amp;gt;   
		
    &amp;lt;region name="employees"&amp;gt;
		&amp;lt;region-attributes refid="PROXY" pool-name="gfPool" /&amp;gt;
    &amp;lt;/region&amp;gt;
&amp;lt;/client-cache&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;application-context.xml&lt;/b&gt; - spring application context file using spring gemfire. It's here where we make a connection to GemFire through a locator to load balance between the servers.&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;  
&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;
&amp;lt;beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:gfe="http://www.springframework.org/schema/gemfire"
	xmlns:gfe-data="http://www.springframework.org/schema/data/gemfire"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
		http://www.springframework.org/schema/gemfire http://www.springframework.org/schema/gemfire/spring-gemfire-1.2.xsd
		http://www.springframework.org/schema/data/gemfire http://www.springframework.org/schema/data/gemfire/spring-data-gemfire-1.2.xsd"&amp;gt;
		
	&amp;lt;gfe:client-cache id="client-cache" cache-xml-location="classpath:client.xml" pool-name="gfPool"/&amp;gt;
	
	&amp;lt;gfe:pool id="gfPool" max-connections="10"&amp;gt;
		&amp;lt;gfe:locator host="localhost" port="10334"/&amp;gt;
	&amp;lt;/gfe:pool&amp;gt;
	
	&amp;lt;gfe:lookup-region id="departments" name="departments" cache-ref="client-cache"/&amp;gt;
   	&amp;lt;gfe:lookup-region id="employees" name="employees" cache-ref="client-cache"/&amp;gt;

	&amp;lt;gfe-data:repositories base-package="vmware.au.se.gf7.deptemp.repos"  /&amp;gt;
   
&amp;lt;/beans&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;Department.java&lt;/b&gt; - domain object with spring data repository annotation referencing "departments" region in gemFire&lt;br /&gt;
&lt;pre class="java" name="code"&gt;  
package vmware.au.se.gf7.deptemp.beans;

import java.io.Serializable;
import java.util.Properties;

import org.springframework.data.annotation.Id;
import org.springframework.data.gemfire.mapping.Region;

import com.gemstone.gemfire.cache.Declarable;

@Region("departments")
public class Department implements Declarable, Serializable
{

	private static final long serialVersionUID = -9097335119586059309L;

	@Id
	private int deptno;
	private String name;
	
	public void init(Properties props) 
	{
		// TODO Auto-generated method stub
		this.deptno = Integer.parseInt(props.getProperty("deptno"));
		this.name = props.getProperty("name");
	}

	public int getDeptno() {
		return deptno;
	}

	public void setDeptno(int deptno) {
		this.deptno = deptno;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	@Override
	public String toString() {
		return "Department [deptno=" + deptno + ", name=" + name + "]";
	}
  
}
&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;Employee.java&lt;/b&gt; - domain object with spring data repository annotation referencing "employees" region in GemFire&lt;br /&gt;
&lt;pre class="java" name="code"&gt;  
package vmware.au.se.gf7.deptemp.beans;

import java.io.Serializable;
import java.util.Properties;

import org.springframework.data.annotation.Id;
import org.springframework.data.gemfire.mapping.Region;

import com.gemstone.gemfire.cache.Declarable;

@Region("employees")
public class Employee implements Declarable, Serializable
{

	private static final long serialVersionUID = -8229531542107983344L;
	
	@Id
	private int empno;
	private String name;
	private String job;
	private int deptno;

	public void init(Properties props) 
	{
		// TODO Auto-generated method stub
		this.empno = Integer.parseInt(props.getProperty("empno"));
		this.name = props.getProperty("name");
		this.job = props.getProperty("job");
		this.deptno = Integer.parseInt(props.getProperty("deptno"));
		
	}

	public int getEmpno() {
		return empno;
	}

	public void setEmpno(int empno) {
		this.empno = empno;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getJob() {
		return job;
	}

	public void setJob(String job) {
		this.job = job;
	}

	public int getDeptno() {
		return deptno;
	}

	public void setDeptno(int deptno) {
		this.deptno = deptno;
	}

	@Override
	public String toString() {
		return "Employee [empno=" + empno + ", name=" + name + ", job=" + job
				+ ", deptno=" + deptno + "]";
	}
	
	
	
} 
&lt;/pre&gt;
&lt;br /&gt;
At this point we create two repositories as shown below.&lt;br /&gt;
&lt;br /&gt;
DeptRepository.java&lt;br /&gt;
&lt;pre class="java" name="code"&gt;  
package vmware.au.se.gf7.deptemp.repos;

import java.util.Collection;

import org.springframework.data.gemfire.repository.Query;
import org.springframework.data.repository.CrudRepository;
import vmware.au.se.gf7.deptemp.beans.Department;

public interface DeptRepository extends CrudRepository&amp;lt;Department, String&amp;gt; 
{
	Department findByName(String name);
	
	@Query("SELECT * FROM /departments")
	Collection&amp;lt;Department&amp;gt; myFindAll();
} 
&lt;/pre&gt;
&lt;br /&gt;
EmpRepository.java&lt;br /&gt;
&lt;pre class="java" name="code"&gt;  
package vmware.au.se.gf7.deptemp.repos;

import java.util.Collection;

import org.springframework.data.gemfire.repository.Query;
import org.springframework.data.repository.CrudRepository;

import vmware.au.se.gf7.deptemp.beans.Employee;

public interface EmpRepository extends CrudRepository&amp;lt;Employee, String&amp;gt;
{
	@Query("SELECT * FROM /employees where deptno = $1")
	Collection&amp;lt;Employee&amp;gt; empsInDeptno(int deptno);
	
	@Query("SELECT * FROM /employees")
	Collection&amp;lt;Employee&amp;gt; myFindAll();
}
&lt;/pre&gt;
&lt;br /&gt;
Finally we have a Test client as follows.&lt;br /&gt;
&lt;pre class="java" name="code"&gt;  
package spring.gemfire.repository.test;

import java.util.Collection;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import vmware.au.se.gf7.deptemp.beans.Department;
import vmware.au.se.gf7.deptemp.beans.Employee;
import vmware.au.se.gf7.deptemp.repos.DeptRepository;
import vmware.au.se.gf7.deptemp.repos.EmpRepository;

public class Test 
{

	private ConfigurableApplicationContext ctx = null;
	
	public Test()
	{
		ctx = new ClassPathXmlApplicationContext("application-context.xml");		
	}
	
	public void run()
	{
		
		DeptRepository deptRepos = (DeptRepository) ctx.getBean(DeptRepository.class);
        
		// get quick size
		System.out.println("** Size of dept repository **");
		System.out.println("Size = " + deptRepos.count());
		
		// call findOne crud method by key
		System.out.println("** calling  deptRepos.findOne(\"20\") **");
		Department dept = (Department) deptRepos.findOne("20");
		System.out.println(dept);

		// call findOne crud method for an attribute
		System.out.println("** calling  deptRepos.findByName(\"ACCOUNTING\") **");
		Department dept2 = (Department) deptRepos.findByName("ACCOUNTING");
		System.out.println(dept2);
		
		// call my own findAll
		Collection&amp;lt;Department&amp;gt; deps = (Collection&amp;lt;Department&amp;gt;) deptRepos.myFindAll(); 
		
		System.out.println("\n** All Departments using -&amp;gt; deptRepos.myFindAll()");
		System.out.println("Defined as : @Query(\"SELECT * FROM /departments\") ");
		System.out.println("Collection&amp;lt;Department&amp;gt; myFindAll(); ** ");
		
		for (Department d: deps)
		{
			System.out.println(d.toString());
		}
		
		EmpRepository empRepos = (EmpRepository) ctx.getBean(EmpRepository.class);

		// get quick size
		System.out.println("** Size of emp repository **");
		System.out.println("Size = " + empRepos.count());
		
		Collection&amp;lt;Employee&amp;gt; emps = empRepos.empsInDeptno(40);
		System.out.println("\n ** All Employees in dept 40 using -&amp;gt; Collection&amp;lt;Employee&amp;gt; empsInDeptno(int deptno) **");
		for (Employee e: emps)
		{
			System.out.println(e.toString());
		}
		
	}
	
	/**
	 * @param args
	 * @throws InterruptedException 
	 */
	public static void main(String[] args) 
	{
		// TODO Auto-generated method stub
		Test t = new Test();
		t.run();
		System.out.println("all done..");
		
	}

}
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
Output is as follows&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;[info 2012/11/22 16:39:03.626 EST &lt;pooltimer-gfpool-2&gt; tid=0xf] AutoConnectionSource discovered new locators [192-168-1-3.tpgi.com.au/192.168.1.3:10334]&lt;br /&gt;&lt;br /&gt;[config 2012/11/22 16:39:03.628 EST &lt;pooltimer-gfpool-3&gt; tid=0x10] Updating membership port.&amp;nbsp; Port changed from 0 to 59,207.&lt;br /&gt;** Size of dept repository **&lt;br /&gt;Size = 4&lt;br /&gt;** calling&amp;nbsp; deptRepos.findOne("20") **&lt;br /&gt;Department [deptno=20, name=RESEARCH]&lt;br /&gt;** calling&amp;nbsp; deptRepos.findByName("ACCOUNTING") **&lt;br /&gt;Department [deptno=10, name=ACCOUNTING]&lt;br /&gt;&lt;br /&gt;** All Departments using -&amp;gt; deptRepos.myFindAll()&lt;br /&gt;Defined as : @Query("SELECT * FROM /departments") &lt;br /&gt;Collection&lt;department&gt; myFindAll(); ** &lt;br /&gt;Department [deptno=30, name=SALES]&lt;br /&gt;Department [deptno=40, name=OPERATIONS]&lt;br /&gt;Department [deptno=10, name=ACCOUNTING]&lt;br /&gt;Department [deptno=20, name=RESEARCH]&lt;br /&gt;** Size of emp repository **&lt;br /&gt;Size = 13&lt;br /&gt;&lt;br /&gt;&amp;nbsp;** All Employees in dept 40 using -&amp;gt; Collection&lt;employee&gt; empsInDeptno(int deptno) **&lt;br /&gt;Employee [empno=7380, name=BLACK, job=CLERK, deptno=40]&lt;br /&gt;Employee [empno=7381, name=BROWN, job=SALESMAN, deptno=40]&lt;br /&gt;Employee [empno=7373, name=SIENA, job=CLERK, deptno=40]&lt;br /&gt;all done..&lt;/employee&gt;&lt;/department&gt;&lt;/pooltimer-gfpool-3&gt;&lt;/pooltimer-gfpool-2&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
For more information see the link below.&lt;br /&gt;
&lt;a href="http://www.blogger.com/goog_167026087"&gt;&lt;br /&gt;&lt;/a&gt;
&lt;a href="http://static.springsource.org/spring-gemfire/docs/current/reference/html/gemfire-repositories.html"&gt;http://static.springsource.org/spring-gemfire/docs/current/reference/html/gemfire-repositories.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/8FJtyJsu3ps" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/6180744669074014878/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=6180744669074014878" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/6180744669074014878?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/6180744669074014878?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/8FJtyJsu3ps/spring-data-repository-for-gemfire-7.html" title="Spring data repository for GemFire 7" /><author><name>Pas Apicella</name><uri>http://www.blogger.com/profile/09389663166398991762</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="15" src="http://wiki.r31skylineclub.com/images/thumb/d/d4/Gts2-side.jpg/100px-Gts2-side.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2012/11/spring-data-repository-for-gemfire-7.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QBQns6eCp7ImA9WhNQE0o.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-4295193828233506041</id><published>2012-11-20T11:29:00.000+11:00</published><updated>2012-11-20T11:29:13.510+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-11-20T11:29:13.510+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="VFabric" /><category scheme="http://www.blogger.com/atom/ns#" term="GemFire" /><title>Management of GemFire 7 using gfsh command line interface</title><content type="html">The GemFire command line interface or '&lt;i&gt;&lt;span class="resultofText" name="resultofMatch"&gt;gfsh&lt;/span&gt;&lt;/i&gt;' (pronounced
  "gee - fish") provides a single interface that allows you to launch, manage and
  monitor vFabric GemFire processes, data and applications.&lt;br /&gt;
&lt;br /&gt;
The GemFire 7.0 version of &lt;span class="resultofText" name="resultofMatch"&gt;gfsh&lt;/span&gt; supports all of the commands that
  existed in the previous version of &lt;span class="resultofText" name="resultofMatch"&gt;gfsh&lt;/span&gt; (released with GemFire 6.6) and also
  now includes functionality that was previously found in the 
  &lt;samp class="codeph"&gt;gemfire&lt;/samp&gt; and 
  &lt;samp class="codeph"&gt;cacheserver&lt;/samp&gt; scripts. 
  &lt;br /&gt;
&lt;div class="p"&gt;
With &lt;span class="resultofText" name="resultofMatch"&gt;gfsh&lt;/span&gt;, you can: 
  &lt;br /&gt;
&lt;a href="http://www.blogger.com/blogger.g?blogID=6527688743456205256" name="concept_36339CCA6323430D8B61EE8DC5F64DCB__ul_3BEEE8704E9342E18BF1BD4BB2465B2E" shape="rect"&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul id="concept_36339CCA6323430D8B61EE8DC5F64DCB__ul_3BEEE8704E9342E18BF1BD4BB2465B2E"&gt;
&lt;li id="concept_36339CCA6323430D8B61EE8DC5F64DCB__li_1AE44AAA045148468375E6D37CA2F410"&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=6527688743456205256" name="concept_36339CCA6323430D8B61EE8DC5F64DCB__li_1AE44AAA045148468375E6D37CA2F410" shape="rect"&gt;&lt;/a&gt;Start and stop GemFire
    processes, such as locators and cache servers 
  &lt;/li&gt;
&lt;li id="concept_36339CCA6323430D8B61EE8DC5F64DCB__li_1879FCAB1B11475FB83CA19C1A5B0DE3"&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=6527688743456205256" name="concept_36339CCA6323430D8B61EE8DC5F64DCB__li_1879FCAB1B11475FB83CA19C1A5B0DE3" shape="rect"&gt;&lt;/a&gt;Start and stop Gateway
    Senders and Gateway Receiver processes 
  &lt;/li&gt;
&lt;li id="concept_36339CCA6323430D8B61EE8DC5F64DCB__li_4DDDBF37960E4BB28F9F2EFD76658363"&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=6527688743456205256" name="concept_36339CCA6323430D8B61EE8DC5F64DCB__li_4DDDBF37960E4BB28F9F2EFD76658363" shape="rect"&gt;&lt;/a&gt;Deploy applications 
  &lt;/li&gt;
&lt;li id="concept_36339CCA6323430D8B61EE8DC5F64DCB__li_38999D8E18804770B5BBCD49C6AFB59B"&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=6527688743456205256" name="concept_36339CCA6323430D8B61EE8DC5F64DCB__li_38999D8E18804770B5BBCD49C6AFB59B" shape="rect"&gt;&lt;/a&gt;Create and destroy regions 
  &lt;/li&gt;
&lt;li id="concept_36339CCA6323430D8B61EE8DC5F64DCB__li_A1306ACFA68244A296690458CF3F3616"&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=6527688743456205256" name="concept_36339CCA6323430D8B61EE8DC5F64DCB__li_A1306ACFA68244A296690458CF3F3616" shape="rect"&gt;&lt;/a&gt;Execute functions 
  &lt;/li&gt;
&lt;li id="concept_36339CCA6323430D8B61EE8DC5F64DCB__li_43377A0ABDDB41388B8CC19DB5A01B29"&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=6527688743456205256" name="concept_36339CCA6323430D8B61EE8DC5F64DCB__li_43377A0ABDDB41388B8CC19DB5A01B29" shape="rect"&gt;&lt;/a&gt;Manage disk stores 
  &lt;/li&gt;
&lt;li id="concept_36339CCA6323430D8B61EE8DC5F64DCB__li_9522265071E5454BB7C04667EFA8651D"&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=6527688743456205256" name="concept_36339CCA6323430D8B61EE8DC5F64DCB__li_9522265071E5454BB7C04667EFA8651D" shape="rect"&gt;&lt;/a&gt;Import and export data 
  &lt;/li&gt;
&lt;li id="concept_36339CCA6323430D8B61EE8DC5F64DCB__li_0915EFA2B3BE4F6D94135A09463B3AD7"&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=6527688743456205256" name="concept_36339CCA6323430D8B61EE8DC5F64DCB__li_0915EFA2B3BE4F6D94135A09463B3AD7" shape="rect"&gt;&lt;/a&gt;Monitor GemFire processes 
  &lt;/li&gt;
&lt;li id="concept_36339CCA6323430D8B61EE8DC5F64DCB__li_E248759473F74E36A8A4311EC2E82813"&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=6527688743456205256" name="concept_36339CCA6323430D8B61EE8DC5F64DCB__li_E248759473F74E36A8A4311EC2E82813" shape="rect"&gt;&lt;/a&gt;Launch GemFire monitoring
    tools&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
Here is a quick example of how it works.&lt;br /&gt;
&lt;br /&gt;
1. Setup your environment to use GemFire 70 as shown below&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;export GEMFIRE=/Users/papicella/gemfire/vFabric_GemFire_70_b38623&lt;br /&gt;&lt;br /&gt;export GF_JAVA=$JAVA_HOME/bin/java&lt;br /&gt;&lt;br /&gt;export PATH=$PATH:$JAVA_HOME/bin:$GEMFIRE/bin&lt;br /&gt;&lt;br /&gt;export CLASSPATH=$GEMFIRE/lib/gemfire.jar:$GEMFIRE/lib/antlr.jar:\&lt;br /&gt;$GEMFIRE/lib/gfsh-dependencies.jar:$GEMFIRE/lib/gfSecurityImpl.jar:\&lt;br /&gt;$GEMFIRE/lib/jackson-core-asl-1.9.9.jar:\&lt;br /&gt;$GEMFIRE/lib/commons-logging.jar:\&lt;br /&gt;$GEMFIRE/lib/tomcat-embed-core.jar:\&lt;br /&gt;$GEMFIRE/lib/tomcat-embed-logging-juli.jar:\&lt;br /&gt;$GEMFIRE/lib/tomcat-embed-jasper.jar:\&lt;br /&gt;$CLASSPATH&lt;br /&gt;&lt;br /&gt;echo ""&lt;br /&gt;echo "CLASSPATH as follows..."&lt;br /&gt;echo ""&lt;br /&gt;&lt;br /&gt;echo $CLASSPATH&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
2. Start gfsh as shown below.&lt;br /&gt;
&lt;pre class="sql" name="code"&gt;  
[Tue Nov 20 11:02:51 papicella@:~/vmware/ant-demos/gemfire/70/Demo ] $ gfsh
WARNING: JDK/lib/tools.jar is required for some GFSH commands. Please set JAVA_HOME to point to the JDK directory. Currently using JRE.
    _________________________     __
   / _____/ ______/ ______/ /____/ /
  / /  __/ /___  /_____  / _____  / 
 / /__/ / ____/  _____/ / /    / /  
/______/_/      /______/_/    /_/    v7.0

Monitor and Manage GemFire
gfsh&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;
3. Start a locator as shown below&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;start locator --name=locator1 --properties-file=gemfire.properties --bind-address=localhost --dir=/Users/papicella/vmware/ant-demos/gemfire/70/Demo/locator &lt;/span&gt;&lt;br /&gt;
&lt;pre class="sql" name="code"&gt;  
gfsh&amp;gt;start locator --name=locator1 --properties-file=gemfire.properties --bind-address=localhost --dir=/Users/papicella/vmware/ant-demos/gemfire/70/Demo/locator
Starting a Locator in /Users/papicella/vmware/ant-demos/gemfire/70/Demo/locator on localhost[10334] as locator1...
.....................................
Locator in /Users/papicella/vmware/ant-demos/gemfire/70/Demo/locator on 192-168-1-3.tpgi.com.au[10334] as locator1 is currently online.
Process ID: 4686
Uptime: 19 seconds
GemFire Version: 7.0
Java Version: 1.6.0_35
Log File: /Users/papicella/vmware/ant-demos/gemfire/70/Demo/locator/locator1.log
JVM Arguments: -DgemfirePropertyFile=gemfire.properties -Dgemfire.launcher.registerSignalHandlers=true -Dsun.rmi.dgc.server.gcInterval=9223372036854775806
Class-Path: /Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/gemfire.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/antlr.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/gfsh-dependencies.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/tomcat-embed-core.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/tomcat-embed-logging-juli.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/tomcat-embed-jasper.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/ecj-3.7.2.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/spring-asm-3.1.1.RELEASE.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/gemfire.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/antlr.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/gfsh-dependencies.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/gfSecurityImpl.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/jackson-core-asl-1.9.9.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/commons-logging.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/tomcat-embed-core.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/tomcat-embed-logging-juli.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/tomcat-embed-jasper.jar::

Successfully connected to: [host=192-168-1-3.tpgi.com.au, port=1099]
&lt;/pre&gt;
&lt;br /&gt;
4. Start 2 peers as shown below&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;start server --name=peer1 --cache-xml-file=Pulse.xml --properties-file=gemfire.properties --locators=localhost[10334] --dir=/Users/papicella/vmware/ant-demos/gemfire/70/Demo/peer1&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;start server --name=peer2 --cache-xml-file=Pulse.xml --properties-file=gemfire.properties --locators=localhost[10334] --dir=/Users/papicella/vmware/ant-demos/gemfire/70/Demo/peer2 &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="sql" name="code"&gt;  
gfsh&amp;gt;start server --name=peer1 --cache-xml-file=Pulse.xml --properties-file=gemfire.properties --locators=localhost[10334] --dir=/Users/papicella/vmware/ant-demos/gemfire/70/Demo/peer1
Starting a Cache server in /Users/papicella/vmware/ant-demos/gemfire/70/Demo/peer1 on 192-168-1-3.tpgi.com.au[40404] as peer1...
.....
Server in /Users/papicella/vmware/ant-demos/gemfire/70/Demo/peer1 on 192-168-1-3.tpgi.com.au[40001] as peer1 is currently online.
Process ID: 4687
Uptime: 2 seconds
GemFire Version: 7.0
Java Version: 1.6.0_35
Log File: /Users/papicella/vmware/ant-demos/gemfire/70/Demo/peer1/peer1.log
JVM Arguments: -Dgemfire.default.locators=192.168.1.3[10334] -DgemfirePropertyFile=gemfire.properties -Dgemfire.cache-xml-file=Pulse.xml -Dgemfire.locators=localhost[10334] -Dgemfire.launcher.registerSignalHandlers=true -Dsun.rmi.dgc.server.gcInterval=9223372036854775806
Class-Path: /Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/gemfire.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/antlr.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/gfsh-dependencies.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/tomcat-embed-core.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/tomcat-embed-logging-juli.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/tomcat-embed-jasper.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/ecj-3.7.2.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/spring-asm-3.1.1.RELEASE.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/gemfire.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/antlr.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/gfsh-dependencies.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/gfSecurityImpl.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/jackson-core-asl-1.9.9.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/commons-logging.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/tomcat-embed-core.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/tomcat-embed-logging-juli.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/tomcat-embed-jasper.jar::

gfsh&amp;gt;start server --name=peer2 --cache-xml-file=Pulse.xml --properties-file=gemfire.properties --locators=localhost[10334] --dir=/Users/papicella/vmware/ant-demos/gemfire/70/Demo/peer2
Starting a Cache server in /Users/papicella/vmware/ant-demos/gemfire/70/Demo/peer2 on 192-168-1-3.tpgi.com.au[40404] as peer2...
.....
Server in /Users/papicella/vmware/ant-demos/gemfire/70/Demo/peer2 on 192-168-1-3.tpgi.com.au[40002] as peer2 is currently online.
Process ID: 4688
Uptime: 2 seconds
GemFire Version: 7.0
Java Version: 1.6.0_35
Log File: /Users/papicella/vmware/ant-demos/gemfire/70/Demo/peer2/peer2.log
JVM Arguments: -Dgemfire.default.locators=192.168.1.3[10334] -DgemfirePropertyFile=gemfire.properties -Dgemfire.cache-xml-file=Pulse.xml -Dgemfire.locators=localhost[10334] -Dgemfire.launcher.registerSignalHandlers=true -Dsun.rmi.dgc.server.gcInterval=9223372036854775806
Class-Path: /Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/gemfire.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/antlr.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/gfsh-dependencies.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/tomcat-embed-core.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/tomcat-embed-logging-juli.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/tomcat-embed-jasper.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/ecj-3.7.2.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/spring-asm-3.1.1.RELEASE.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/gemfire.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/antlr.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/gfsh-dependencies.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/gfSecurityImpl.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/jackson-core-asl-1.9.9.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/commons-logging.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/tomcat-embed-core.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/tomcat-embed-logging-juli.jar:/Users/papicella/gemfire/vFabric_GemFire_70_b38623/lib/tomcat-embed-jasper.jar::
&lt;/pre&gt;
&lt;br /&gt;
5. Start Pulse to monitor the cluster over a HTTP browser&lt;br /&gt;
&lt;br /&gt;
start pulse&lt;br /&gt;
&lt;pre class="sql" name="code"&gt;  
gfsh&amp;gt;start pulse;
Running GemFire Pulse Pulse URL : http://192.168.1.3:8083/pulse/
&lt;/pre&gt;
&lt;br /&gt;
6. The HTTP browser should be invoked where you can connect to an embedded pulse server to monitor the cluster. The username / password for this is admin/admin, Once logged in should look as follows&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-RRMvsxcWss8/UKrMeLghxxI/AAAAAAAAAM8/3YYc1EInv74/s1600/img1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="167" src="http://2.bp.blogspot.com/-RRMvsxcWss8/UKrMeLghxxI/AAAAAAAAAM8/3YYc1EInv74/s320/img1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
7. Now lets stop the system as shown below.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="sql" name="code"&gt;  
gfsh&amp;gt;stop server --name=peer2;
Stopping Cache Server running in /Users/papicella/vmware/ant-demos/gemfire/70/Demo/peer2 on 192-168-1-3.tpgi.com.au[40002] as peer2...
Process ID: 4688
Log File: /Users/papicella/vmware/ant-demos/gemfire/70/Demo/peer2/peer2.log
....
gfsh&amp;gt;stop server --name=peer1;
Stopping Cache Server running in /Users/papicella/vmware/ant-demos/gemfire/70/Demo/peer1 on 192-168-1-3.tpgi.com.au[40001] as peer1...
Process ID: 4687
Log File: /Users/papicella/vmware/ant-demos/gemfire/70/Demo/peer1/peer1.log
....
gfsh&amp;gt;stop locator --name=locator1;
Stopping Locator running in /Users/papicella/vmware/ant-demos/gemfire/70/Demo/locator on 192-168-1-3.tpgi.com.au[10334] as locator1...
Process ID: 4686
Log File: /Users/papicella/vmware/ant-demos/gemfire/70/Demo/locator/locator1.log
...
No longer connected to 192-168-1-3.tpgi.com.au[1099].
&lt;/pre&gt;
&lt;br /&gt;
For more information about GemFire 70 gfsh command line options / commands you can just use the tab key in the shell. One example you can use to get an overview of metrics is as follows &lt;br /&gt;
&lt;br /&gt;
&lt;pre class="sql" name="code"&gt;  
gfsh&amp;gt;show metrics;

Cluster-wide Metrics

 Type   |        Metric         | Value
------- | --------------------- | -----
cluster | totalHeapSize         | 246
cache   | totalRegionEntryCount | 0
        | totalRegionCount      | 2
        | totalMissCount        | 0
        | totalHitCount         | 22454
        | diskReadsRate         | 0
        | diskWritesRate        | 0
        | flushTimeAvgLatency   | 0
        | totalBackupInProgress | 0
query   | activeCQCount         | 0
        | queryRequestRate      | 0
&lt;/pre&gt;
&lt;br /&gt;
More information on gfsh can be found in the GemFire 70 documentation link below.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://pubs.vmware.com/vfabricNoSuite/index.jsp?topic=/com.vmware.vfabric.gemfire.7.0/tools_modules/gfsh/chapter_overview.html"&gt;http://pubs.vmware.com/vfabricNoSuite/index.jsp?topic=/com.vmware.vfabric.gemfire.7.0/tools_modules/gfsh/chapter_overview.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/aFvprJ8-Jo4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/4295193828233506041/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=4295193828233506041" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/4295193828233506041?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/4295193828233506041?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/aFvprJ8-Jo4/management-of-gemfire-7-using-gfsh.html" title="Management of GemFire 7 using gfsh command line interface" /><author><name>Pas Apicella</name><uri>http://www.blogger.com/profile/09389663166398991762</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="15" src="http://wiki.r31skylineclub.com/images/thumb/d/d4/Gts2-side.jpg/100px-Gts2-side.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-RRMvsxcWss8/UKrMeLghxxI/AAAAAAAAAM8/3YYc1EInv74/s72-c/img1.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2012/11/management-of-gemfire-7-using-gfsh.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUAARXk_fCp7ImA9WhNTEE4.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-6716674699540357636</id><published>2012-10-12T21:11:00.001+11:00</published><updated>2012-10-12T21:29:04.744+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-10-12T21:29:04.744+11:00</app:edited><title>Installing BCI agent with APM 1.1 with tc Server 2.7.x</title><content type="html">If you try and install the java BCI agent into tc Server 2.7 as follows you will get an error as shown below.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #3d85c6;"&gt;
vfabric@tcserver2:~$ java -jar java-agent.jar --ip 192.168.110.126 
--path /home/vfabric/vfabric-tc-server-standard-2.7.1.RELEASE/booking/ -n&lt;/div&gt;
&lt;span style="color: #3d85c6;"&gt;Failed to detect the server type located at /home/vfabric/vfabric-tc-server-standard-2.7.1.RELEASE/booking/&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
In order to install the BCI agent on tcServer 2.7 you need to install it manually without providing the "-n" option as shown below.&lt;br /&gt;
&lt;br /&gt;
Ensure you select "&lt;b&gt;ssl&lt;/b&gt;" or the transport protocol and select option 11 for tc Server 2.6 given 2.7 doesn't exist at this stage.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="carriage_return" style="color: #3d85c6;"&gt;
vfabric@tcserver2:~$ &lt;b&gt;java -jar java-agent.jar
 --ip 192.168.110.126 --path 
/home/vfabric/vfabric-tc-server-standard-2.7.1.RELEASE/booking/&lt;/b&gt;&lt;/div&gt;
&lt;div class="carriage_return" style="color: #3d85c6;"&gt;
&lt;span class="truncate_more"&gt;Please enter Insight user name [Default:agent]: agent&lt;/span&gt;&lt;/div&gt;
&lt;div class="carriage_return" style="color: #3d85c6;"&gt;
&lt;span class="truncate_more"&gt;Please enter Insight password [Default:insight]: insight&lt;/span&gt;&lt;/div&gt;
&lt;div class="carriage_return" style="color: #3d85c6;"&gt;
&lt;span class="truncate_more"&gt;1: ssl&lt;/span&gt;&lt;/div&gt;
&lt;div class="carriage_return" style="color: #3d85c6;"&gt;
&lt;span class="truncate_more"&gt;2: nio&lt;/span&gt;&lt;/div&gt;
&lt;div class="carriage_return" style="color: #3d85c6;"&gt;
&lt;span class="truncate_more"&gt;3: nio+ssl&lt;/span&gt;&lt;/div&gt;
&lt;div class="carriage_return" style="color: #3d85c6;"&gt;
&lt;span class="truncate_more"&gt;Please select a transport protocol [Default:ssl]: 1&lt;/span&gt;&lt;/div&gt;
&lt;div class="carriage_return" style="color: #3d85c6;"&gt;
&lt;span class="truncate_more"&gt;Please
 enter the full path for the keystore file 
[Default:/home/vfabric/vfabric-tc-server-standard-2.7.1.RELEASE/booking/agent.ks]:&lt;/span&gt;&lt;/div&gt;
&lt;div class="carriage_return" style="color: #3d85c6;"&gt;
&lt;span class="truncate_more"&gt;Please
 enter the full path for the truststore file 
[Default:/home/vfabric/vfabric-tc-server-standard-2.7.1.RELEASE/booking/agent.ts]:&lt;/span&gt;&lt;/div&gt;
&lt;div class="carriage_return" style="color: #3d85c6;"&gt;
&lt;span class="truncate_more"&gt;Please enter the keystore password [Default:0ac06ca35033444fb49e8862519ee61d]:&lt;/span&gt;&lt;/div&gt;
&lt;div class="carriage_return" style="color: #3d85c6;"&gt;
&lt;span class="truncate_more"&gt;1: Tomcat 6&lt;/span&gt;&lt;/div&gt;
&lt;div class="carriage_return" style="color: #3d85c6;"&gt;
&lt;span class="truncate_more"&gt;2: Tomcat 6 (Executable)&lt;/span&gt;&lt;/div&gt;
&lt;div class="carriage_return" style="color: #3d85c6;"&gt;
&lt;span class="truncate_more"&gt;3: Tomcat 7&lt;/span&gt;&lt;/div&gt;
&lt;div class="carriage_return" style="color: #3d85c6;"&gt;
&lt;span class="truncate_more"&gt;4: Tomcat 7 (Executable)&lt;/span&gt;&lt;/div&gt;
&lt;div class="carriage_return" style="color: #3d85c6;"&gt;
&lt;span class="truncate_more"&gt;5: JBoss 5.0.1.GA&lt;/span&gt;&lt;/div&gt;
&lt;div class="carriage_return" style="color: #3d85c6;"&gt;
&lt;span class="truncate_more"&gt;6: JBoss 5.1.0.GA&lt;/span&gt;&lt;/div&gt;
&lt;div class="carriage_return" style="color: #3d85c6;"&gt;
&lt;span class="truncate_more"&gt;7: JBoss 6.0.0.Final&lt;/span&gt;&lt;/div&gt;
&lt;div class="carriage_return" style="color: #3d85c6;"&gt;
&lt;span class="truncate_more"&gt;8: JBoss 6.1.0.Final&lt;/span&gt;&lt;/div&gt;
&lt;div class="carriage_return" style="color: #3d85c6;"&gt;
&lt;span class="truncate_more"&gt;9: tc Server 2.1&lt;/span&gt;&lt;/div&gt;
&lt;div class="carriage_return" style="color: #3d85c6;"&gt;
&lt;span class="truncate_more"&gt;10: tc Server 2.5&lt;/span&gt;&lt;/div&gt;
&lt;div class="carriage_return" style="color: #3d85c6;"&gt;
&lt;span class="truncate_more"&gt;11: tc Server 2.6&lt;/span&gt;&lt;/div&gt;
&lt;div class="carriage_return" style="color: #3d85c6;"&gt;
&lt;span class="truncate_more"&gt;Please select server: 11&lt;/span&gt;&lt;/div&gt;
&lt;div class="carriage_return" style="color: #3d85c6;"&gt;
&lt;span class="truncate_more"&gt; ===============================================================&lt;/span&gt;&lt;/div&gt;
&lt;div class="carriage_return" style="color: #3d85c6;"&gt;
&lt;span class="truncate_more"&gt; Installing Insight agent on tc Server 2.6&lt;/span&gt;&lt;/div&gt;
&lt;div class="carriage_return" style="color: #3d85c6;"&gt;
&lt;span class="truncate_more"&gt; ===============================================================&lt;/span&gt;&lt;/div&gt;
&lt;div class="last_child" style="color: #3d85c6;"&gt;
&lt;span class="truncate_more"&gt; Insight agent installed successfully on tc Server 2.6&lt;/span&gt;&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/vjI-hStauA8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/6716674699540357636/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=6716674699540357636" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/6716674699540357636?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/6716674699540357636?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/vjI-hStauA8/installing-bci-agent-with-apm-11-with.html" title="Installing BCI agent with APM 1.1 with tc Server 2.7.x" /><author><name>Pas Apicella</name><uri>http://www.blogger.com/profile/09389663166398991762</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="15" src="http://wiki.r31skylineclub.com/images/thumb/d/d4/Gts2-side.jpg/100px-Gts2-side.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2012/10/installing-bci-agent-with-apm-11-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UDSX8_cCp7ImA9WhJbF0k.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-7147736016760509367</id><published>2012-09-27T20:21:00.000+10:00</published><updated>2012-09-27T20:21:18.148+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-09-27T20:21:18.148+10:00</app:edited><title>Backup command for MAC</title><content type="html">Using rsync to backup a directory onto a USB with files which have changed and or been removed.&lt;br /&gt;
&lt;br /&gt;
Note for myself:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #6fa8dc;"&gt;rsync -avrzeh --progress --delete /Users/papicella/vmware/ /Volumes/Wizzy\ Wig\ Mac\ Drive/Users/papicella/vmware/&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/TTXrd5qtec4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/7147736016760509367/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=7147736016760509367" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/7147736016760509367?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/7147736016760509367?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/TTXrd5qtec4/backup-command-for-mac.html" title="Backup command for MAC" /><author><name>Pas Apicella</name><uri>http://www.blogger.com/profile/09389663166398991762</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="15" src="http://wiki.r31skylineclub.com/images/thumb/d/d4/Gts2-side.jpg/100px-Gts2-side.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2012/09/backup-command-for-mac.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYMRno_fCp7ImA9WhJUFk8.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-2977673769088131244</id><published>2012-09-14T22:33:00.001+10:00</published><updated>2012-09-14T22:36:27.444+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-09-14T22:36:27.444+10:00</app:edited><title>SQLFire - Generic ExecuteQuery Using Procedure Parameters with DYNAMIC RESULT SETS</title><content type="html">In this previous post I showed how to use procedure parameters with DYNAMIC RESULT SETS.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://theblasfrompas.blogspot.com.au/2012/09/sqlfire-using-procedure-parameters-with.html"&gt;http://theblasfrompas.blogspot.com.au/2012/09/sqlfire-using-procedure-parameters-with.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Now I extend that and add a java class method to my stored procedures that allows an SQL query with bind variables and parameters to be used to execute arbitrary SQL. Wasn't tested that well and has no error checking BUT it generally works.&lt;br /&gt;
&lt;br /&gt;
Add a method as shown below to handle a generic query with bind variables&lt;br /&gt;
&lt;pre class="java" name="code"&gt;public static void executeQuery(String sql, String params, ResultSet[] resultSet1) throws SQLException 
  {
    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rset = null;

    try
    {
      conn = DriverManager.getConnection("jdbc:default:connection");
      pstmt = conn.prepareStatement(sql);
      // assume that parameters are correctly set; usually for most types
      // one can just do a setString()
      String[] args = params.split(",");
      int index = 1;
      for (String arg : args) 
      {
        pstmt.setString(index++, arg.trim());
      }
      
      resultSet1[0] = pstmt.executeQuery();

    }
    catch (SQLException se)
    {
      throw new RuntimeException("Error in stored procedure executeQuery - ", se);
    }   
  }
&lt;/pre&gt;&lt;br /&gt;
Create the SQL for the stored procedure as shown below.&lt;br /&gt;
&lt;pre class="sql" name="code"&gt;CREATE PROCEDURE executeQuery (IN query VARCHAR(200), IN params VARCHAR(200))
LANGUAGE JAVA 
PARAMETER STYLE JAVA 
READS SQL DATA 
DYNAMIC RESULT SETS 1 
EXTERNAL NAME 'pas.au.vmware.sqlfire.procs.DemoProc.executeQuery';
&lt;/pre&gt;&lt;br /&gt;
Test it from sqlf as shown below.&lt;br /&gt;
&lt;pre class="sql" name="code"&gt;sqlf&amp;gt; run 'test.sql';
sqlf&amp;gt; maximumdisplaywidth 120;
sqlf&amp;gt; call executeQuery('select * from emp where deptno = ?', '10');
EMPNO      |ENAME     |JOB      |MGR        |HIREDATE  |SAL        |COMM       |DEPTNO     
-------------------------------------------------------------------------------------------
7934       |MILLER    |CLERK    |7782       |1982-01-23|1300       |NULL       |10         
7782       |CLARK     |MANAGER  |7839       |1981-06-09|2450       |NULL       |10         
7839       |KING      |PRESIDENT|NULL       |1981-11-17|5000       |NULL       |10         

3 rows selected
sqlf&amp;gt; call executeQuery('select * from emp where (deptno = ? or deptno = ?)', '10,30');
EMPNO      |ENAME     |JOB      |MGR        |HIREDATE  |SAL        |COMM       |DEPTNO     
-------------------------------------------------------------------------------------------
7934       |MILLER    |CLERK    |7782       |1982-01-23|1300       |NULL       |10         
7782       |CLARK     |MANAGER  |7839       |1981-06-09|2450       |NULL       |10         
7839       |KING      |PRESIDENT|NULL       |1981-11-17|5000       |NULL       |10         
7521       |WARD      |SALESMAN |7698       |1981-02-22|1250       |500        |30         
7499       |ALLEN     |SALESMAN |7698       |1981-02-21|1600       |300        |30         
7900       |JAMES     |CLERK    |7698       |1981-12-03|950        |NULL       |30         
7844       |TURNER    |SALESMAN |7698       |1981-09-08|1500       |0          |30         
7654       |MARTIN    |SALESMAN |7698       |1981-09-28|1250       |1400       |30         
7698       |BLAKE     |MANAGER  |7839       |1981-05-01|2850       |NULL       |30         

9 rows selected
sqlf&amp;gt; call executeQuery('select * from emp where deptno = ? and ename like ?', '10,%MILL%');
EMPNO      |ENAME     |JOB      |MGR        |HIREDATE  |SAL        |COMM       |DEPTNO     
-------------------------------------------------------------------------------------------
7934       |MILLER    |CLERK    |7782       |1982-01-23|1300       |NULL       |10         

1 row selected
&lt;/pre&gt;&lt;br /&gt;
If you wanted to test with from a java client you could do it as follows&lt;br /&gt;
&lt;pre class="java" name="code"&gt;package clientaccess;

import java.sql.*;
import java.sql.ResultSetMetaData;

public class ExecuteQuery
{
  public ExecuteQuery()
  {
  }


  public static Connection getConnection()
    throws SQLException
  {

    String thinConn = "jdbc:sqlfire://localhost:1527/";
    Connection conn = DriverManager.getConnection(thinConn);
    conn.setAutoCommit(false);
    return conn;
  }

  public void run(String query, String params)
    throws SQLException
  {
    String sql = "call executeQuery(?, ?)";

    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rset = null;
    ResultSetMetaData meta;
    
    try
    {
      conn = getConnection();
      pstmt = conn.prepareCall(sql);
      pstmt.setString(1, query);
      pstmt.setString(2, params);
      pstmt.execute();

      rset = pstmt.getResultSet();

      meta = rset.getMetaData();
      int cols = meta.getColumnCount();

      System.out.println("\n-&amp;gt; Query results for : " + query);
      
      while(rset.next())
      {   
          for (int i=1; i &amp;lt;= cols; i++) 
          {
              System.out.print(rset.getString(i)+"\t");
          }
        
          System.out.print("\n");
      }
      
    }
    finally
    {
      if (rset != null)
      {
        rset.close();
      }

      if (pstmt != null)
      {
        pstmt.close();
      }

      if (conn != null)
      {
        conn.close();
      }
    }

  }

  public static void main(String[] args)
    throws SQLException
  {
    ExecuteQuery test = new ExecuteQuery();
    System.out.println("Started at " + new java.util.Date());
    test.run("select * from emp where deptno = ?", "20");
    test.run("select * from emp where (deptno = ? or deptno = ?)", "20,10");
    test.run("select * from emp where deptno = ? and ename like ?", "10,%MILL%");
    System.out.println("\nFinished at " + new java.util.Date());
  }
}
&lt;/pre&gt;&lt;br /&gt;
&lt;b&gt;Output&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Started at Fri Sep 14 22:35:40 EST 2012&lt;/span&gt;&lt;br style="color: #3d85c6;" /&gt;&lt;br style="color: #3d85c6;" /&gt;&lt;span style="color: #3d85c6;"&gt;-&amp;gt; Query results for : select * from emp where deptno = ?&lt;/span&gt;&lt;br style="color: #3d85c6;" /&gt;&lt;span style="color: #3d85c6;"&gt;7902&amp;nbsp;&amp;nbsp;&amp;nbsp; FORD&amp;nbsp;&amp;nbsp;&amp;nbsp; ANALYST&amp;nbsp;&amp;nbsp;&amp;nbsp; 7566&amp;nbsp;&amp;nbsp;&amp;nbsp; 1981-12-03&amp;nbsp;&amp;nbsp;&amp;nbsp; 3000&amp;nbsp;&amp;nbsp;&amp;nbsp; null&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="color: #3d85c6;" /&gt;&lt;span style="color: #3d85c6;"&gt;7876&amp;nbsp;&amp;nbsp;&amp;nbsp; ADAMS&amp;nbsp;&amp;nbsp;&amp;nbsp; CLERK&amp;nbsp;&amp;nbsp;&amp;nbsp; 7788&amp;nbsp;&amp;nbsp;&amp;nbsp; 1983-01-12&amp;nbsp;&amp;nbsp;&amp;nbsp; 1100&amp;nbsp;&amp;nbsp;&amp;nbsp; null&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="color: #3d85c6;" /&gt;&lt;span style="color: #3d85c6;"&gt;7788&amp;nbsp;&amp;nbsp;&amp;nbsp; SCOTT&amp;nbsp;&amp;nbsp;&amp;nbsp; ANALYST&amp;nbsp;&amp;nbsp;&amp;nbsp; 7566&amp;nbsp;&amp;nbsp;&amp;nbsp; 1982-12-09&amp;nbsp;&amp;nbsp;&amp;nbsp; 3000&amp;nbsp;&amp;nbsp;&amp;nbsp; null&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="color: #3d85c6;" /&gt;&lt;span style="color: #3d85c6;"&gt;7369&amp;nbsp;&amp;nbsp;&amp;nbsp; SMITH&amp;nbsp;&amp;nbsp;&amp;nbsp; CLERK&amp;nbsp;&amp;nbsp;&amp;nbsp; 7902&amp;nbsp;&amp;nbsp;&amp;nbsp; 1980-12-17&amp;nbsp;&amp;nbsp;&amp;nbsp; 800&amp;nbsp;&amp;nbsp;&amp;nbsp; null&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="color: #3d85c6;" /&gt;&lt;span style="color: #3d85c6;"&gt;7566&amp;nbsp;&amp;nbsp;&amp;nbsp; JONES&amp;nbsp;&amp;nbsp;&amp;nbsp; MANAGER&amp;nbsp;&amp;nbsp;&amp;nbsp; 7839&amp;nbsp;&amp;nbsp;&amp;nbsp; 1981-04-02&amp;nbsp;&amp;nbsp;&amp;nbsp; 2975&amp;nbsp;&amp;nbsp;&amp;nbsp; null&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="color: #3d85c6;" /&gt;&lt;br style="color: #3d85c6;" /&gt;&lt;span style="color: #3d85c6;"&gt;-&amp;gt; Query results for : select * from emp where (deptno = ? or deptno = ?)&lt;/span&gt;&lt;br style="color: #3d85c6;" /&gt;&lt;span style="color: #3d85c6;"&gt;7934&amp;nbsp;&amp;nbsp;&amp;nbsp; MILLER&amp;nbsp;&amp;nbsp;&amp;nbsp; CLERK&amp;nbsp;&amp;nbsp;&amp;nbsp; 7782&amp;nbsp;&amp;nbsp;&amp;nbsp; 1982-01-23&amp;nbsp;&amp;nbsp;&amp;nbsp; 1300&amp;nbsp;&amp;nbsp;&amp;nbsp; null&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="color: #3d85c6;" /&gt;&lt;span style="color: #3d85c6;"&gt;7782&amp;nbsp;&amp;nbsp;&amp;nbsp; CLARK&amp;nbsp;&amp;nbsp;&amp;nbsp; MANAGER&amp;nbsp;&amp;nbsp;&amp;nbsp; 7839&amp;nbsp;&amp;nbsp;&amp;nbsp; 1981-06-09&amp;nbsp;&amp;nbsp;&amp;nbsp; 2450&amp;nbsp;&amp;nbsp;&amp;nbsp; null&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="color: #3d85c6;" /&gt;&lt;span style="color: #3d85c6;"&gt;7839&amp;nbsp;&amp;nbsp;&amp;nbsp; KING&amp;nbsp;&amp;nbsp;&amp;nbsp; PRESIDENT&amp;nbsp;&amp;nbsp;&amp;nbsp; null&amp;nbsp;&amp;nbsp;&amp;nbsp; 1981-11-17&amp;nbsp;&amp;nbsp;&amp;nbsp; 5000&amp;nbsp;&amp;nbsp;&amp;nbsp; null&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="color: #3d85c6;" /&gt;&lt;span style="color: #3d85c6;"&gt;7902&amp;nbsp;&amp;nbsp;&amp;nbsp; FORD&amp;nbsp;&amp;nbsp;&amp;nbsp; ANALYST&amp;nbsp;&amp;nbsp;&amp;nbsp; 7566&amp;nbsp;&amp;nbsp;&amp;nbsp; 1981-12-03&amp;nbsp;&amp;nbsp;&amp;nbsp; 3000&amp;nbsp;&amp;nbsp;&amp;nbsp; null&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="color: #3d85c6;" /&gt;&lt;span style="color: #3d85c6;"&gt;7876&amp;nbsp;&amp;nbsp;&amp;nbsp; ADAMS&amp;nbsp;&amp;nbsp;&amp;nbsp; CLERK&amp;nbsp;&amp;nbsp;&amp;nbsp; 7788&amp;nbsp;&amp;nbsp;&amp;nbsp; 1983-01-12&amp;nbsp;&amp;nbsp;&amp;nbsp; 1100&amp;nbsp;&amp;nbsp;&amp;nbsp; null&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="color: #3d85c6;" /&gt;&lt;span style="color: #3d85c6;"&gt;7788&amp;nbsp;&amp;nbsp;&amp;nbsp; SCOTT&amp;nbsp;&amp;nbsp;&amp;nbsp; ANALYST&amp;nbsp;&amp;nbsp;&amp;nbsp; 7566&amp;nbsp;&amp;nbsp;&amp;nbsp; 1982-12-09&amp;nbsp;&amp;nbsp;&amp;nbsp; 3000&amp;nbsp;&amp;nbsp;&amp;nbsp; null&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="color: #3d85c6;" /&gt;&lt;span style="color: #3d85c6;"&gt;7369&amp;nbsp;&amp;nbsp;&amp;nbsp; SMITH&amp;nbsp;&amp;nbsp;&amp;nbsp; CLERK&amp;nbsp;&amp;nbsp;&amp;nbsp; 7902&amp;nbsp;&amp;nbsp;&amp;nbsp; 1980-12-17&amp;nbsp;&amp;nbsp;&amp;nbsp; 800&amp;nbsp;&amp;nbsp;&amp;nbsp; null&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="color: #3d85c6;" /&gt;&lt;span style="color: #3d85c6;"&gt;7566&amp;nbsp;&amp;nbsp;&amp;nbsp; JONES&amp;nbsp;&amp;nbsp;&amp;nbsp; MANAGER&amp;nbsp;&amp;nbsp;&amp;nbsp; 7839&amp;nbsp;&amp;nbsp;&amp;nbsp; 1981-04-02&amp;nbsp;&amp;nbsp;&amp;nbsp; 2975&amp;nbsp;&amp;nbsp;&amp;nbsp; null&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="color: #3d85c6;" /&gt;&lt;br style="color: #3d85c6;" /&gt;&lt;span style="color: #3d85c6;"&gt;-&amp;gt; Query results for : select * from emp where deptno = ? and ename like ?&lt;/span&gt;&lt;br style="color: #3d85c6;" /&gt;&lt;span style="color: #3d85c6;"&gt;7934&amp;nbsp;&amp;nbsp;&amp;nbsp; MILLER&amp;nbsp;&amp;nbsp;&amp;nbsp; CLERK&amp;nbsp;&amp;nbsp;&amp;nbsp; 7782&amp;nbsp;&amp;nbsp;&amp;nbsp; 1982-01-23&amp;nbsp;&amp;nbsp;&amp;nbsp; 1300&amp;nbsp;&amp;nbsp;&amp;nbsp; null&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="color: #3d85c6;" /&gt;&lt;br style="color: #3d85c6;" /&gt;&lt;span style="color: #3d85c6;"&gt;Finished at Fri Sep 14 22:35:41 EST 2012&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/ylw89P2gKA0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/2977673769088131244/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=2977673769088131244" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/2977673769088131244?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/2977673769088131244?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/ylw89P2gKA0/sqlfire-generic-executequery-using.html" title="SQLFire - Generic ExecuteQuery Using Procedure Parameters with DYNAMIC RESULT SETS" /><author><name>Pas Apicella</name><uri>http://www.blogger.com/profile/09389663166398991762</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="15" src="http://wiki.r31skylineclub.com/images/thumb/d/d4/Gts2-side.jpg/100px-Gts2-side.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2012/09/sqlfire-generic-executequery-using.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIBSXw9eyp7ImA9WhJUFUU.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-5353890526827836219</id><published>2012-09-14T11:02:00.000+10:00</published><updated>2012-09-14T11:02:38.263+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-09-14T11:02:38.263+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SQLFire" /><category scheme="http://www.blogger.com/atom/ns#" term="VFabric" /><title>SQLFire - Using Procedure Parameters with DYNAMIC RESULT SETS</title><content type="html">In this example below we use DYNAMIC RESULT SETS with stored procedures. When you configure a procedure using the CREATE PROCEDURE   statement, SQLFire assembles the method parameters and passes them to the   procedure implementation class using Java reflection&lt;br /&gt;
&lt;br /&gt;
The demo below is using the classic DEPT/EMP schema data. If you want to follow it setup SQLFire with that data as shown in this previous blog entry.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://theblasfrompas.blogspot.com/2011/12/sqlfire-in-few-minutes.html"&gt;http://theblasfrompas.blogspot.com/2011/12/sqlfire-in-few-minutes.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
1. Create a Java Stored Procedure class with a single method as follows.&lt;br /&gt;
&lt;pre class="java" name="code"&gt;package pas.au.vmware.sqlfire.procs;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.PreparedStatement;

public class DemoProc
{
  public static void queryEmpsinDepartments(String deptno, ResultSet[] resultSet1) throws SQLException
  {
    String sql = "select empno, ename, deptno from emp where deptno = ?";
    
    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rset = null;
    
    try
    {
      conn = DriverManager.getConnection("jdbc:default:connection");
      pstmt = conn.prepareStatement(sql);
      pstmt.setInt(1, Integer.parseInt(deptno));
      resultSet1[0] = pstmt.executeQuery();
      
    }
    catch (SQLException se)
    {
      throw new RuntimeException("Error in stored procedure queryEmpsinDepartments - ", se);
    }
  }
}
&lt;/pre&gt;2. Add the JAR file to the classpath for your SQLFire distributed system prior to starting the system. Here we just use the CLASSPATH variable but you could also load the JAR file into the system itself.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #3d85c6;"&gt;export CUR_DIR=`pwd`&lt;br /&gt;
export CLASSPATH=$CUR_DIR/lib/procs.jar&lt;/div&gt;&lt;br /&gt;
3. Create a stored procedure as follows.&lt;br /&gt;
&lt;pre class="sql" name="code"&gt;CREATE PROCEDURE queryEmpsinDepartments (IN deptno VARCHAR(2))
LANGUAGE JAVA 
PARAMETER STYLE JAVA 
READS SQL DATA 
DYNAMIC RESULT SETS 1 
EXTERNAL NAME 'pas.au.vmware.sqlfire.procs.DemoProc.queryEmpsinDepartments';
&lt;/pre&gt;4. Invoke from a client as shown below.&lt;br /&gt;
&lt;pre class="java" name="code"&gt;package clientaccess;

import java.sql.*;

public class TestQueryEmpsinDepartments
{
  public TestQueryEmpsinDepartments()
  {
  }


  public static Connection getConnection() throws SQLException
  {

    String thinConn = "jdbc:sqlfire://localhost:1527/";
    Connection conn = DriverManager.getConnection(thinConn);
    conn.setAutoCommit(false);
    return conn;
  }
  
  public void run () throws SQLException
  {
    String sql = "call queryEmpsinDepartments(?)";
    
    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rset = null;
    
    try
    {
      conn = getConnection();
      pstmt = conn.prepareCall(sql);
      pstmt.setString(1, "10");
      pstmt.execute();
      
      rset = pstmt.getResultSet();
      
      System.out.println("** Employees in department with id 10 **");
      
      while (rset.next())
      {
        System.out.println(String.format("Emp[%s, %s, %s]", rset.getInt(1), rset.getString(2), rset.getInt(3)));
      }
    }
    finally
    {
      if (rset != null)
      {
        rset.close();
      }
      
      if (pstmt != null)
      {
        pstmt.close();
      }
      
      if (conn != null)
      {
        conn.close();
      }
    }
    
  }
  
  public static void main(String[] args) throws SQLException
  {
    TestQueryEmpsinDepartments test = new TestQueryEmpsinDepartments();
    System.out.println("Started at " + new java.util.Date());
    test.run();
    System.out.println("Finished at " + new java.util.Date());
  }
} 
&lt;/pre&gt;&lt;br /&gt;
&lt;u&gt;Output&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Started at Fri Sep 14 10:59:20 EST 2012&lt;/span&gt;&lt;br style="color: #3d85c6;" /&gt;&lt;span style="color: #3d85c6;"&gt;** Employees in department with id 10 **&lt;/span&gt;&lt;br style="color: #3d85c6;" /&gt;&lt;span style="color: #3d85c6;"&gt;Emp[7934, MILLER, 10]&lt;/span&gt;&lt;br style="color: #3d85c6;" /&gt;&lt;span style="color: #3d85c6;"&gt;Emp[7782, CLARK, 10]&lt;/span&gt;&lt;br style="color: #3d85c6;" /&gt;&lt;span style="color: #3d85c6;"&gt;Emp[7839, KING, 10]&lt;/span&gt;&lt;br style="color: #3d85c6;" /&gt;&lt;span style="color: #3d85c6;"&gt;Finished at Fri Sep 14 10:59:20 EST 2012&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
For more information see the link below.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://pubs.vmware.com/vfabric5/index.jsp?topic=/com.vmware.vfabric.sqlfire.1.0/developers_guide/topics/server-side/dap-impl-parameters.html"&gt;http://pubs.vmware.com/vfabric5/index.jsp?topic=/com.vmware.vfabric.sqlfire.1.0/developers_guide/topics/server-side/dap-impl-parameters.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/9dhwCbI1FgE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/5353890526827836219/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=5353890526827836219" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/5353890526827836219?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/5353890526827836219?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/9dhwCbI1FgE/sqlfire-using-procedure-parameters-with.html" title="SQLFire - Using Procedure Parameters with DYNAMIC RESULT SETS" /><author><name>Pas Apicella</name><uri>http://www.blogger.com/profile/09389663166398991762</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="15" src="http://wiki.r31skylineclub.com/images/thumb/d/d4/Gts2-side.jpg/100px-Gts2-side.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2012/09/sqlfire-using-procedure-parameters-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08DQH8-cSp7ImA9WhJVGEQ.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-1930511160134496347</id><published>2012-09-06T11:44:00.000+10:00</published><updated>2012-09-06T11:44:31.159+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-09-06T11:44:31.159+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SQLFire" /><category scheme="http://www.blogger.com/atom/ns#" term="VFabric" /><title>Load 8 Million Rows in 88 Seconds – NewSQL Speed</title><content type="html">Recently published this SQLFire load speed scenario on the VMware vFabric blog&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://blogs.vmware.com/vfabric/2012/09/load-8-million-rows-in-88-seconds-newsql-speed.html"&gt;http://blogs.vmware.com/vfabric/2012/09/load-8-million-rows-in-88-seconds-newsql-speed.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/2f7RUy8oysI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/1930511160134496347/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=1930511160134496347" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/1930511160134496347?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/1930511160134496347?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/2f7RUy8oysI/load-8-million-rows-in-88-seconds.html" title="Load 8 Million Rows in 88 Seconds – NewSQL Speed" /><author><name>Pas Apicella</name><uri>http://www.blogger.com/profile/09389663166398991762</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="15" src="http://wiki.r31skylineclub.com/images/thumb/d/d4/Gts2-side.jpg/100px-Gts2-side.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2012/09/load-8-million-rows-in-88-seconds.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0IHRHg6eip7ImA9WhJXEkw.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-8282286483427119256</id><published>2012-08-06T11:12:00.000+10:00</published><updated>2012-08-06T11:12:15.612+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-08-06T11:12:15.612+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="vFabric Data Director" /><title>vFabric Data Director 2.0 - Oracle</title><content type="html">We just released the vFabirc Data Director 2.0 product with support for Oracle. In fact this supports Oracle 10g as well 11g and will even setup OEM / dbconsole for you. Here are some screen shots of what the UI gives you with a previously created Oracle 11g instance.&lt;br /&gt;
&lt;br /&gt;
Here is a base VM used to create database templates from. The base VM must contain operating system, database engine and Data Director agent before it can be converted into a database template.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-ycf0V4ZIq4g/UB8XLuTMiXI/AAAAAAAAAMA/wYuW7HcN4oY/s1600/img1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="112" src="http://3.bp.blogspot.com/-ycf0V4ZIq4g/UB8XLuTMiXI/AAAAAAAAAMA/wYuW7HcN4oY/s320/img1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
We then convert the base VM into a database template and assign it to a resource pool to enable us to provision Oracle Databases from.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-qOuLkRG47eI/UB8Xv9ABbNI/AAAAAAAAAMI/QvLrVIjDA3c/s1600/img2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="151" src="http://3.bp.blogspot.com/-qOuLkRG47eI/UB8Xv9ABbNI/AAAAAAAAAMI/QvLrVIjDA3c/s320/img2.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Now we create our Oracle Database to a previously created database group with it managed within Data Director. &lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-_COCrT4Oxlc/UB8YSBM3mCI/AAAAAAAAAMQ/aAbzzHEdVI0/s1600/img3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="91" src="http://4.bp.blogspot.com/-_COCrT4Oxlc/UB8YSBM3mCI/AAAAAAAAAMQ/aAbzzHEdVI0/s320/img3.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Finally connect to our Oracle Database by obtaining the connect details from the UI itself and then use Oracle SQL Developer to make a connection.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-tai8PIQawd4/UB8Y3tjrvMI/AAAAAAAAAMY/Cy8Cpt5OA54/s1600/img4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="126" src="http://3.bp.blogspot.com/-tai8PIQawd4/UB8Y3tjrvMI/AAAAAAAAAMY/Cy8Cpt5OA54/s320/img4.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-GlKcZ4eQcQU/UB8Y8kwrRsI/AAAAAAAAAMg/D7iwPvRw0VE/s1600/img5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="178" src="http://1.bp.blogspot.com/-GlKcZ4eQcQU/UB8Y8kwrRsI/AAAAAAAAAMg/D7iwPvRw0VE/s320/img5.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Here is what we see in vSphere and how the database is added to our Resource Pool.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-yb_sHG9Xiyo/UB8ZVAuOjVI/AAAAAAAAAMo/y-AGrg0gphc/s1600/img6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="309" src="http://4.bp.blogspot.com/-yb_sHG9Xiyo/UB8ZVAuOjVI/AAAAAAAAAMo/y-AGrg0gphc/s320/img6.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
More Information on vFabric Data Director and support for Oracle 10g/11g can be found as follows&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.vmware.com/products/application-platform/vfabric-data-director/overview.html"&gt;http://www.vmware.com/products/application-platform/vfabric-data-director/overview.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/MEEswOcpRYo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/8282286483427119256/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=8282286483427119256" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/8282286483427119256?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/8282286483427119256?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/MEEswOcpRYo/vfabric-data-director-20-oracle.html" title="vFabric Data Director 2.0 - Oracle" /><author><name>Pas Apicella</name><uri>http://www.blogger.com/profile/09389663166398991762</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="15" src="http://wiki.r31skylineclub.com/images/thumb/d/d4/Gts2-side.jpg/100px-Gts2-side.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-ycf0V4ZIq4g/UB8XLuTMiXI/AAAAAAAAAMA/wYuW7HcN4oY/s72-c/img1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2012/08/vfabric-data-director-20-oracle.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YCSH85fSp7ImA9WhJSFU4.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-7424432247248439176</id><published>2012-07-06T11:43:00.001+10:00</published><updated>2012-07-06T11:46:09.125+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-07-06T11:46:09.125+10:00</app:edited><title>Displaying Total Memory Footprint in SQLFire</title><content type="html">The example below shows how you can view table / index memory footprint within your SQLFire distrubuted system.&lt;br /&gt;
&lt;br /&gt;
1. Start the servers ensuring you&amp;nbsp; add sqlfire.jar as shown below.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Locator:&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #3d85c6;"&gt;
sqlf locator start &lt;b&gt;-J-javaagent:/Users/papicella/sqlfire/SQLFire102_35992/lib/sqlfire.jar&lt;/b&gt; -peer-discovery-address=localhost -peer-discovery-port=41111 -client-bind-address=localhost -client-port=1527&lt;/div&gt;
&lt;br /&gt;
&lt;u&gt;SQLFire Nodes:&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;sqlf server start -J-Xms2024m -J-Xmx2024m &lt;/span&gt;&lt;b style="color: #3d85c6;"&gt;-J-javaagent:/Users/papicella/sqlfire/SQLFire1021/lib/sqlfire.jar&lt;/b&gt;&lt;span style="color: #3d85c6;"&gt; -server-groups=MYGROUP -locators=localhost[41111] -client-bind-address=localhost -client-port=1528 -dir=server1 &amp;amp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;sqlf server start -J-Xms2024m -J-Xmx2024m &lt;/span&gt;&lt;b style="color: #3d85c6;"&gt;-J-javaagent:/Users/papicella/sqlfire/SQLFire1021/lib/sqlfire.jar&lt;/b&gt;&lt;span style="color: #3d85c6;"&gt; -server-groups=MYGROUP -locators=localhost[41111] -client-bind-address=localhost -client-port=1529 -dir=server2 &amp;amp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
2. Query the system as shown below &lt;span class="cmdname"&gt;using &lt;b&gt;sizerHints=withMemoryFootPrint&lt;/b&gt;&lt;/span&gt; hint with your query&lt;br /&gt;
&lt;br /&gt;
SQL:&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #3d85c6;"&gt;
select sqlentity, memory, substr(id, 1, 50) "Id" FROM sys.memoryAnalytics -- SQLFIRE-PROPERTIES sizerHints=withMemoryFootPrint; &lt;/div&gt;
&lt;br /&gt;
&lt;pre class="sql" name="code"&gt;  
sqlf&amp;gt; select sqlentity, memory, substr(id, 1, 50) "Id" FROM sys.memoryAnalytics -- SQLFIRE-PROPERTIES sizerHints=withMemoryFootPrint;
SQLENTITY                                                       |MEMORY                                                                                                                          |Id                                                
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
APP.EMP (Entry Size, Value Size, Row Count)                     |208000000,50997494,2000000                                                                                                      |10.117.85.62(9090)&amp;lt;v1&amp;gt;:43540/60442                
APP.EMP (sqlfire,gemfire,others)                                |64426568,61261504,52987760 (178675832 = 170.4 mb)                                                                               |10.117.85.62(9090)&amp;lt;v1&amp;gt;:43540/60442                
APP.EMP (Entry Size, Value Size, Row Count)                     |208000000,50997494,2000000                                                                                                      |10.117.85.62(9091)&amp;lt;v0&amp;gt;:41971/60439                
APP.EMP (sqlfire,gemfire,others)                                |133766368,129748968,307527368 (571042704 = 544.59 mb)                                                                           |10.117.85.62(9091)&amp;lt;v0&amp;gt;:41971/60439
&lt;/pre&gt;
&lt;br /&gt;
More information see the link below.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://pubs.vmware.com/vfabric5/index.jsp?topic=/com.vmware.vfabric.sqlfire.1.0/getting_started/book_intro.html"&gt;http://pubs.vmware.com/vfabric5/index.jsp?topic=/com.vmware.vfabric.sqlfire.1.0/getting_started/book_intro.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/Pse2WVNekhA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/7424432247248439176/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=7424432247248439176" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/7424432247248439176?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/7424432247248439176?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/Pse2WVNekhA/displaying-total-memory-footprint-in.html" title="Displaying Total Memory Footprint in SQLFire" /><author><name>Pas Apicella</name><uri>http://www.blogger.com/profile/09389663166398991762</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="15" src="http://wiki.r31skylineclub.com/images/thumb/d/d4/Gts2-side.jpg/100px-Gts2-side.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2012/07/displaying-total-memory-footprint-in.html</feedburner:origLink></entry></feed>
