<?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: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;D0IFR3g7cCp7ImA9WhRUGEg.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256</id><updated>2012-01-30T03:45:16.608+11:00</updated><category term="Connection Pooling" /><category term="PPR" /><category term="JSP" /><category term="Connection" /><category term="Database Change Notification" /><category term="FCF" /><category term="External Table" /><category term="IB" /><category term="Write-Behind" /><category term="WLS" /><category term="Exadata" /><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="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="ADF faces" /><category term="VFabric" /><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="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="PLSQL" /><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="Struts 2" /><title>The Blas from Pas</title><subtitle type="html">Information on VMware -&amp;gt; vFabric Product Family - GemFire, SQLFire, tc Server, RabbitMQ, Hyperic, Web Server and ERS</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>188</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;A04DR3w7fCp7ImA9WhRUF0k.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-8293170316409296505</id><published>2012-01-28T22:26:00.000+11:00</published><updated>2012-01-28T22:26:16.204+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-28T22:26:16.204+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Distributed Database" /><category scheme="http://www.blogger.com/atom/ns#" term="SQLFire" /><category scheme="http://www.blogger.com/atom/ns#" term="VFabric" /><title>Automatic Client Failover within vFabric SQLFire</title><content type="html">If your connected to a SQLFire member who unexpectedly disapears or is shutdown SQLFire will automatically ensure that client swicthes to another server within the distributed system without the need to reconnect as demonstrated using SQLFire command line client "sqlf".&lt;br /&gt;
&lt;br /&gt;
Lets assume we have started 2 SQLFire members as follows&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;sqlf server start -server-groups=MYGROUP -dir=server1 -client-port=1527 -mcast-port=12333 &amp;amp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;sqlf server start -server-groups=MYGROUP -dir=server2 -client-port=1528 -mcast-port=12333 &amp;amp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
1. Lets connect to the first member as shown below&lt;br /&gt;
&lt;pre class="sql" name="code"&gt;[Sat Jan 28 22:14:59 papicella@:~/vmware/software/sqlfire/vFabric_SQLFire_101/pasdemos/afl2011 ] $ sqlf
sqlf version 10.4
sqlf&amp;gt; connect client 'localhost:1527';
sqlf&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
2. Now lets ensure we are indeed connected to the first member as shown below.&lt;br /&gt;
&lt;pre class="sql" name="code"&gt;sqlf&amp;gt; show connections;
CONNECTION0* -  jdbc:sqlfire://localhost:1527/
* = current connection
sqlf&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
3. Lets run a query against a table in the distributed system &lt;br /&gt;
&lt;pre class="sql" name="code"&gt;sqlf&amp;gt; show connections;
sqlf&amp;gt; select team_id, name, long_name from teams;
TEAM_ID    |NAME           |LONG_NAME                     
----------------------------------------------------------
18         |Giants         |GWS GIANTS                    
1          |Tigers         |Richmond                      
16         |Bulldogs       |Western Bulldogs              
12         |Power          |Port Adelaide                 
5          |Pies           |Collingwood                   
17         |Suns           |Gold Coast Suns               
4          |Blues          |Carlton                       
2          |Crows          |Adelaide Crows                
10         |Roos           |North Melbourne               
13         |Saints         |St. Kilda                     
8          |Cats           |Geelong Cats                  
14         |Swans          |Sydney Swans                  
15         |Eagles         |West Coast Eagles             
11         |Demons         |Melbourne                     
7          |Dockers        |Fremantle                     
9          |Hawks          |Hawthorn                      
3          |Lions          |Brisbane Lions                
6          |Bombers        |Essendon                      

18 rows selected
sqlf&amp;gt; 
&lt;/pre&gt;&lt;br /&gt;
4. At this point we will shutdown the first SQLFire member who accepted the connection above using it's client port of 1527.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;[Sat Jan 28 22:20:24 papicella@:~/vmware/software/sqlfire/vFabric_SQLFire_101/pasdemos/afl2011 ] $ sqlf server stop -dir=server1&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;The SQLFire Server has stopped.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
5. Now lets re-run the query and verify we are still connected to the distributed system and can still display table data&lt;br /&gt;
&lt;pre class="sql" name="code"&gt;sqlf&amp;gt; select team_id, name, long_name from teams;
TEAM_ID    |NAME           |LONG_NAME                     
----------------------------------------------------------
18         |Giants         |GWS GIANTS                    
1          |Tigers         |Richmond                      
16         |Bulldogs       |Western Bulldogs              
12         |Power          |Port Adelaide                 
5          |Pies           |Collingwood                   
17         |Suns           |Gold Coast Suns               
4          |Blues          |Carlton                       
2          |Crows          |Adelaide Crows                
10         |Roos           |North Melbourne               
13         |Saints         |St. Kilda                     
8          |Cats           |Geelong Cats                  
14         |Swans          |Sydney Swans                  
15         |Eagles         |West Coast Eagles             
11         |Demons         |Melbourne                     
7          |Dockers        |Fremantle                     
9          |Hawks          |Hawthorn                      
3          |Lions          |Brisbane Lions                
6          |Bombers        |Essendon                      

18 rows selected
sqlf&amp;gt; 
&lt;/pre&gt;&lt;br /&gt;
6. Finally lets ensure we indeed did switch to the remaining member which accepts client connections on 1528&lt;br /&gt;
&lt;pre class="sql" name="code"&gt;sqlf&amp;gt; show connections;
CONNECTION0* -  jdbc:sqlfire://localhost:1528/
* = current connection
&lt;/pre&gt;&lt;br /&gt;
For more information on SQLFire see the link below.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.vmware.com/products/application-platform/vfabric-sqlfire/overview.html"&gt;http://www.vmware.com/products/application-platform/vfabric-sqlfire/overview.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6527688743456205256-8293170316409296505?l=theblasfrompas.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/A_fRSkxAk-Op8cNAbHR4rcFaV5A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/A_fRSkxAk-Op8cNAbHR4rcFaV5A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/A_fRSkxAk-Op8cNAbHR4rcFaV5A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/A_fRSkxAk-Op8cNAbHR4rcFaV5A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/9caRQs2ZlMM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/8293170316409296505/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=8293170316409296505" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/8293170316409296505?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/8293170316409296505?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/9caRQs2ZlMM/automatic-client-failover-within.html" title="Automatic Client Failover within 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/2012/01/automatic-client-failover-within.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQNQXY4eyp7ImA9WhRVE0s.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-4097126822613008488</id><published>2012-01-12T22:39:00.000+11:00</published><updated>2012-01-12T22:39:50.833+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-12T22:39:50.833+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Connection Pooling" /><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" /><title>Using a Connection Pool with SQLFire</title><content type="html">A Java application   can use the JDBC thin driver to access a single member of a SQLFire cluster and   execute SQL statements. This makes it a perfect candidate to use a connection pool to maintain connections for clients rather then connect to it individually. Two that spring to mind are Apache DBCP or Oracle's UCP. In this example we show a configuration using Spring and Oracle UCP which creates a pool of SQLFire connections which clients can then use as required.&lt;br /&gt;
&lt;br /&gt;
1. Create a new spring bean application config file with a UCP defined as follows.&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"
 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"&amp;gt;

  &amp;lt;bean id="sqlfireUcpDataSource" class="oracle.ucp.jdbc.PoolDataSourceFactory" factory-method="getPoolDataSource"&amp;gt;
    &amp;lt;property name="URL" value="jdbc:sqlfire://localhost:1527/" /&amp;gt;
    &amp;lt;property name="connectionFactoryClassName" value="com.vmware.sqlfire.jdbc.ClientDriver" /&amp;gt;
    &amp;lt;property name="connectionPoolName" value="SQLFIRE_UCP_POOL" /&amp;gt;
    &amp;lt;property name="minPoolSize" value="5" /&amp;gt;
    &amp;lt;property name="maxPoolSize" value="20" /&amp;gt;
    &amp;lt;property name="initialPoolSize" value="5" /&amp;gt;
  &amp;lt;/bean&amp;gt;
  
&amp;lt;/beans&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
2. Create a test class as follows to verify the pool as shown below. &lt;br /&gt;
&lt;pre class="java" name="code"&gt;package vmware.au.sqlfire.pool;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;

import oracle.ucp.jdbc.PoolDataSource;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestSQLFireJDBCPool 
{
 private Logger log = Logger.getLogger("com.vmware.sqlfire");
 private ApplicationContext context;
 private static final String BEAN_NAME = "sqlfireUcpDataSource";
 private PoolDataSource pds;
 
 public TestSQLFireJDBCPool() 
 {
  context = new ClassPathXmlApplicationContext("application-config-SQLFIRE.xml");
  pds = (PoolDataSource) context.getBean(BEAN_NAME);  
 }

 public void run()
 {
  Connection conn = null;
  List&amp;lt;Connection&amp;gt; connections = new ArrayList&amp;lt;Connection&amp;gt;();
  
  try 
  {
   // ensure pool is started by getting a connection object
   conn = pds.getConnection();
   log.info(conn.toString());
   conn.close();
   
   log.info("Getting 5 connections from pool");
   
   for (int i = 0; i &amp;lt; 5; i++)
   {
    connections.add(pds.getConnection());
   }
   
   log.info(displayPoolDetails());
   log.info("Closing all connections from pool");
   
   for (Connection connection: connections)
   {
     connection.close(); 
   }
   
   log.info(displayPoolDetails());
   
 
  } 
  catch (SQLException e) 
  {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } 
  finally
  {
   connections = null;
  }
 }

    public String displayPoolDetails () throws SQLException
    {
      StringBuffer sb = new StringBuffer();
      
      sb.append("** Pool Details **\n");
      sb.append("NumberOfAvailableConnections: " +
                         pds.getAvailableConnectionsCount());
      sb.append("\nBorrowedConnectionsCount: " +
                         pds.getBorrowedConnectionsCount());
      sb.append("\n");
      
      return sb.toString();
    }
    
 /**
  * @param args
  */
 public static void main(String[] args) 
 {
  TestSQLFireJDBCPool test = new TestSQLFireJDBCPool();
  test.run();

 }

}
&lt;/pre&gt;&lt;br /&gt;
3. You will need to use the following JAR files such as Spring, Oracle UCP etc..&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/-0Ft0KoyMg5s/Tw7FuSei17I/AAAAAAAAAIg/snRVNeL1XUE/s1600/img1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="243" src="http://2.bp.blogspot.com/-0Ft0KoyMg5s/Tw7FuSei17I/AAAAAAAAAIg/snRVNeL1XUE/s320/img1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Output as follows:&lt;br /&gt;
&lt;div style="color: #3d85c6;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;span style="color: #3d85c6;"&gt;Jan 12, 2012 10:11:54 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@657d5d2a: startup date [Thu Jan 12 22:11:54 EST 2012]; root of context hierarchy&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Jan 12, 2012 10:11:54 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;INFO: Loading XML bean definitions from class path resource [application-config-SQLFIRE.xml]&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Jan 12, 2012 10:11:55 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@62da3a1e: defining beans [sqlfireUcpDataSource]; root of factory hierarchy&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Jan 12, 2012 10:11:55 PM vmware.au.sqlfire.pool.TestSQLFireJDBCPool run&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;INFO: $Proxy0@1dc18a4c&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Jan 12, 2012 10:11:55 PM vmware.au.sqlfire.pool.TestSQLFireJDBCPool run&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;INFO: Getting 5 connections from pool&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Jan 12, 2012 10:11:55 PM vmware.au.sqlfire.pool.TestSQLFireJDBCPool run&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;INFO: ** Pool Details **&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;NumberOfAvailableConnections: 0&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;BorrowedConnectionsCount: 5&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Jan 12, 2012 10:11:55 PM vmware.au.sqlfire.pool.TestSQLFireJDBCPool run&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;INFO: Closing all connections from pool&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Jan 12, 2012 10:11:55 PM vmware.au.sqlfire.pool.TestSQLFireJDBCPool run&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;INFO: ** Pool Details **&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;NumberOfAvailableConnections: 5&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;BorrowedConnectionsCount: 0&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6527688743456205256-4097126822613008488?l=theblasfrompas.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9lGUBND46DEZTEhXUff4JOrzGNA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9lGUBND46DEZTEhXUff4JOrzGNA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9lGUBND46DEZTEhXUff4JOrzGNA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9lGUBND46DEZTEhXUff4JOrzGNA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/bWWapRnWSOE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/4097126822613008488/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=4097126822613008488" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/4097126822613008488?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/4097126822613008488?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/bWWapRnWSOE/using-connection-pool-with-sqlfire.html" title="Using a Connection Pool with 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/-0Ft0KoyMg5s/Tw7FuSei17I/AAAAAAAAAIg/snRVNeL1XUE/s72-c/img1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2012/01/using-connection-pool-with-sqlfire.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIFSHkyfSp7ImA9WhRVE0s.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-5110183842306318208</id><published>2012-01-12T22:08:00.000+11:00</published><updated>2012-01-12T22:08:39.795+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-12T22:08:39.795+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Distributed Database" /><category scheme="http://www.blogger.com/atom/ns#" term="SQLFire" /><category scheme="http://www.blogger.com/atom/ns#" term="VFabric" /><title>Using DBVisualizer to connect to a SQLFire cluster</title><content type="html">There are many database development visual tools out there which more often then not allow you to connect to the many different RDBMS databases including Oracle, MySQL, etc.. In this post here we use &lt;a href="http://www.dbvis.com/" target="_blank"&gt;DBVisualizer&lt;/a&gt; to connect to SQLFire and show how easy you can view/manipulate your distributed SQLFire database from a visual tool.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #e69138;"&gt;Note: It's assumed you already have DbVisualizer installed and running.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
First thing we need to do is add SQLFire driver JAR file to the list of drivers DBVisualizer can use. &lt;br /&gt;
&lt;br /&gt;
1. Select Tools -&amp;gt; Driver Manager&lt;br /&gt;
2. Click the + symbol to define a new driver and enter details as shown below.&lt;br /&gt;
&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/-TbWbYppL-rg/Tw64RBo7EbI/AAAAAAAAAII/DXGKwKukNDs/s1600/img1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="215" src="http://3.bp.blogspot.com/-TbWbYppL-rg/Tw64RBo7EbI/AAAAAAAAAII/DXGKwKukNDs/s320/img1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Select the      &lt;strong&gt;com.vmware.sqlfire.jdbc.Driver&lt;/strong&gt; class&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #e69138;"&gt;Note: sqlfireclient.jar can be found in $SQLFIRE_HOME/lib directory&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
In order to use the client     driver, you must specify a JDBC connection URL for your SQLFire distributed     system. The basic URL format for the client driver is: jdbc:sqlfire://&lt;var class="varname"&gt;hostname&lt;/var&gt;:&lt;var class="varname"&gt;port&lt;/var&gt;/ &lt;br /&gt;
where      &lt;var class="varname"&gt;hostname&lt;/var&gt; and      &lt;var class="varname"&gt;port&lt;/var&gt; correspond to the      &lt;span class="cmdname"&gt;-client-bind-address&lt;/span&gt; and      &lt;span class="cmdname"&gt;-client-port&lt;/span&gt; value of a SQLFire server or locator     in your distributed system.&lt;br /&gt;
&lt;br /&gt;
3. Close the window when done&lt;br /&gt;
4. Right click on "&lt;b&gt;Connections&lt;/b&gt;" icon and select "&lt;b&gt;Create Database Connection&lt;/b&gt;".&lt;br /&gt;
5. If promoted elect "&lt;b&gt;Use Wizard&lt;/b&gt;"&lt;br /&gt;
6. Enter a connection name in this demo I enter -&amp;gt; pas-sqlfire&lt;br /&gt;
7. Select the database driver we created at step #2 which should be "&lt;b&gt;SQLFire 1.0&lt;/b&gt;"&lt;br /&gt;
8. Click next&lt;br /&gt;
9. Enter in connection details 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/-A9-8D5hOZ0E/Tw69B4BETxI/AAAAAAAAAIQ/TkYOzADkP4g/s1600/img2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="201" src="http://2.bp.blogspot.com/-A9-8D5hOZ0E/Tw69B4BETxI/AAAAAAAAAIQ/TkYOzADkP4g/s320/img2.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
If authentication is disabled, then you can specify any temporary     username and password value into these fields.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="note" style="color: #e69138;"&gt;&lt;span class="notetitle"&gt;Note:&lt;/span&gt; SQLFire uses the username specified in the JDBC connection as the     schema name when you do not provide the schema name for a database object.     SQLFire uses "APP" as the default schema. If your system does not enable     authentication, you can specify "APP" for both the username and password to     maintain consistency with the default schema behavior.&amp;nbsp;&lt;/div&gt;&lt;div class="note"&gt;&amp;nbsp;&lt;/div&gt;&amp;nbsp;10. Click finish&lt;br /&gt;
&lt;br /&gt;
The following shows a query we run to view the distributed database SQLFire members.&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/-E3Ost84D3bc/Tw6-oEjA40I/AAAAAAAAAIY/h4HB-qHj6fw/s1600/img3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="209" src="http://3.bp.blogspot.com/-E3Ost84D3bc/Tw6-oEjA40I/AAAAAAAAAIY/h4HB-qHj6fw/s320/img3.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
For more information on SQLFire see the link below.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.vmware.com/products/application-platform/vfabric-sqlfire/overview.html"&gt;http://www.vmware.com/products/application-platform/vfabric-sqlfire/overview.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6527688743456205256-5110183842306318208?l=theblasfrompas.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/w-q7RWMDQqgKNfRwnwTUMKhcbP8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/w-q7RWMDQqgKNfRwnwTUMKhcbP8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/w-q7RWMDQqgKNfRwnwTUMKhcbP8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/w-q7RWMDQqgKNfRwnwTUMKhcbP8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/Ej73OIfCE14" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/5110183842306318208/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=5110183842306318208" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/5110183842306318208?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/5110183842306318208?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/Ej73OIfCE14/using-dbvisualizer-to-connect-to.html" title="Using DBVisualizer to connect to a SQLFire cluster" /><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/-TbWbYppL-rg/Tw64RBo7EbI/AAAAAAAAAII/DXGKwKukNDs/s72-c/img1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2012/01/using-dbvisualizer-to-connect-to.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08CQH4_cSp7ImA9WhRXGEQ.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-1575107967921277785</id><published>2011-12-26T22:41:00.001+11:00</published><updated>2011-12-26T22:44:21.049+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-26T22:44:21.049+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SQLFire" /><category scheme="http://www.blogger.com/atom/ns#" term="VFabric" /><title>vFabric SQLFire - Modelling the classic DEPT/EMP tables</title><content type="html">VMware vFabric SQLFire is a memory-optimized, distributed database   management system designed for applications that have demanding scalability and   availability requirements. Here we will show a quick demo on how to get up and running using the classic DEPT/EMP RDBMS tables only this time in memory usig SQLFire.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #e69138;"&gt;Note: I's assumed SQLFire is installed in a directory as follows:&lt;/div&gt;&lt;br /&gt;
&lt;div style="color: #3d85c6;"&gt;/Users/papicella/vmware/software/sqlfire/vFabric_SQLFire_10&lt;/div&gt;&lt;br /&gt;
1. Setup your environment as shown below. MAC example.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #3d85c6;"&gt;export PATH=/Users/papicella/vmware/software/sqlfire/vFabric_SQLFire_10/bin:$PATH&lt;/div&gt;&lt;br /&gt;
2. Ensure you have a valid JDK in your path as shown below&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;[Mon Dec 26 22:01:26 papicella@:~/vmware/software/sqlfire/vFabric_SQLFire_10/pasdemos/deptemp ] $ java -version&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;java version "1.6.0_26"&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Java(TM) SE Runtime Environment (build 1.6.0_26-b03-383-11A511)&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02-383, mixed mode)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
3. In your current directory created 2 folders called "&lt;b&gt;server1&lt;/b&gt;" and "&lt;b&gt;server2&lt;/b&gt;"&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #3d85c6;"&gt;mkdir server1&lt;/div&gt;&lt;span style="color: #3d85c6;"&gt;mkdir server2&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
4. Start 2 servers as shown below they will discover each other using multicast port 12333&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #3d85c6;"&gt;sqlf server start -dir=server1 -client-port=1527 -mcast-port=12333 &amp;amp;&lt;br /&gt;
sqlf server start -dir=server2 -client-port=1528 -mcast-port=12333 &amp;amp;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Output:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #3d85c6;"&gt;[Mon Dec 26 22:11:49 papicella@:~/vmware/software/sqlfire/vFabric_SQLFire_10/pasdemos/deptemp ] $ ./start-servers.sh &lt;br /&gt;
[Mon Dec 26 22:11:51 papicella@:~/vmware/software/sqlfire/vFabric_SQLFire_10/pasdemos/deptemp ] $ Starting SQLFire Server using multicast for peer discovery: 239.192.81.1[12333]&lt;br /&gt;
Starting network server for SQLFire Server at address localhost/127.0.0.1[1527]&lt;br /&gt;
Starting SQLFire Server using multicast for peer discovery: 239.192.81.1[12333]&lt;br /&gt;
Starting network server for SQLFire Server at address localhost/127.0.0.1[1528]&lt;br /&gt;
SQLFire Server pid: 1032 status: running&lt;br /&gt;
&amp;nbsp; Distributed system now has 2 members.&lt;br /&gt;
&amp;nbsp; Other members: 192-168-1-3.tpgi.com.au(1031:datastore)&lt;v0&gt;:14506/50489&lt;br /&gt;
Logs generated in /Users/papicella/vmware/software/sqlfire/vFabric_SQLFire_10/pasdemos/deptemp/server2/sqlfserver.log&lt;br /&gt;
SQLFire Server pid: 1031 status: running&lt;br /&gt;
&amp;nbsp; Distributed system now has 2 members.&lt;br /&gt;
&amp;nbsp; Other members: 192-168-1-3.tpgi.com.au(1032:datastore)&lt;v1&gt;:23687/50492&lt;br /&gt;
Logs generated in /Users/papicella/vmware/software/sqlfire/vFabric_SQLFire_10/pasdemos/deptemp/server1/sqlfserver.log&lt;/v1&gt;&lt;/v0&gt;&lt;/div&gt;&lt;br /&gt;
5. Connect as shown below&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;[Mon Dec 26 22:13:06 papicella@:~/vmware/software/sqlfire/vFabric_SQLFire_10/pasdemos/deptemp ] $ sqlf&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;sqlf version 10.4&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;sqlf&amp;gt; connect client 'localhost:1527';&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;sqlf&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
6. In a separate terminal window create a file called "&lt;b&gt;deptempPERSIST.sql&lt;/b&gt;" with contents as follows.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="sql" name="code"&gt;AUTOCOMMIT OFF;

create diskstore STORE1;

CREATE TABLE DEPT (
 DEPTNO INTEGER NOT NULL CONSTRAINT DEPTNO_PK PRIMARY KEY,
 DNAME VARCHAR(14),
 LOC VARCHAR(13))
 partition by column (deptno)
 persistent 'STORE1'
 REDUNDANCY 1;

INSERT INTO DEPT VALUES (10, 'ACCOUNTING', 'NEW YORK');
INSERT INTO DEPT VALUES (20, 'RESEARCH',   'DALLAS');
INSERT INTO DEPT VALUES (30, 'SALES',      'CHICAGO');
INSERT INTO DEPT VALUES (40, 'OPERATIONS', 'BOSTON');

CREATE TABLE EMP (
 EMPNO INTEGER NOT NULL CONSTRAINT EMP_PK Primary Key,
 ENAME VARCHAR(10),
 JOB VARCHAR(9),
 MGR INTEGER,
 HIREDATE DATE,
 SAL INTEGER,
 COMM INTEGER,
 DEPTNO INTEGER)
 partition by column (deptno)
 COLOCATE WITH (DEPT)
 persistent 'STORE1'
 REDUNDANCY 1;

INSERT INTO EMP VALUES
        (7369, 'SMITH',  'CLERK',     7902, '1980-12-17',  800, NULL, 20);
INSERT INTO EMP VALUES
        (7499, 'ALLEN',  'SALESMAN',  7698, '1981-02-21', 1600,  300, 30);
INSERT INTO EMP VALUES
        (7521, 'WARD',   'SALESMAN',  7698, '1981-02-22', 1250,  500, 30);
INSERT INTO EMP VALUES
        (7566, 'JONES',  'MANAGER',   7839, '1981-04-02',  2975, NULL, 20);
INSERT INTO EMP VALUES
        (7654, 'MARTIN', 'SALESMAN',  7698, '1981-09-28', 1250, 1400, 30);
INSERT INTO EMP VALUES
        (7698, 'BLAKE',  'MANAGER',   7839, '1981-05-01',  2850, NULL, 30);
INSERT INTO EMP VALUES
        (7782, 'CLARK',  'MANAGER',   7839, '1981-06-09',  2450, NULL, 10);
INSERT INTO EMP VALUES
        (7788, 'SCOTT',  'ANALYST',   7566, '1982-12-09', 3000, NULL, 20);
INSERT INTO EMP VALUES
        (7839, 'KING',   'PRESIDENT', NULL, '1981-11-17', 5000, NULL, 10);
INSERT INTO EMP VALUES
        (7844, 'TURNER', 'SALESMAN',  7698, '1981-09-08',  1500,    0, 30);
INSERT INTO EMP VALUES
        (7876, 'ADAMS',  'CLERK',     7788, '1983-01-12', 1100, NULL, 20);
INSERT INTO EMP VALUES
        (7900, 'JAMES',  'CLERK',     7698, '1981-12-03',   950, NULL, 30);
INSERT INTO EMP VALUES
        (7902, 'FORD',   'ANALYST',   7566, '1981-12-03',  3000, NULL, 20);
INSERT INTO EMP VALUES
        (7934, 'MILLER', 'CLERK',     7782, '1982-01-23', 1300, NULL, 10);

COMMIT;

ALTER TABLE EMP
   ADD CONSTRAINT EMP_FK Foreign Key (DEPTNO)
   REFERENCES DEPT (DEPTNO);

COMMIT;
&lt;/pre&gt;&lt;br /&gt;
7. Run the file "&lt;b&gt;deptempPERSIST.sql&lt;/b&gt;" as shown below by returning to the terminal window at step #5&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #3d85c6;"&gt;sqlf&amp;gt; run 'deptempPERSIST.sql';&lt;/div&gt;&lt;br /&gt;
8. Query and verify you now have DEPT / EMP tables with data as shown below.&lt;br /&gt;
&lt;pre class="sql" name="code"&gt;sqlf&amp;gt; select * from dept;
DEPTNO     |DNAME         |LOC          
----------------------------------------
10         |ACCOUNTING    |NEW YORK     
20         |RESEARCH      |DALLAS       
30         |SALES         |CHICAGO      
40         |OPERATIONS    |BOSTON       

4 rows selected
sqlf&amp;gt; select * from emp;
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         
7902       |FORD      |ANALYST  |7566       |1981-12-03|3000       |NULL       |20         
7876       |ADAMS     |CLERK    |7788       |1983-01-12|1100       |NULL       |20         
7788       |SCOTT     |ANALYST  |7566       |1982-12-09|3000       |NULL       |20         
7369       |SMITH     |CLERK    |7902       |1980-12-17|800        |NULL       |20         
7566       |JONES     |MANAGER  |7839       |1981-04-02|2975       |NULL       |20         
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         

14 rows selected
&lt;/pre&gt;&lt;br /&gt;
9. Check how our DEPT/EMP tables stored within the distributed system.&lt;br /&gt;
&lt;pre class="sql" name="code"&gt;sqlf&amp;gt; select substr(tablename, 1, 10) as tablename, datapolicy from sys.systables where tableschemaname='APP';
TABLENAME |DATAPOLICY              
-----------------------------------
EMP       |PERSISTENT_PARTITION    
DEPT      |PERSISTENT_PARTITION    

2 rows selected  
&lt;/pre&gt;&lt;br /&gt;
&lt;div style="color: #e69138;"&gt;Here the data is not only partitioned by also persisted to local disk to ensure it can be rehydrated when the members are brought down and re-started.&lt;/div&gt;&lt;br /&gt;
10. Verify where our data is stored and ensure that it's partioned by DEPTNO and that the EMP records are co located with the DEPT data.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="sql" name="code"&gt;sqlf&amp;gt; select substr(dsid(), 1, 48) as dsid, deptno, dname from dept;
DSID                                            |DEPTNO     |DNAME         
---------------------------------------------------------------------------
192-168-1-3.tpgi.com.au(1031)&amp;lt;v0&amp;gt;:14506/50489   |30         |SALES         
192-168-1-3.tpgi.com.au(1031)&amp;lt;v0&amp;gt;:14506/50489   |40         |OPERATIONS    
192-168-1-3.tpgi.com.au(1032)&amp;lt;v1&amp;gt;:23687/50492   |10         |ACCOUNTING    
192-168-1-3.tpgi.com.au(1032)&amp;lt;v1&amp;gt;:23687/50492   |20         |RESEARCH      

4 rows selected
sqlf&amp;gt; select substr(dsid(), 1, 48) as dsid, deptno, ename from emp;
DSID                                            |DEPTNO     |ENAME     
-----------------------------------------------------------------------
192-168-1-3.tpgi.com.au(1031)&amp;lt;v0&amp;gt;:14506/50489   |30         |WARD      
192-168-1-3.tpgi.com.au(1031)&amp;lt;v0&amp;gt;:14506/50489   |30         |ALLEN     
192-168-1-3.tpgi.com.au(1031)&amp;lt;v0&amp;gt;:14506/50489   |30         |JAMES     
192-168-1-3.tpgi.com.au(1031)&amp;lt;v0&amp;gt;:14506/50489   |30         |TURNER    
192-168-1-3.tpgi.com.au(1031)&amp;lt;v0&amp;gt;:14506/50489   |30         |MARTIN    
192-168-1-3.tpgi.com.au(1031)&amp;lt;v0&amp;gt;:14506/50489   |30         |BLAKE     
192-168-1-3.tpgi.com.au(1032)&amp;lt;v1&amp;gt;:23687/50492   |10         |MILLER    
192-168-1-3.tpgi.com.au(1032)&amp;lt;v1&amp;gt;:23687/50492   |10         |CLARK     
192-168-1-3.tpgi.com.au(1032)&amp;lt;v1&amp;gt;:23687/50492   |10         |KING      
192-168-1-3.tpgi.com.au(1032)&amp;lt;v1&amp;gt;:23687/50492   |20         |FORD      
192-168-1-3.tpgi.com.au(1032)&amp;lt;v1&amp;gt;:23687/50492   |20         |ADAMS     
192-168-1-3.tpgi.com.au(1032)&amp;lt;v1&amp;gt;:23687/50492   |20         |SCOTT     
192-168-1-3.tpgi.com.au(1032)&amp;lt;v1&amp;gt;:23687/50492   |20         |SMITH     
192-168-1-3.tpgi.com.au(1032)&amp;lt;v1&amp;gt;:23687/50492   |20         |JONES     

14 rows selected
&lt;/pre&gt;&lt;br /&gt;
For more information on vFabric SQLFire visit the link below.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.vmware.com/products/application-platform/vfabric-sqlfire/overview.html"&gt;http://www.vmware.com/products/application-platform/vfabric-sqlfire/overview.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6527688743456205256-1575107967921277785?l=theblasfrompas.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3PSP_tvY4EMRZ-vHaNaTT-y6Gvo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3PSP_tvY4EMRZ-vHaNaTT-y6Gvo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3PSP_tvY4EMRZ-vHaNaTT-y6Gvo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3PSP_tvY4EMRZ-vHaNaTT-y6Gvo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/71ZK-AfulXU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/1575107967921277785/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=1575107967921277785" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/1575107967921277785?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/1575107967921277785?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/71ZK-AfulXU/sqlfire-in-few-minutes.html" title="vFabric SQLFire - Modelling the classic DEPT/EMP tables" /><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/2011/12/sqlfire-in-few-minutes.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EER3c5fSp7ImA9WhRQFkg.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-280189490080147032</id><published>2011-12-12T14:13:00.000+11:00</published><updated>2011-12-12T14:13:26.925+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-12T14:13:26.925+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Write-Behind" /><category scheme="http://www.blogger.com/atom/ns#" term="Oracle" /><category scheme="http://www.blogger.com/atom/ns#" term="GemFire" /><title>GemFire Write-Behind with an Oracle RDBMS</title><content type="html">Many in memory data fabric's use an Oracle RDBMS to persist data and     make it available as required. In this demo we explore an effective     way to use GemFire write-behind functionality to an Oracle RDBMS and     strategies around how to increase throughput. GemFire's &lt;b&gt;Write-Behind&lt;/b&gt;     technology simply translates what in-memory data management does     uniquely well (low-latency/high throughput of small data updates) to     what disk-based data management does best (higher latency/high     throughput of large data updates).&lt;br /&gt;
&lt;br /&gt;
Here is an example config of such a setup.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;cache XML file&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 cache PUBLIC
    "-//GemStone Systems, Inc.//GemFire Declarative Caching 6.6//EN" 
"http://www.gemstone.com/dtd/cache6_6.dtd"&amp;gt;
&amp;lt;cache&amp;gt;
  &amp;lt;gateway-hub id="DBWriterHub" port="-1" startup-policy="none"&amp;gt;
     &amp;lt;gateway id="DBWriter"&amp;gt;
        &amp;lt;gateway-listener&amp;gt;
           &amp;lt;class-name&amp;gt;pas.au.gemfire.demo.cachewriter.DBGatewayListener&amp;lt;/class-name&amp;gt;
        &amp;lt;/gateway-listener&amp;gt;
        &amp;lt;!-- 10 seconds limit that can elapse between sending batches of up to 1000 --&amp;gt;
        &amp;lt;gateway-queue batch-size="5000" batch-time-interval="10000"/&amp;gt;
     &amp;lt;/gateway&amp;gt;
  &amp;lt;/gateway-hub&amp;gt;
  &amp;lt;region name="firstRegion" refid="PARTITION_REDUNDANT"&amp;gt; 
    &amp;lt;region-attributes enable-gateway="true" hub-id="DBWriterHub"&amp;gt;
      &amp;lt;eviction-attributes&amp;gt;
        &amp;lt;lru-heap-percentage action="overflow-to-disk" /&amp;gt;
      &amp;lt;/eviction-attributes&amp;gt;
    &amp;lt;/region-attributes&amp;gt;
  &amp;lt;/region&amp;gt;
  &amp;lt;function-service&amp;gt;
 &amp;lt;function&amp;gt;
   &amp;lt;class-name&amp;gt;pas.au.gemfire.demo.cachewriter.SizeFunction&amp;lt;/class-name&amp;gt;
 &amp;lt;/function&amp;gt;
  &amp;lt;/function-service&amp;gt; 
  &amp;lt;resource-manager critical-heap-percentage="75" eviction-heap-percentage="65"/&amp;gt;
&amp;lt;/cache&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;b&gt;Gateway Listener Code&lt;/b&gt;&lt;br /&gt;
&lt;pre class="java" name="code"&gt;package pas.au.gemfire.demo.cachewriter;

import com.gemstone.gemfire.cache.Declarable;
import com.gemstone.gemfire.cache.Operation;
import com.gemstone.gemfire.cache.util.GatewayEvent;
import com.gemstone.gemfire.cache.util.GatewayEventListener;

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 pas.au.gemfire.demo.cachewriter.dao.jdbcbatch.JdbcBatch;
import pas.au.gemfire.demo.cachewriter.dao.jdbcbatch.JdbcBatchDAO;
import pas.au.gemfire.demo.cachewriter.dao.jdbcbatch.JdbcBatchDAOImpl;

public class DBGatewayListener implements GatewayEventListener, Declarable 
{
  private Logger logger = Logger.getLogger(this.getClass().getSimpleName());
  private ApplicationContext context;
  private static final String BEAN_NAME = "jdbcBatchDAO";
  private JdbcBatchDAO jdbcBatchDAO;

  public DBGatewayListener()
  {
    context = new ClassPathXmlApplicationContext("application-config.xml");
    jdbcBatchDAO = (JdbcBatchDAOImpl) context.getBean(BEAN_NAME);
  }

  @Override
  public boolean processEvents(List&amp;lt;GatewayEvent&amp;gt; list)
  {
    logger.log (Level.INFO, String.format("Size of List&amp;lt;GatewayEvent&amp;gt; = %s", 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;();
    @SuppressWarnings("unused")
 int possibleDulicates = 0;
    
    for (GatewayEvent 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("New Entries = [%s], Updated Entries = [%s], Destroyed Entries = [%s], Possible Duplicates = [%s]", 
                  newEntries.size(), 
                  updatedEntries.size(), 
                  destroyedEntries.size(), 
                  possibleDulicates));
    
    return true;
  }

  @Override
  public void close()
  {
  }

  @Override
  public void init(Properties properties)
  {
  }
}
&lt;/pre&gt;&lt;br /&gt;
For more information on vFabric GemFire use the link below.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.vmware.com/products/application-platform/vfabric-gemfire/overview.html"&gt;http://www.vmware.com/products/application-platform/vfabric-gemfire/overview.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6527688743456205256-280189490080147032?l=theblasfrompas.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lUPgZ9brE8qa7PTINrYUVnKPnE4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lUPgZ9brE8qa7PTINrYUVnKPnE4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/lUPgZ9brE8qa7PTINrYUVnKPnE4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lUPgZ9brE8qa7PTINrYUVnKPnE4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/TwTXDlYZfII" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/280189490080147032/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=280189490080147032" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/280189490080147032?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/280189490080147032?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/TwTXDlYZfII/gemfire-write-behind-with-oracle-rdbms.html" title="GemFire Write-Behind with an Oracle RDBMS" /><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/2011/12/gemfire-write-behind-with-oracle-rdbms.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQERHY5fyp7ImA9WhRREEw.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-1321403445795051732</id><published>2011-11-23T12:05:00.000+11:00</published><updated>2011-11-23T12:05:05.827+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-23T12:05:05.827+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="GFMon" /><category scheme="http://www.blogger.com/atom/ns#" term="GemFire" /><title>Running GFMon on a 64bit MAC OSX</title><content type="html">Here are the quick setup steps to run GFMon 26 on a 64 bit MAC OSX operating system.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="carriage_return"&gt;1. Change WS (osgi.ws [windowing system]) in the &lt;span class="exact_match search_match"&gt;gfmon&lt;/span&gt; command from gtk to carbon&lt;/div&gt;&lt;div class="carriage_return"&gt;2. Add the -d32 switch&lt;/div&gt;3. Add the -XstartOnFirstThread switch&lt;br /&gt;
&lt;br /&gt;
The command in the &lt;span class="exact_match search_match"&gt;gfmon&lt;/span&gt; script should look like with the changes in BOLD:&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #3d85c6;"&gt;&lt;span class="truncate_more"&gt;${GF_JAVA:-java} &lt;b&gt;-d32 -XstartOnFirstThread&lt;/b&gt; -Xms256m -Xmx512m ${JAVA_ARGS} -Xbootclasspath/a:"$GEMFIRE/lib/gemfire.jar" -jar "$&lt;/span&gt;&lt;span class="exact_match search_match truncate_more" style="display: inline;"&gt;gfmon&lt;/span&gt;&lt;span class="truncate_more"&gt;/plugins/org.eclipse.equinox.launcher_1.0.101.R34x_v20080819.jar" -WS &lt;b&gt;carbon&lt;/b&gt; $@&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span class="truncate_more"&gt;4. Copy the following jar (from Eclipse ganymede) to the &lt;/span&gt;&lt;span class="exact_match search_match truncate_more" style="display: inline;"&gt;gfmon&lt;/span&gt;&lt;span class="truncate_more"&gt; plugins directory:&lt;/span&gt;&lt;br /&gt;
&lt;div class="last_child"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="last_child" style="color: #3d85c6;"&gt;&lt;span class="truncate_more"&gt;$GFMON_HOME/plugins/org.eclipse.swt.carbon.&lt;/span&gt;&lt;span class="exact_match search_match truncate_more" style="display: inline;"&gt;mac&lt;/span&gt;&lt;span class="truncate_more"&gt;osx_3.4.1.v3449c.jar&lt;/span&gt;&lt;/div&gt;&lt;div class="last_child"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="last_child"&gt;&lt;span class="truncate_more"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6527688743456205256-1321403445795051732?l=theblasfrompas.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4SIRmSHrmGf3ZJz_NSX3e4bI5-c/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4SIRmSHrmGf3ZJz_NSX3e4bI5-c/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4SIRmSHrmGf3ZJz_NSX3e4bI5-c/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4SIRmSHrmGf3ZJz_NSX3e4bI5-c/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/T2P6QhuF8os" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/1321403445795051732/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=1321403445795051732" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/1321403445795051732?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/1321403445795051732?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/T2P6QhuF8os/running-gfmon-on-64bit-mac-osx.html" title="Running GFMon on a 64bit MAC OSX" /><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/2011/11/running-gfmon-on-64bit-mac-osx.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMDQXw8eyp7ImA9WhRSEk8.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-3790674848315793315</id><published>2011-11-14T08:35:00.001+11:00</published><updated>2011-11-14T08:41:10.273+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-14T08:41:10.273+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="jython" /><category scheme="http://www.blogger.com/atom/ns#" term="GemFire" /><title>Accessing GemFire Regions from Jython</title><content type="html">My previous blog entry showed how to access &lt;a href="http://theblasfrompas.blogspot.com/2011/11/accessing-gemfire-regions-from-jruby.html"&gt;GemFire Regions from JRuby&lt;/a&gt;. This demo below accesses the same regions , this time using jython. The code has identical java calls with the obvious jython syntax rather then JRuby. Here I just show the jython script and output.&lt;br /&gt;
&lt;br /&gt;
Before we run the script we need to set the classpath correctly to pick up the GemFire JAR's as well as the JAR file required to access the Region.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;export CUR_DIR=`pwd`&lt;/span&gt;&lt;br style="color: #3d85c6;" /&gt;&lt;span style="color: #3d85c6;"&gt;export CLASSPATH=$CUR_DIR/lib/antlr.jar:$CUR_DIR/lib/gemfire.jar:$CUR_DIR/lib/gemfire-quickstart.jar&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
jython script - &lt;b&gt;gemfire-caching-proxy-client.jy&lt;/b&gt;&lt;br /&gt;
&lt;pre class="ruby" name="code"&gt;from java.util import Date
from java.util import Collection
from java.util import Iterator

from vmware.au.se.demo.domain import AllDBObject 
  
from com.gemstone.gemfire.cache import Region 
from com.gemstone.gemfire.cache.client import ClientCache
from com.gemstone.gemfire.cache.client import ClientCacheFactory

from com.gemstone.gemfire.cache.query import Query  
from com.gemstone.gemfire.cache.query import QueryService
from com.gemstone.gemfire.cache.query import SelectResults

print "*********************************"  
print "GemFire 6.6 Example from JYTHON"  
print "*********************************"  
  
print "Started at " + Date().toString()  
  
try:  
  
 ccf = ClientCacheFactory()
 ccf.set("cache-xml-file", "client.xml")  
 cache = ccf.create() 

 allObjectRegion = cache.getRegion("AllObjectRegion")  
 queryService = cache.getQueryService()  
 
 query = queryService.newQuery("SELECT * FROM /AllObjectRegion where owner = 'SCOTT'")  
 print "\n** All OBJECTS with owner = 'SCOTT'\n"  

 result = query.execute() 
 collection = result.asList()
 iter = collection.iterator()
 i = 0  
 
 while iter.hasNext():
  i = i + 1  
  entry = iter.next()
  print "Entry " , i , " : " , entry
  
except:  
    print "Unexpected error:", sys.exc_info()[0]  
    raise  
      
finally:  
    cache.close()
     
print "Ended at " + Date().toString()   
&lt;/pre&gt;&lt;br /&gt;
&lt;u&gt;Output as follows&lt;/u&gt;&lt;br /&gt;
&lt;pre class="java" name="code"&gt;Pas-Apicellas-MacBook-Pro:quickstart-client papicella$ jython gemfire-caching-proxy-client.jy 
*********************************
GemFire 6.6 Example from JYTHON
*********************************
Started at Mon Nov 14 08:02:06 EST 2011

[info 2011/11/14 08:02:07.033 EST &amp;lt;main&amp;gt; tid=0x1] 

...

  udp-recv-buffer-size="1048576"
  udp-send-buffer-size="65535"
  writable-working-dir=""
  

[info 2011/11/14 08:02:07.045 EST &amp;lt;main&amp;gt; tid=0x1] Running in local mode since mcast-port was 0 and locators was empty.

[info 2011/11/14 08:02:07.113 EST &amp;lt;Thread-3 StatSampler&amp;gt; tid=0x15] Disabling statistic archival.

[info 2011/11/14 08:02:07.380 EST &amp;lt;poolTimer-client-2&amp;gt; tid=0x1a] AutoConnectionSource discovered new locators [/10.117.85.62:41111]

[config 2011/11/14 08:02:07.381 EST &amp;lt;main&amp;gt; tid=0x1] Updating membership port.  Port changed from 0 to 49,335.

[config 2011/11/14 08:02:07.443 EST &amp;lt;main&amp;gt; tid=0x1] Pool client started with multiuser-authentication=false

[info 2011/11/14 08:02:07.444 EST &amp;lt;main&amp;gt; tid=0x1] Overridding MemoryPoolMXBean heap threshold bytes 0 on pool CMS Old Gen with 352,321,536

[info 2011/11/14 08:02:07.447 EST &amp;lt;main&amp;gt; tid=0x1] Overridding MemoryPoolMXBean heap threshold bytes 352,321,536 on pool CMS Old Gen with 352,321,536

[info 2011/11/14 08:02:07.447 EST &amp;lt;Cache Client Updater Thread  on Pas-Apicellas-MacBook-Pro(434)&amp;lt;v2&amp;gt;:38304/49301&amp;gt; tid=0x1c] Cache Client Updater Thread  on Pas-Apicellas-MacBook-Pro(434)&amp;lt;v2&amp;gt;:38304/49301 (10.117.85.62:49311) : ready to process messages.

[config 2011/11/14 08:02:07.527 EST &amp;lt;main&amp;gt; tid=0x1] Cache initialized using "jar:file:/Users/papicella/vmware/scripting/demos/jython/gemfire/quickstart-client/lib/gemfire-quickstart.jar!/client.xml".

** All OBJECTS with owner = 'SCOTT'

Entry  1  :  AllDBObject [owner=SCOTT, objectName=BONUS, objectId=74213, objectType=TABLE, status=VALID]
Entry  2  :  AllDBObject [owner=SCOTT, objectName=SALGRADE, objectId=74214, objectType=TABLE, status=VALID]
Entry  3  :  AllDBObject [owner=SCOTT, objectName=PK_EMP, objectId=74212, objectType=INDEX, status=VALID]
Entry  4  :  AllDBObject [owner=SCOTT, objectName=PK_DEPT, objectId=74210, objectType=INDEX, status=VALID]
Entry  5  :  AllDBObject [owner=SCOTT, objectName=DEPT, objectId=74209, objectType=TABLE, status=VALID]
Entry  6  :  AllDBObject [owner=SCOTT, objectName=EMP, objectId=74211, objectType=TABLE, status=VALID]
Entry  7  :  AllDBObject [owner=SCOTT, objectName=JDBC_BATCH_TABLE, objectId=75753, objectType=TABLE, status=VALID]

[info 2011/11/14 08:02:07.742 EST &amp;lt;main&amp;gt; tid=0x1] GemFireCache[id = 1069736291; isClosing = true; created = Mon Nov 14 08:02:07 EST 2011; server = false; copyOnRead = false; lockLease = 120; lockTimeout = 60]: Now closing.

[info 2011/11/14 08:02:07.771 EST &amp;lt;main&amp;gt; tid=0x1] Resetting original MemoryPoolMXBean heap threshold bytes 0 on pool CMS Old Gen

[config 2011/11/14 08:02:07.803 EST &amp;lt;main&amp;gt; tid=0x1] Destroying connection pool client
Ended at Mon Nov 14 08:02:07 EST 2011  
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6527688743456205256-3790674848315793315?l=theblasfrompas.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/YnHlbRrK_r41vtHzjXhzXg5s_-I/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YnHlbRrK_r41vtHzjXhzXg5s_-I/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/YnHlbRrK_r41vtHzjXhzXg5s_-I/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YnHlbRrK_r41vtHzjXhzXg5s_-I/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/qAXZol-QRBw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/3790674848315793315/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=3790674848315793315" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/3790674848315793315?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/3790674848315793315?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/qAXZol-QRBw/accessing-gemfire-regions-from-jython.html" title="Accessing GemFire Regions from Jython" /><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/2011/11/accessing-gemfire-regions-from-jython.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0IDRX0yeyp7ImA9WhRTGE0.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-6827517867717608097</id><published>2011-11-09T12:19:00.000+11:00</published><updated>2011-11-09T12:19:34.393+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-09T12:19:34.393+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="JRuby" /><category scheme="http://www.blogger.com/atom/ns#" term="VFabric" /><category scheme="http://www.blogger.com/atom/ns#" term="GemFire" /><title>Accessing GemFire Regions from JRuby</title><content type="html">Here is a quick demo showing how easy it is to access GemFire regions from JRuby clients. It's assumed you have cache servers started and in this example the cache servers and JRuby client use a locator for connection. It's worth noting the JRuby client is setup as a PROXY client with no client side cache.&lt;br /&gt;
&lt;br /&gt;
Our cache server nodes use a config file as follows - &lt;b&gt;server.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 cache PUBLIC
    "-//GemStone Systems, Inc.//GemFire Declarative Caching 6.6//EN" 
"http://www.gemstone.com/dtd/cache6_6.dtd"&amp;gt;
&amp;lt;cache&amp;gt;
  &amp;lt;disk-store name="ds1" auto-compact="true" max-oplog-size="1024" queue-size="10000" time-interval="15"&amp;gt;
 &amp;lt;disk-dirs&amp;gt;
  &amp;lt;disk-dir dir-size="4096"&amp;gt;persistData&amp;lt;/disk-dir&amp;gt;
 &amp;lt;/disk-dirs&amp;gt;
  &amp;lt;/disk-store&amp;gt;
  &amp;lt;region name="AllObjectRegion"&amp;gt; 
    &amp;lt;region-attributes refid="PARTITION_PERSISTENT" disk-store-name="ds1"&amp;gt;
      &amp;lt;partition-attributes redundant-copies="1" /&amp;gt;
      &amp;lt;eviction-attributes&amp;gt;
        &amp;lt;lru-heap-percentage action="overflow-to-disk" /&amp;gt;
      &amp;lt;/eviction-attributes&amp;gt;
    &amp;lt;/region-attributes&amp;gt;
    &amp;lt;index name="ownerIdx"&amp;gt;
      &amp;lt;functional from-clause="/AllObjectRegion" expression="owner"/&amp;gt;
    &amp;lt;/index&amp;gt;
  &amp;lt;/region&amp;gt;
  &amp;lt;function-service&amp;gt;
 &amp;lt;function&amp;gt;
   &amp;lt;class-name&amp;gt;vmware.au.se.demo.SizeFunction&amp;lt;/class-name&amp;gt;
 &amp;lt;/function&amp;gt;
  &amp;lt;/function-service&amp;gt; 
  &amp;lt;resource-manager critical-heap-percentage="75" eviction-heap-percentage="65"/&amp;gt;
&amp;lt;/cache&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
Our JRuby client uses a client config as follows - &lt;b&gt;client.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 client-cache PUBLIC
    "-//GemStone Systems, Inc.//GemFire Declarative Caching 6.6//EN" 
"http://www.gemstone.com/dtd/cache6_6.dtd"&amp;gt; 
&amp;lt;client-cache&amp;gt;
 &amp;lt;pool name="client" subscription-enabled="true"&amp;gt;
     &amp;lt;locator host="localhost" port="41111"/&amp;gt;
 &amp;lt;/pool&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="AllObjectRegion"&amp;gt;
  &amp;lt;region-attributes refid="PROXY" /&amp;gt;
    &amp;lt;/region&amp;gt;
    &amp;lt;resource-manager critical-heap-percentage="75" eviction-heap-percentage="65"/&amp;gt;
&amp;lt;/client-cache&amp;gt; 
&lt;/pre&gt;&lt;br /&gt;
Our JRuby code is as follows - &lt;b&gt;gemfire-caching-proxy-client.rb&lt;/b&gt;&lt;br /&gt;
&lt;pre class="ruby" name="code"&gt;require 'java'
require File.dirname(__FILE__) + '/lib/gemfire.jar'
require File.dirname(__FILE__) + '/lib/antlr.jar'
require File.dirname(__FILE__) + '/lib/gemfire-quickstart.jar'

import java.util.Collection;
import java.util.Iterator;

import "vmware.au.se.demo.domain.AllDBObject";

import com.gemstone.gemfire.cache.Region;
import com.gemstone.gemfire.cache.client.ClientCache;
import com.gemstone.gemfire.cache.client.ClientCacheFactory;
import com.gemstone.gemfire.cache.query.Query;
import com.gemstone.gemfire.cache.query.QueryService;
import com.gemstone.gemfire.cache.query.SelectResults;

puts "*********************************************************"
puts "GemFire 6.6 Proxy Client Example from JRUBY"
puts "*********************************************************"

print "Started at ", Time.now, "\n"

begin

 ccf = ClientCacheFactory.new
 ccf.set("cache-xml-file", "client.xml")
 cache = ccf.create
 
 allObjectRegion = cache.getRegion("AllObjectRegion")
 queryService = cache.getQueryService
 
 query = queryService.newQuery("SELECT * FROM /AllObjectRegion where owner = 'SCOTT'")
 print "\n** All OBJECTS with owner = 'SCOTT'\n"
 
 result = query.execute
 collection = result.asList
 iter = collection.iterator
 i = 0
 
 while iter.hasNext
   i = i + 1
   entry = iter.next
   print "Entry ", i , " : " , entry , " \n"
   
 end
 
    cache.close
    
rescue 
  print "\n** Error occured **\n"
  print "Failed to obtian data from gemfire region ", $!, "\n\n"
  
end

print "\nEnded at ", Time.now, "\n"
&lt;/pre&gt;&lt;br /&gt;
&lt;u&gt;Output as follows&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #e69138;"&gt;Note: Some of the gemfire output is omitted to make it a little more readable.&lt;/div&gt;&lt;br /&gt;
&lt;pre class="java" name="code"&gt;Pas-Apicellas-MacBook-Pro:quickstart-client papicella$ jruby gemfire-caching-proxy-client.rb 
*********************************************************
GemFire 6.6 Proxy Client Example from JRUBY
*********************************************************
Started at Wed Nov 09 12:10:29 +1100 2011

[info 2011/11/09 12:10:29.319 EST &amp;lt;main&amp;gt; tid=0x1] 
  ---------------------------------------------------------------------------
  
....

  udp-recv-buffer-size="1048576"
  udp-send-buffer-size="65535"
  writable-working-dir=""
  

[info 2011/11/09 12:10:29.335 EST &amp;lt;main&amp;gt; tid=0x1] Running in local mode since mcast-port was 0 and locators was empty.

[info 2011/11/09 12:10:29.392 EST &amp;lt;Thread-1 StatSampler&amp;gt; tid=0xf] Disabling statistic archival.

[info 2011/11/09 12:10:29.645 EST &amp;lt;poolTimer-client-2&amp;gt; tid=0x14] AutoConnectionSource discovered new locators [/10.117.85.62:41111]

[config 2011/11/09 12:10:29.646 EST &amp;lt;poolTimer-client-3&amp;gt; tid=0x15] Updating membership port.  Port changed from 0 to 50,522.

[config 2011/11/09 12:10:29.669 EST &amp;lt;main&amp;gt; tid=0x1] Pool client started with multiuser-authentication=false

[info 2011/11/09 12:10:29.671 EST &amp;lt;main&amp;gt; tid=0x1] Overridding MemoryPoolMXBean heap threshold bytes 0 on pool CMS Old Gen with 344,064,000

[info 2011/11/09 12:10:29.673 EST &amp;lt;main&amp;gt; tid=0x1] Overridding MemoryPoolMXBean heap threshold bytes 344,064,000 on pool CMS Old Gen with 344,064,000

[info 2011/11/09 12:10:29.673 EST &amp;lt;Cache Client Updater Thread  on Pas-Apicellas-MacBook-Pro(2183)&amp;lt;v2&amp;gt;:37232/49977&amp;gt; tid=0x16] Cache Client Updater Thread  on Pas-Apicellas-MacBook-Pro(2183)&amp;lt;v2&amp;gt;:37232/49977 (10.117.85.62:49987) : ready to process messages.

[config 2011/11/09 12:10:29.753 EST &amp;lt;main&amp;gt; tid=0x1] Cache initialized using "jar:file:/Users/papicella/vmware/scripting/demos/jruby/gemfire/quickstart-client/./lib/gemfire-quickstart.jar!/client.xml".

** All OBJECTS with owner = 'SCOTT'
Entry 1 : AllDBObject [owner=SCOTT, objectName=EMP, objectId=74211, objectType=TABLE, status=VALID] 
Entry 2 : AllDBObject [owner=SCOTT, objectName=PK_EMP, objectId=74212, objectType=INDEX, status=VALID] 
Entry 3 : AllDBObject [owner=SCOTT, objectName=JDBC_BATCH_TABLE, objectId=75753, objectType=TABLE, status=VALID] 
Entry 4 : AllDBObject [owner=SCOTT, objectName=PK_DEPT, objectId=74210, objectType=INDEX, status=VALID] 
Entry 5 : AllDBObject [owner=SCOTT, objectName=BONUS, objectId=74213, objectType=TABLE, status=VALID] 
Entry 6 : AllDBObject [owner=SCOTT, objectName=SALGRADE, objectId=74214, objectType=TABLE, status=VALID] 
Entry 7 : AllDBObject [owner=SCOTT, objectName=DEPT, objectId=74209, objectType=TABLE, status=VALID] 

[info 2011/11/09 12:10:29.962 EST &amp;lt;main&amp;gt; tid=0x1] GemFireCache[id = 1691463635; isClosing = true; created = Wed Nov 09 12:10:29 EST 2011; server = false; copyOnRead = false; lockLease = 120; lockTimeout = 60]: Now closing.

[info 2011/11/09 12:10:29.986 EST &amp;lt;main&amp;gt; tid=0x1] Resetting original MemoryPoolMXBean heap threshold bytes 0 on pool CMS Old Gen

[config 2011/11/09 12:10:30.015 EST &amp;lt;main&amp;gt; tid=0x1] Destroying connection pool client

Ended at Wed Nov 09 12:10:30 +1100 2011  
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6527688743456205256-6827517867717608097?l=theblasfrompas.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/d_ePavElTKyVzgX99sw1u7YUzIo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/d_ePavElTKyVzgX99sw1u7YUzIo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/d_ePavElTKyVzgX99sw1u7YUzIo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/d_ePavElTKyVzgX99sw1u7YUzIo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/qd9C-mBU-JU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/6827517867717608097/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=6827517867717608097" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/6827517867717608097?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/6827517867717608097?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/qd9C-mBU-JU/accessing-gemfire-regions-from-jruby.html" title="Accessing GemFire Regions from JRuby" /><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/2011/11/accessing-gemfire-regions-from-jruby.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YBQH08cCp7ImA9WhRTFk4.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-6174308936501220251</id><published>2011-11-07T15:12:00.000+11:00</published><updated>2011-11-07T15:12:31.378+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-07T15:12:31.378+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="VFabric" /><category scheme="http://www.blogger.com/atom/ns#" term="JMX" /><category scheme="http://www.blogger.com/atom/ns#" term="GemFire" /><title>Viewing All MBeans for a GemFire Cluster</title><content type="html">In order to view all the MBeans available in a GemFire cluster you could write a simple console client application as follows. This will extract all the MBeans by name and hence work out which one you want to take a look at.&lt;br /&gt;
&lt;br /&gt;
1. First we need to start a JMX agent. The JMX Agent can be run as a separate, “invisible” distributed system member, or it can be collocated in an application. The JMX Agent manages only a single distributed system.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Here we use a located to join the distributed system&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #3d85c6;"&gt;&amp;gt; agent start -J-Xmx550m -dir=agent mcast-port=0 locators=localhost[41111]&lt;/div&gt;&lt;br /&gt;
2. By default the JMX service URL is as follows&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #3d85c6;"&gt;service:jmx:rmi://{agent-host}/jndi/rmi://:{agent-port}/jmxconnector&lt;/div&gt;&lt;br /&gt;
3. Write a Java Client as follows&lt;br /&gt;
&lt;pre class="java" name="code"&gt;package pas.au.gemfire.jmx;

import java.io.IOException;
import java.net.MalformedURLException;
import java.util.Set;

import javax.management.MBeanServerConnection;
import javax.management.ObjectName;
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;

public class ShowAllMBeans 
{
    /** The JMX client connector */
    private JMXConnector jmxConnector;

    /** The JMX MBean server connection */
    private MBeanServerConnection mbs;
    
    public void run()
    {
     String urlString = "service:jmx:rmi://localhost/jndi/rmi://:1099/jmxconnector";
     JMXServiceURL url = null;
     
     try 
     {
   url = new JMXServiceURL(urlString);
   jmxConnector = JMXConnectorFactory.connect(url);
   mbs = jmxConnector.getMBeanServerConnection();
   
   // show all MBeans here...
   Set&amp;lt;ObjectName&amp;gt; mbeans = mbs.queryNames(null, null);
   System.out.println(mbeans.size() + " MBeans found\n");
      for (ObjectName mbeanName : mbeans) 
      {
          System.out.println("-&amp;gt; " + mbeanName);
      }   
   
  } 
     catch (MalformedURLException e) 
     {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } 
     catch (IOException e) 
     {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
     finally
     {
      disconnectFromAgent();
     }
     
     System.out.println("all done...");
    }

 private void disconnectFromAgent()
 {
     if(this.jmxConnector != null) 
     {
       try 
       {
   this.jmxConnector.close();
       } 
       catch (IOException e) 
       {
   // TODO Auto-generated catch block
   e.printStackTrace();
       }
     }
 }
 
 /**
  * @param args
  */
 public static void main(String[] args) 
 {
  // TODO Auto-generated method stub
  ShowAllMBeans test = new ShowAllMBeans();
  test.run();
 }

}
&lt;/pre&gt;&lt;br /&gt;
4. Output as follows&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;292 MBeans found&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;-&amp;gt; GemFire.Statistic:source=10.117.85.62(23883)&lt;v2&gt;-32249/50418,type=IndexStats,name=ownerIdx,uid=130&lt;/v2&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;-&amp;gt; GemFire.Statistic:source=10.117.85.62(23883)&lt;v2&gt;-32249/50418,type=IndexStats,name=ownerIdx,uid=131&lt;/v2&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;-&amp;gt; GemFire.Statistic:source=10.117.85.62(23883)&lt;v2&gt;-32249/50418,type=IndexStats,name=ownerIdx,uid=132&lt;/v2&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;-&amp;gt; GemFire.Statistic:source=10.117.85.62(23883)&lt;v2&gt;-32249/50418,type=IndexStats,name=ownerIdx,uid=133&lt;/v2&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;-&amp;gt; GemFire.Statistic:source=10.117.85.62(23883)&lt;v2&gt;-32249/50418,type=IndexStats,name=ownerIdx,uid=134&lt;/v2&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;-&amp;gt; GemFire.Statistic:source=10.117.85.62(23883)&lt;v2&gt;-32249/50418,type=IndexStats,name=ownerIdx,uid=135&lt;/v2&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;-&amp;gt; GemFire.Statistic:source=10.117.85.62(23876)&lt;v1&gt;-41281/50410,type=IndexStats,name=ownerIdx,uid=115&lt;/v1&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;-&amp;gt; GemFire.Statistic:source=10.117.85.62(23876)&lt;v1&gt;-41281/50410,type=IndexStats,name=ownerIdx,uid=116&lt;/v1&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;-&amp;gt; GemFire.Statistic:source=10.117.85.62(23876)&lt;v1&gt;-41281/50410,type=IndexStats,name=ownerIdx,uid=113&lt;/v1&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;-&amp;gt; GemFire.Statistic:source=10.117.85.62(23876)&lt;v1&gt;-41281/50410,type=IndexStats,name=ownerIdx,uid=114&lt;/v1&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;-&amp;gt; GemFire.Statistic:source=10.117.85.62(23876)&lt;v1&gt;-41281/50410,type=IndexStats,name=ownerIdx,uid=111&lt;/v1&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;-&amp;gt; GemFire.Statistic:source=10.117.85.62(23876)&lt;v1&gt;-41281/50410,type=IndexStats,name=ownerIdx,uid=112&lt;/v1&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;-&amp;gt; GemFire.Statistic:source=10.117.85.62(23883)&lt;v2&gt;-32249/50418,type=DLockStats,name=dlockStats,uid=18&lt;/v2&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;-&amp;gt; connectors:protocol=rmi&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;-&amp;gt; GemFire.Statistic:source=10.117.85.62(23876)&lt;v1&gt;-41281/50410,type=IndexStats,name=ownerIdx,uid=110&lt;/v1&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;-&amp;gt; GemFire.Statistic:source=10.117.85.62(23876)&lt;v1&gt;-41281/50410,type=IndexStats,name=ownerIdx,uid=119&lt;/v1&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;-&amp;gt; GemFire.Statistic:source=10.117.85.62(23876)&lt;v1&gt;-41281/50410,type=IndexStats,name=ownerIdx,uid=117&lt;/v1&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;-&amp;gt; GemFire.Statistic:source=10.117.85.62(23876)&lt;v1&gt;-41281/50410,type=IndexStats,name=ownerIdx,uid=118&lt;/v1&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;-&amp;gt; GemFire.Statistic:source=10.117.85.62(23876)&lt;v1&gt;-41281/50410,type=VMMemoryPoolStats,name=Par Eden Space-Heap memory,uid=7&lt;/v1&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;-&amp;gt; GemFire.Statistic:source=10.117.85.62(23876)&lt;v1&gt;-41281/50410,type=DiskRegionStatistics,name=/AllObjectRegion,uid=20&lt;/v1&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;-&amp;gt; GemFire:type=MemberInfoWithStatsMBean&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;-&amp;gt; GemFire.Cache:name=default,id=1558631662,owner=10.117.85.62(23876)&lt;v1&gt;-41281/50410,type=Cache&lt;/v1&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;-&amp;gt; GemFire.Statistic:source=10.117.85.62(23876)&lt;v1&gt;-41281/50410,type=DLockStats,name=dlockStats,uid=18&lt;/v1&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;-&amp;gt; GemFire.Statistic:source=10.117.85.62(23876)&lt;v1&gt;-41281/50410,type=VMStats,name=vmStats,uid=3&lt;/v1&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;-&amp;gt; GemFire.Statistic:source=10.117.85.62(23876)&lt;v1&gt;-41281/50410,type=IndexStats,name=ownerIdx,uid=102&lt;/v1&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
For more information on using JMX to administer GemFire see the link below.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.gemstone.com/docs/html/gemfire/6.0.0/SystemAdministratorsGuide/JMX.9.1.html"&gt;http://www.gemstone.com/docs/html/gemfire/6.0.0/SystemAdministratorsGuide/JMX.9.1.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6527688743456205256-6174308936501220251?l=theblasfrompas.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jNKV6AoalnDjrNIZV4DKt2E8tXc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jNKV6AoalnDjrNIZV4DKt2E8tXc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jNKV6AoalnDjrNIZV4DKt2E8tXc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jNKV6AoalnDjrNIZV4DKt2E8tXc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/BzAnRTF_sSw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/6174308936501220251/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=6174308936501220251" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/6174308936501220251?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/6174308936501220251?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/BzAnRTF_sSw/viewing-all-mbeans-for-gemfire-cluster.html" title="Viewing All MBeans for a GemFire Cluster" /><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/2011/11/viewing-all-mbeans-for-gemfire-cluster.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08BQHo_fCp7ImA9WhdUFkU.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-5870689560784180585</id><published>2011-10-04T10:50:00.000+11:00</published><updated>2011-10-04T10:50:51.444+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-04T10:50:51.444+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="VMware" /><category scheme="http://www.blogger.com/atom/ns#" term="VFabric" /><title>VMware vFabric - my new world</title><content type="html">Just recently I joined VMware vFabric System Engineering Team. So my new life will center around the following products.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.vmware.com/go/vfabric/"&gt;vFabric Product Family&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.vmware.com/go/gemfire"&gt;GemFire&lt;/a&gt; - memory-oriented data management&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.vmware.com/go/sqlfire"&gt;SQLFire&lt;/a&gt; - fast, scalable SQL data in the cloud&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.vmware.com/go/tcserver"&gt;tc Server&lt;/a&gt; - lightweight Spring Java application server&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.vmware.com/go/rabbitmq"&gt;RabbitMQ&lt;/a&gt; - messaging that just works&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.vmware.com/go/hyperic"&gt;Hyperic&lt;/a&gt; - comprehensive server monitoring&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.vmware.com/go/webserver"&gt;Web Server&lt;/a&gt; - fast &amp;amp; secure Apache HTTP server&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.vmware.com/go/ers"&gt;ERS&lt;/a&gt; - fast &amp;amp; secure Apache HTTP server&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
So in short this blog will continue but will focus on VMware - vFabric Cloud Application Platform&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6527688743456205256-5870689560784180585?l=theblasfrompas.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/rfeQhrH9wZlYISyDDwkDL3QmxUs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rfeQhrH9wZlYISyDDwkDL3QmxUs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/rfeQhrH9wZlYISyDDwkDL3QmxUs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rfeQhrH9wZlYISyDDwkDL3QmxUs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/QLiwl-exYVI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/5870689560784180585/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=5870689560784180585" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/5870689560784180585?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/5870689560784180585?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/QLiwl-exYVI/vmware-vfabric-my-new-world.html" title="VMware vFabric - my new world" /><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/2011/10/vmware-vfabric-my-new-world.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QMQ38zcCp7ImA9WhdWE0Q.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-6385621342836407347</id><published>2011-09-07T22:34:00.002+10:00</published><updated>2011-09-07T22:43:02.188+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-07T22:43:02.188+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Oracle JDBC" /><category scheme="http://www.blogger.com/atom/ns#" term="Spring" /><title>Batch Inserting using Spring JDBC (JdbcTemplate)</title><content type="html">In this small example we use the classic JdbcTemplate to complete batch processing with the Oracle JDBC driver. Although we could simply use SimpleJdbcTemplate and write less code this one just seems more natural to me. The code is assuming insertion of new records here.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Table definition&lt;/b&gt;&lt;br /&gt;
&lt;pre class="sql" name="code"&gt;drop table jdbc_batch_table;

create table jdbc_batch_table
(message_id number primary key,
 message_type varchar2(1),
 message varchar2(100))
/

purge recyclebin;

exit;
&lt;/pre&gt;&lt;br /&gt;
&lt;b&gt;Spring DAO - JdbcBatchDAOImpl&lt;/b&gt;&lt;br /&gt;
&lt;pre class="java" name="code"&gt;package pas.au.gemfire.demo.cachewriter.dao.jdbcbatch;

import java.math.BigDecimal;

import java.sql.PreparedStatement;

import java.sql.SQLException;

import java.util.List;

import java.util.logging.Level;
import java.util.logging.Logger;

import javax.sql.DataSource;

import org.springframework.jdbc.core.BatchPreparedStatementSetter;
import org.springframework.jdbc.core.JdbcTemplate;

public class JdbcBatchDAOImpl implements JdbcBatchDAO
{
  private Logger logger = Logger.getLogger(this.getClass().getSimpleName());
  
  private JdbcTemplate jdbcTemplate;

  public void setDataSource(DataSource dataSource)
  {
    this.jdbcTemplate = new JdbcTemplate(dataSource);
  }
  
  @Override
  public void storeBatch(final List&amp;lt;JdbcBatch&amp;gt; jdbcBatchEntries)
  {

    int[] updateCounts = 
     jdbcTemplate.batchUpdate
      (Constants.INSERT_SQL,
       new BatchPreparedStatementSetter() 
       {
          public void setValues(PreparedStatement ps, int i) throws SQLException 
          {
              ps.setBigDecimal(1, new BigDecimal(jdbcBatchEntries.get(i).getMessageId().toString()));
              ps.setString(2, jdbcBatchEntries.get(i).getMessageType());
              ps.setString(3, jdbcBatchEntries.get(i).getMessage());
          }
          
          public int getBatchSize() 
          {
            return jdbcBatchEntries.size();                  
          }
        }
      );
    
    logger.log (Level.INFO, 
                String.format("Inserted %s records using spring jdbc batching", updateCounts.length));
  }
}
&lt;/pre&gt;&lt;br /&gt;
&lt;b&gt;Constants Interface&lt;/b&gt;&lt;br /&gt;
&lt;pre class="java" name="code"&gt;package pas.au.gemfire.demo.cachewriter.dao.jdbcbatch;

public interface Constants
{
  public final String INSERT_SQL = "insert into jdbc_batch_table values (:1, :2, :3)";
}  
&lt;/pre&gt;&lt;br /&gt;
&lt;i&gt;&lt;b&gt;Output showing the insertion of 100 records at a time&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Sep 7, 2011 10:03:43 PM pas.au.gemfire.demo.cachewriter.dao.jdbcbatch.JdbcBatchDAOImpl storeBatch&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;INFO: Inserted 100 records using spring jdbc batching&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Sep 7, 2011 10:03:43 PM pas.au.gemfire.demo.cachewriter.DBGatewayListener processEvents&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;INFO: Size of DBGatewayListener = 100&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Sep 7, 2011 10:03:43 PM pas.au.gemfire.demo.cachewriter.dao.jdbcbatch.JdbcBatchDAOImpl storeBatch&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;INFO: Inserted 100 records using spring jdbc batching&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Sep 7, 2011 10:03:43 PM pas.au.gemfire.demo.cachewriter.DBGatewayListener processEvents&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;INFO: Size of DBGatewayListener = 100&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Sep 7, 2011 10:03:43 PM pas.au.gemfire.demo.cachewriter.dao.jdbcbatch.JdbcBatchDAOImpl storeBatch&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;INFO: Inserted 100 records using spring jdbc batching&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Sep 7, 2011 10:03:43 PM pas.au.gemfire.demo.cachewriter.DBGatewayListener processEvents&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;INFO: Size of DBGatewayListener = 100&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Sep 7, 2011 10:03:44 PM pas.au.gemfire.demo.cachewriter.dao.jdbcbatch.JdbcBatchDAOImpl storeBatch&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;INFO: Inserted 100 records using spring jdbc batching&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Sep 7, 2011 10:03:44 PM pas.au.gemfire.demo.cachewriter.DBGatewayListener processEvents&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;INFO: Size of DBGatewayListener = 100&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Sep 7, 2011 10:03:44 PM pas.au.gemfire.demo.cachewriter.dao.jdbcbatch.JdbcBatchDAOImpl storeBatch&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;INFO: Inserted 100 records using spring jdbc batching&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&lt;span style="color: black;"&gt;More info on Spring JDBC can be found here.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&lt;a href="http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/jdbc.html%20"&gt;&lt;span style="color: black;"&gt;http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/jdbc.html&amp;nbsp;&lt;/span&gt;&lt;/a&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6527688743456205256-6385621342836407347?l=theblasfrompas.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8fLIxnuvvRIzpMU4Pw1tPT3DxOA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8fLIxnuvvRIzpMU4Pw1tPT3DxOA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8fLIxnuvvRIzpMU4Pw1tPT3DxOA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8fLIxnuvvRIzpMU4Pw1tPT3DxOA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/vYiVVqBrr_M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/6385621342836407347/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=6385621342836407347" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/6385621342836407347?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/6385621342836407347?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/vYiVVqBrr_M/batch-inserting-using-spring-jdbc.html" title="Batch Inserting using Spring JDBC (JdbcTemplate)" /><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/2011/09/batch-inserting-using-spring-jdbc.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIHQ3syeyp7ImA9WhdQE0s.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-5372187378054210027</id><published>2011-08-15T08:55:00.001+10:00</published><updated>2011-08-15T08:55:32.593+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-15T08:55:32.593+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="UCP" /><category scheme="http://www.blogger.com/atom/ns#" term="Oracle JDBC" /><category scheme="http://www.blogger.com/atom/ns#" term="Spring" /><title>Using Oracle Universal Connection Pool with Spring from JDeveloper 11.1.2</title><content type="html">In this example we simply setup Oracle UCP to be used by Spring from JDeveloper 11g 11.1.2. When using read write backing maps with Oracle Coherence that are using a back end database such as RAC it's UCP RAC integration which makes this UCP the ideal choice. In this example we are just using a single instance Oracle database but can easily add the FCF properties required for UCP.&lt;br /&gt;
&lt;br /&gt;
1. Create a spring framework beans.xml file as follows&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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
                           http://www.springframework.org/schema/beans/spring-beans.xsd"&amp;gt;
    &amp;lt;bean id="ucpDataSource" class="oracle.ucp.jdbc.PoolDataSourceFactory" factory-method="getPoolDataSource"&amp;gt;
      &amp;lt;property name="URL" value="jdbc:oracle:thin:@beast.au.oracle.com:1524/linux11gr2" /&amp;gt;
      &amp;lt;property name="user" value="scott" /&amp;gt;
      &amp;lt;property name="password" value="tiger" /&amp;gt;
      &amp;lt;property name="connectionFactoryClassName" value="oracle.jdbc.pool.OracleDataSource" /&amp;gt;
      &amp;lt;property name="connectionPoolName" value="TEST_POOL" /&amp;gt;
      &amp;lt;property name="minPoolSize" value="1" /&amp;gt;
      &amp;lt;property name="maxPoolSize" value="10" /&amp;gt;
      &amp;lt;property name="initialPoolSize" value="1" /&amp;gt;
    &amp;lt;/bean&amp;gt;
    
  &amp;lt;bean id="ucpJDBCTest" class="pas.au.spring.demo.ucp.test.TestJDBC"&amp;gt;
    &amp;lt;property name="dataSource" ref="ucpDataSource"/&amp;gt;
  &amp;lt;/bean&amp;gt;
  
&amp;lt;/beans&amp;gt; 
&lt;/pre&gt;&lt;br /&gt;
2. Add the required libraries to the project&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/-l0mQ-8OiWg0/TkhQyXqgTXI/AAAAAAAAAH4/mB_eaHQ0JXw/s1600/image1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="201" src="http://4.bp.blogspot.com/-l0mQ-8OiWg0/TkhQyXqgTXI/AAAAAAAAAH4/mB_eaHQ0JXw/s320/image1.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
3. Create the TestJDBC class as follows&lt;br /&gt;
&lt;pre class="java" name="code"&gt;package pas.au.spring.demo.ucp.test;

import javax.sql.DataSource;

import org.springframework.jdbc.core.JdbcTemplate;

public class TestJDBC
{
  private JdbcTemplate jdbcTemplate;

  public void setDataSource(DataSource dataSource)
  {
    this.jdbcTemplate = new JdbcTemplate(dataSource);
  }
  
  public void insertDept()
  {
    /**
     * Specify the insert values 
     */
    jdbcTemplate.update("insert into dept values (:1, :2, :3)", 
                        new Object[] 
                        { 
                          Integer.valueOf(89),
                          "Pas", 
                          "Spring"
                        });
  }
}
&lt;/pre&gt;&lt;br /&gt;
4. Create Main test class as follows.&lt;br /&gt;
&lt;pre class="java" name="code"&gt;package pas.au.spring.demo.ucp.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Main
{
  public static void main(String[] args)
  {
    ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
    TestJDBC testJDBC = (TestJDBC) context.getBean("ucpJDBCTest");
    testJDBC.insertDept();
    System.out.println("all done..");
  }
}
&lt;/pre&gt;&lt;br /&gt;
5. Run and verify output as follows&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #3d85c6;"&gt;Aug 15, 2011 8:52:42 AM org.springframework.context.support.AbstractApplicationContext prepareRefresh&lt;/div&gt;&lt;div style="color: #3d85c6;"&gt;INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@b753f8: startup date [Mon Aug 15 08:52:42 EST 2011]; root of context hierarchy&lt;/div&gt;&lt;div style="color: #3d85c6;"&gt;Aug 15, 2011 8:52:42 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions&lt;/div&gt;&lt;div style="color: #3d85c6;"&gt;INFO: Loading XML bean definitions from class path resource [beans.xml]&lt;/div&gt;&lt;div style="color: #3d85c6;"&gt;Aug 15, 2011 8:52:43 AM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons&lt;/div&gt;&lt;div style="color: #3d85c6;"&gt;INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@3411a: defining beans [ucpDataSource,ucpJDBCTest]; root of factory hierarchy&lt;/div&gt;&lt;div style="color: #3d85c6;"&gt;all done..&lt;/div&gt;&lt;br /&gt;
6. Verify insertion from SQL*Plus&lt;br /&gt;
&lt;pre class="sql" name="code"&gt;c:\temp&amp;gt;sqlplus scott/tiger@linux11gr2

SQL*Plus: Release 11.2.0.1.0 Production on Mon Aug 15 08:53:31 2011

Copyright (c) 1982, 2010, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL&amp;gt; select * from dept;

    DEPTNO DNAME          LOC
---------- -------------- -------------
        50 MARKETING      MELBOURNE
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON
        89 Pas            Spring

6 rows selected.
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6527688743456205256-5372187378054210027?l=theblasfrompas.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zKEZJ7v2gNplM_tXpU_koVl2Jbw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zKEZJ7v2gNplM_tXpU_koVl2Jbw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zKEZJ7v2gNplM_tXpU_koVl2Jbw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zKEZJ7v2gNplM_tXpU_koVl2Jbw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/JawU-PthuI4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/5372187378054210027/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=5372187378054210027" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/5372187378054210027?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/5372187378054210027?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/JawU-PthuI4/using-oracle-universal-connection-pool.html" title="Using Oracle Universal Connection Pool with Spring from JDeveloper 11.1.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><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-l0mQ-8OiWg0/TkhQyXqgTXI/AAAAAAAAAH4/mB_eaHQ0JXw/s72-c/image1.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2011/08/using-oracle-universal-connection-pool.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YAQHY9fip7ImA9WhdRFEs.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-543085347182958530</id><published>2011-08-03T15:35:00.026+10:00</published><updated>2011-08-04T22:32:21.866+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-04T22:32:21.866+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="IB" /><category scheme="http://www.blogger.com/atom/ns#" term="Oracle JDBC" /><category scheme="http://www.blogger.com/atom/ns#" term="Exalogic" /><category scheme="http://www.blogger.com/atom/ns#" term="Exadata" /><title>Setting up Exalogic using IB with SDP enabled Data Sources to Exadata</title><content type="html">Got the opportunity to setup a 1/2 RACK EL (Exalogic) with a 1/2 RACK ED (Exadata). My role was to setup the EL RACK and configure WebLogic and Coherence and also TCP/SDP GridLink Data Sources. Here I will document the process of how we setup our GridLink Data Sources to use SDP enabled listener to take advantage of the IB and the 40G link between the 2 RACKS.&lt;br /&gt;
&lt;br /&gt;
A Grid Link Data Source is the JDBC connectivity between Oracle WebLogic Server and a service targeted to an Oracle RAC cluster. It uses the Oracle Notification Service (ONS) to adaptively respond to state changes in an Oracle RAC instance.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;Enable SDP on the DB Nodes&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
1. Edit the &lt;b&gt;/etc/infiniband/openib.conf&lt;/b&gt; and set the following.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;SDP_LOAD=yes&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
2. Edit the &lt;b&gt;/etc/ofed/libsdp.conf&lt;/b&gt; and change the following two lines at the bottom.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; use tcp server * *:*&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; use tcp client * *:*&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
3. Edit the &lt;b&gt;/etc/modprobe.conf&lt;/b&gt; file and add these settings.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;options ib_sdp sdp_zcopy_thresh=0 recv_poll=0&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
4. Reboot all database nodes for the changes to take effect. &lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;Create a Listener on the IB Network&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
1. Edit /etc/hosts on each node in the cluster to add the virtual ip addresses you will use for the infiniband network. Make sure that these IP addresses are not used.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;172.19.2.21&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xx-ibvip.int.corp.sun&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xx-ibvip&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;172.19.2.22&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; yy-ibvip.int.corp.sun&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; yy-ibvip&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #f1c232;"&gt;Note: These entries must be replicated on each WLS compute node which will be using SDP enabled data sources.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
2. On one of the database nodes, as the root user create a network resource for the IB network.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;$ /u01/app/grid/product/11.2.0.2/bin/srvctl add network -k 2 -S 172.19.0.0/255.255.252.0/bondib0&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
3. Validate that the network was added correctly, by running one of the following commands:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;$ /u01/app/grid/product/11.2.0.2/bin/crsctl stat res -t | grep net&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;ora.net1.network&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;ora.net2.network&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;$ /u01/app/grid/product/11.2.0.2/bin/srvctl config network -k 2&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Network exists: 2/172.19.0.0/255.255.252.0/bondib0, type static&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
4. Add the Virtual IP addresses on the network created as 2 for each node in the cluster.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #3d85c6;"&gt;$ /u01/app/grid/product/11.2.0.2/bin/srvctl add vip -n edd1db03 -A xx-ibvip/255.255.252.0/bondib0 -k 2&lt;/div&gt;&lt;span style="color: #3d85c6;"&gt;$ /u01/app/grid/product/11.2.0.2/bin/srvctl add vip -n edd1db04 -A yy-ibvip/255.255.252.0/bondib0 -k 2&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
5. As the "oracle" user (who owns the Grid Infrastructure Home), add a listener which will listen on the VIP addresses created in step #3. Login as 'grid' user.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #3d85c6;"&gt;$ srvctl add listener -l LISTENER_IB -k 2 -p TCP:1522,/SDP:1522&lt;/div&gt;&lt;br /&gt;
6. Add the following entries in $ORACLE_HOME/network/admin/tnsnames.ora (RDBMS)&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #3d85c6;"&gt;&lt;b&gt;&lt;span style="color: black;"&gt;DB Node1&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
[smlora@edd1db03 admin]$ cat tnsnames.ora&lt;br /&gt;
&lt;br /&gt;
DBM =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = edracd1)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = &lt;span style="color: #3d85c6;"&gt;db_srv&lt;/span&gt;)))&lt;br /&gt;
&lt;br /&gt;
DBM_IB = (DESCRIPTION = (LOAD_BALANCE=on) (ADDRESS = (PROTOCOL = TCP)(HOST = xx-ibvip)(PORT = 1522)) (ADDRESS = (PROTOCOL = TCP)(HOST = yy-ibvip)(PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = db_srv)))&lt;br /&gt;
&lt;br /&gt;
LISTENER_IBREMOTE = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = yy-ibvip)(PORT = 1522))))&lt;br /&gt;
&lt;br /&gt;
LISTENER_IBLOCAL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = xx-ibvip)(PORT = 1522)) (ADDRESS = (PROTOCOL = SDP)(HOST = yy-ibvip)(PORT = 1522))))&lt;br /&gt;
&lt;br /&gt;
LISTENER_IPLOCAL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = xx-vip)(PORT = 1521))))&lt;br /&gt;
&lt;br /&gt;
LISTENER_IPREMOTE = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = edracd1)(PORT = 1521))))&lt;/div&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&lt;b&gt;&lt;span style="color: black;"&gt;DB Node2&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
[smlora@edd1db04 admin]$ cat tnsnames.ora&lt;br /&gt;
&lt;br /&gt;
DBM = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = edracd1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = &lt;/span&gt;&lt;span style="color: #3d85c6;"&gt;db_srv&lt;/span&gt;&lt;span style="color: #3d85c6;"&gt;)))&lt;br /&gt;
&lt;br /&gt;
DBM_IB = (DESCRIPTION = (LOAD_BALANCE=on) (ADDRESS = (PROTOCOL = TCP)(HOST = xx-ibvip)(PORT = 1522)) (ADDRESS = (PROTOCOL = TCP)(HOST = yy-ibvip)(PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = db_srv)))&lt;br /&gt;
&lt;br /&gt;
LISTENER_IBREMOTE = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = xx-ibvip)(PORT = 1522))))&lt;br /&gt;
&lt;br /&gt;
LISTENER_IBLOCAL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = yy-ibvip)(PORT = 1522)) (ADDRESS = (PROTOCOL = SDP)(HOST = yy-ibvip)(PORT = 1522))))&lt;br /&gt;
&lt;br /&gt;
LISTENER_IPLOCAL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = yy-vip)(PORT = 1521))))&lt;br /&gt;
&lt;br /&gt;
LISTENER_IPREMOTE = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = edracd1.int.corp.sun)(PORT = 1521))))&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
7. Modify the listener_networks init parameter. Connect to the database instance as sysdba and issue an SQL as follows. You only have to do this on one of the instances.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;$ SQL&amp;gt; alter system set listener_networks='((NAME=network2)&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;(LOCAL_LISTENER=LISTENER_IBLOCAL)(REMOTE_LISTENER=LISTENER_IBREMOTE))',&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;'((NAME=network1)(LOCAL_LISTENER=LISTENER_IPLOCAL)(REMOTE_LISTENER=LISTENER_IPREMOTE))' scope=both;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
8. Stop and start LISTENER_IB for the modification in 7.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #3d85c6;"&gt;$ srvctl stop listener -l LISTENER_IB&lt;/div&gt;&lt;div style="color: #3d85c6;"&gt;$ srvctl start listener -l LISTENER_IB&lt;/div&gt;&lt;br /&gt;
9. Verify output from GRID home of the status of the LISTENER_IB. This will confirm we have SDP setup correctly.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #3d85c6;"&gt;[smlgrid@rac1 ~]$ lsnrctl status listener_ib&lt;br /&gt;
&lt;br /&gt;
LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 03-AUG-2011 10:08:09&lt;br /&gt;
&lt;br /&gt;
Copyright (c) 1991, 2010, Oracle.&amp;nbsp; All rights reserved.&lt;br /&gt;
&lt;br /&gt;
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_IB)))&lt;br /&gt;
STATUS of the LISTENER&lt;br /&gt;
------------------------&lt;br /&gt;
Alias&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; LISTENER_IB&lt;br /&gt;
Version&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; TNSLSNR for Linux: Version 11.2.0.2.0 - Production&lt;br /&gt;
Start Date&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; 02-AUG-2011 16:43:17&lt;br /&gt;
Uptime&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; 0 days 17 hr. 24 min. 52 sec&lt;br /&gt;
Trace Level&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; off&lt;br /&gt;
Security&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; ON: Local OS Authentication&lt;br /&gt;
SNMP&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; OFF&lt;br /&gt;
Listener Parameter File&amp;nbsp;&amp;nbsp; /u01/app/grid/product/11.2.0.2/network/admin/listener.ora&lt;br /&gt;
Listener Log File&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /u01/app/grid/product/11.2.0.2/log/diag/tnslsnr/edd1db03/listener_ib/alert/log.xml&lt;br /&gt;
Listening Endpoints Summary...&lt;br /&gt;
&amp;nbsp; (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_IB)))&lt;br /&gt;
&amp;nbsp; &lt;b&gt;(DESCRIPTION=(ADDRESS=(PROTOCOL=sdp)(HOST=&lt;/b&gt;&lt;span style="color: #3d85c6;"&gt;xx-ibvip&lt;/span&gt;&lt;b&gt;)(PORT=1522)))&lt;/b&gt;&lt;br /&gt;
&amp;nbsp; (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=&lt;span style="color: #3d85c6;"&gt;xx-ibvip&lt;/span&gt;)(PORT=1522)))&lt;br /&gt;
Services Summary...&lt;br /&gt;
Service "dbm" has 2 instance(s).&lt;br /&gt;
&amp;nbsp; Instance "dbm1", status READY, has 1 handler(s) for this service...&lt;br /&gt;
&amp;nbsp; Instance "dbm2", status READY, has 2 handler(s) for this service...&lt;br /&gt;
Service "db_srv" has 2 instance(s).&lt;br /&gt;
&amp;nbsp; Instance "dbm1", status READY, has 1 handler(s) for this service...&lt;br /&gt;
&amp;nbsp; Instance "dbm2", status READY, has 2 handler(s) for this service...&lt;br /&gt;
The command completed successfully&lt;/div&gt;&lt;br /&gt;
G&lt;u&gt;&lt;b&gt;ridLink Data Source fropm WebLogic Compute Nodes on Exalogic&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
1. Edit the script "&lt;b&gt;startWebLogic.sh&lt;/b&gt;" to include the following to enable SDP from the WebLogic JVM's. It's important to note that these SDP enabled JVM parameters are specifically for the managed servers as that is where the Data Sources will be targeted to run from. How you start you managed servers will determine where the place to put these parameters is. These are needed to switch to the IPv4Stack as IPv6 is not support by SDP currently as well as enabling SDP in general.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;JAVA_OPTIONS="${JAVA_OPTIONS} -Djava.net.preferIPv4Stack=true -Doracle.net.SDP=true"&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;. ${DOMAIN_HOME}/bin/setDomainEnv.sh $*&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
2. When creating a GridLink Data Source ensure you use a connect string as follows. Make sure you use SDP protocol as well as the right listener port. You can't use a SCAN URL here as SCAN is for client connectivity using TCP, hence why it's a multi node connect string.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=YES)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=SDP)(HOST=xx-ibvip)(PORT=1522))(ADDRESS=&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;(PROTOCOL=SDP)(HOST=yy-ibvip)(PORT=1522)))(CONNECT_DATA=(SERVICE_NAME=db_srv)))&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Below is a screen shot showing it can successfully connect to the IB listener.&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/-4Yvd-tSVna4/TjjdYyUQtJI/AAAAAAAAAH0/fDgG6UqQ9-0/s1600/image1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="256" src="http://3.bp.blogspot.com/-4Yvd-tSVna4/TjjdYyUQtJI/AAAAAAAAAH0/fDgG6UqQ9-0/s320/image1.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6527688743456205256-543085347182958530?l=theblasfrompas.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/THW2aGqM6g2q4f0ucYaA3siyuVw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/THW2aGqM6g2q4f0ucYaA3siyuVw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/THW2aGqM6g2q4f0ucYaA3siyuVw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/THW2aGqM6g2q4f0ucYaA3siyuVw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/87VhGVRfm4Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/543085347182958530/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=543085347182958530" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/543085347182958530?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/543085347182958530?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/87VhGVRfm4Q/setting-up-exalogic-using-ib-with-sdp.html" title="Setting up Exalogic using IB with SDP enabled Data Sources to Exadata" /><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/-4Yvd-tSVna4/TjjdYyUQtJI/AAAAAAAAAH0/fDgG6UqQ9-0/s72-c/image1.jpg" height="72" width="72" /><thr:total>5</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2011/08/setting-up-exalogic-using-ib-with-sdp.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MDQHY4fip7ImA9WhdTEE8.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-333842627727744599</id><published>2011-07-07T16:51:00.000+10:00</published><updated>2011-07-07T16:51:11.836+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-07T16:51:11.836+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Coherence" /><category scheme="http://www.blogger.com/atom/ns#" term="Weblogic" /><title>Starting a Coherence Server From WLS 10.3.4 Console</title><content type="html">Decided it might make sense to use Node Manager to stop/start my stand alone coherence servers which will be accessed by the WebLogic managed server instances as storage disabled members. The process is pretty straight forward and is shown in this blog entry below. However there is one thing to be aware of.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://blogs.oracle.com/jamesbayer/entry/weblogic_server_1034_screencas"&gt;http://blogs.oracle.com/jamesbayer/entry/weblogic_server_1034_screencas&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
In my example I wanted to use Coherence 3.7 and so to do that I needed to add the following to the "&lt;b&gt;Server Start&lt;/b&gt;" Classpath field&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;/u01/Middleware/coherence/370/coherence/lib/coherence.jar&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Once I did that and tried to start the Coherence Server from the admin console , using node manager it failed with an error as follows.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;Jul 8, 2011 4:36:25 AM&amp;gt; &amp;lt;INFO&amp;gt; &amp;lt;NodeManager&amp;gt; &amp;lt;Server output log file 
 is 
 '/u01/Middleware/domains/1034/acs_dom/servers_coherence/CoherenceServer1/logs/CoherenceServer1.out'&amp;gt;
 Exception in thread "Main Thread" java.lang.NoClassDefFoundError: 
 weblogic/nodemanager/server/provider/WeblogicCacheServer
 Caused by: java.lang.ClassNotFoundException: 
 weblogic.nodemanager.server.provider.WeblogicCacheServer
         at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
         at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
&lt;/pre&gt;&lt;pre wrap=""&gt;&amp;nbsp;&lt;/pre&gt;The poblem here is if you leave the classpath blank in the startup properties in the console configuration, then the two minimal jars (weblogic.server.modules.coherence.server_10.3.4.0.jar and coherence.jar) that are required are added for you. Once you specify a non-empty classpath (which is what I did), then you have to explicitly include those jars plus any others you want.&lt;br /&gt;
&lt;br /&gt;
So what I needed was the following.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;/u01/Middleware/coherence/370/coherence/lib/coherence.jar:/u01/Middleware/1034/modules/features/weblogic.server.modules.coherence.server_10.3.4.0.jar&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Once started the Log file for the coherence server exists on the file system as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;$DOMAIN_HOME/servers_coherence/{COH_SERVER_NAME}/logs/{COH_SERVER_NAME}.out&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
The PID for the server is found here, I normally add that to the log file but it's not possible when starting Coherence this way.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;$DOMAIN_HOME/servers_coherence/{COH_SERVER_NAME}/data/nodemanager/{COH_SERVER_NAME}.pid&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6527688743456205256-333842627727744599?l=theblasfrompas.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/H3nItDYb4mwdHLNkn9tyUUVDRzU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/H3nItDYb4mwdHLNkn9tyUUVDRzU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/H3nItDYb4mwdHLNkn9tyUUVDRzU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/H3nItDYb4mwdHLNkn9tyUUVDRzU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/bxpANFy1dXI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/333842627727744599/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=333842627727744599" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/333842627727744599?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/333842627727744599?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/bxpANFy1dXI/starting-coherence-server-from-wls-1034.html" title="Starting a Coherence Server From WLS 10.3.4 Console" /><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/2011/07/starting-coherence-server-from-wls-1034.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIGSXYzeSp7ImA9WhdTEE8.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-5481828377896953041</id><published>2011-07-04T21:39:00.002+10:00</published><updated>2011-07-07T17:08:48.881+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-07T17:08:48.881+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Weblogic" /><category scheme="http://www.blogger.com/atom/ns#" term="Exalogic" /><title>Installing WLS 10.3.4 domain across 2 Compute Nodes on Exalogic</title><content type="html">Got a rare opportunity to access 2 compute nodes on Exalogic and I thought it would be a good opportunity to test creating a WLS domain across the 2 compute nodes. Here is some brief steps showing how this was done.&lt;br /&gt;
&lt;br /&gt;
1. Create a share to be used by both compute nodes. In this demo we created one as follows.&lt;br /&gt;
&lt;div style="color: #3d85c6;"&gt;/u01/Middleware&lt;/div&gt;&lt;br /&gt;
2. Install WLS software onto the share as shown below.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="sql" name="code"&gt;[oracle@auxlcn07 1034]$ pwd
/u01/Middleware/1034
[oracle@auxlcn07 1034]$ d
total 148
drwxr-xr-x+ 7 oracle oinstall   464 Jun 30 21:25 modules/
drwxr-xr-x+ 8 oracle oinstall     9 Jun 30 21:25 utils/
drwxr-x---+ 7 oracle oinstall     9 Jun 30 21:25 jrockit_160_22_D1.1.1-3/
-rw-r--r--+ 1 oracle oinstall   623 Jun 30 21:25 ocm.rsp
-rw-r--r--+ 1 oracle oinstall 73475 Jun 30 21:25 registry.dat
-rw-r--r--+ 1 oracle oinstall  2306 Jun 30 21:25 registry.xml
-rw-r--r--+ 1 oracle oinstall    26 Jun 30 21:25 .home
drwxr-xr-x+ 8 oracle oinstall    13 Jun 30 21:25 ./
drwxr-xr-x+ 9 oracle oinstall    11 Jun 30 21:25 wlserver_10.3/
drwxr-xr-x+ 6 oracle oinstall     9 Jun 30 21:25 coherence_3.6/
-rw-rw----+ 1 oracle oinstall   192 Jul  1 08:25 domain-registry.xml
drwxr-xr-x+ 2 oracle oinstall    12 Jul  1 17:16 logs/
drwx------+ 6 oracle oinstall     6 Jul  4 15:56 ../
&lt;/pre&gt;&lt;br /&gt;
3. Now we can create a PRODUCTION domain into a share in a directory as follows "&lt;b&gt;/u01/Middleware/domains/1034/acs_dom&lt;/b&gt;". Ensure you create a machine for each compute node and ensure you place the managed servers you wish on each compute node in the domain config screens.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="sql" name="code"&gt;[oracle@auxlcn07 acs_dom]$ d
total 23
drwxr-xr-x+  4 oracle oinstall   4 Jul  1 08:25 ../
drwxr-x---+  2 oracle oinstall   3 Jul  1 08:25 autodeploy/
drwxr-x---+  2 oracle oinstall   3 Jul  1 08:25 console-ext/
drwxr-x---+  2 oracle oinstall   3 Jul  1 08:25 lib/
drwxr-x---+  2 oracle oinstall   6 Jul  1 08:25 security/
-rw-r-----+  1 oracle oinstall 650 Jul  1 08:25 startManagedWebLogic_readme.txt
drwxr-x---+  2 oracle oinstall   7 Jul  1 08:25 init-info/
-rw-r-----+  1 oracle oinstall 462 Jul  1 08:25 fileRealm.properties
-rwxr-x---+  1 oracle oinstall 252 Jul  1 08:25 startWebLogic.sh*
drwxr-x---+ 10 oracle oinstall  12 Jul  1 08:26 config/
drwxr-x---+ 12 oracle oinstall  16 Jul  1 08:29 ./
drwxr-----+  2 oracle oinstall   2 Jul  1 10:50 pending/
-rw-r-----+  1 oracle oinstall  32 Jul  1 10:50 edit.lok
drwxr-----+  2 oracle oinstall   2 Jul  1 10:50 tmp/
drwxr-----+  8 oracle oinstall   8 Jul  1 14:10 servers/
drwxr-x---+  5 oracle oinstall  11 Jul  1 15:38 bin/
&lt;/pre&gt;&lt;br /&gt;
&lt;div style="color: #f1c232;"&gt;Note: No need for pack/unpack given we are using a share.&lt;/div&gt;&lt;br /&gt;
4. In this demo we want to create a node manager process on each compute node sharing the same domain directory. To do this we simply create seperate directories for each on our compute nodes and copy a set of node manager files available in the default $WLS_HOME/wlserver_10.3/common/nodemanager directory.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="sql" name="code"&gt;[oracle@auxlcn07 nodemanager]$ pwd
/u01/Middleware/domains/1034/nodemanager
[oracle@auxlcn07 nodemanager]$ d
total 6
drwxr-xr-x+ 4 oracle oinstall 4 Jun 30 21:54 ./
drwxr-xr-x+ 4 oracle oinstall 4 Jul  1 08:25 ../
drwxr-xr-x+ 2 oracle oinstall 8 Jul  1 14:27 node08/
drwxr-xr-x+ 2 oracle oinstall 9 Jul  1 15:29 node07/
&lt;/pre&gt;&lt;br /&gt;
&lt;u&gt;&lt;b&gt;Example of node07 files&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="sql" name="code"&gt;[oracle@auxlcn07 node07]$ pwd
/u01/Middleware/domains/1034/nodemanager/node07
[oracle@auxlcn07 node07]$ d
total 30
drwxr-xr-x+ 4 oracle oinstall     4 Jun 30 21:54 ../
-rw-r-----+ 1 oracle oinstall   130 Jul  1 08:44 nm_data.properties
-rw-r-----+ 1 oracle oinstall    77 Jul  1 11:20 nodemanager.domains
-rw-r--r--+ 1 oracle oinstall   164 Jul  1 11:28 nodemanager.properties
-rwxr-x---+ 1 oracle oinstall  4378 Jul  1 13:23 startNodeManager.sh*
-rw-r-----+ 1 oracle oinstall  1379 Jul  1 14:02 nodemanager.log.1
-rw-r-----+ 1 oracle oinstall     0 Jul  1 14:28 nodemanager.log.lck
-rw-r-----+ 1 oracle oinstall 15618 Jul  1 14:29 nodemanager.log
drwxr-xr-x+ 2 oracle oinstall     9 Jul  1 15:29 ./
&lt;/pre&gt;&lt;br /&gt;
&lt;u&gt;&lt;b&gt;nodemanager.properties example, the HOME will differ in the node08 file.&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;NodeManagerHome=/u01/Middleware/domains/1034/nodemanager/node07&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;StartScriptEnabled=true&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;StopScriptEnabled=true&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
5. Edit startNodeManager.sh to include node manager home location now it's moved&lt;br /&gt;
away from WLS_HOME. Example for node07.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;NODEMGR_HOME="/u01/Middleware/domains/1034/nodemanager/node07"&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
6. Start both node managers from there directories on each compute node, example for node07.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;/u01/Middleware/domains/1034/nodemanager/node07/startNodeManager.sh&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
7. For the ADMIN SERVER node ensure we set the following in "startWebLogic.sh". &lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;# START WEBLOGIC&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;JAVA_OPTIONS="${JAVA_OPTIONS} -Dweblogic.security.SSL.ignoreHostnameVerification=true"&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;echo "starting weblogic with Java version:"&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
8. Start admin server, here we use node07.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;/u01/Middleware/domains/1034/acs_dom/bin/startWebLogic.sh&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
9. Log into the admin console&lt;br /&gt;
&lt;br /&gt;
10. Ensure the node manager processes are available from each machine and reachable.&lt;br /&gt;
&lt;br /&gt;
11. Start all managed servers, once you ensure the node manager is reachable. I prefer to start managed servers from the command line but given we have 2 node managers on the compute nodes we can use that through the admin console.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example of such a setup.&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/-ekKnPX4rZyU/ThGlfI9hiuI/AAAAAAAAAHw/97DucZF4QmE/s1600/image1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="165" src="http://3.bp.blogspot.com/-ekKnPX4rZyU/ThGlfI9hiuI/AAAAAAAAAHw/97DucZF4QmE/s320/image1.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6527688743456205256-5481828377896953041?l=theblasfrompas.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8RlccYUVm_6S1JTRDJBc95T2bHw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8RlccYUVm_6S1JTRDJBc95T2bHw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8RlccYUVm_6S1JTRDJBc95T2bHw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8RlccYUVm_6S1JTRDJBc95T2bHw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/7MF5AH7YiFw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/5481828377896953041/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=5481828377896953041" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/5481828377896953041?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/5481828377896953041?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/7MF5AH7YiFw/installing-wls-10134-domain-across-2.html" title="Installing WLS 10.3.4 domain across 2 Compute Nodes on Exalogic" /><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/-ekKnPX4rZyU/ThGlfI9hiuI/AAAAAAAAAHw/97DucZF4QmE/s72-c/image1.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2011/07/installing-wls-10134-domain-across-2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIBR3w4eip7ImA9WhZbFkQ.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-4901299510539653708</id><published>2011-06-21T22:03:00.001+10:00</published><updated>2011-06-22T08:15:56.232+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-22T08:15:56.232+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="JDeveloper" /><category scheme="http://www.blogger.com/atom/ns#" term="JSF 2.0" /><title>Taking JSF 2.0 for a test drive with JDeveloper 11.1.2</title><content type="html">I have been waiting for JSF 2.0 in JDeveloper for some time and after using Netbeans for all my JSF 2.0 work I thought I would quickly test how well it worked in the recently released JDeveloper 11.1.2 release. &lt;br /&gt;
&lt;br /&gt;
Firstly my aim was to use a basic JPA/EJB 3.0 entity model project and JSF 2.0 View project. I am going to skip over the model setup as that support has been in JDeveloper for some time, but in short we use the SCOTT schema and create a Emp JPA Entity and an EJB Session Facade in the model project accepting all the defaults.&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/-OpvuPiTbJ3k/TgB-Vl55VMI/AAAAAAAAAHo/ZC5E-KQa184/s1600/image1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-OpvuPiTbJ3k/TgB-Vl55VMI/AAAAAAAAAHo/ZC5E-KQa184/s1600/image1.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #e69138;"&gt;Note: I created a Java EE Web Application which seems to be the default one I needed for this setup.&lt;/div&gt;&lt;br /&gt;
The plan here was to use DI (Depency Injection) for the EJB session bean within my managed beans and for my view pages to use Facelet *.JSF pages. I could of used a *.XHTML pages but I feel more comfortable in the JSP world versus HTML world.&lt;br /&gt;
&lt;br /&gt;
1. In the ViewController project create a new JSF page using "&lt;b&gt;File -&amp;gt; New -&amp;gt; Web Tier-&amp;gt; JSF/Facelets -&amp;gt; Page&lt;/b&gt;". In this example I created a file called "&lt;b&gt;pages/Emps.jsf&lt;/b&gt;". Once created leave it as is we will return to it soon.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #e69138;"&gt;Note: I could create the managed bean to serve this page at the same time on the wizard page but I choose not to at this stage, rather do it by hand.&lt;/div&gt;&lt;br /&gt;
2. Create a new java class called "EmpManagedBean" in a package as follows "view".&lt;br /&gt;
3. Replace the code in the empty class with code as follows. Be sure you edit the reference to the EJB session bean to the correct session bean name from the model project.&lt;br /&gt;
&lt;pre class="java" name="code"&gt;package view;

import java.util.List;

import java.util.logging.Logger;

import javax.annotation.PostConstruct;

import javax.faces.bean.ManagedBean;
import javax.ejb.EJB;

import model.Emp;
import model.EmpSessionEJBLocal;

@ManagedBean (name = "empBean")
public class EmpManagedBean
{
  
  @EJB 
  EmpSessionEJBLocal empSessionEJBLocal;
  private Logger logger = Logger.getLogger(this.getClass().getSimpleName());
  
  @PostConstruct
  public void init()
  {
    emps = empSessionEJBLocal.getEmpFindAll();    
  }
  
  private List&amp;lt;Emp&amp;gt; emps;
  
  public EmpManagedBean()
  {  
  }

  public void setEmps(List&amp;lt;Emp&amp;gt; emps)
  {
    this.emps = emps;
  }

  public List&amp;lt;Emp&amp;gt; getEmps()
  {
    return emps;
  }
} 
&lt;/pre&gt;&lt;br /&gt;
&lt;div style="color: #e69138;"&gt;Note: Auto import as required.&lt;/div&gt;&lt;br /&gt;
4.Now at this point return to Emps.jsf and add code as follows.&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;&amp;lt;?xml version='1.0' encoding='windows-1252'?&amp;gt;
&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;
&amp;lt;f:view xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"&amp;gt;
&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&amp;gt;
&amp;lt;h:head&amp;gt;
  &amp;lt;title&amp;gt;Employees&amp;lt;/title&amp;gt;
&amp;lt;/h:head&amp;gt;
&amp;lt;h:body&amp;gt;
  &amp;lt;h3 style="font-family: arial; font-variant: small-caps; color: #336699"&amp;gt;
    Employees
  &amp;lt;/h3&amp;gt;
  &amp;lt;h:form&amp;gt;
    &amp;lt;h:dataTable var="row"
                 value="#{empBean.emps}"
                 border="1"&amp;gt;
        &amp;lt;h:column&amp;gt;
          &amp;lt;f:facet name="header"&amp;gt;Empno#&amp;lt;/f:facet&amp;gt;
          #{row.empno}
        &amp;lt;/h:column&amp;gt;
        &amp;lt;h:column&amp;gt;
          &amp;lt;f:facet name="header"&amp;gt;Ename&amp;lt;/f:facet&amp;gt;
          #{row.ename}
        &amp;lt;/h:column&amp;gt;
    &amp;lt;/h:dataTable&amp;gt;
  &amp;lt;/h:form&amp;gt;
&amp;lt;/h:body&amp;gt;
&amp;lt;/html&amp;gt;
&amp;lt;/f:view&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;div style="color: #e69138;"&gt;Note: The CE insight is available for the managed bean within the JSF page ensuring you get the correct property name you need to use.&lt;/div&gt;&lt;br /&gt;
5. Add the library "&lt;b&gt;Java EE 1.5 API&lt;/b&gt;" so the DI code will compile without issues. There may be a smaller library then this but it wasn't obvious from the list.&lt;br /&gt;
&lt;br /&gt;
The rest , such as web.xml setup etc should be setup for us , so no need to do anything there.&lt;br /&gt;
&lt;br /&gt;
6. Run Emps.jsf and verify runtime output 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/-V7im1PIQaNU/TgCFMcWu88I/AAAAAAAAAHs/eU6E6Zq41OE/s1600/image2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="317" src="http://3.bp.blogspot.com/-V7im1PIQaNU/TgCFMcWu88I/AAAAAAAAAHs/eU6E6Zq41OE/s320/image2.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
The JDeveloper log window should show some output as follows once the page is launched.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Run startup time: 12439 ms.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;[Application JavaEETestApp deployed to Server Instance IntegratedWebLogicServer]&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Target URL -- http://127.0.0.1:7101/javaee-jsf/faces/pages/Emps.jsf&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&lt;jun 2011="" 21,="" 9:55:56="" est="" pm=""&gt; &lt;notice&gt; &lt;eclipselink&gt; &lt;bea-2005000&gt; &amp;lt;2011-06-21 21:55:56.114--ServerSession(14286368)--EclipseLink, version: Eclipse Persistence Services - 2.1.3.v20110304-r9073&amp;gt; &lt;/bea-2005000&gt;&lt;/eclipselink&gt;&lt;/notice&gt;&lt;/jun&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&lt;jun 2011="" 21,="" 9:55:56="" est="" pm=""&gt; &lt;notice&gt; &lt;eclipselink&gt; &lt;bea-2005000&gt; &amp;lt;2011-06-21 21:55:56.115--ServerSession(14286368)--Server: 10.3.5.0&amp;gt; &lt;/bea-2005000&gt;&lt;/eclipselink&gt;&lt;/notice&gt;&lt;/jun&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&lt;jun 2011="" 21,="" 9:55:56="" est="" pm=""&gt; &lt;notice&gt; &lt;eclipselink&gt; &lt;bea-2005000&gt; &amp;lt;2011-06-21 21:55:56.378--ServerSession(14286368)--file:/C:/jdev/jdevprod/11.1.2/jdeveloper/jdev/system11.1.2.0.38.60.17/o.j2ee/drs/JavaEETestApp/ModelEJB.jar/_Model login successful&amp;gt; &lt;/bea-2005000&gt;&lt;/eclipselink&gt;&lt;/notice&gt;&lt;/jun&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6527688743456205256-4901299510539653708?l=theblasfrompas.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/EJjd7Z3mqSknp7Qmd807P_azsDk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EJjd7Z3mqSknp7Qmd807P_azsDk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/EJjd7Z3mqSknp7Qmd807P_azsDk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EJjd7Z3mqSknp7Qmd807P_azsDk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/Spe19C0jvGc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/4901299510539653708/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=4901299510539653708" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/4901299510539653708?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/4901299510539653708?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/Spe19C0jvGc/taking-jsf-20-for-test-drive-with.html" title="Taking JSF 2.0 for a test drive with JDeveloper 11.1.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><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-OpvuPiTbJ3k/TgB-Vl55VMI/AAAAAAAAAHo/ZC5E-KQa184/s72-c/image1.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2011/06/taking-jsf-20-for-test-drive-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEDR3w8eip7ImA9WhZbEks.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-6266744676259422226</id><published>2011-06-17T08:17:00.000+10:00</published><updated>2011-06-17T08:17:56.272+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-17T08:17:56.272+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Authentication" /><category scheme="http://www.blogger.com/atom/ns#" term="Weblogic" /><title>WebLogic - Obtain Groups of an Autenticated User</title><content type="html">Note for myself:&lt;br /&gt;
&lt;br /&gt;
&lt;pre name="code" class="java"&gt; for(Principal p: subject.getPrincipals()) {
            if(p instanceof WLSGroup) {
                if(first) {
                    first=false;
                } else {
                    groups.append(", ");
                }
                groups.append(p.getName());
            } else if (p instanceof WLSUser) {
                user = p.getName();
            }
        }
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6527688743456205256-6266744676259422226?l=theblasfrompas.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/peLT9p4zKDULDRE1nNvVfaXINyo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/peLT9p4zKDULDRE1nNvVfaXINyo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/peLT9p4zKDULDRE1nNvVfaXINyo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/peLT9p4zKDULDRE1nNvVfaXINyo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/bS-eD9L_gmU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/6266744676259422226/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=6266744676259422226" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/6266744676259422226?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/6266744676259422226?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/bS-eD9L_gmU/weblogic-obtain-groups-of-autenticated.html" title="WebLogic - Obtain Groups of an Autenticated User" /><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/2011/06/weblogic-obtain-groups-of-autenticated.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEFRn85fyp7ImA9WhZVGEk.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-4953137821957328076</id><published>2011-05-31T23:13:00.000+10:00</published><updated>2011-05-31T23:13:37.127+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-31T23:13:37.127+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Struts 2" /><category scheme="http://www.blogger.com/atom/ns#" term="JDeveloper" /><title>Struts 2 Starter Project for JDeveloper 11g (11.1.1.5)</title><content type="html">I thought I would create a Struts 2 starter project (not before time) for JDeveloper 11g which included some must haves as follows to make this as close to being integrated into the IDE as possible.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Be able to run actions without having to alter the URL at runtime&lt;/li&gt;
&lt;li&gt;Provide XML insight for struts.xml&lt;/li&gt;
&lt;li&gt;View the struts.xml file from the navigator&lt;/li&gt;
&lt;li&gt;Include the struts 2 tags in the component palette&lt;/li&gt;
&lt;/ul&gt;Here is how I did this.&lt;br /&gt;
&lt;br /&gt;
1.Create an empty project called "&lt;b&gt;Web&lt;/b&gt;"&lt;br /&gt;
2. Add a HTML file called index.html, ignoring it's content for now.&lt;br /&gt;
3. This will give us a "&lt;b&gt;public_html&lt;/b&gt;" directory and of course a web.xml , so at this point navigate to the file system and add the Struts 2 JAR files as follows, all these are required to "WEB-INF\lib".&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;commons-fileupload-1.2.2.jar&lt;/li&gt;
&lt;li&gt;commons-logging-1.1.1.jar&lt;/li&gt;
&lt;li&gt;freemarker-2.3.16.jar&lt;/li&gt;
&lt;li&gt;javassist-3.11.0.GA.jar&lt;/li&gt;
&lt;li&gt;ognl-3.0.1.jar&lt;/li&gt;
&lt;li&gt;struts2-core-2.2.3.jar&lt;/li&gt;
&lt;li&gt;xwork-core-2.2.3.jar&lt;/li&gt;
&lt;/ul&gt;4. Next we have to add a struts.xml to the IDE which for Struts 2 belongs in the "&lt;b&gt;WEB-INF\classes&lt;/b&gt;" folder. Create the folder on the file system and add a empty struts.xml file.&lt;br /&gt;
5. Now to view struts.xml in the navigator we have to edit the project properties and add the "&lt;b&gt;WEB-INF\classes&lt;/b&gt;" to the project source path so it shows in the navigator as shown below.&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/-30t4EpKH1qo/TeTjogmEaiI/AAAAAAAAAHc/dLVoVNAKk64/s1600/image2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="35" src="http://4.bp.blogspot.com/-30t4EpKH1qo/TeTjogmEaiI/AAAAAAAAAHc/dLVoVNAKk64/s320/image2.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
6. From the JAR file "struts2-core-2.2.3.jar" extract the DTD "struts-2.1.7.dtd" and place it into the "&lt;b&gt;WEB-INF\classes&lt;/b&gt;". It's the DTD which will enable XML code insight to help us build our struts 2 XML config file.&lt;br /&gt;
7. Refresh the project to ensure your project is starting to take shape&lt;br /&gt;
8. Edit struts2.xml and add content as follows, you could use code insight if you wanted to now we have that setup. You will see we reference the DTD as a SYSTEM file itself from the same directory.&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8" ?&amp;gt;
&amp;lt;!DOCTYPE struts SYSTEM "struts-2.1.7.dtd"&amp;gt;

&amp;lt;struts&amp;gt;

    &amp;lt;package name="struts-demo" namespace="/" extends="struts-default"&amp;gt;
      
      &amp;lt;action name="entername"&amp;gt;
        &amp;lt;result&amp;gt;nameinput.jsp&amp;lt;/result&amp;gt;
      &amp;lt;/action&amp;gt;
      
      &amp;lt;action name="sayHello" class="pas.acs.struts.demo.actions.Hello"&amp;gt;
        &amp;lt;result name="input"&amp;gt;nameinput.jsp&amp;lt;/result&amp;gt;
        &amp;lt;result&amp;gt;response.jsp&amp;lt;/result&amp;gt;
      &amp;lt;/action&amp;gt;
    &amp;lt;/package&amp;gt;

&amp;lt;/struts&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
9. Create our action class as follows.&lt;br /&gt;
&lt;pre class="java" name="code"&gt;package pas.acs.struts.demo.actions;

import com.opensymphony.xwork2.ActionSupport;

public class Hello extends ActionSupport
{
  private String name;
  private String message;
  
  public Hello()
  {
  }

  public void setName(String name)
  {
    this.name = name;
  }

  public String getName()
  {
    return name;
  }

  public void setMessage(String message)
  {
    this.message = message;
  }

  public String getMessage()
  {
    return String.format("Hello %s", getName());
  }
}
&lt;/pre&gt;&lt;br /&gt;
10. Create a Hello-validation.xml to use for validation in the same directory as our class above.&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;&amp;lt;!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"&amp;gt;

&amp;lt;validators&amp;gt;
  &amp;lt;field name="name"&amp;gt;
    &amp;lt;field-validator type="requiredstring"&amp;gt;
      &amp;lt;param name="trim"&amp;gt;true&amp;lt;/param&amp;gt;
      &amp;lt;message&amp;gt;Please enter name&amp;lt;/message&amp;gt;
    &amp;lt;/field-validator&amp;gt;
  &amp;lt;/field&amp;gt;
&amp;lt;/validators&amp;gt; 
&lt;/pre&gt;&lt;br /&gt;
11. Create the 2 required JSP as follows&lt;br /&gt;
&lt;br /&gt;
nameinput.jsp&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"&amp;gt;
&amp;lt;%@ page contentType="text/html;charset=windows-1252"%&amp;gt;
&amp;lt;%@ taglib uri="/struts-tags" prefix="s"%&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;style type="text/css"&amp;gt;
    .errorMessage
    {
      color:red;
    }
  &amp;lt;/style&amp;gt;
  &amp;lt;meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/&amp;gt;
  &amp;lt;title&amp;gt;Struts 2 Demo In JDeveloper 11g PS3&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
  &amp;lt;h2&amp;gt;Struts 2 Demo In Jdeveloper 11g PS3&amp;lt;/h2&amp;gt;
  &amp;lt;s:form action="sayHello" method="POST"&amp;gt;
    &amp;lt;s:textfield label="Your Name" name="name" /&amp;gt;
    &amp;lt;s:submit value="Go" /&amp;gt;
  &amp;lt;/s:form&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
response.jsp&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"&amp;gt;
&amp;lt;%@ page contentType="text/html;charset=windows-1252"%&amp;gt;
&amp;lt;%@ taglib uri="/struts-tags" prefix="s"%&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/&amp;gt;
  &amp;lt;title&amp;gt;Struts 2 Demo In JDeveloper 11g PS3&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
  &amp;lt;h2&amp;gt;Struts 2 Demo In JDeveloper 11g PS3&amp;lt;/h2&amp;gt;
  &amp;lt;s:property value="message" /&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
12. Edit index.html with content as follows to start our struts 2 application with the correct URL syntax to invoke the action.&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;META HTTP-EQUIV="Refresh" CONTENT="0;URL=entername.action"&amp;gt;
&amp;lt;/head&amp;gt;

&amp;lt;body&amp;gt;
&amp;lt;p&amp;gt;Loading ...&amp;lt;/p&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
13. Edit then project properties and select "JSP tag Libraries' and then select "Add" and navigate to "struts2-core-2.2.3.jar" to find the struts tags and add them to the component palette.&lt;br /&gt;
&lt;br /&gt;
14. Edit web.xml to look as follows.&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;&amp;lt;?xml version = '1.0' encoding = 'windows-1252'?&amp;gt;
&amp;lt;web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"&amp;gt;
    &amp;lt;filter&amp;gt;
        &amp;lt;filter-name&amp;gt;struts2&amp;lt;/filter-name&amp;gt;
        &amp;lt;filter-class&amp;gt;org.apache.struts2.dispatcher.FilterDispatcher&amp;lt;/filter-class&amp;gt;
    &amp;lt;/filter&amp;gt;

    &amp;lt;filter-mapping&amp;gt;
        &amp;lt;filter-name&amp;gt;struts2&amp;lt;/filter-name&amp;gt;
        &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;
    &amp;lt;/filter-mapping&amp;gt;         
&amp;lt;/web-app&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
15. Run index.html to invoke the Integrated WebLogic server and verify a page as follows.&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/-lwIA4fx74Zw/TeToeJcpVgI/AAAAAAAAAHg/kR2HwpUL5cY/s1600/image3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="115" src="http://1.bp.blogspot.com/-lwIA4fx74Zw/TeToeJcpVgI/AAAAAAAAAHg/kR2HwpUL5cY/s320/image3.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
16. Enter in your name and press the "go" button&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/-P_e29XOOTl0/TeToh1GBsbI/AAAAAAAAAHk/r4wgRof1MA0/s1600/image4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="107" src="http://1.bp.blogspot.com/-P_e29XOOTl0/TeToh1GBsbI/AAAAAAAAAHk/r4wgRof1MA0/s320/image4.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
So now you have a Struts 2 starter project for JDeveloper 11g (11.1.1.5)&lt;br /&gt;
&lt;br /&gt;
Your project would look as follows within JDeveloper 11g IDE&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/-ZWY7OGl1nZ8/TeThsQgjBmI/AAAAAAAAAHY/DFVtiXYBlk8/s1600/image1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-ZWY7OGl1nZ8/TeThsQgjBmI/AAAAAAAAAHY/DFVtiXYBlk8/s320/image1.jpg" width="203" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6527688743456205256-4953137821957328076?l=theblasfrompas.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/JsAjjRkZDZZcOOGE8EMN_YNmUqs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JsAjjRkZDZZcOOGE8EMN_YNmUqs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/JsAjjRkZDZZcOOGE8EMN_YNmUqs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JsAjjRkZDZZcOOGE8EMN_YNmUqs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/sNdvcFT8wNc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/4953137821957328076/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=4953137821957328076" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/4953137821957328076?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/4953137821957328076?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/sNdvcFT8wNc/struts-2-starter-project-for-jdeveloper.html" title="Struts 2 Starter Project for JDeveloper 11g (11.1.1.5)" /><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://4.bp.blogspot.com/-30t4EpKH1qo/TeTjogmEaiI/AAAAAAAAAHc/dLVoVNAKk64/s72-c/image2.jpg" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2011/05/struts-2-starter-project-for-jdeveloper.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UNQXk5fSp7ImA9WhZVEkU.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-229774191500141316</id><published>2011-05-25T09:54:00.000+10:00</published><updated>2011-05-25T09:54:50.725+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-25T09:54:50.725+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Oracle JDBC" /><category scheme="http://www.blogger.com/atom/ns#" term="RAC" /><title>Intermittent Oracle JDBC Connection Failures to RAC</title><content type="html">More often then not I get the following come my way regarding Oracle JDBC connections to a RAC Cluster.&lt;br /&gt;
&lt;br /&gt;
"My JDBC connections to a RAC cluster intermittently fail every now and then, but SQL*Plus works fine?"&lt;br /&gt;
&lt;br /&gt;
Here is a little demo that will enable you to continually get JDBC connections to the RAC cluster , waiting for a connection failure. Nice way to verify if indeed there are intermittent problems from ORACLE JDBC when connecting to the cluster. We use the ScheduledExecutorService to get connections periodically and never terminate until we get a connection request failure. This demo is using an 11g R2 cluster with SCAN.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;PeriodicJDBCRacTester.java (Main class to run the test)&lt;/b&gt;&lt;br /&gt;
&lt;pre class="java" name="code"&gt;package pas.au.jdbc.rac;

import java.io.FileInputStream;

import java.text.DateFormat;

import java.util.Date;
import java.util.Properties;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;

public class PeriodicJDBCRacTester
{
  private static final DateFormat DATEFORMAT = DateFormat.getInstance();
  private String periodString = "30";
  private String url = null;
  private String user = null;
  private String passwd = null;
  private static Properties myProperties = new Properties();
  
  public PeriodicJDBCRacTester()
  {
    try
    {
      myProperties.load(new FileInputStream("jdbcractest.properties"));
      processProps(myProperties);
    }
    catch (Exception e)
    {
      e.printStackTrace();
    }
  }
  
  public void run()
  {
    ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
    try 
    {

      LoadBalanceTest loadBalanceTest = 
         new LoadBalanceTest(url, user, passwd);

      String periodString = "30";
      int prd = Integer.parseInt(periodString);
      long period = (long) prd;
      
      System.out.println("\nPeriodic JDBC Load Balance Test ");
      System.out.println("Period to report results in seconds is : " + period + "\n");
     
      System.out.printf("** Started [%s] with %s(sec) interval between runs **\n", 
                        DATEFORMAT.format(new Date()),
                        periodString);
      
      final ScheduledFuture jdbcRacMonitor = 
          scheduler.scheduleAtFixedRate(loadBalanceTest, 0, 30, 
                                        TimeUnit.SECONDS);
                                       
              
    } 
    catch (Exception ex) 
    {
      ex.printStackTrace();
    } 
  }

  private void processProps(Properties inProps)
  {
    periodString = inProps.getProperty("period");
    url = inProps.getProperty("url");
    user = inProps.getProperty("user");
    passwd = inProps.getProperty("passwd");
  }
  
  public static void main(String[] args)
  {
    PeriodicJDBCRacTester test = new PeriodicJDBCRacTester();
    test.run();
  }
}  
&lt;/pre&gt;&lt;br /&gt;
&lt;b&gt;LoadBalanceTest.java (Test class which is called periodically which obtains connections)&lt;/b&gt;&lt;br /&gt;
&lt;pre class="java" name="code"&gt;package pas.au.jdbc.rac;

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import java.text.DateFormat;

import java.util.Date;

import oracle.jdbc.pool.OracleDataSource;

public class LoadBalanceTest implements Runnable
{
  private static final DateFormat DATEFORMAT = DateFormat.getInstance();
  
  private OracleDataSource ods = null;
  public final String userId = "scott";
  public final String password = "tiger";

  private String url = null;
  
  public LoadBalanceTest(String url, String user, String password) throws SQLException
  {
    ods = new OracleDataSource();
    ods.setUser(user);
    ods.setPassword(password);
    ods.setURL(url);  
    
    this.url = url;
    
  }

  public Connection getConnection() throws SQLException
  {
    return ods.getConnection();
  }
  
  public void run ()
  {
    Connection[] connArray = new Connection[5];
    System.out.println("\nCurrent run started at " + new Date());
    System.out.println("Obtaining 5 connections");
    try
    {
      for (int i = 0; i &amp;lt; connArray.length; i++)
      {
        connArray[i] = getConnection();
      }

      for (int j = 0; j &amp;lt; connArray.length; j++)
      {
        if (j == 0)
        {
          DatabaseMetaData meta = connArray[j].getMetaData();
          System.out.println("using URL : " + url + "\n");
          // gets driver info:

          System.out.println("=============\nDatabase Product Name is ... " +
                             meta.getDatabaseProductName());
          System.out.println("Database Product Version is  " +
                             meta.getDatabaseProductVersion());
          System.out.println("=============\nJDBC Driver Name is ........ " +
                             meta.getDriverName());
          System.out.println("JDBC Driver Version is ..... " +
                             meta.getDriverVersion());
          System.out.println("JDBC Driver Major Version is " +
                             meta.getDriverMajorVersion());
          System.out.println("JDBC Driver Minor Version is " +
                             meta.getDriverMinorVersion());
          System.out.println("=============");
        }

        getInstanceDetails(connArray[j], j);
      }

      System.out.println("Closing Connections\n");
      for (int y = 0; y &amp;lt; connArray.length; y++)
      {
        connArray[y].close();
      }
    }
    catch (SQLException sqle)
    {
      // TODO: Add catch code
      sqle.printStackTrace();
    }
  }

  public void getInstanceDetails (Connection conn, int i) throws SQLException
  {
    String sql = 
      "select sys_context('userenv', 'instance_name'), " + 
      "sys_context('userenv', 'server_host'), " + 
      "sys_context('userenv', 'service_name') " + 
      "from dual";
    
    Statement stmt = conn.createStatement();
    ResultSet rset = stmt.executeQuery(sql);
    while (rset.next())
    {
      System.out.println
        ("Connection #" + i + " : instance[" + rset.getString(1) + "], host[" + 
         rset.getString(2) + "], service[" + rset.getString(3) + "]");
    }
   
    stmt.close();
    rset.close();
  }
}
&lt;/pre&gt;&lt;b&gt;jdbcractest.properties (Properties file used to connect to the cluster and define the period in seconds for when the test will run)&lt;/b&gt;    &lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #3d85c6;"&gt;period=30&lt;/div&gt;&lt;div style="color: #3d85c6;"&gt;url=jdbc:oracle:thin:@apctcsol1.au.oracle.com:1521/pas_srv&lt;/div&gt;&lt;div style="color: #3d85c6;"&gt;user=scott&lt;/div&gt;&lt;div style="color: #3d85c6;"&gt;passwd=tiger&lt;/div&gt;&lt;br /&gt;
If you want to run this with ANT you can use a build.xml as follows.&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;&amp;lt;?xml version="1.0" encoding="windows-1252" ?&amp;gt;

&amp;lt;project default="run" name="JDBCRACTester" basedir="."&amp;gt;

  &amp;lt;property file="build.properties"/&amp;gt;
   
  &amp;lt;path id="j2ee.classpath"&amp;gt;
    &amp;lt;pathelement path="./lib/ojdbc6.jar"/&amp;gt;
    &amp;lt;pathelement path="./lib/JDBCRACTester.jar"/&amp;gt;
  &amp;lt;/path&amp;gt;

  &amp;lt;property name="src.dir" value="src"/&amp;gt;
  &amp;lt;property name="classes.dir" value="classes"/&amp;gt;
  &amp;lt;property name="lib.dir" value="lib"/&amp;gt;
  &amp;lt;property name="class.name" value="pas.au.jdbc.rac.PeriodicJDBCRacTester"/&amp;gt;
  
  &amp;lt;target name="init"&amp;gt;
    &amp;lt;tstamp/&amp;gt;
    &amp;lt;mkdir dir="${lib.dir}"/&amp;gt;
    &amp;lt;mkdir dir="${classes.dir}"/&amp;gt;
  &amp;lt;/target&amp;gt;
  
  &amp;lt;target name="clean" description="Clean lib, classes directories"&amp;gt;
    &amp;lt;delete dir="${classes.dir}"/&amp;gt;
  &amp;lt;/target&amp;gt;
  
  &amp;lt;target name="compile" description="Compiles classes into ${classes.dir}" depends="init"&amp;gt;
    &amp;lt;javac includeantruntime="false" srcdir="${src.dir}" debug="true" destdir="${classes.dir}" 
           includes="**/*.java" &amp;gt;
      &amp;lt;classpath refid="j2ee.classpath"/&amp;gt;
    &amp;lt;/javac&amp;gt;
  &amp;lt;/target&amp;gt;

  &amp;lt;target name="package" depends="compile" description="Package application into ${ant.project.name}.jar"&amp;gt;
    &amp;lt;jar basedir="${classes.dir}" destfile="${lib.dir}/${ant.project.name}.jar"&amp;gt;
      &amp;lt;include name="**/*.class"/&amp;gt;
    &amp;lt;/jar&amp;gt;
  &amp;lt;/target&amp;gt;
  
  &amp;lt;target name="run" depends="package" description="Run the JDBC RAC Tester application"&amp;gt;
    &amp;lt;echo message="Running the JDBC RAC Tester application"/&amp;gt;
    &amp;lt;java classname="${class.name}" fork="true"&amp;gt;
      &amp;lt;classpath&amp;gt;
        &amp;lt;path refid="j2ee.classpath"/&amp;gt;
        &amp;lt;path path="${lib.dir}/${ant.project.name}.jar"/&amp;gt;
      &amp;lt;/classpath&amp;gt;
    &amp;lt;/java&amp;gt;
  &amp;lt;/target&amp;gt;

&amp;lt;/project&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;u&gt;Output (Run using ANT)&amp;nbsp;&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&amp;nbsp;&lt;/u&gt;  &lt;span style="color: #3d85c6;"&gt;run:&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [echo] Running the JDBC RAC Tester application&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java]&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] Periodic JDBC Load Balance Test&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] Period to report results in seconds is : 30&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java]&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] ** Started [5/25/11 9:38 AM] with 30(sec) interval between runs **&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java]&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] Current run started at Wed May 25 09:38:59 EST 2011&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] Obtaining 5 connections&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] using URL : jdbc:oracle:thin:@apctcsol1.au.oracle.com:1521/pas_srv&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java]&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] =============&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] Database Product Name is ... Oracle&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] Database Product Version is&amp;nbsp; Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] Data Mining and Real Application Testing options&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] =============&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] JDBC Driver Name is ........ Oracle JDBC driver&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] JDBC Driver Version is ..... 11.2.0.2.0&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] JDBC Driver Major Version is 11&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] JDBC Driver Minor Version is 2&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] =============&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] Connection #0 : instance[A12], host[auw2k4], service[pas_srv]&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] Connection #1 : instance[A11], host[auw2k3], service[pas_srv]&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] Connection #2 : instance[A12], host[auw2k4], service[pas_srv]&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] Connection #3 : instance[A11], host[auw2k3], service[pas_srv]&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] Connection #4 : instance[A12], host[auw2k4], service[pas_srv]&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] Closing Connections&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java]&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java]&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] Current run started at Wed May 25 09:39:29 EST 2011&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] Obtaining 5 connections&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] using URL : jdbc:oracle:thin:@apctcsol1.au.oracle.com:1521/pas_srv&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java]&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] =============&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] Database Product Name is ... Oracle&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] Database Product Version is&amp;nbsp; Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] Data Mining and Real Application Testing options&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] =============&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] JDBC Driver Name is ........ Oracle JDBC driver&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] JDBC Driver Version is ..... 11.2.0.2.0&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] JDBC Driver Major Version is 11&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] JDBC Driver Minor Version is 2&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] =============&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] Connection #0 : instance[A12], host[auw2k4], service[pas_srv]&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] Connection #1 : instance[A11], host[auw2k3], service[pas_srv]&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] Connection #2 : instance[A12], host[auw2k4], service[pas_srv]&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] Connection #3 : instance[A11], host[auw2k3], service[pas_srv]&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] Connection #4 : instance[A11], host[auw2k3], service[pas_srv]&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java] Closing Connections&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [java]&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6527688743456205256-229774191500141316?l=theblasfrompas.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7wNeBMiERBxa4DDUPBcM-hu-vlo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7wNeBMiERBxa4DDUPBcM-hu-vlo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7wNeBMiERBxa4DDUPBcM-hu-vlo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7wNeBMiERBxa4DDUPBcM-hu-vlo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/6ekJga-nWDk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/229774191500141316/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=229774191500141316" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/229774191500141316?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/229774191500141316?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/6ekJga-nWDk/intermittent-oracle-jdbc-connection.html" title="Intermittent Oracle JDBC Connection Failures to RAC" /><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/2011/05/intermittent-oracle-jdbc-connection.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYNRXk6eSp7ImA9WhZXFUg.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-6281743750727923434</id><published>2011-05-05T09:53:00.000+10:00</published><updated>2011-05-05T09:53:14.711+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-05T09:53:14.711+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="JRuby" /><category scheme="http://www.blogger.com/atom/ns#" term="Coherence" /><title>How to Access Oracle Coherence Caches from a JRuby App</title><content type="html">The following how to shows how to access the Coherence Grid using JRuby as an extend client. Easy to setup and run using ANT.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.oracle.com/technetwork/articles/dsl/jruby-coherence-393993.html"&gt;http://www.oracle.com/technetwork/articles/dsl/jruby-coherence-393993.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6527688743456205256-6281743750727923434?l=theblasfrompas.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gd-tgM8C66-Rilaw33Te6Hc2BA0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gd-tgM8C66-Rilaw33Te6Hc2BA0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gd-tgM8C66-Rilaw33Te6Hc2BA0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gd-tgM8C66-Rilaw33Te6Hc2BA0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/fzzSEhqKX40" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/6281743750727923434/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=6281743750727923434" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/6281743750727923434?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/6281743750727923434?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/fzzSEhqKX40/how-to-access-oracle-coherence-caches.html" title="How to Access Oracle Coherence Caches from a JRuby App" /><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/2011/05/how-to-access-oracle-coherence-caches.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMCSXY7fyp7ImA9WhZXEEk.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-5566736902964707059</id><published>2011-04-29T13:41:00.000+10:00</published><updated>2011-04-29T13:41:08.807+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-29T13:41:08.807+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Oracle JDBC" /><category scheme="http://www.blogger.com/atom/ns#" term="JDeveloper" /><category scheme="http://www.blogger.com/atom/ns#" term="JAX-RS" /><title>RESTful SQL Query Service using XML SQL Utility (XSU) API</title><content type="html">A little demo showing how easily we can create a SQL query utility using Oracle's XML SQL Utility (XSU) within a JAX-RS Web Service. Although basic you can easily create more query parameters to take full advantage of the &lt;a href="http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10708/adx_j_xsu.htm"&gt;XML SQL Utility (XSU) API&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
1. Create a JAX-RS Web Service as follows.&lt;br /&gt;
&lt;pre class="java" name="code"&gt;package pas.au.xmlsql.services;

import java.sql.Connection;
import java.sql.SQLException;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

import javax.sql.DataSource;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;

import oracle.xml.parser.v2.XMLDocument;
import oracle.xml.sql.query.OracleXMLQuery;

@Path ("/queryservice") 
public class QueryService
{
  private DataSource ds = null;
  private final String dataSourceLocation = "jdbc/scottDS";
  
  public QueryService()
  {
    Context context;  
    try  
    {  
      context = getInitialContext();  
      // lookup data source at this point
      ds = (DataSource) context.lookup (dataSourceLocation);
    }  
    catch (NamingException e)  
    {  
      throw new RuntimeException (e.getMessage());  
    } 
  }

  private Connection getConnection () throws SQLException
  {
    return ds.getConnection();  
  }
  
  private static Context getInitialContext() throws NamingException  
  {  
    return new InitialContext();  
  }

  @GET
  @Path("/query")
  @Produces(MediaType.APPLICATION_XML)
  public XMLDocument runQuery (@QueryParam("sql")String querySql)
  {
    Connection conn = null;
    OracleXMLQuery qry = null;
    XMLDocument domDoc = null;
    
    try
    {
      conn = getConnection();
      System.out.println("Query is -&amp;gt; " + querySql);
      qry = new OracleXMLQuery(conn, querySql);
      domDoc = (XMLDocument)qry.getXMLDOM();
      return domDoc;
    }
    catch (Exception e)
    {
      throw new RuntimeException
        (String.format("Error running query [%s]", querySql), e);
    }
    finally
    {
      /* 
       * if exception occurs here no real need to log it just catch it and continue
       */

      if (qry != null)
      {
        qry.close();
      }
      
      if (conn != null)
      {
        try
        {
          conn.close();
        }
        catch (SQLException s)
        {}
      }
    }
    
    
  }
}  
&lt;/pre&gt;&lt;br /&gt;
&lt;div style="color: #e69138;"&gt;Note: From the code above we lookup a data source using the JNDI name "jdbc/scottDS" which exists for the Integrated Server. You will need to create that for this demo to work.&lt;/div&gt;&lt;br /&gt;
2. Ensure you add the required libraries within JDeveloper. Apart from the Jersey libraries for JAX-RS you will need the 3 extra libraries as shown below.&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/-FIWSQadWLW8/Tbov-ddkKfI/AAAAAAAAAHU/Pt6nbgxO9Wo/s1600/img1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="228" src="http://1.bp.blogspot.com/-FIWSQadWLW8/Tbov-ddkKfI/AAAAAAAAAHU/Pt6nbgxO9Wo/s320/img1.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
3. Run Query Service and eventually it should show it's ready as follows.&lt;br /&gt;
&lt;div style="color: #0b5394;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;span style="color: #0b5394;"&gt;[01:28:26 PM] ----&amp;nbsp; Deployment finished.&amp;nbsp; ----&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #0b5394;"&gt;Run startup time: 4461 ms.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #0b5394;"&gt;[Application XMLSQLUtility deployed to Server Instance IntegratedWebLogicServer]&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #0b5394;"&gt;Target Application WADL -- http://localhost:7101/xmlsql-service/jersey/application.wadl&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #0b5394;"&gt;Target URL -- http://localhost:7101/xmlsql-service/jersey/queryservice/query?sql=string&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
4. Now using "&lt;b&gt;curl&lt;/b&gt;" run some queries as shown below. Of course it only accepts SQL queries but still useful enough.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Query: select user from dual&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;[oracle@beast pas]$ curl http://paslap-au.au.oracle.com:7101/xmlsql-service/jersey/queryservice/query?sql="select user from dual"

&amp;lt;?xml version="1.0" encoding="UTF-8" standalone="no"?&amp;gt;
&amp;lt;ROWSET&amp;gt;
  &amp;lt;ROW num="1"&amp;gt;&amp;lt;USER&amp;gt;SCOTT&amp;lt;/USER&amp;gt;&amp;lt;/ROW&amp;gt;
&amp;lt;/ROWSET&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;u&gt;Query: select * from dept&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;[oracle@beast pas]$ curl http://paslap-au.au.oracle.com:7101/xmlsql-service/jersey/queryservice/query?sql="select * from dept"

&amp;lt;?xml version="1.0" encoding="UTF-8" standalone="no"?&amp;gt;
&amp;lt;ROWSET&amp;gt;
&amp;lt;ROW num="1"&amp;gt;&amp;lt;DEPTNO&amp;gt;10&amp;lt;/DEPTNO&amp;gt;&amp;lt;DNAME&amp;gt;ACCOUNTING&amp;lt;/DNAME&amp;gt;&amp;lt;LOC&amp;gt;NEW YORK&amp;lt;/LOC&amp;lt;/ROW&amp;gt;
&amp;lt;ROW num="2"&amp;gt;&amp;lt;DEPTNO&amp;gt;20&amp;lt;/DEPTNO&amp;gt;&amp;lt;DNAME&amp;gt;RESEARCH&amp;lt;/DNAME&amp;gt;&amp;lt;LOC&amp;gt;DALLAS&amp;lt;/LOC&amp;gt;&amp;lt;/ROW&amp;gt;
&amp;lt;ROW num="3"&amp;gt;&amp;lt;DEPTNO&amp;gt;30&amp;lt;/DEPTNO&amp;gt;&amp;lt;DNAME&amp;gt;SALES&amp;lt;/DNAME&amp;gt;&amp;lt;LOC&amp;gt;CHICAGO&amp;lt;/LOC&amp;gt;&amp;lt;/ROW&amp;gt;
&amp;lt;ROW num="4"&amp;gt;&amp;lt;DEPTNO&amp;gt;40&amp;lt;/DEPTNO&amp;gt;&amp;lt;DNAME&amp;gt;OPERATIONS&amp;lt;/DNAME&amp;gt;&amp;lt;LOC&amp;gt;BOSTON&amp;lt;/LOC&amp;gt;&amp;lt;/ROW&amp;gt;&amp;lt;/ROWSET&amp;gt;
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6527688743456205256-5566736902964707059?l=theblasfrompas.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/KHSlfuoXJV2qgA-dGw4bdZBRp-Y/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KHSlfuoXJV2qgA-dGw4bdZBRp-Y/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/KHSlfuoXJV2qgA-dGw4bdZBRp-Y/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KHSlfuoXJV2qgA-dGw4bdZBRp-Y/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/CD9ye8ZuL6s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/5566736902964707059/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=5566736902964707059" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/5566736902964707059?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/5566736902964707059?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/CD9ye8ZuL6s/restful-sql-query-service-using-xml-sql.html" title="RESTful SQL Query Service using XML SQL Utility (XSU) API" /><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/-FIWSQadWLW8/Tbov-ddkKfI/AAAAAAAAAHU/Pt6nbgxO9Wo/s72-c/img1.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2011/04/restful-sql-query-service-using-xml-sql.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkICR3kycSp7ImA9WhZQF0U.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-5669457001310837075</id><published>2011-04-26T11:16:00.000+10:00</published><updated>2011-04-26T11:16:06.799+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-26T11:16:06.799+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Oracle JDBC" /><title>Display DATE columns from Oracle JDBC</title><content type="html">If we display a DATE column from a Oracle JDBC program we may not get the desired output. This basic demo shows how to format the display to meet your own needs using the &lt;b&gt;toText&lt;/b&gt; method from a &lt;b&gt;oracle.sql.DATE&lt;/b&gt; object.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Code&lt;/u&gt;&lt;br /&gt;
&lt;pre class="java" name="code"&gt;package pas.au.jdbc.dates;

import java.sql.Connection;
import java.sql.SQLException;

import java.util.Date;

import oracle.jdbc.OracleResultSet;
import oracle.jdbc.OracleStatement;
import oracle.jdbc.pool.OracleDataSource;

import oracle.sql.DATE;


public class FormatDateJDBC
{
  private OracleDataSource ods = null;
  private final String userId = "scott";
  private final String password = "tiger";
  private final String url = 
    "jdbc:oracle:thin:@beast.au.oracle.com:1524/linux11gr2";
  
  public FormatDateJDBC() throws SQLException
  {
    ods = new OracleDataSource();
    ods.setUser(userId);
    ods.setPassword(password);
    ods.setURL(url);
  }

  public Connection getConnection() throws SQLException
  {
    return ods.getConnection();
  }

  public void run()
  {
    Connection conn = null;
    OracleStatement stmt = null;
    OracleResultSet rset = null;
    
    try
    {
      conn = getConnection();
      System.out.println(conn);
      stmt = (OracleStatement)conn.createStatement();
      rset = (OracleResultSet) stmt.executeQuery("select SYSDATE from dual");
      rset.next();
      if (rset != null)
      { 
        DATE todaysDate = rset.getDATE(1);
        System.out.println
          (String.format("Todays date is %s", 
                         todaysDate.toText("DD/MM/YY HH:MM:SS", null)));
      }
    }
    catch (SQLException se)
    {
      se.printStackTrace();
    }
    finally
    {
      /* 
       * if exception occurs here no real need to log it just catch it and continue
       */
      if (rset != null)
      {
        try
        {
          rset.close();
        }
        catch (SQLException s)
        {}
      }
      
      if (stmt != null)
      {
        try
        {
          stmt.close();
        }
        catch (SQLException s)
        {}
      }     

      if (conn != null)
      {
        try
        {
          conn.close();
        }
        catch (SQLException s)
        {}
      }
    }
  }
  
  public static void main(String[] args)
  {
    FormatDateJDBC demo = null;
    try
    {
      System.out.println("Started JDBC display date at " + new Date());
      demo = new FormatDateJDBC();
      demo.run();
      System.out.println("Completed JDBC display date at " + new Date());
    }
    catch (SQLException e)
    {
      e.printStackTrace();
      System.exit(-1);
    }
  }
}
&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 JDBC display date at Tue Apr 26 11:07:59 EST 2011&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;oracle.jdbc.driver.T4CConnection@c24c0&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Todays date is 26/04/11 10:04:38&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;Completed JDBC display date at Tue Apr 26 11:08:00 EST 2011&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6527688743456205256-5669457001310837075?l=theblasfrompas.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/AKzdYFgQQnRcVTdgwkn9-REnmjY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AKzdYFgQQnRcVTdgwkn9-REnmjY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/AKzdYFgQQnRcVTdgwkn9-REnmjY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AKzdYFgQQnRcVTdgwkn9-REnmjY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/-H2A2yOdPVw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/5669457001310837075/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=5669457001310837075" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/5669457001310837075?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/5669457001310837075?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/-H2A2yOdPVw/display-date-columns-from-oracle-jdbc.html" title="Display DATE columns from Oracle JDBC" /><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/2011/04/display-date-columns-from-oracle-jdbc.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEAER30yeip7ImA9WhZRFUw.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-7797825192548457452</id><published>2011-04-11T10:53:00.003+10:00</published><updated>2011-04-11T20:11:46.392+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-11T20:11:46.392+10:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="JRuby" /><category scheme="http://www.blogger.com/atom/ns#" term="Weblogic" /><title>JRuby OTN How to's With FMW and Oracle RDBMS</title><content type="html">A couple of OTN how to's which show how to use JRuby with some of the Oracle Fusion Middleware products as well as single instance and RAC oracle databases.&lt;br /&gt;
&lt;br /&gt;
1. Using JRuby with Oracle Database&lt;br /&gt;
&lt;a href="http://www.oracle.com/technetwork/articles/dsl/jruby-oracle11g-330825.html"&gt;http://www.oracle.com/technetwork/articles/dsl/jruby-oracle11g-330825.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
2. Use JRuby with JMX for Oracle WebLogic Server 11g&lt;br /&gt;
&lt;a href="http://www.oracle.com/technetwork/articles/oem/jruby-wls-jmx-356114.html"&gt;http://www.oracle.com/technetwork/articles/oem/jruby-wls-jmx-356114.html &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
3. Use a JRuby Script to Verify an Oracle RAC Setup using SCAN&lt;br /&gt;
&lt;a href="http://www.oracle.com/technetwork/articles/oem/jruby-ucp-rac-355460.html"&gt;http://www.oracle.com/technetwork/articles/oem/jruby-ucp-rac-355460.html &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6527688743456205256-7797825192548457452?l=theblasfrompas.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gBBx3XZOJ6VlFC8U_03x_BwgG3s/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gBBx3XZOJ6VlFC8U_03x_BwgG3s/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gBBx3XZOJ6VlFC8U_03x_BwgG3s/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gBBx3XZOJ6VlFC8U_03x_BwgG3s/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/9a7GBJVxYxg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/7797825192548457452/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=7797825192548457452" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/7797825192548457452?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/7797825192548457452?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/9a7GBJVxYxg/jruby-otn-how-tos-with-fmw-and-oracle.html" title="JRuby OTN How to's With FMW and Oracle RDBMS" /><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/2011/04/jruby-otn-how-tos-with-fmw-and-oracle.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMMQHgyfyp7ImA9WhZSFUk.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-8878217803788754325</id><published>2011-03-29T13:28:00.001+11:00</published><updated>2011-03-31T14:01:21.697+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-31T14:01:21.697+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="JDeveloper" /><category scheme="http://www.blogger.com/atom/ns#" term="JAX-RS" /><title>RESTful Web Service using JPA/EJB 3.0 Entities</title><content type="html">In this example I created a more common use case of using JAX-RS Web Service based on a JPA/EJB 3.0 entity. I will only show the code here and what the project looks like in JDeveloper but in short you would have a setup as follows based on a DEPT table in the classic SCOTT schema.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;JAX-RS Web Service -&amp;gt; SLSB -&amp;gt;&amp;nbsp; JPA/EJB 3.0 entity&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
1. Create the DEPT JPA/EJB 3.0 Entity using the"&lt;b&gt;Entities from tables&lt;/b&gt;" EJB wizard.&lt;br /&gt;
2. Create a Statelesss Session bean which generates facade methods for the JPA Entity we created at step #1&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #e69138;"&gt;Note: In this example we will just implement the default Dept.findAll named query created from the JPA Entity&lt;/div&gt;&lt;br /&gt;
&lt;pre class="java" name="code"&gt;package pas.au.jaxrs.jpa.dept;

import java.util.List;

import javax.ejb.Stateless;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

@Stateless(name = "DeptSessionEJB", mappedName = "JAX-RS-DeptJPADemo-Demo-DeptSessionEJB")
public class DeptSessionEJBBean
  implements DeptSessionEJB, DeptSessionEJBLocal
{
  @PersistenceContext(unitName="Demo")
  private EntityManager em;

  public DeptSessionEJBBean()
  {
  }

  public Object queryByRange(String jpqlStmt, int firstResult,
                             int maxResults)
  {
    Query query = em.createQuery(jpqlStmt);
    if (firstResult &amp;gt; 0)
    {
      query = query.setFirstResult(firstResult);
    }
    if (maxResults &amp;gt; 0)
    {
      query = query.setMaxResults(maxResults);
    }
    return query.getResultList();
  }

  /** &amp;lt;code&amp;gt;select o from Dept o&amp;lt;/code&amp;gt; */
  public List&amp;lt;Dept&amp;gt; getDeptFindAll()
  {
    return em.createNamedQuery("Dept.findAll").getResultList();
  }
}  
&lt;/pre&gt;&lt;br /&gt;
3. Create the JAX-RS Web Service as follows.&lt;br /&gt;
&lt;pre class="java" name="code"&gt;package pas.au.jaxrs.jpa.dept;

import java.util.Hashtable;
import java.util.List;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;


@Path ("/deptjpaservice")
public class DeptService
{
  private DeptSessionEJB deptBean;
  
  public DeptService()
  {
    Context context;
    try
    {
      context = getInitialContext();
      deptBean = (DeptSessionEJB)
        context.lookup
         ("JAX-RS-DeptJPADemo-Demo-DeptSessionEJB#pas.au.jaxrs.jpa.dept.DeptSessionEJB");
    }
    catch (NamingException e)
    {
      throw new RuntimeException (e.getMessage());
    }
  }

  @GET
  @Path("/departments")
  @Produces(MediaType.APPLICATION_XML)
  public List&amp;lt;Dept&amp;gt; listDepartments()
  {
    return deptBean.getDeptFindAll();
  }

  private static Context getInitialContext() throws NamingException
  {
    return new InitialContext();
  }
}
&lt;/pre&gt;&lt;br /&gt;
You could deploy this to Weblogic 10.3.4as per a previous &lt;a href="http://theblasfrompas.blogspot.com/2011/03/time-to-deploy-restful-web-service-from.html"&gt;post&lt;/a&gt;. In the example client above we just rujn it in the Integrated Server from JDeveloper to test it out.&lt;br /&gt;
&lt;br /&gt;
4.&amp;nbsp; Run the JAX-RS Web Service when finished you should see the following in the log file.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #3d85c6;"&gt;[01:10:31 PM] ----&amp;nbsp; Deployment finished.&amp;nbsp; ----&lt;br /&gt;
Run startup time: 11380 ms.&lt;br /&gt;
[Application JAX-RS-DeptJPADemo deployed to Server Instance IntegratedWebLogicServer]&lt;br /&gt;
&lt;br /&gt;
Target Application WADL -- http://localhost:7101/jaxrs-deptjpa/jersey/application.wadl&lt;br /&gt;
&lt;br /&gt;
Target URL -- http://localhost:7101/jaxrs-deptjpa/jersey/deptjpaservice/departments&lt;/div&gt;&lt;br /&gt;
5. Using curl access it from a putty client as follows.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; curl http://paslap-au.au.oracle.com:7101/jaxrs-deptjpa/jersey/deptjpaservice/departments&lt;br /&gt;
&lt;br /&gt;
Of course the example above just shows how easy it is to call a JAX-RS service from a simple UNIX command line , but to be honest the easiest way is from JDeveloper itself using the HTTP analzyer by clicking on the link in the log window as shown below. At least this way the output is nicely formatted for you.&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/-9XnjiOCw-XQ/TZPuYjU2BFI/AAAAAAAAAHQ/8FS4XE5wpmg/s1600/image2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="190" src="http://4.bp.blogspot.com/-9XnjiOCw-XQ/TZPuYjU2BFI/AAAAAAAAAHQ/8FS4XE5wpmg/s320/image2.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;u&gt;Output&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="xml" name="code"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&amp;gt;&amp;lt;depts&amp;gt;&amp;lt;department&amp;gt;&amp;lt;deptno&amp;gt;10&amp;lt;/deptno&amp;gt;&amp;lt;dname&amp;gt;ACCOUNTING&amp;lt;/dname&amp;gt;&amp;lt;loc&amp;gt;NEW YORK&amp;lt;/loc&amp;gt;&amp;lt;/department&amp;gt;&amp;lt;department&amp;gt;&amp;lt;deptno&amp;gt;20&amp;lt;/deptno&amp;gt;&amp;lt;dname&amp;gt;RESEARCH&amp;lt;/dname&amp;gt;&amp;lt;loc&amp;gt;DALLAS&amp;lt;/loc&amp;gt;&amp;lt;/department&amp;gt;&amp;lt;department&amp;gt;&amp;lt;deptno&amp;gt;30&amp;lt;/deptno&amp;gt;&amp;lt;dname&amp;gt;SALES&amp;lt;/dname&amp;gt;&amp;lt;loc&amp;gt;CHICAGO&amp;lt;/loc&amp;gt;&amp;lt;/department&amp;gt;&amp;lt;department&amp;gt;&amp;lt;deptno&amp;gt;40&amp;lt;/deptno&amp;gt;&amp;lt;dname&amp;gt;OPERATIONS&amp;lt;/dname&amp;gt;&amp;lt;loc&amp;gt;BOSTON&amp;lt;/loc&amp;gt;&amp;lt;/department&amp;gt;&amp;lt;/depts&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
The JDeveloper project would 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/-St8I4SR7rE8/TZE7zz75kTI/AAAAAAAAAHM/2961NqxOHjA/s1600/image1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-St8I4SR7rE8/TZE7zz75kTI/AAAAAAAAAHM/2961NqxOHjA/s320/image1.jpg" width="204" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6527688743456205256-8878217803788754325?l=theblasfrompas.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gsVA-dfiqju2920toA9wGugdt8k/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gsVA-dfiqju2920toA9wGugdt8k/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gsVA-dfiqju2920toA9wGugdt8k/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gsVA-dfiqju2920toA9wGugdt8k/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/PNB81bOUzwY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/8878217803788754325/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=8878217803788754325" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/8878217803788754325?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/8878217803788754325?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/PNB81bOUzwY/restful-web-service-using-jpaejb-30.html" title="RESTful Web Service using JPA/EJB 3.0 Entities" /><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://4.bp.blogspot.com/-9XnjiOCw-XQ/TZPuYjU2BFI/AAAAAAAAAHQ/8FS4XE5wpmg/s72-c/image2.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://theblasfrompas.blogspot.com/2011/03/restful-web-service-using-jpaejb-30.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08AQX0zfip7ImA9Wx9aFk8.&quot;"><id>tag:blogger.com,1999:blog-6527688743456205256.post-4805841015216348802</id><published>2011-03-09T10:10:00.000+11:00</published><updated>2011-03-09T10:10:40.386+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-09T10:10:40.386+11:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SCAN" /><category scheme="http://www.blogger.com/atom/ns#" term="Active GridLink" /><category scheme="http://www.blogger.com/atom/ns#" term="Oracle JDBC" /><category scheme="http://www.blogger.com/atom/ns#" term="Weblogic" /><title>How-To: Use Oracle WebLogic Server with a JDBC GridLink Data Source</title><content type="html">This recently created how-to I created show's how to configure and test your new Oracle WebLogic 10.3.4 JDBC GridLink Data Source. The demo here is using an 11g R2 RAC cluster with SCAN. The link is as follows which includes a web test client.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.oracle.com/technetwork/middleware/weblogic/wls-jdbc-gridlink-howto-333331.html"&gt;http://www.oracle.com/technetwork/middleware/weblogic/wls-jdbc-gridlink-howto-333331.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;http://feeds.feedburner.com/TheBlasFromPas&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6527688743456205256-4805841015216348802?l=theblasfrompas.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mC3WOsapNJgKaaUdLKUN9uDT2Sg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mC3WOsapNJgKaaUdLKUN9uDT2Sg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mC3WOsapNJgKaaUdLKUN9uDT2Sg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mC3WOsapNJgKaaUdLKUN9uDT2Sg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/PEqWE/~4/hiRtFlRPwSc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://theblasfrompas.blogspot.com/feeds/4805841015216348802/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6527688743456205256&amp;postID=4805841015216348802" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/4805841015216348802?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6527688743456205256/posts/default/4805841015216348802?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/PEqWE/~3/hiRtFlRPwSc/how-to-use-oracle-weblogic-server-with.html" title="How-To: Use Oracle WebLogic Server with a JDBC GridLink Data Source" /><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/2011/03/how-to-use-oracle-weblogic-server-with.html</feedburner:origLink></entry></feed>

