Teiid embedded samples Infnispan Remote Cache
Teiid Embedded is a light-weight version of Teiid, it contain an easy-to-use JDBC Driver that can embed the Query Engine in any Java application. The Embedded mode supply almost all Teiid features without JEE Container involved, it supply a convenient way for Users who want integrate Teiid with their Application.
This document show how Teiid Embedded use Infnispan Remote Cache as data source, the architecture as below:
Infnispan Remote Cache
Infnispan Remote Cache be used in this example, The cache remote-quickstart-cache
be configured in Remote JBoss Data Grid Server, Infinispan Hot Rod protocol be used to load remote cache.
For setup remote-quickstart-cache
either use CLI commands:
/subsystem=infinispan/cache-container=local/local-cache=remote-quickstart-cache:add(start=EAGER)
or edit JBoss Data Grid configuration file standalone.xml, add the following in cache-container:
<local-cache name="remote-quickstart-cache" start="EAGER">
<locking isolation="NONE" acquire-timeout="30000" concurrency-level="1000" striping="false"/>
<transaction mode="NONE"/>
</local-cache>
For using Hot Rod Connection to JBoss Data Grid use the following properties:
infinispan.client.hotrod.server_list=10.66.218.46:11222
jdg.host=10.66.218.46
jdg.hotrod.port=11222
jdg.cache.name=remote-quickstart-cache
remote_orders VDB
A Virtual Database (VDB) is an artifact that defines the logical schema model combining one or more physical data sources to provide easy data integration. In this example, remote_orders VDB has Model OrdersView
point to Infinispan Remote Cache remote-quickstart-cache
The completed content of orders VDB
JVM
Java Application run on JVM, load the remote_orders VDB
and query via JDBC. The mainly Code Snippets:
init("infinispan-remote", new ObjectExecutionFactory());
InfinispanManagedConnectionFactory managedConnectionFactory = new InfinispanManagedConnectionFactory();
managedConnectionFactory.setRemoteServerList(REMOTE_SERVE_LIST);
managedConnectionFactory.setCacheTypeMap(TEST_CACHE_NAME + ":" + Order.class.getName());
server.addConnectionFactory("java:/infinispanRemote", managedConnectionFactory.createConnectionFactory());
start(false);
server.deployVDB(new FileInputStream(new File("vdb/remotecache-vdb.xml")));
conn = server.getDriver().connect("jdbc:teiid:remote_orders", null);