teiid SVN: r2422 - in trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc: sybase and 1 other directory.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2010-08-06 01:00:38 -0400 (Fri, 06 Aug 2010)
New Revision: 2422
Modified:
trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCExecutionFactory.java
trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/sybase/SybaseExecutionFactory.java
Log:
TEIID-1181 updating sqlserver/sybase logic to avoid the byte type
Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCExecutionFactory.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCExecutionFactory.java 2010-08-06 04:57:28 UTC (rev 2421)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCExecutionFactory.java 2010-08-06 05:00:38 UTC (rev 2422)
@@ -930,7 +930,7 @@
* @return the value
* @throws SQLException
*/
- public Object retrieveValue(CallableStatement results, int parameterIndex, Class expectedType) throws SQLException{
+ public Object retrieveValue(CallableStatement results, int parameterIndex, Class<?> expectedType) throws SQLException{
Integer code = TYPE_CODE_MAP.get(expectedType);
if(code != null) {
switch(code.intValue()) {
Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/sybase/SybaseExecutionFactory.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/sybase/SybaseExecutionFactory.java 2010-08-06 04:57:28 UTC (rev 2421)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/sybase/SybaseExecutionFactory.java 2010-08-06 05:00:38 UTC (rev 2422)
@@ -24,6 +24,10 @@
*/
package org.teiid.translator.jdbc.sybase;
+import java.sql.CallableStatement;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -37,6 +41,7 @@
import org.teiid.translator.TranslatorException;
import org.teiid.translator.ExecutionContext;
import org.teiid.translator.SourceSystemFunctions;
+import org.teiid.translator.TypeFacility;
import org.teiid.translator.jdbc.AliasModifier;
import org.teiid.translator.jdbc.ConvertModifier;
import org.teiid.translator.jdbc.EscapeSyntaxModifier;
@@ -332,4 +337,32 @@
public boolean booleanNullable() {
return false;
}
+
+ @Override
+ public Object retrieveValue(ResultSet results, int columnIndex,
+ Class<?> expectedType) throws SQLException {
+ if (expectedType == TypeFacility.RUNTIME_TYPES.BYTE) {
+ expectedType = TypeFacility.RUNTIME_TYPES.SHORT;
+ }
+ return super.retrieveValue(results, columnIndex, expectedType);
+ }
+
+ @Override
+ public Object retrieveValue(CallableStatement results, int parameterIndex,
+ Class<?> expectedType) throws SQLException {
+ if (expectedType == TypeFacility.RUNTIME_TYPES.BYTE) {
+ expectedType = TypeFacility.RUNTIME_TYPES.SHORT;
+ }
+ return super.retrieveValue(results, parameterIndex, expectedType);
+ }
+
+ @Override
+ public void bindValue(PreparedStatement stmt, Object param,
+ Class<?> paramType, int i) throws SQLException {
+ if (paramType == TypeFacility.RUNTIME_TYPES.BYTE) {
+ paramType = TypeFacility.RUNTIME_TYPES.SHORT;
+ param = ((Byte)param).shortValue();
+ }
+ super.bindValue(stmt, param, paramType, i);
+ }
}
14 years, 6 months
teiid SVN: r2421 - in trunk/runtime/src/main/java/org/teiid: services and 1 other directory.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2010-08-06 00:57:28 -0400 (Fri, 06 Aug 2010)
New Revision: 2421
Modified:
trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java
trunk/runtime/src/main/java/org/teiid/services/SessionServiceImpl.java
Log:
TEIID-1187 updating connection type logic
Modified: trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java 2010-08-05 20:13:20 UTC (rev 2420)
+++ trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java 2010-08-06 04:57:28 UTC (rev 2421)
@@ -36,8 +36,6 @@
import org.teiid.adminapi.AdminException;
import org.teiid.adminapi.AdminProcessingException;
import org.teiid.adminapi.Model;
-import org.teiid.adminapi.VDB.ConnectionType;
-import org.teiid.adminapi.VDB.Status;
import org.teiid.adminapi.impl.ModelMetaData;
import org.teiid.adminapi.impl.VDBMetaData;
import org.teiid.core.CoreConstants;
@@ -130,20 +128,23 @@
return new VDBKey(vdb.getName(), vdb.getVersion());
}
- public VDBMetaData getActiveVDB(String vdbName) throws VirtualDatabaseException {
+ public VDBMetaData getVDB(String vdbName) throws VirtualDatabaseException {
int latestVersion = 0;
for (VDBKey key:this.vdbRepo.tailMap(new VDBKey(vdbName, 0)).keySet()) {
if(!key.getName().equalsIgnoreCase(vdbName)) {
break;
}
VDBMetaData vdb = this.vdbRepo.get(key).getVDB();
- if (vdb.getStatus() == Status.ACTIVE) {
- if (vdb.getConnectionType() == ConnectionType.ANY) {
- latestVersion = Math.max(vdb.getVersion(), latestVersion);
- } else if (latestVersion == 0 && vdb.getConnectionType() == ConnectionType.BY_VERSION) {
+ switch (vdb.getConnectionType()) {
+ case ANY:
+ latestVersion = Math.max(vdb.getVersion(), latestVersion);
+ break;
+ case BY_VERSION:
+ if (latestVersion == 0) {
latestVersion = vdb.getVersion();
- }
- }
+ }
+ break;
+ }
}
if(latestVersion == 0) {
throw new VirtualDatabaseException(RuntimePlugin.Util.getString("VDBService.VDB_does_not_exist._2", vdbName, "latest")); //$NON-NLS-1$ //$NON-NLS-2$
Modified: trunk/runtime/src/main/java/org/teiid/services/SessionServiceImpl.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/services/SessionServiceImpl.java 2010-08-05 20:13:20 UTC (rev 2420)
+++ trunk/runtime/src/main/java/org/teiid/services/SessionServiceImpl.java 2010-08-06 04:57:28 UTC (rev 2421)
@@ -166,18 +166,19 @@
if (vdbName != null) {
String vdbVersion = properties.getProperty(TeiidURL.JDBC.VDB_VERSION);
if (vdbVersion == null) {
+ vdbVersion = "latest"; //$NON-NLS-1$
try {
- vdb = this.vdbRepository.getActiveVDB(vdbName);
+ vdb = this.vdbRepository.getVDB(vdbName);
} catch (VirtualDatabaseException e) {
- throw new SessionServiceException(RuntimePlugin.Util.getString("VDBService.VDB_does_not_exist._2", vdbName, "latest")); //$NON-NLS-1$ //$NON-NLS-2$
+ throw new SessionServiceException(RuntimePlugin.Util.getString("VDBService.VDB_does_not_exist._2", vdbName, vdbVersion)); //$NON-NLS-1$
}
}
else {
vdb = this.vdbRepository.getVDB(vdbName, Integer.parseInt(vdbVersion));
- if (vdb.getStatus() != VDB.Status.ACTIVE || vdb.getConnectionType() == ConnectionType.NONE) {
- throw new SessionServiceException(RuntimePlugin.Util.getString("VDBService.VDB_does_not_exist._2", vdbName, vdbVersion)); //$NON-NLS-1$
- }
}
+ if (vdb.getStatus() != VDB.Status.ACTIVE || vdb.getConnectionType() == ConnectionType.NONE) {
+ throw new SessionServiceException(RuntimePlugin.Util.getString("VDBService.VDB_does_not_exist._2", vdbName, vdbVersion)); //$NON-NLS-1$
+ }
}
if (sessionMaxLimit > 0 && getActiveSessionsCount() >= sessionMaxLimit) {
14 years, 6 months
teiid SVN: r2420 - trunk/cache-jbosscache/src/main/java/org/teiid/cache/jboss.
by teiid-commits@lists.jboss.org
Author: rareddy
Date: 2010-08-05 16:13:20 -0400 (Thu, 05 Aug 2010)
New Revision: 2420
Modified:
trunk/cache-jbosscache/src/main/java/org/teiid/cache/jboss/ClusterableCacheFactory.java
Log:
TEIID-1185
Modified: trunk/cache-jbosscache/src/main/java/org/teiid/cache/jboss/ClusterableCacheFactory.java
===================================================================
--- trunk/cache-jbosscache/src/main/java/org/teiid/cache/jboss/ClusterableCacheFactory.java 2010-08-05 17:41:38 UTC (rev 2419)
+++ trunk/cache-jbosscache/src/main/java/org/teiid/cache/jboss/ClusterableCacheFactory.java 2010-08-05 20:13:20 UTC (rev 2420)
@@ -64,7 +64,9 @@
@Override
public void destroy() {
- this.delegate.destroy();
+ if (this.delegate != null) {
+ this.delegate.destroy();
+ }
}
private Object getClusteredCache() {
14 years, 6 months
teiid SVN: r2419 - in trunk: console and 2 other directories.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2010-08-05 13:41:38 -0400 (Thu, 05 Aug 2010)
New Revision: 2419
Modified:
trunk/client/src/main/java/org/teiid/adminapi/impl/VDBMetaData.java
trunk/console/pom.xml
trunk/console/src/main/java/org/teiid/rhq/admin/DQPManagementView.java
trunk/console/src/main/java/org/teiid/rhq/plugin/VDBComponent.java
trunk/console/src/main/java/org/teiid/rhq/plugin/VDBDiscoveryComponent.java
Log:
TEIID-1187 updating versioning logic to use .version.vdb
Modified: trunk/client/src/main/java/org/teiid/adminapi/impl/VDBMetaData.java
===================================================================
--- trunk/client/src/main/java/org/teiid/adminapi/impl/VDBMetaData.java 2010-08-05 16:49:58 UTC (rev 2418)
+++ trunk/client/src/main/java/org/teiid/adminapi/impl/VDBMetaData.java 2010-08-05 17:41:38 UTC (rev 2419)
@@ -60,6 +60,8 @@
@XmlRootElement(name = "vdb")
public class VDBMetaData extends AdminObjectImpl implements VDB {
+ private static final String VERSION_DELIM = "."; //$NON-NLS-1$
+
private static final long serialVersionUID = -4723595252013356436L;
/**
@@ -109,12 +111,17 @@
private boolean removed;
@ManagementProperty(description="Name of the VDB")
- @ManagementObjectID(type="vdb")
@XmlAttribute(name = "name", required = true)
public String getName() {
return super.getName();
}
+ @ManagementProperty(description="Full Name of the VDB")
+ @ManagementObjectID(type="vdb")
+ public String getFullName() {
+ return getName() + VERSION_DELIM + getVersion();
+ }
+
// This needed by JAXB marshaling
public void setName(String name) {
super.setName(name);
@@ -170,8 +177,12 @@
public void setUrl(URL url) {
this.setUrl(url.toExternalForm());
- String fileName = FileUtils.getBaseFileNameWithoutExtension(url.getPath());
- String prefix = getName() + "_"; //$NON-NLS-1$
+ String path = url.getPath();
+ if (path.endsWith("/")) { //$NON-NLS-1$
+ path = path.substring(0, path.length() - 1);
+ }
+ String fileName = FileUtils.getBaseFileNameWithoutExtension(path);
+ String prefix = getName() + VERSION_DELIM;
if (StringUtil.startsWithIgnoreCase(fileName, prefix)) {
try {
int fileVersion = Integer.parseInt(fileName.substring(prefix.length()));
@@ -270,7 +281,7 @@
}
public String toString() {
- return getName()+"."+getVersion()+ models.getMap().values(); //$NON-NLS-1$
+ return getName()+VERSION_DELIM+getVersion()+ models.getMap().values(); //$NON-NLS-1$
}
public ModelMetaData getModel(String modelName) {
Modified: trunk/console/pom.xml
===================================================================
--- trunk/console/pom.xml 2010-08-05 16:49:58 UTC (rev 2418)
+++ trunk/console/pom.xml 2010-08-05 17:41:38 UTC (rev 2419)
@@ -104,6 +104,7 @@
<dependency>
<groupId>org.jboss.teiid</groupId>
<artifactId>teiid-client</artifactId>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.teiid</groupId>
Modified: trunk/console/src/main/java/org/teiid/rhq/admin/DQPManagementView.java
===================================================================
--- trunk/console/src/main/java/org/teiid/rhq/admin/DQPManagementView.java 2010-08-05 16:49:58 UTC (rev 2418)
+++ trunk/console/src/main/java/org/teiid/rhq/admin/DQPManagementView.java 2010-08-05 17:41:38 UTC (rev 2419)
@@ -47,6 +47,7 @@
import org.teiid.adminapi.Request;
import org.teiid.adminapi.Session;
import org.teiid.adminapi.Transaction;
+import org.teiid.adminapi.VDB.Status;
import org.teiid.adminapi.impl.RequestMetadata;
import org.teiid.adminapi.impl.RequestMetadataMapper;
import org.teiid.rhq.plugin.objects.ExecutedResult;
@@ -137,7 +138,7 @@
.equals(PluginConstants.ComponentType.VDB.Metrics.STATUS)) {
// TODO remove version parameter after AdminAPI is changed
resultObject = getVDBStatus(connection, (String) valueMap
- .get(VDB.NAME), 1);
+ .get(VDB.NAME));
} else if (metric
.equals(PluginConstants.ComponentType.VDB.Metrics.QUERY_COUNT)) {
resultObject = new Double(getQueryCount(connection).doubleValue());
@@ -375,7 +376,7 @@
}
public static String getVDBStatus(ProfileServiceConnection connection,
- String vdbName, int version) {
+ String vdbName) {
ManagedComponent mcVdb = null;
try {
@@ -392,6 +393,10 @@
final String msg = "Exception in getVDBStatus(): " + e.getMessage(); //$NON-NLS-1$
LOG.error(msg, e);
}
+
+ if (mcVdb == null) {
+ return Status.INACTIVE.toString();
+ }
return ProfileServiceUtil.getSimpleValue(mcVdb, "status", String.class); //$NON-NLS-1$
}
Modified: trunk/console/src/main/java/org/teiid/rhq/plugin/VDBComponent.java
===================================================================
--- trunk/console/src/main/java/org/teiid/rhq/plugin/VDBComponent.java 2010-08-05 16:49:58 UTC (rev 2418)
+++ trunk/console/src/main/java/org/teiid/rhq/plugin/VDBComponent.java 2010-08-05 17:41:38 UTC (rev 2419)
@@ -93,7 +93,7 @@
@Override
public void start(ResourceContext context) {
this.setComponentName(context.getPluginConfiguration().getSimpleValue(
- "name", null));
+ "fullName", null));
this.resourceConfiguration = context.getPluginConfiguration();
this.componentType = PluginConstants.ComponentType.VDB.NAME;
super.start(context);
@@ -136,7 +136,7 @@
// TODO Remove vdb version after no longer viable in Teiid
String version = this.resourceConfiguration.getSimpleValue(
"version", null);
- String status = DQPManagementView.getVDBStatus(getConnection(), this.name, Integer.parseInt(version));
+ String status = DQPManagementView.getVDBStatus(getConnection(), this.name);
if (status.equals("ACTIVE")) {
return AvailabilityType.UP;
}
@@ -149,8 +149,7 @@
Map<String, Object> valueMap) {
// Parameter logic for VDB Metrics
String key = VDB.NAME;
- valueMap.put(key, this.resourceConfiguration.getSimpleValue("name",
- null));
+ valueMap.put(key, this.name);
}
@Override
Modified: trunk/console/src/main/java/org/teiid/rhq/plugin/VDBDiscoveryComponent.java
===================================================================
--- trunk/console/src/main/java/org/teiid/rhq/plugin/VDBDiscoveryComponent.java 2010-08-05 16:49:58 UTC (rev 2418)
+++ trunk/console/src/main/java/org/teiid/rhq/plugin/VDBDiscoveryComponent.java 2010-08-05 17:41:38 UTC (rev 2419)
@@ -64,6 +64,8 @@
String vdbKey = mcVdb.getDeployment().getName();
String vdbName = ProfileServiceUtil.getSimpleValue(mcVdb, "name",
String.class);
+ String fullName = ProfileServiceUtil.getSimpleValue(mcVdb, "fullName",
+ String.class);
Integer vdbVersion = ProfileServiceUtil.getSimpleValue(mcVdb,
"version", Integer.class);
String vdbDescription = ProfileServiceUtil.getSimpleValue(mcVdb,
@@ -93,6 +95,7 @@
Configuration configuration = detail.getPluginConfiguration();
configuration.put(new PropertySimple("name", vdbName));
+ configuration.put(new PropertySimple("fullName", fullName));
configuration.put(new PropertySimple("version", vdbVersion));
configuration
.put(new PropertySimple("description", vdbDescription));
14 years, 6 months
teiid SVN: r2418 - trunk/documentation/reference/src/main/docbook/en-US/content.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2010-08-05 12:49:58 -0400 (Thu, 05 Aug 2010)
New Revision: 2418
Modified:
trunk/documentation/reference/src/main/docbook/en-US/content/procedures.xml
trunk/documentation/reference/src/main/docbook/en-US/content/sql_support.xml
Log:
TEIID-1186 fixing broken links
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/procedures.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/procedures.xml 2010-08-05 15:18:36 UTC (rev 2417)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/procedures.xml 2010-08-05 16:49:58 UTC (rev 2418)
@@ -366,7 +366,7 @@
</section>
<section>
<title>Executing Virtual Procedures</title>
- <para>You execute procedures using the SQL <link linkend="execute_command">EXECUTE</link> command. If
+ <para>You execute procedures using the SQL <link linkend="exec_command">EXECUTE</link> command. If
the procedure has defined inputs, you specify those in a
sequential list, or using "name=value" syntax. You must use the
name of the input parameter, scoped by the full procedure name if
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/sql_support.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/sql_support.xml 2010-08-05 15:18:36 UTC (rev 2417)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/sql_support.xml 2010-08-05 16:49:58 UTC (rev 2418)
@@ -1132,7 +1132,7 @@
</listitem>
</itemizedlist>
<para>Previous versions of Teiid accepted the PLANONLY, DEBUG, and SHOWPLAN option arguments. These are no longer accepted in the OPTION clause.
- Please see the <link linkend="other_commands">other commands</link> chapter for using these options.
+ Please see the Client Developers Guide for replacements to those options.
</para>
</section>
</section>
14 years, 6 months
teiid SVN: r2417 - in trunk: build/kits/jboss-container/deployers/teiid.deployer and 14 other directories.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2010-08-05 11:18:36 -0400 (Thu, 05 Aug 2010)
New Revision: 2417
Modified:
trunk/build/kits/jboss-container/deploy/teiid/teiid-jboss-beans.xml
trunk/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml
trunk/client/src/main/java/org/teiid/adminapi/VDB.java
trunk/client/src/main/java/org/teiid/adminapi/impl/VDBMetaData.java
trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/sqlserver/SQLServerExecutionFactory.java
trunk/console/src/main/java/org/teiid/rhq/plugin/VDBComponent.java
trunk/console/src/main/resources/META-INF/rhq-plugin.xml
trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/ConnectorManager.java
trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/ConnectorManagerRepository.java
trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/TranslatorRepository.java
trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java
trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java
trunk/engine/src/main/java/org/teiid/dqp/internal/process/Request.java
trunk/engine/src/main/java/org/teiid/vdb/runtime/VDBKey.java
trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java
trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDataTierManager.java
trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestPreparedStatement.java
trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestRequest.java
trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/RuntimeEngineDeployer.java
trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/VDBMetaDataInstanceClassFactory.java
trunk/runtime/src/main/java/org/teiid/deployers/CompositeVDB.java
trunk/runtime/src/main/java/org/teiid/deployers/DynamicVDBDeployer.java
trunk/runtime/src/main/java/org/teiid/deployers/TranslatorDeployer.java
trunk/runtime/src/main/java/org/teiid/deployers/VDBDeployer.java
trunk/runtime/src/main/java/org/teiid/deployers/VDBParserDeployer.java
trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java
trunk/runtime/src/main/java/org/teiid/deployers/VDBStatusChecker.java
trunk/runtime/src/main/java/org/teiid/services/SessionServiceImpl.java
trunk/test-integration/common/src/test/java/org/teiid/dqp/internal/process/TestXMLTypeTranslations.java
trunk/test-integration/common/src/test/java/org/teiid/jdbc/FakeServer.java
Log:
TEIID-1187 changing the scoping of connectormanagerrepository and the vdb level translators. also separating vdb status from an updatable property that determines how to allow connections.
Modified: trunk/build/kits/jboss-container/deploy/teiid/teiid-jboss-beans.xml
===================================================================
--- trunk/build/kits/jboss-container/deploy/teiid/teiid-jboss-beans.xml 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/build/kits/jboss-container/deploy/teiid/teiid-jboss-beans.xml 2010-08-05 15:18:36 UTC (rev 2417)
@@ -60,7 +60,6 @@
<property name="transactionManager"><inject bean="TransactionManager" property="transactionManager"/></property>
<property name="sessionService"><inject bean="SessionService"/></property>
<property name="bufferService"><inject bean="BufferService"/></property>
- <property name="connectorManagerRepository"><inject bean="ConnectorManagerRepository"/></property>
<property name="securityHelper"><inject bean="SecurityHelper"/></property>
<property name="VDBRepository"><inject bean="VDBRepository"/></property>
<property name="cacheFactory"><inject bean="CacheFactory"/></property>
Modified: trunk/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml
===================================================================
--- trunk/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/build/kits/jboss-container/deployers/teiid.deployer/teiid-deployer-jboss-beans.xml 2010-08-05 15:18:36 UTC (rev 2417)
@@ -5,7 +5,6 @@
<!-- Deployer specific Stuff -->
<bean name="VDBStructure" class="org.teiid.deployers.VDBStructure" />
<bean name="VDBRepository" class="org.teiid.deployers.VDBRepository"/>
- <bean name="ConnectorManagerRepository" class="org.teiid.dqp.internal.datamgr.ConnectorManagerRepository"/>
<bean name="SecurityHelper" class="org.teiid.jboss.JBossSecurityHelper"/>
<bean name="JBossLifeCycleListener" class="org.teiid.jboss.JBossLifeCycleListener"/>
@@ -46,7 +45,6 @@
</uninstall>
<property name="VDBRepository"><inject bean="VDBRepository"/></property>
<property name="objectSerializer"><inject bean="ObjectSerializer"/></property>
- <property name="connectorManagerRepository"><inject bean="ConnectorManagerRepository"/></property>
<property name="translatorRepository"><inject bean="translatorRepository"/></property>
<property name="containerLifeCycleListener"><inject bean="JBossLifeCycleListener"/></property>
<property name="threadPool"><inject bean="jboss.system:service=ThreadPool"/></property>
@@ -77,7 +75,6 @@
<bean name="VDBStatusChecker" class="org.teiid.deployers.VDBStatusChecker">
<property name="VDBRepository"><inject bean="VDBRepository"/></property>
- <property name="connectorManagerRepository"><inject bean="ConnectorManagerRepository"/></property>
</bean>
<!-- Persistence class for the VDB deployment file -->
Modified: trunk/client/src/main/java/org/teiid/adminapi/VDB.java
===================================================================
--- trunk/client/src/main/java/org/teiid/adminapi/VDB.java 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/client/src/main/java/org/teiid/adminapi/VDB.java 2010-08-05 15:18:36 UTC (rev 2417)
@@ -40,9 +40,10 @@
*/
public interface VDB extends AdminObject {
- public static enum Status{INCOMPLETE, INACTIVE, ACTIVE, DELETED, ACTIVE_DEFAULT};
+ public static enum Status{INACTIVE, ACTIVE};
-
+ public enum ConnectionType {NONE, BY_VERSION, ANY}
+
/**
* @return Collection of Teiid Models
*/
@@ -51,7 +52,12 @@
/**
* @return the status
*/
- public Status getStatus();
+ public Status getStatus();
+
+ /**
+ * @return the connection status
+ */
+ public ConnectionType getConnectionType();
/**
* @return the VDB version
Modified: trunk/client/src/main/java/org/teiid/adminapi/impl/VDBMetaData.java
===================================================================
--- trunk/client/src/main/java/org/teiid/adminapi/impl/VDBMetaData.java 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/client/src/main/java/org/teiid/adminapi/impl/VDBMetaData.java 2010-08-05 15:18:36 UTC (rev 2417)
@@ -21,6 +21,7 @@
*/
package org.teiid.adminapi.impl;
+import java.net.URL;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
@@ -43,6 +44,8 @@
import org.teiid.adminapi.Translator;
import org.teiid.adminapi.VDB;
import org.teiid.adminapi.impl.ModelMetaData.ValidationError;
+import org.teiid.core.util.FileUtils;
+import org.teiid.core.util.StringUtil;
@ManagementObject(componentType=@ManagementComponent(type="teiid",subtype="vdb"), properties=ManagementProperties.EXPLICIT)
@@ -102,7 +105,8 @@
private String fileUrl = null;
private boolean dynamic = false;
private VDB.Status status = VDB.Status.INACTIVE;
-
+ private ConnectionType connectionType = VDB.ConnectionType.BY_VERSION;
+ private boolean removed;
@ManagementProperty(description="Name of the VDB")
@ManagementObjectID(type="vdb")
@@ -116,7 +120,25 @@
super.setName(name);
}
+ public boolean isRemoved() {
+ return removed;
+ }
+
+ public void setRemoved(boolean removed) {
+ this.removed = removed;
+ }
+
@Override
+ @ManagementProperty(description="Collections Allowed")
+ public ConnectionType getConnectionType() {
+ return this.connectionType;
+ }
+
+ public void setConnectionType(ConnectionType allowConnections) {
+ this.connectionType = allowConnections;
+ }
+
+ @Override
@ManagementProperty(description="VDB Status")
public Status getStatus() {
return this.status;
@@ -145,6 +167,20 @@
public void setUrl(String url) {
this.fileUrl = url;
}
+
+ public void setUrl(URL url) {
+ this.setUrl(url.toExternalForm());
+ String fileName = FileUtils.getBaseFileNameWithoutExtension(url.getPath());
+ String prefix = getName() + "_"; //$NON-NLS-1$
+ if (StringUtil.startsWithIgnoreCase(fileName, prefix)) {
+ try {
+ int fileVersion = Integer.parseInt(fileName.substring(prefix.length()));
+ this.setVersion(fileVersion);
+ } catch (NumberFormatException e) {
+
+ }
+ }
+ }
@Override
@ManagementProperty(description="Models in a VDB", managed=true)
@@ -294,6 +330,10 @@
return this.dataPolicies.getMap().get(policyName);
}
+ public VDBTranslatorMetaData getTranslator(String name) {
+ return this.translators.getMap().get(name);
+ }
+
public boolean isPreview() {
return Boolean.valueOf(getPropertyValue("preview")); //$NON-NLS-1$
}
Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/sqlserver/SQLServerExecutionFactory.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/sqlserver/SQLServerExecutionFactory.java 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/sqlserver/SQLServerExecutionFactory.java 2010-08-05 15:18:36 UTC (rev 2417)
@@ -44,7 +44,13 @@
@Translator(name="sqlserver")
public class SQLServerExecutionFactory extends SybaseExecutionFactory {
+ public static final String V_2005 = "2005"; //$NON-NLS-1$
+ public static final String V_2008 = "2008"; //$NON-NLS-1$
+
//TEIID-31 remove mod modifier for SQL Server 2008
+ public SQLServerExecutionFactory() {
+ setDatabaseVersion(V_2005);
+ }
@Override
protected List<Object> convertDateToString(Function function) {
Modified: trunk/console/src/main/java/org/teiid/rhq/plugin/VDBComponent.java
===================================================================
--- trunk/console/src/main/java/org/teiid/rhq/plugin/VDBComponent.java 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/console/src/main/java/org/teiid/rhq/plugin/VDBComponent.java 2010-08-05 15:18:36 UTC (rev 2417)
@@ -367,6 +367,8 @@
"description", String.class);
String vdbStatus = ProfileServiceUtil.getSimpleValue(mcVdb, "status",
String.class);
+ String connectionType = ProfileServiceUtil.getSimpleValue(mcVdb, "connectionType",
+ String.class);
String vdbURL = ProfileServiceUtil.getSimpleValue(mcVdb, "url",
String.class);
@@ -378,6 +380,7 @@
configuration.put(new PropertySimple("description", vdbDescription));
configuration.put(new PropertySimple("status", vdbStatus));
configuration.put(new PropertySimple("url", vdbURL));
+ configuration.put(new PropertySimple("connectionType", connectionType));
getTranslators(mcVdb, configuration);
Modified: trunk/console/src/main/resources/META-INF/rhq-plugin.xml
===================================================================
--- trunk/console/src/main/resources/META-INF/rhq-plugin.xml 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/console/src/main/resources/META-INF/rhq-plugin.xml 2010-08-05 15:18:36 UTC (rev 2417)
@@ -451,12 +451,20 @@
readOnly="true" />
<c:simple-property name="status" type="string"
description="The Virtual Database Status" required="false"
- summary="true">
+ summary="true" readOnly="true">
<c:property-options>
<c:option value="ACTIVE" name="UP" />
<c:option value="INACTIVE" name="DOWN" default="true" />
</c:property-options>
</c:simple-property>
+ <c:simple-property name="connectionType" type="string"
+ description="Connections to allow to this Virtual Database" required="false">
+ <c:property-options>
+ <c:option value="NONE" name="NONE" />
+ <c:option value="BY_VERSION" name="BY VERSION" default="true" />
+ <c:option value="ANY" name="ANY" />
+ </c:property-options>
+ </c:simple-property>
<c:simple-property name="url" type="string"
description="The Virtual Database URL" required="false" readOnly="true" />
</c:group>
@@ -467,7 +475,7 @@
<c:map-property name="map"
description="Translator Overrides for this VDB">
<c:simple-property name="name" displayName="Name"
- description="Name of this translator instance" required="true"
+ description="Name of this translator instance" required="false"
readOnly="true" />
<c:simple-property name="type" displayName="Translator type"
description="Translator type" required="false" readOnly="true" />
@@ -476,7 +484,7 @@
required="false" readOnly="true" />
<c:simple-property name="propertyValue"
displayName="Property Value" description="Property Value"
- required="false" />
+ required="false" readOnly="true"/>
</c:map-property>
</c:list-property>
</c:group>
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/ConnectorManager.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/ConnectorManager.java 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/ConnectorManager.java 2010-08-05 15:18:36 UTC (rev 2417)
@@ -39,7 +39,6 @@
import org.teiid.dqp.DQPPlugin;
import org.teiid.dqp.message.AtomicRequestID;
import org.teiid.dqp.message.AtomicRequestMessage;
-import org.teiid.dqp.service.BufferService;
import org.teiid.logging.CommandLogMessage;
import org.teiid.logging.LogConstants;
import org.teiid.logging.LogManager;
@@ -68,9 +67,6 @@
private String translatorName;
private String connectionName;
- //services acquired in start
- private BufferService bufferService;
-
// known requests
private ConcurrentHashMap<AtomicRequestID, ConnectorWorkItem> requestStates = new ConcurrentHashMap<AtomicRequestID, ConnectorWorkItem>();
@@ -155,10 +151,6 @@
return requestStates.size();
}
- public void setBufferService(BufferService service) {
- this.bufferService = service;
- }
-
/**
* initialize this <code>ConnectorManager</code>.
* @throws TranslatorException
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/ConnectorManagerRepository.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/ConnectorManagerRepository.java 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/ConnectorManagerRepository.java 2010-08-05 15:18:36 UTC (rev 2417)
@@ -23,8 +23,6 @@
package org.teiid.dqp.internal.datamgr;
import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -42,11 +40,10 @@
return this.repo.get(connectorName);
}
- public List<ConnectorManager> getConnectorManagers() {
- return new ArrayList<ConnectorManager>(this.repo.values());
+ public Map<String, ConnectorManager> getConnectorManagers() {
+ return repo;
}
-
public ConnectorManager removeConnectorManager(String connectorName) {
return this.repo.remove(connectorName);
}
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/TranslatorRepository.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/TranslatorRepository.java 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/TranslatorRepository.java 2010-08-05 15:18:36 UTC (rev 2417)
@@ -27,52 +27,25 @@
import java.util.concurrent.ConcurrentHashMap;
import org.teiid.adminapi.Translator;
-import org.teiid.adminapi.impl.TranslatorMetaData;
import org.teiid.adminapi.impl.VDBTranslatorMetaData;
-import org.teiid.vdb.runtime.VDBKey;
public class TranslatorRepository implements Serializable{
private static final long serialVersionUID = -1212280886010974273L;
- private Map<String, TranslatorMetaData> translatorRepo = new ConcurrentHashMap<String, TranslatorMetaData>();
- private Map<VDBKey, Map<String, VDBTranslatorMetaData>> vdbScopedTranslatorRepo = new ConcurrentHashMap<VDBKey, Map<String, VDBTranslatorMetaData>>();
+ private Map<String, VDBTranslatorMetaData> translatorRepo = new ConcurrentHashMap<String, VDBTranslatorMetaData>();
- public void addTranslatorMetadata(String name, TranslatorMetaData factory) {
+ public void addTranslatorMetadata(String name, VDBTranslatorMetaData factory) {
this.translatorRepo.put(name, factory);
- }
-
- public void addTranslatorMetadata(VDBKey key, String name, VDBTranslatorMetaData factory) {
- Map<String, VDBTranslatorMetaData> repo = vdbScopedTranslatorRepo.get(key);
- if (repo == null) {
- repo = new ConcurrentHashMap<String, VDBTranslatorMetaData>();
- this.vdbScopedTranslatorRepo.put(key, repo);
- }
- repo.put(name, factory);
}
- public Translator getTranslatorMetaData(VDBKey key, String name) {
- Translator factory = null;
-
- if (key != null) {
- Map<String, VDBTranslatorMetaData> repo = vdbScopedTranslatorRepo.get(key);
- if (repo != null && !repo.isEmpty()) {
- factory = repo.get(name);
- }
- }
-
- if (factory == null) {
- factory = this.translatorRepo.get(name);
- }
-
+ public Translator getTranslatorMetaData(String name) {
+ Translator factory = this.translatorRepo.get(name);
return factory;
}
- public TranslatorMetaData removeTranslatorMetadata(String name) {
+ public VDBTranslatorMetaData removeTranslatorMetadata(String name) {
return this.translatorRepo.remove(name);
}
- public void removeVDBTranslators(VDBKey name) {
- this.vdbScopedTranslatorRepo.remove(name);
- }
}
\ No newline at end of file
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java 2010-08-05 15:18:36 UTC (rev 2417)
@@ -59,7 +59,6 @@
import org.teiid.core.TeiidProcessingException;
import org.teiid.core.types.Streamable;
import org.teiid.dqp.DQPPlugin;
-import org.teiid.dqp.internal.datamgr.ConnectorManagerRepository;
import org.teiid.dqp.internal.process.ThreadReuseExecutor.PrioritizedRunnable;
import org.teiid.dqp.message.AtomicRequestMessage;
import org.teiid.dqp.message.RequestID;
@@ -186,7 +185,6 @@
private SessionAwareCache<CachedResults> rsCache;
private TransactionService transactionService;
private BufferService bufferService;
- private ConnectorManagerRepository connectorManagerRepository;
// Query worker pool for processing plans
private int processorTimeslice = DQPConfiguration.DEFAULT_PROCESSOR_TIMESLICE;
@@ -332,8 +330,7 @@
ClientState state = this.getClientState(workContext.getSessionId(), true);
request.initialize(requestMsg, bufferManager,
dataTierMgr, transactionService, state.sessionTables,
- workContext, connectorManagerRepository,
- this.useEntitlements);
+ workContext, this.useEntitlements);
ResultsFuture<ResultsMessage> resultsFuture = new ResultsFuture<ResultsMessage>();
RequestWorkItem workItem = new RequestWorkItem(this, requestMsg, request, resultsFuture.getResultsReceiver(), requestID, workContext);
@@ -648,7 +645,6 @@
this.processWorkerPool = new ThreadReuseExecutor(DQPConfiguration.PROCESS_PLAN_QUEUE_NAME, config.getMaxThreads());
dataTierMgr = new TempTableDataManager(new DataTierManagerImpl(this,
- this.connectorManagerRepository,
this.bufferService), this.bufferManager);
}
@@ -791,14 +787,6 @@
return processor.processMessage(workContext.getRequestID(requestID), workContext, preparedSql, allowDoubleQuotedVariable);
}
- public void setConnectorManagerRepository(ConnectorManagerRepository repo) {
- this.connectorManagerRepository = repo;
- }
-
- public ConnectorManagerRepository getConnectorManagerRepository() {
- return this.connectorManagerRepository;
- }
-
public boolean isExceptionOnMaxSourceRows() {
return exceptionOnMaxSourceRows;
}
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/DataTierManagerImpl.java 2010-08-05 15:18:36 UTC (rev 2417)
@@ -105,18 +105,12 @@
// Resources
private DQPCore requestMgr;
private BufferService bufferService;
- private ConnectorManagerRepository connectorManagerRepository;
- public DataTierManagerImpl(DQPCore requestMgr, ConnectorManagerRepository connectorRepo, BufferService bufferService) {
+ public DataTierManagerImpl(DQPCore requestMgr, BufferService bufferService) {
this.requestMgr = requestMgr;
- this.connectorManagerRepository = connectorRepo;
this.bufferService = bufferService;
}
- private ConnectorManager getCM(String connectorName) {
- return this.connectorManagerRepository.getConnectorManager(connectorName);
- }
-
public TupleSource registerRequest(CommandContext context, Command command, String modelName, String connectorBindingId, int nodeID) throws TeiidComponentException, TeiidProcessingException {
RequestWorkItem workItem = requestMgr.getRequestWorkItem((RequestID)context.getProcessorID());
@@ -125,7 +119,8 @@
}
AtomicRequestMessage aqr = createRequest(context.getProcessorID(), command, modelName, connectorBindingId, nodeID);
- ConnectorWork work = getCM(aqr.getConnectorName()).registerRequest(aqr);
+ ConnectorManagerRepository cmr = workItem.getDqpWorkContext().getVDB().getAttachment(ConnectorManagerRepository.class);
+ ConnectorWork work = cmr.getConnectorManager(aqr.getConnectorName()).registerRequest(aqr);
return new DataTierTupleSource(aqr, workItem, work, this);
}
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/Request.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/Request.java 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/Request.java 2010-08-05 15:18:36 UTC (rev 2417)
@@ -137,7 +137,6 @@
TransactionService transactionService,
TempTableStore tempTableStore,
DQPWorkContext workContext,
- ConnectorManagerRepository repo,
boolean useEntitlements) {
this.requestMsg = requestMsg;
@@ -150,7 +149,7 @@
idGenerator.setDefaultFactory(new IntegerIDFactory());
this.workContext = workContext;
this.requestId = workContext.getRequestID(this.requestMsg.getExecutionId());
- this.connectorManagerRepo = repo;
+ this.connectorManagerRepo = workContext.getVDB().getAttachment(ConnectorManagerRepository.class);
this.useEntitlements = useEntitlements;
}
Modified: trunk/engine/src/main/java/org/teiid/vdb/runtime/VDBKey.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/vdb/runtime/VDBKey.java 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/engine/src/main/java/org/teiid/vdb/runtime/VDBKey.java 2010-08-05 15:18:36 UTC (rev 2417)
@@ -27,29 +27,29 @@
import org.teiid.core.util.HashCodeUtil;
-public class VDBKey implements Serializable{
+public class VDBKey implements Serializable, Comparable<VDBKey>{
private static final long serialVersionUID = -7249750823144856081L;
private String name;
- private String version;
+ private int version;
public VDBKey(String name, String version) {
this.name = name.toUpperCase();
if (version != null) {
- this.version = version.toUpperCase();
+ this.version = Integer.parseInt(version);
}
}
public VDBKey(String name, int version) {
this.name = name.toUpperCase();
- this.version = String.valueOf(version);
+ this.version = version;
}
public String getName() {
return name;
}
- public String getVersion() {
+ public int getVersion() {
return version;
}
@@ -74,19 +74,8 @@
VDBKey other = (VDBKey)obj;
- if (!other.name.equals(this.name)) {
- return false;
- }
-
- if (this.version != null) {
- if (!this.version.equals(other.version)) {
- return false;
- }
- } else if (other.version != null){
- return false;
- }
-
- return true;
+ return other.name.equals(this.name)
+ && version == other.version;
}
/**
@@ -95,5 +84,14 @@
public String toString() {
return name + " " + version; //$NON-NLS-1$
}
+
+ @Override
+ public int compareTo(VDBKey o) {
+ int compare = name.compareTo(o.name);
+ if (compare == 0) {
+ return version - o.version;
+ }
+ return compare;
+ }
}
Modified: trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java 2010-08-05 15:18:36 UTC (rev 2417)
@@ -53,12 +53,12 @@
context.getVDB().getModel("BQT3").setVisible(false); //$NON-NLS-1$
ConnectorManagerRepository repo = Mockito.mock(ConnectorManagerRepository.class);
+ context.getVDB().addAttchment(ConnectorManagerRepository.class, repo);
Mockito.stub(repo.getConnectorManager(Mockito.anyString())).toReturn(new AutoGenDataService());
core = new DQPCore();
core.setBufferService(new FakeBufferService());
core.setCacheFactory(new DefaultCacheFactory());
- core.setConnectorManagerRepository(repo);
core.setTransactionService(new FakeTransactionService());
core.start(new DQPConfiguration());
Modified: trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDataTierManager.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDataTierManager.java 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDataTierManager.java 2010-08-05 15:18:36 UTC (rev 2417)
@@ -82,7 +82,6 @@
dtm = new DataTierManagerImpl(rm,
- repo,
bs);
command = helpGetCommand(sql, metadata);
Modified: trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestPreparedStatement.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestPreparedStatement.java 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestPreparedStatement.java 2010-08-05 15:18:36 UTC (rev 2417)
@@ -245,7 +245,7 @@
ConnectorManagerRepository repo = Mockito.mock(ConnectorManagerRepository.class);
Mockito.stub(repo.getConnectorManager(Mockito.anyString())).toReturn(new AutoGenDataService());
- serverRequest.initialize(request, BufferManagerFactory.getStandaloneBufferManager(), null, new FakeTransactionService(), null, workContext, repo, false);
+ serverRequest.initialize(request, BufferManagerFactory.getStandaloneBufferManager(), null, new FakeTransactionService(), null, workContext, false);
serverRequest.setMetadata(capFinder, metadata, null);
serverRequest.processRequest();
Modified: trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestRequest.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestRequest.java 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestRequest.java 2010-08-05 15:18:36 UTC (rev 2417)
@@ -77,14 +77,10 @@
Command command = QueryParser.getQueryParser().parseCommand(QUERY);
QueryResolver.resolveCommand(command, Collections.EMPTY_MAP, metadata, AnalysisRecord.createNonRecordingRecord());
- ConnectorManagerRepository repo = Mockito.mock(ConnectorManagerRepository.class);
- Mockito.stub(repo.getConnectorManager(Mockito.anyString())).toReturn(new AutoGenDataService());
-
-
RequestMessage message = new RequestMessage();
DQPWorkContext workContext = FakeMetadataFactory.buildWorkContext(metadata, FakeMetadataFactory.example1VDB());
- request.initialize(message, null, null,new FakeTransactionService(),null, workContext, repo, false);
+ request.initialize(message, null, null,new FakeTransactionService(),null, workContext, false);
request.initMetadata();
request.validateAccess(command);
}
@@ -133,13 +129,12 @@
} else {
request = new Request();
}
-
ConnectorManagerRepository repo = Mockito.mock(ConnectorManagerRepository.class);
+ workContext.getVDB().addAttchment(ConnectorManagerRepository.class, repo);
Mockito.stub(repo.getConnectorManager(Mockito.anyString())).toReturn(new AutoGenDataService());
request.initialize(message, Mockito.mock(BufferManager.class),
- new FakeDataManager(), new FakeTransactionService(), null, workContext, repo,
- false);
+ new FakeDataManager(), new FakeTransactionService(), null, workContext, false);
request.processRequest();
return request;
Modified: trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/RuntimeEngineDeployer.java
===================================================================
--- trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/RuntimeEngineDeployer.java 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/RuntimeEngineDeployer.java 2010-08-05 15:18:36 UTC (rev 2417)
@@ -62,7 +62,6 @@
import org.teiid.core.TeiidComponentException;
import org.teiid.core.TeiidRuntimeException;
import org.teiid.deployers.VDBRepository;
-import org.teiid.dqp.internal.datamgr.ConnectorManagerRepository;
import org.teiid.dqp.internal.process.DQPConfiguration;
import org.teiid.dqp.internal.process.DQPCore;
import org.teiid.dqp.internal.process.DQPWorkContext;
@@ -288,10 +287,6 @@
this.dqpCore.setBufferService(service);
}
- public void setConnectorManagerRepository(ConnectorManagerRepository repo) {
- this.dqpCore.setConnectorManagerRepository(repo);
- }
-
public void setSecurityHelper(SecurityHelper helper) {
this.csr.setSecurityHelper(helper);
}
Modified: trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/VDBMetaDataInstanceClassFactory.java
===================================================================
--- trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/VDBMetaDataInstanceClassFactory.java 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/VDBMetaDataInstanceClassFactory.java 2010-08-05 15:18:36 UTC (rev 2417)
@@ -32,7 +32,9 @@
import org.jboss.metatype.api.values.MetaValueFactory;
import org.teiid.adminapi.impl.DataPolicyMetadata;
import org.teiid.adminapi.impl.ModelMetaData;
+import org.teiid.adminapi.impl.PropertyMetadata;
import org.teiid.adminapi.impl.VDBMetaData;
+import org.teiid.adminapi.impl.VDBTranslatorMetaData;
import org.teiid.adminapi.jboss.ManagedUtil;
public class VDBMetaDataInstanceClassFactory extends AbstractInstanceClassFactory<VDBMetaData> {
@@ -89,6 +91,17 @@
}
}
}
+ else if (property.getName().equals("overrideTranslators")) { //$NON-NLS-1$
+ List<ManagedObject> translators = (List<ManagedObject>)MetaValueFactory.getInstance().unwrap(property.getValue());
+ for (ManagedObject translator:translators) {
+ VDBTranslatorMetaData translatorInstance = vdb.getTranslator(translator.getName());
+ ManagedProperty mp = translator.getProperty("property"); //$NON-NLS-1$
+ List<PropertyMetadata> properties = (List<PropertyMetadata>)MetaValueFactory.getInstance().unwrap(mp.getValue());
+ for (PropertyMetadata managedProperty:properties) {
+ translatorInstance.addProperty(managedProperty.getName(), managedProperty.getValue());
+ }
+ }
+ }
else {
super.setValue(beanInfo, property, vdb, value);
}
Modified: trunk/runtime/src/main/java/org/teiid/deployers/CompositeVDB.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/CompositeVDB.java 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/runtime/src/main/java/org/teiid/deployers/CompositeVDB.java 2010-08-05 15:18:36 UTC (rev 2417)
@@ -29,6 +29,7 @@
import org.teiid.adminapi.impl.DataPolicyMetadata;
import org.teiid.adminapi.impl.ModelMetaData;
import org.teiid.adminapi.impl.VDBMetaData;
+import org.teiid.dqp.internal.datamgr.ConnectorManagerRepository;
import org.teiid.metadata.MetadataStore;
import org.teiid.query.function.metadata.FunctionMethod;
import org.teiid.query.metadata.CompositeMetadataStore;
@@ -47,16 +48,19 @@
private UDFMetaData udf;
private LinkedHashMap<VDBKey, CompositeVDB> children;
private MetadataStore[] additionalStores;
+ private ConnectorManagerRepository cmr;
// used as cached item to avoid rebuilding
private VDBMetaData mergedVDB;
- public CompositeVDB(VDBMetaData vdb, MetadataStoreGroup stores, LinkedHashMap<String, Resource> visibilityMap, UDFMetaData udf, MetadataStore... additionalStores) {
+ public CompositeVDB(VDBMetaData vdb, MetadataStoreGroup stores, LinkedHashMap<String, Resource> visibilityMap, UDFMetaData udf, ConnectorManagerRepository cmr, MetadataStore... additionalStores) {
this.vdb = vdb;
this.stores = stores;
this.visibilityMap = visibilityMap;
this.udf = udf;
+ this.cmr = cmr;
this.additionalStores = additionalStores;
+ this.vdb.addAttchment(ConnectorManagerRepository.class, cmr);
update(this.vdb);
}
@@ -121,7 +125,9 @@
mergedVDB.setDescription(this.vdb.getDescription());
mergedVDB.setStatus(this.vdb.getStatus());
mergedVDB.setJAXBProperties(this.vdb.getJAXBProperties());
-
+ mergedVDB.setConnectionType(this.vdb.getConnectionType());
+ ConnectorManagerRepository mergedRepo = new ConnectorManagerRepository();
+ mergedRepo.getConnectorManagers().putAll(this.cmr.getConnectorManagers());
for (CompositeVDB child:this.children.values()) {
// add models
@@ -132,7 +138,9 @@
for (DataPolicy p:child.getVDB().getDataPolicies()) {
mergedVDB.addDataPolicy((DataPolicyMetadata)p);
}
+ mergedRepo.getConnectorManagers().putAll(child.cmr.getConnectorManagers());
}
+ mergedVDB.addAttchment(ConnectorManagerRepository.class, mergedRepo);
return mergedVDB;
}
Modified: trunk/runtime/src/main/java/org/teiid/deployers/DynamicVDBDeployer.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/DynamicVDBDeployer.java 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/runtime/src/main/java/org/teiid/deployers/DynamicVDBDeployer.java 2010-08-05 15:18:36 UTC (rev 2417)
@@ -43,7 +43,7 @@
Unmarshaller un = VDBParserDeployer.getUnMarsheller();
VDBMetaData vdb = (VDBMetaData)un.unmarshal(file.openStream());
- vdb.setUrl(unit.getRoot().toURL().toExternalForm());
+ vdb.setUrl(unit.getRoot().toURL());
vdb.setDynamic(true);
LogManager.logDetail(LogConstants.CTX_RUNTIME,"VDB "+unit.getRoot().getName()+" has been parsed."); //$NON-NLS-1$ //$NON-NLS-2$
Modified: trunk/runtime/src/main/java/org/teiid/deployers/TranslatorDeployer.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/TranslatorDeployer.java 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/runtime/src/main/java/org/teiid/deployers/TranslatorDeployer.java 2010-08-05 15:18:36 UTC (rev 2417)
@@ -56,7 +56,7 @@
}
String type = data.getType();
- Translator parent = this.translatorRepository.getTranslatorMetaData(null, type);
+ Translator parent = this.translatorRepository.getTranslatorMetaData(type);
if ( parent == null) {
throw new DeploymentException(RuntimePlugin.Util.getString("translator_type_not_found", unit.getName())); //$NON-NLS-1$
}
Modified: trunk/runtime/src/main/java/org/teiid/deployers/VDBDeployer.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/VDBDeployer.java 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/runtime/src/main/java/org/teiid/deployers/VDBDeployer.java 2010-08-05 15:18:36 UTC (rev 2417)
@@ -55,12 +55,10 @@
import org.teiid.runtime.RuntimePlugin;
import org.teiid.translator.ExecutionFactory;
import org.teiid.translator.TranslatorException;
-import org.teiid.vdb.runtime.VDBKey;
public class VDBDeployer extends AbstractSimpleRealDeployer<VDBMetaData> {
private VDBRepository vdbRepository;
- private ConnectorManagerRepository connectorManagerRepository;
private TranslatorRepository translatorRepository;
private ObjectSerializer serializer;
private ContainerLifeCycleListener shutdownListener;
@@ -75,11 +73,13 @@
@Override
public void deploy(DeploymentUnit unit, VDBMetaData deployment) throws DeploymentException {
- if (this.vdbRepository.getVDB(deployment.getName(), deployment.getVersion()) != null) {
- this.vdbRepository.removeVDB(deployment.getName(), deployment.getVersion());
+ if (this.vdbRepository.removeVDB(deployment.getName(), deployment.getVersion())) {
LogManager.logInfo(LogConstants.CTX_RUNTIME, RuntimePlugin.Util.getString("redeploying_vdb", deployment)); //$NON-NLS-1$
}
+ TranslatorRepository repo = new TranslatorRepository();
+ ConnectorManagerRepository cmr = new ConnectorManagerRepository();
+
boolean preview = deployment.isPreview();
if (!preview) {
@@ -97,7 +97,7 @@
VDBTranslatorMetaData data = (VDBTranslatorMetaData)t;
String type = data.getType();
- Translator parent = this.translatorRepository.getTranslatorMetaData(null, type);
+ Translator parent = this.translatorRepository.getTranslatorMetaData(type);
if ( parent == null) {
throw new DeploymentException(RuntimePlugin.Util.getString("translator_type_not_found", unit.getName())); //$NON-NLS-1$
}
@@ -107,15 +107,15 @@
if (data.getPropertyValue(key) == null && parent.getPropertyValue(key) != null) {
data.addProperty(key, parent.getPropertyValue(key));
}
- }
- this.translatorRepository.addTranslatorMetadata(new VDBKey(deployment.getName(), deployment.getVersion()), data.getName(), data);
+ }
+ repo.addTranslatorMetadata(data.getName(), data);
}
- createConnectorManagers(deployment);
+ createConnectorManagers(cmr, repo, deployment);
// if store is null and vdb dynamic vdb then try to get the metadata
if (store == null && deployment.isDynamic()) {
store = new MetadataStoreGroup();
- buildDynamicMetadataStore((VFSDeploymentUnit)unit, deployment, store);
+ buildDynamicMetadataStore((VFSDeploymentUnit)unit, deployment, store, cmr);
}
// allow empty vdbs for enabling the preview functionality
@@ -142,7 +142,7 @@
deployment.removeAttachment(MetadataStoreGroup.class);
// add transformation metadata to the repository.
- this.vdbRepository.addVDB(deployment, store, visibilityMap, udf);
+ this.vdbRepository.addVDB(deployment, store, visibilityMap, udf, cmr);
try {
saveMetadataStore((VFSDeploymentUnit)unit, deployment, store);
@@ -152,7 +152,7 @@
boolean valid = true;
if (!preview) {
- valid = validateSources(deployment);
+ valid = validateSources(cmr, deployment);
// Check if the VDB is fully configured.
if (valid) {
@@ -167,7 +167,7 @@
LogManager.logInfo(LogConstants.CTX_RUNTIME, RuntimePlugin.Util.getString("vdb_deployed",deployment, valid?"active":"inactive")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
- private void createConnectorManagers(final VDBMetaData deployment) throws DeploymentException {
+ private void createConnectorManagers(ConnectorManagerRepository cmr, TranslatorRepository repo, final VDBMetaData deployment) throws DeploymentException {
IdentityHashMap<Translator, ExecutionFactory<Object, Object>> map = new IdentityHashMap<Translator, ExecutionFactory<Object, Object>>();
for (Model model:deployment.getModels()) {
@@ -175,13 +175,16 @@
continue;
}
for (String source:model.getSourceNames()) {
- if (this.connectorManagerRepository.getConnectorManager(source) != null) {
+ if (cmr.getConnectorManager(source) != null) {
continue;
}
String name = model.getSourceTranslatorName(source);
- Translator translator = VDBDeployer.this.translatorRepository.getTranslatorMetaData(new VDBKey(deployment.getName(), deployment.getVersion()), name);
+ Translator translator = repo.getTranslatorMetaData(name);
if (translator == null) {
+ translator = this.translatorRepository.getTranslatorMetaData(name);
+ }
+ if (translator == null) {
throw new DeploymentException(RuntimePlugin.Util.getString("translator_not_found", deployment.getName(), deployment.getVersion(), name)); //$NON-NLS-1$
}
@@ -193,12 +196,12 @@
ConnectorManager cm = new ConnectorManager(name, model.getSourceConnectionJndiName(source));
cm.setExecutionFactory(ef);
- this.connectorManagerRepository.addConnectorManager(source, cm);
+ cmr.addConnectorManager(source, cm);
}
}
}
- private boolean validateSources(VDBMetaData deployment) {
+ private boolean validateSources(ConnectorManagerRepository cmr, VDBMetaData deployment) {
boolean valid = true;
for(Model m:deployment.getModels()) {
ModelMetaData model = (ModelMetaData)m;
@@ -207,7 +210,7 @@
if (mapping.getName().equals(CoreConstants.SYSTEM_MODEL) || model.getName().equals(CoreConstants.ODBC_MODEL)) {
continue;
}
- ConnectorManager cm = this.connectorManagerRepository.getConnectorManager(mapping.getName());
+ ConnectorManager cm = cmr.getConnectorManager(mapping.getName());
String msg = cm.getStausMessage();
if (msg != null && msg.length() > 0) {
valid = false;
@@ -232,25 +235,12 @@
public void undeploy(DeploymentUnit unit, VDBMetaData deployment) {
super.undeploy(unit, deployment);
- // there is chance that two different VDBs using the same source name, and their
- // connector manager is removed. should we prefix vdb name??
- for (Model model:deployment.getModels()) {
- if (model.getName().equals(CoreConstants.SYSTEM_MODEL) || model.getName().equals(CoreConstants.ODBC_MODEL)){
- continue;
- }
- for (String source:model.getSourceNames()) {
- if (this.connectorManagerRepository.getConnectorManager(source) != null) {
- this.connectorManagerRepository.removeConnectorManager(source);
- }
- }
- }
-
- this.translatorRepository.removeVDBTranslators(new VDBKey(deployment.getName(), deployment.getVersion()));
-
if (this.vdbRepository != null) {
this.vdbRepository.removeVDB(deployment.getName(), deployment.getVersion());
}
+ deployment.setRemoved(true);
+
try {
deleteMetadataStore((VFSDeploymentUnit)unit, deployment);
} catch (IOException e) {
@@ -264,10 +254,6 @@
this.serializer = serializer;
}
- public void setConnectorManagerRepository(ConnectorManagerRepository repo) {
- this.connectorManagerRepository = repo;
- }
-
private void saveMetadataStore(VFSDeploymentUnit unit, VDBMetaData vdb, MetadataStoreGroup store) throws IOException {
File cacheFileName = this.serializer.getAttachmentPath(unit, vdb.getName()+"_"+vdb.getVersion()); //$NON-NLS-1$
if (!cacheFileName.exists()) {
@@ -284,7 +270,7 @@
}
}
- private void buildDynamicMetadataStore(final VFSDeploymentUnit unit, final VDBMetaData vdb, final MetadataStoreGroup vdbStore) throws DeploymentException {
+ private void buildDynamicMetadataStore(final VFSDeploymentUnit unit, final VDBMetaData vdb, final MetadataStoreGroup vdbStore, final ConnectorManagerRepository cmr) throws DeploymentException {
// make sure we are configured correctly first
for (Model model:vdb.getModels()) {
@@ -322,19 +308,19 @@
threadPool.run(new Runnable() {
@Override
public void run() {
- loadMetadata(vdb, model, cache, cacheFile, vdbStore);
+ loadMetadata(vdb, model, cache, cacheFile, vdbStore, cmr);
}
});
}
}
}
- private void loadMetadata(VDBMetaData vdb, ModelMetaData model, boolean cache, File cacheFile, MetadataStoreGroup vdbStore) {
+ private void loadMetadata(VDBMetaData vdb, ModelMetaData model, boolean cache, File cacheFile, MetadataStoreGroup vdbStore, ConnectorManagerRepository cmr) {
Exception exception = null;
boolean loaded = false;;
for (String sourceName: model.getSourceNames()) {
- ConnectorManager cm = this.connectorManagerRepository.getConnectorManager(sourceName);
+ ConnectorManager cm = cmr.getConnectorManager(sourceName);
if (cm == null) {
continue;
}
@@ -360,7 +346,7 @@
synchronized (this) {
if (!loaded) {
- vdb.setStatus(VDB.Status.INCOMPLETE);
+ vdb.setStatus(VDB.Status.INACTIVE);
String msg = RuntimePlugin.Util.getString("failed_to_retrive_metadata", vdb.getName()+"-"+vdb.getVersion(), model.getName()); //$NON-NLS-1$ //$NON-NLS-2$
model.addError(ModelMetaData.ValidationError.Severity.ERROR.toString(), msg);
if (exception != null) {
Modified: trunk/runtime/src/main/java/org/teiid/deployers/VDBParserDeployer.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/VDBParserDeployer.java 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/runtime/src/main/java/org/teiid/deployers/VDBParserDeployer.java 2010-08-05 15:18:36 UTC (rev 2417)
@@ -135,7 +135,7 @@
return null;
}
- vdb.setUrl(unit.getRoot().toURL().toExternalForm());
+ vdb.setUrl(unit.getRoot().toURL());
// build the metadata store
if (imf != null) {
Modified: trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java 2010-08-05 15:18:36 UTC (rev 2417)
@@ -28,18 +28,21 @@
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.NavigableMap;
import java.util.Properties;
-import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentSkipListMap;
import org.jboss.deployers.spi.DeploymentException;
import org.teiid.adminapi.AdminException;
import org.teiid.adminapi.AdminProcessingException;
import org.teiid.adminapi.Model;
-import org.teiid.adminapi.VDB;
+import org.teiid.adminapi.VDB.ConnectionType;
+import org.teiid.adminapi.VDB.Status;
import org.teiid.adminapi.impl.ModelMetaData;
import org.teiid.adminapi.impl.VDBMetaData;
import org.teiid.core.CoreConstants;
import org.teiid.core.types.DataTypeManager;
+import org.teiid.dqp.internal.datamgr.ConnectorManagerRepository;
import org.teiid.logging.LogConstants;
import org.teiid.logging.LogManager;
import org.teiid.metadata.Datatype;
@@ -57,12 +60,12 @@
public class VDBRepository implements Serializable{
private static final long serialVersionUID = 312177538191772674L;
- private Map<VDBKey, CompositeVDB> vdbRepo = new ConcurrentHashMap<VDBKey, CompositeVDB>();
+ private NavigableMap<VDBKey, CompositeVDB> vdbRepo = new ConcurrentSkipListMap<VDBKey, CompositeVDB>();
private MetadataStore systemStore;
private MetadataStore odbcStore;
private boolean odbcEnabled = false;
- public void addVDB(VDBMetaData vdb, MetadataStoreGroup stores, LinkedHashMap<String, Resource> visibilityMap, UDFMetaData udf) throws DeploymentException {
+ public void addVDB(VDBMetaData vdb, MetadataStoreGroup stores, LinkedHashMap<String, Resource> visibilityMap, UDFMetaData udf, ConnectorManagerRepository cmr) throws DeploymentException {
if (getVDB(vdb.getName(), vdb.getVersion()) != null) {
throw new DeploymentException(RuntimePlugin.Util.getString("duplicate_vdb", vdb.getName(), vdb.getVersion())); //$NON-NLS-1$
}
@@ -78,12 +81,12 @@
if (this.odbcStore == null) {
addSystemModel(vdb);
- this.vdbRepo.put(vdbId(vdb), new CompositeVDB(vdb, stores, visibilityMap, udf, this.systemStore));
+ this.vdbRepo.put(vdbId(vdb), new CompositeVDB(vdb, stores, visibilityMap, udf, cmr, this.systemStore));
}
else {
addSystemModel(vdb);
addODBCModel(vdb);
- this.vdbRepo.put(vdbId(vdb), new CompositeVDB(vdb, stores, visibilityMap, udf, this.systemStore, odbcStore));
+ this.vdbRepo.put(vdbId(vdb), new CompositeVDB(vdb, stores, visibilityMap, udf, cmr, this.systemStore, odbcStore));
}
}
@@ -129,26 +132,24 @@
public VDBMetaData getActiveVDB(String vdbName) throws VirtualDatabaseException {
int latestVersion = 0;
- for (VDBKey key:this.vdbRepo.keySet()) {
- if(key.getName().equalsIgnoreCase(vdbName)) {
- VDBMetaData vdb = this.vdbRepo.get(key).getVDB();
- if (vdb.getStatus() == VDB.Status.ACTIVE_DEFAULT) {
- latestVersion = vdb.getVersion();
- break;
- }
- // Make sure the VDB Name and version number are the only parts of this vdb key
- latestVersion = Math.max(latestVersion, Integer.parseInt(key.getVersion()));
+ for (VDBKey key:this.vdbRepo.tailMap(new VDBKey(vdbName, 0)).keySet()) {
+ if(!key.getName().equalsIgnoreCase(vdbName)) {
+ break;
}
+ VDBMetaData vdb = this.vdbRepo.get(key).getVDB();
+ if (vdb.getStatus() == Status.ACTIVE) {
+ if (vdb.getConnectionType() == ConnectionType.ANY) {
+ latestVersion = Math.max(vdb.getVersion(), latestVersion);
+ } else if (latestVersion == 0 && vdb.getConnectionType() == ConnectionType.BY_VERSION) {
+ latestVersion = vdb.getVersion();
+ }
+ }
}
if(latestVersion == 0) {
throw new VirtualDatabaseException(RuntimePlugin.Util.getString("VDBService.VDB_does_not_exist._2", vdbName, "latest")); //$NON-NLS-1$ //$NON-NLS-2$
}
- VDBMetaData vdb = getVDB(vdbName, latestVersion);
- if (vdb.getStatus() == VDB.Status.ACTIVE || vdb.getStatus() == VDB.Status.ACTIVE_DEFAULT) {
- return vdb;
- }
- throw new VirtualDatabaseException(RuntimePlugin.Util.getString("VDBService.VDB_does_not_exist._2", vdbName, latestVersion)); //$NON-NLS-1$
+ return getVDB(vdbName, latestVersion);
}
public MetadataStore getSystemStore() {
@@ -178,14 +179,17 @@
this.odbcEnabled = true;
}
- public synchronized void removeVDB(String vdbName, int vdbVersion) {
+ public synchronized boolean removeVDB(String vdbName, int vdbVersion) {
VDBKey key = new VDBKey(vdbName, vdbVersion);
- this.vdbRepo.remove(key);
-
- // if this VDB was part of another VDB; then remove them.
- for (CompositeVDB other:this.vdbRepo.values()) {
- other.removeChild(key);
+ CompositeVDB removed = this.vdbRepo.remove(key);
+ if (removed != null) {
+ // if this VDB was part of another VDB; then remove them.
+ for (CompositeVDB other:this.vdbRepo.values()) {
+ other.removeChild(key);
+ }
+ return true;
}
+ return false;
}
public Map<String, Datatype> getBuiltinDatatypes() {
Modified: trunk/runtime/src/main/java/org/teiid/deployers/VDBStatusChecker.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/VDBStatusChecker.java 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/runtime/src/main/java/org/teiid/deployers/VDBStatusChecker.java 2010-08-05 15:18:36 UTC (rev 2417)
@@ -35,7 +35,6 @@
public class VDBStatusChecker {
private static final String JAVA_CONTEXT = "java:"; //$NON-NLS-1$
private VDBRepository vdbRepository;
- private ConnectorManagerRepository connectorManagerRepository;
public void translatorAdded(String translatorName) {
resourceAdded(translatorName, true);
@@ -63,15 +62,12 @@
this.vdbRepository = repo;
}
- public void setConnectorManagerRepository(ConnectorManagerRepository repo) {
- this.connectorManagerRepository = repo;
- }
-
public void resourceAdded(String resourceName, boolean translator) {
for (VDBMetaData vdb:this.vdbRepository.getVDBs()) {
if (vdb.getStatus() == VDB.Status.ACTIVE || vdb.isPreview()) {
continue;
}
+ ConnectorManagerRepository cmr = vdb.getAttachment(ConnectorManagerRepository.class);
for (Model m:vdb.getModels()) {
ModelMetaData model = (ModelMetaData)m;
@@ -81,7 +77,7 @@
String sourceName = getSourceName(resourceName, model, translator);
if (sourceName != null) {
- ConnectorManager cm = this.connectorManagerRepository.getConnectorManager(sourceName);
+ ConnectorManager cm = cmr.getConnectorManager(sourceName);
model.clearErrors();
String status = cm.getStausMessage();
if (status != null && status.length() > 0) {
Modified: trunk/runtime/src/main/java/org/teiid/services/SessionServiceImpl.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/services/SessionServiceImpl.java 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/runtime/src/main/java/org/teiid/services/SessionServiceImpl.java 2010-08-05 15:18:36 UTC (rev 2417)
@@ -40,6 +40,8 @@
import org.jboss.managed.api.annotation.ManagementObject;
import org.jboss.managed.api.annotation.ManagementProperties;
import org.jboss.managed.api.annotation.ManagementProperty;
+import org.teiid.adminapi.VDB;
+import org.teiid.adminapi.VDB.ConnectionType;
import org.teiid.adminapi.impl.SessionMetadata;
import org.teiid.adminapi.impl.VDBMetaData;
import org.teiid.client.security.InvalidSessionException;
@@ -163,16 +165,19 @@
String vdbName = properties.getProperty(TeiidURL.JDBC.VDB_NAME);
if (vdbName != null) {
String vdbVersion = properties.getProperty(TeiidURL.JDBC.VDB_VERSION);
- try {
- if (vdbVersion == null) {
- vdb = this.vdbRepository.getActiveVDB(vdbName);
+ if (vdbVersion == null) {
+ try {
+ vdb = this.vdbRepository.getActiveVDB(vdbName);
+ } catch (VirtualDatabaseException e) {
+ throw new SessionServiceException(RuntimePlugin.Util.getString("VDBService.VDB_does_not_exist._2", vdbName, "latest")); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+ else {
+ vdb = this.vdbRepository.getVDB(vdbName, Integer.parseInt(vdbVersion));
+ if (vdb.getStatus() != VDB.Status.ACTIVE || vdb.getConnectionType() == ConnectionType.NONE) {
+ throw new SessionServiceException(RuntimePlugin.Util.getString("VDBService.VDB_does_not_exist._2", vdbName, vdbVersion)); //$NON-NLS-1$
}
- else {
- vdb = this.vdbRepository.getVDB(vdbName, Integer.parseInt(vdbVersion));
- }
- } catch (VirtualDatabaseException e) {
- throw new SessionServiceException(RuntimePlugin.Util.getString("VDBService.VDB_does_not_exist._2", vdbName, vdbVersion==null?"latest":vdbVersion)); //$NON-NLS-1$ //$NON-NLS-2$
- }
+ }
}
if (sessionMaxLimit > 0 && getActiveSessionsCount() >= sessionMaxLimit) {
Modified: trunk/test-integration/common/src/test/java/org/teiid/dqp/internal/process/TestXMLTypeTranslations.java
===================================================================
--- trunk/test-integration/common/src/test/java/org/teiid/dqp/internal/process/TestXMLTypeTranslations.java 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/test-integration/common/src/test/java/org/teiid/dqp/internal/process/TestXMLTypeTranslations.java 2010-08-05 15:18:36 UTC (rev 2417)
@@ -113,7 +113,7 @@
Mockito.stub(rwi.getDqpWorkContext()).toReturn(workContext);
Mockito.stub(core.getRequestWorkItem((RequestID)Mockito.anyObject())).toReturn(rwi);
- DataTierManagerImpl dataMgr = new DataTierManagerImpl(core, null, null);
+ DataTierManagerImpl dataMgr = new DataTierManagerImpl(core, null);
doProcess(metadata,
sql,
finder, dataMgr , new List[] {Arrays.asList(new String(ObjectConverterUtil.convertToByteArray(new FileInputStream(UnitTestUtil.getTestDataFile("test-schema.xsd")))))}, DEBUG); //$NON-NLS-1$
Modified: trunk/test-integration/common/src/test/java/org/teiid/jdbc/FakeServer.java
===================================================================
--- trunk/test-integration/common/src/test/java/org/teiid/jdbc/FakeServer.java 2010-08-04 21:52:59 UTC (rev 2416)
+++ trunk/test-integration/common/src/test/java/org/teiid/jdbc/FakeServer.java 2010-08-05 15:18:36 UTC (rev 2417)
@@ -60,6 +60,7 @@
LogonImpl logon;
DQPCore dqp = new DQPCore();
VDBRepository repo = new VDBRepository();
+ private ConnectorManagerRepository cmr;
public FakeServer() {
this.logon = new LogonImpl(sessionService, null);
@@ -73,7 +74,7 @@
this.dqp.setCacheFactory(new DefaultCacheFactory());
this.dqp.setTransactionService(new FakeTransactionService());
- ConnectorManagerRepository cmr = Mockito.mock(ConnectorManagerRepository.class);
+ cmr = Mockito.mock(ConnectorManagerRepository.class);
Mockito.stub(cmr.getConnectorManager("source")).toReturn(new ConnectorManager("x", "x") {
@Override
public SourceCapabilities getCapabilities() {
@@ -81,7 +82,6 @@
}
});
- this.dqp.setConnectorManagerRepository(cmr);
this.dqp.setCacheFactory(new DefaultCacheFactory());
this.dqp.start(new DQPConfiguration());
this.sessionService.setDqp(this.dqp);
@@ -114,7 +114,7 @@
try {
MetadataStoreGroup stores = new MetadataStoreGroup();
stores.addStore(metadata);
- this.repo.addVDB(vdbMetaData, stores, imf.getEntriesPlusVisibilities(), null);
+ this.repo.addVDB(vdbMetaData, stores, imf.getEntriesPlusVisibilities(), null, cmr);
} catch (DeploymentException e) {
throw new RuntimeException(e);
}
14 years, 6 months
teiid SVN: r2416 - trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2010-08-04 17:52:59 -0400 (Wed, 04 Aug 2010)
New Revision: 2416
Modified:
trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCBaseExecution.java
Log:
re-enabling source query logging
Modified: trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCBaseExecution.java
===================================================================
--- trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCBaseExecution.java 2010-08-04 19:30:28 UTC (rev 2415)
+++ trunk/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCBaseExecution.java 2010-08-04 21:52:59 UTC (rev 2416)
@@ -105,7 +105,7 @@
translatedCommand.translateCommand(command);
if (translatedCommand.getSql() != null && LogManager.isMessageToBeRecorded(LogConstants.CTX_CONNECTOR, MessageLevel.DETAIL)) {
- LogManager.logDetail("Source-specific command: " + translatedCommand.getSql()); //$NON-NLS-1$
+ LogManager.logDetail(LogConstants.CTX_CONNECTOR, "Source-specific command: " + translatedCommand.getSql()); //$NON-NLS-1$
}
return translatedCommand;
14 years, 6 months
teiid SVN: r2415 - trunk/runtime/src/main/java/org/teiid/deployers.
by teiid-commits@lists.jboss.org
Author: rareddy
Date: 2010-08-04 15:30:28 -0400 (Wed, 04 Aug 2010)
New Revision: 2415
Modified:
trunk/runtime/src/main/java/org/teiid/deployers/CompositeVDB.java
trunk/runtime/src/main/java/org/teiid/deployers/VDBDeployer.java
trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java
Log:
TEIID-1006: Once after the metadata is loaded asynchronously the transformation metadata needs to be computed.
Modified: trunk/runtime/src/main/java/org/teiid/deployers/CompositeVDB.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/CompositeVDB.java 2010-08-04 14:37:01 UTC (rev 2414)
+++ trunk/runtime/src/main/java/org/teiid/deployers/CompositeVDB.java 2010-08-04 19:30:28 UTC (rev 2415)
@@ -76,7 +76,7 @@
this.mergedVDB = null;
}
- private void update(VDBMetaData vdbMetadata) {
+ void update(VDBMetaData vdbMetadata) {
TransformationMetadata metadata = buildTransformationMetaData(vdbMetadata, getVisibilityMap(), getMetadataStores(), getUDF());
vdbMetadata.addAttchment(QueryMetadataInterface.class, metadata);
vdbMetadata.addAttchment(TransformationMetadata.class, metadata);
Modified: trunk/runtime/src/main/java/org/teiid/deployers/VDBDeployer.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/VDBDeployer.java 2010-08-04 14:37:01 UTC (rev 2414)
+++ trunk/runtime/src/main/java/org/teiid/deployers/VDBDeployer.java 2010-08-04 19:30:28 UTC (rev 2415)
@@ -370,6 +370,7 @@
}
else {
if (vdb.isValid()) {
+ this.vdbRepository.updateVDB(vdb.getName(), vdb.getVersion());
vdb.setStatus(VDB.Status.ACTIVE);
LogManager.logInfo(LogConstants.CTX_RUNTIME, RuntimePlugin.Util.getString("vdb_activated",vdb.getName(), vdb.getVersion())); //$NON-NLS-1$
}
Modified: trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java 2010-08-04 14:37:01 UTC (rev 2414)
+++ trunk/runtime/src/main/java/org/teiid/deployers/VDBRepository.java 2010-08-04 19:30:28 UTC (rev 2415)
@@ -223,4 +223,11 @@
this.odbcStore = getODBCMetadataStore();
}
}
+
+ public void updateVDB(String name, int version) {
+ CompositeVDB v = this.vdbRepo.get(new VDBKey(name, version));
+ if (v!= null) {
+ v.update(v.getVDB());
+ }
+ }
}
14 years, 6 months
teiid SVN: r2414 - in trunk: engine/src/main/java/org/teiid/dqp/internal/process and 1 other directory.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2010-08-04 10:37:01 -0400 (Wed, 04 Aug 2010)
New Revision: 2414
Modified:
trunk/documentation/reference/src/main/docbook/en-US/content/scalar_functions.xml
trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java
Log:
TEIID-829 updating lookup docs
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/scalar_functions.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/scalar_functions.xml 2010-08-04 13:08:10 UTC (rev 2413)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/scalar_functions.xml 2010-08-04 14:37:01 UTC (rev 2414)
@@ -1774,8 +1774,7 @@
</section>
<section>
<title>Lookup Function</title>
- <para>The Lookup function allows you to cache a table’s
- data in memory and access it through a scalar function. This caching
+ <para>The Lookup function allows you to cache a key value pair table and access it through a scalar function. This caching
accelerates response time to queries that use the lookup tables, known
in business terminology as lookup tables or code tables.</para>
<para>A StatePostalCodes table used to translate postal codes to
@@ -1788,15 +1787,12 @@
</para>
<para>When you call this function for any combination of codeTable, returnColumn, and
keyColumn for the first time, the Teiid System caches the result.
- The Teiid System uses this cached map for all
+ The Teiid System uses this cache for all
queries, in all sessions, that later access this lookup table. The
codeTable requires use of the fully-qualified name, and the
returnColumn and keyColumn parameters should use shortened column
names.</para>
- <para>Because the Teiid System caches and indexes this
- information in memory, this function provides quick access after the
- Teiid System initially caches the lookup table. The Teiid
- System unloads these cached lookup tables when you stop and restart
+ <para>The Teiid System unloads these cached lookup tables when you stop and restart
the Teiid System. Thus, you should not use this function for
data that is subject to updates. Instead, you can use it against
static data that does not change over time.</para>
@@ -1806,11 +1802,6 @@
<para>The keyColumn is expected to contain unique key
values. If the column contains duplicate values, an exception will be thrown.</para>
</listitem>
- <listitem>
- <para>Cached lookup tables might consume significant memory. You
- can limit the number and maximum size of these code tables by
- setting configuration properties.</para>
- </listitem>
</itemizedlist>
</note>
<informaltable frame="all">
@@ -2064,9 +2055,18 @@
functions not categorized below are considered deterministic.</para>
</listitem>
<listitem>
+ <para>User Deterministic - the function will return the same
+ result for the given inputs for the same user. This includes the hasRole
+ and user functions. User deterministic functions are evaluated
+ by the engine as soon as all input values are known, which may occur as soon
+ as the rewrite phase. If a user deterministic function is evaluated
+ during the creation of a prepared processing plan, then the resulting
+ plan will be cached only for the user.</para>
+ </listitem>
+ <listitem>
<para>Session Deterministic - the function will return the same
- result for the given inputs under the same user session. This category includes the hasRole,
- env, and user functions. Session deterministic functions are evaluated
+ result for the given inputs under the same user session. This category includes the env
+ function. Session deterministic functions are evaluated
by the engine as soon as all input values are known, which may occur as soon
as the rewrite phase. If a session deterministic function is evaluated
during the creation of a prepared processing plan, then the resulting
Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java 2010-08-04 13:08:10 UTC (rev 2413)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java 2010-08-04 14:37:01 UTC (rev 2414)
@@ -230,6 +230,9 @@
}
public ClientState getClientState(String key, boolean create) {
+ if (key == null) {
+ return null;
+ }
ClientState state = clientState.get(key);
if (state == null && create) {
state = new ClientState(new TempTableStore(key));
14 years, 6 months
teiid SVN: r2413 - in trunk/documentation: caching-guide/src/main/docbook/en-US/content and 4 other directories.
by teiid-commits@lists.jboss.org
Author: shawkins
Date: 2010-08-04 09:08:10 -0400 (Wed, 04 Aug 2010)
New Revision: 2413
Modified:
trunk/documentation/admin-guide/src/main/docbook/en-US/content/admin-console.xml
trunk/documentation/admin-guide/src/main/docbook/en-US/content/adminshell.xml
trunk/documentation/admin-guide/src/main/docbook/en-US/content/installation.xml
trunk/documentation/admin-guide/src/main/docbook/en-US/content/logging.xml
trunk/documentation/admin-guide/src/main/docbook/en-US/content/performance.xml
trunk/documentation/admin-guide/src/main/docbook/en-US/content/security.xml
trunk/documentation/admin-guide/src/main/docbook/en-US/content/vdb-deployment.xml
trunk/documentation/caching-guide/src/main/docbook/en-US/content/codetable.xml
trunk/documentation/caching-guide/src/main/docbook/en-US/content/matviews.xml
trunk/documentation/caching-guide/src/main/docbook/en-US/content/resultset.xml
trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/appendix-selfcerts.xml
trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/appendix-unsupported-jdbc.xml
trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/jdbc-connection.xml
trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/jdbc-extensions.xml
trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/jdbc-transactions.xml
trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/odbc.xml
trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/ssl.xml
trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/using-hibernate.xml
trunk/documentation/developer-guide/src/main/docbook/en-US/content/adminapi.xml
trunk/documentation/developer-guide/src/main/docbook/en-US/content/appendix-b.xml
trunk/documentation/developer-guide/src/main/docbook/en-US/content/develop-adapter.xml
trunk/documentation/developer-guide/src/main/docbook/en-US/content/extending-jdbc.xml
trunk/documentation/developer-guide/src/main/docbook/en-US/content/introduction.xml
trunk/documentation/developer-guide/src/main/docbook/en-US/content/logging.xml
trunk/documentation/developer-guide/src/main/docbook/en-US/content/security.xml
trunk/documentation/developer-guide/src/main/docbook/en-US/content/translator-api.xml
trunk/documentation/developer-guide/src/main/docbook/en-US/content/udf.xml
trunk/documentation/quick-start-example/src/main/docbook/en-US/content/buildvdb.xml
trunk/documentation/quick-start-example/src/main/docbook/en-US/content/connect-vdb.xml
trunk/documentation/quick-start-example/src/main/docbook/en-US/content/deployment.xml
trunk/documentation/quick-start-example/src/main/docbook/en-US/content/example-explained.xml
trunk/documentation/quick-start-example/src/main/docbook/en-US/content/preface.xml
trunk/documentation/reference/src/main/docbook/en-US/content/architecture.xml
trunk/documentation/reference/src/main/docbook/en-US/content/datatypes.xml
trunk/documentation/reference/src/main/docbook/en-US/content/entitlements.xml
trunk/documentation/reference/src/main/docbook/en-US/content/federated_planning.xml
trunk/documentation/reference/src/main/docbook/en-US/content/grammar.xml
trunk/documentation/reference/src/main/docbook/en-US/content/procedures.xml
trunk/documentation/reference/src/main/docbook/en-US/content/scalar_functions.xml
trunk/documentation/reference/src/main/docbook/en-US/content/sql_support.xml
trunk/documentation/reference/src/main/docbook/en-US/content/system_schema.xml
trunk/documentation/reference/src/main/docbook/en-US/content/transaction_support.xml
trunk/documentation/reference/src/main/docbook/en-US/content/translators.xml
trunk/documentation/reference/src/main/docbook/en-US/content/xml_queries.xml
Log:
TEIID-1184 applying patch to use section instead of specific sectX tags
Modified: trunk/documentation/admin-guide/src/main/docbook/en-US/content/admin-console.xml
===================================================================
--- trunk/documentation/admin-guide/src/main/docbook/en-US/content/admin-console.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/admin-guide/src/main/docbook/en-US/content/admin-console.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -6,7 +6,7 @@
Teiid's Admin Console is built using the <ulink url="http://www.jboss.org/embjopr">Embedded JOPR</ulink> library and adds a additional plugin into the Embeeded JOPR program already available in the
<ulink url="http://www.jboss.org/jbossas">JBoss AS</ulink>.</para>
- <sect1>
+ <section>
<title>What can be monitored and/or configured?</title>
<para>Here are the steps to follow to install Teiid</para>
@@ -37,7 +37,7 @@
</imageobject>
</mediaobject>
- <sect2>
+ <section>
<title>Configuration</title>
<orderedlist>
<listitem> <para>Runtime Engine properties</para> </listitem>
@@ -45,18 +45,18 @@
<listitem> <para>Jdbc Socket configuration</para> </listitem>
<listitem> <para>Session Service</para> </listitem>
</orderedlist>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>Metrics</title>
<orderedlist>
<listitem> <para>Long Running Query count</para> </listitem>
<listitem> <para>Active Query count</para> </listitem>
<listitem> <para>Active Session count</para> </listitem>
</orderedlist>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>Control (Operations)</title>
<orderedlist>
<listitem> <para>View Long Running Queries</para> </listitem>
@@ -67,9 +67,9 @@
<listitem> <para>View Current Transactions</para> </listitem>
<listitem> <para>Terminate Transaction</para> </listitem>
</orderedlist>
- </sect2>
+ </section>
- <sect2 id="vdb_deploy">
+ <section id="vdb_deploy">
<title>Deploying the VDB</title>
<para>VDB archive files created it the Designer Tool or Dynamic VDBs can be deployed into Teiid server using
the Admin Console.</para>
@@ -85,8 +85,8 @@
<para>Only Model's "connection-jndi-name" can be modified using this tool by clicking on the "configuration"
tab, all other proeprties are read-only.</para>
- </sect2>
+ </section>
- </sect1>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/admin-guide/src/main/docbook/en-US/content/adminshell.xml
===================================================================
--- trunk/documentation/admin-guide/src/main/docbook/en-US/content/adminshell.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/admin-guide/src/main/docbook/en-US/content/adminshell.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -5,7 +5,7 @@
]>
<chapter>
<title>AdminShell</title>
-<sect1 id="adminshell_introduction">
+<section id="adminshell_introduction">
<title>Introduction</title>
<para>
The AdminShell tooling provides scripting based programming environments that enable user to access, monitor and control a Teiid
@@ -42,17 +42,17 @@
</para>
</listitem>
</orderedlist>
- <sect2>
+ <section>
<title>Download</title>
<para>AdminShell is distributed along with other Teiid downloads under "teiid-&versionNumber;-adminshell-dist.zip" name. Download and unzip this
file to any directory. Once you have unzipped the file, in root directory
you will find "adminshell" and "adminshell-console" executable scripts to launch the command line and graphical tools respectively.</para>
<para>Windows: Double click or execute "adminshell.cmd"</para>
<para>*nix: Execute the "adminshell.sh" script</para>
- </sect2>
-</sect1>
+ </section>
+</section>
-<sect1 id="getting_started">
+<section id="getting_started">
<title>Getting Started</title>
<para>
To learn the basics of
@@ -77,7 +77,7 @@
<para>In the script run mode, the user can execute/play back previously
developed scripts. This mode especially useful to automate any testing or to perform any repeated
configurations/migrations changes to a Teiid system.</para>
- <sect2>
+ <section>
<title>Essential Rules</title>
<para>To use AdminShell successfully, there are some basic syntactical rules to keep in mind.</para>
<orderedlist>
@@ -121,8 +121,8 @@
<para>Note: If SSL is turned on the Teiid server, you would need to
adjust the connection URL and the client SSL settings as necessary (typically this will only be needed for 2-way SSL).
</para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Help</title>
<para>The adminHelp() methods lists all the available administrative API
methods in the AdminShell. Please note
@@ -147,8 +147,8 @@
<para>To get a specific definition about a method and it's required
input parameters, use sqlHelp("method")</para>
<para />
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Basic Commands</title>
<para>The list below contains some common commands used in AdminShell.</para>
<programlisting><![CDATA[
@@ -168,9 +168,9 @@
disconnect(); // disconnects the current connection in the context
]]></programlisting>
- </sect2>
-</sect1>
- <sect1>
+ </section>
+</section>
+ <section>
<title>Executing a script file</title>
<para>To execute a script file "foo.groovy" in a directory "some/directory" in the interactive comamnd line tool, execute as
following</para>
@@ -185,9 +185,9 @@
<programlisting><![CDATA[./adminshell.sh -Dparam=value . some/directory/foo.groovy]]></programlisting>
<para>Inside the script file, you can access these properties using System.getProperty</para>
<programlisting><![CDATA[value = System.getProperty(“param”); // will return "value"]]></programlisting>
- </sect1>
+ </section>
- <sect1>
+ <section>
<title>Log File and Recorded Script file</title>
<para>During the interactive mode, input is recorded in a history file. This file can be accessed via the up arrow in the interactive shell.
</para>
@@ -200,8 +200,8 @@
<para>All input and output between the start and stop are captured in the “directory/filename.txt” file.
This gives the user an option to capture only certain portions of the interactive session and to later refine a script out of recorded file.</para>
<para />
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>Default Connection Properties</title>
<para>The file "connection.properties" in the installation directory of the AdminShell defines the default
connection properties with which user can connect to Teiid system. The following properties can be
@@ -226,8 +226,8 @@
connection to same system. To manage the connections correctly each connection is created given a unique
connection name. To learn more about this look at <link linkend="mutiple_connections">Handling Multiple Connections</link>.</para>
<para />
- </sect1>
- <sect1 id="mutiple_connections">
+ </section>
+ <section id="mutiple_connections">
<title>Handling Multiple Connections</title>
<para>Using AdminShell, a user can actively manage more than one connection to a single or multiple Teiid
systems. For example, two separate connections can be maintained, one to the development server and one to
@@ -273,6 +273,6 @@
// close the connection in the "conn1"
disconnectAll();]]></programlisting>
- </sect1>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/admin-guide/src/main/docbook/en-US/content/installation.xml
===================================================================
--- trunk/documentation/admin-guide/src/main/docbook/en-US/content/installation.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/admin-guide/src/main/docbook/en-US/content/installation.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -12,7 +12,7 @@
</note>
</para>
- <sect1>
+ <section>
<title>Installation</title>
<orderedlist numeration="arabic">
<para>Steps to install Teiid</para>
@@ -45,8 +45,8 @@
</para>
</listitem>
</orderedlist>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>Directory Structure Explained</title>
<example>
<title>Directory Structure</title>
@@ -69,18 +69,18 @@
/lib
/teiid-examples]]></programlisting>
</example>
- <sect2>
+ <section>
<title>/deploy/teiid/teiid-jboss-beans.xml</title>
<para>Master configuration file for Teiid system. This file contains its own documentation,
so refer to the file for all the available properties to configure.</para>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>/deploy/teiid/connectors</title>
<para>This directory contains all the translator JAR and connector RAR files that are supplied as part of the Teiid installation.</para>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>/conf/props</title>
<itemizedlist>
<para>Relevant Files</para>
@@ -93,46 +93,46 @@
</itemizedlist>
<para>These files define the allowed users and their defined roles in Teiid using the default security domain. Edit these
files to add uses. If you want to use a different security domain look for details in main configuration file.</para>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>/conf/jboss-teiid-log4j.xml</title>
<para>This file contains the Teiid specific logging contexts to be included in the "jboss-log4j.xml" file.
If you need to turn ON or OFF specific logging in Teiid,
then copy the contents of this file into "jboss-log4j.xml" in the
installation directory. See the Developers Guide for more on customizing logging.</para>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>admin-console.war</title>
<para>This file has the required files for Teiid JOPR plugin. To see the
Teiid's "admin-console", go to http://<host>:<port>/admin-console</para>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>/deployers/teiid.deployer</title>
<para>This directory contains Teiid runtime specific configuration files and its libraries.
These configuration files define VDB deployers, connector binding deployers etc.
Typically user never need to edit any files in this directory.</para>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>lib</title>
<para>This directory contains Teiid client libraries. It has the Teiid JDBC driver jar, "teiid-&versionNumber;-client.jar",
and also contains "teiid-hibernate-dialect-&versionNumber;.jar" that contains Teiid's Hibernate dialect.</para>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>teiid-examples</title>
<para>This directory contains some examples of how Teiid can be used. Contains artifacts
need by the Getting Started Guide. Also contains some sample XML files to define the connectors.</para>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>teiid-docs</title>
<para>This directory contains the PDF documents related Teiid and Teiid development. </para>
- </sect2>
+ </section>
- </sect1>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/admin-guide/src/main/docbook/en-US/content/logging.xml
===================================================================
--- trunk/documentation/admin-guide/src/main/docbook/en-US/content/logging.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/admin-guide/src/main/docbook/en-US/content/logging.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -5,7 +5,7 @@
]>
<chapter id="logging">
<title>Logging</title>
- <sect1 id="general_logging">
+ <section id="general_logging">
<title>General Logging</title>
<para>
The Teiid system provides a wealth of information via logging. To
@@ -21,7 +21,7 @@
easy to control of of Teiid logging from a single context. Note however that changes to the log configuration file
require a restart to take affect
</para>
- <sect2>
+ <section>
<title>Logging Contexts</title>
<para>While all of Teiid's logs are prefixed with "org.teiid", there
are more specific contexts depending on the functional area of the
@@ -162,9 +162,9 @@
</tbody>
</tgroup>
</informaltable>
- </sect2>
- </sect1>
- <sect1 id="command_logging">
+ </section>
+ </section>
+ <section id="command_logging">
<title>Command Logging</title>
<para>Command logging captures executing commands in the Teiid System.
Both user commands (that have been submitted to Teiid) and data source
@@ -194,8 +194,8 @@
See the Developer's Guide to develop a custom logging solution if file based, or any other built-in Log4j, logging is not sufficient.
</para>
- </sect1>
- <sect1 id="audit_logging">
+ </section>
+ <section id="audit_logging">
<title>Audit Logging</title>
<para>Audit logging captures important security events. This includes
the enforcement of permissions, authentication success/failures, etc.
@@ -207,5 +207,5 @@
configure a separate file appender for the DETAIL logging of the
org.teiid.AUDIT_LOG context. An example of this is already in
the log4j.xml distributed with Teiid. See the Developer's Guide to develop a custom logging solution if file based, or any other built-in Log4j, logging is not sufficient.</para>
- </sect1>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/admin-guide/src/main/docbook/en-US/content/performance.xml
===================================================================
--- trunk/documentation/admin-guide/src/main/docbook/en-US/content/performance.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/admin-guide/src/main/docbook/en-US/content/performance.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -7,7 +7,7 @@
<para>Your application can use a statement object to execute queries that return XML documents.
The query must specify a valid document in VDB, or should have used SQL XML functions
to create a XMl document.</para>
- <sect3>
+ <section>
<title>XML Streaming</title>
<para>XML documents are streamed from Teiid Server to the Teiid JDBC API.
Normally, the document never materializes in the server memory, avoiding potential
@@ -23,6 +23,6 @@
XML query against the system. In heavily loaded or memory-constrained scenarios,
this value can decrease the amount of memory used. As a side effect, streaming will occur in smaller pieces, reducing initial document response time while
increasing full response time (as this is less efficient).</para>
- </sect3>
+ </section>
-->
\ No newline at end of file
Modified: trunk/documentation/admin-guide/src/main/docbook/en-US/content/security.xml
===================================================================
--- trunk/documentation/admin-guide/src/main/docbook/en-US/content/security.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/admin-guide/src/main/docbook/en-US/content/security.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -4,7 +4,7 @@
<title>Teiid Security</title>
<para>The Teiid system provides a range of built-in and extensible security features to enable the
secure access of data.</para>
- <sect1>
+ <section>
<title>Authentication</title>
<para>JDBC clients may use simple passwords to authenticate a user.</para>
<para>Typically a user name is required, however user names may be considered optional if the
@@ -18,15 +18,15 @@
The same is true for making connections to the Admin Console application.
We DO NOT recommend leaving the default security profile as defined when you
are exposing sensitive data.</para></note>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>Authorization</title>
<para>Authorization covers both administrative activities and data
roles. A data role is a collection of permissions (also referred to as entitlements) and a
collection of entitled principals or groups. With the deployment of a VDB
the deployer can choose which principals and groups have which data roles.</para>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>Encryption</title>
<para>At a transport level Teiid provides built-in support for JDBC
over SSL or just sensitive message encryption when SSL is not in use.
@@ -38,8 +38,8 @@
url="http://community.jboss.org/wiki/maskingpasswordsinjbossasxmlconfiguration">encrypting passwords</ulink>
for instructions on encryption facilities provided by the container.
</para>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>LoginModules</title>
<para>
LoginModules are an essential part of the JAAS security
@@ -74,7 +74,7 @@
shared between the "admin-console" application.</para>
</note>
- <sect2>
+ <section>
<title>Built-in LoginModules</title>
<para>JBossAS provides several LoginModules for common authentication needs, such as authenticating from text files or LDAP.</para>
<para>The UsersRolesLoginModule, which utilizes simple text files
@@ -85,11 +85,11 @@
<para>See <ulink url="http://community.jboss.org/docs/DOC-11253">LDAP LoginModule configuration</ulink> for utilizing LDAP based authentication.
If you want use a your own Custom Login module, check out the Developer's Guide for instructions.
</para>
- </sect2>
+ </section>
- </sect1>
+ </section>
- <sect1 id="connfigure_server">
+ <section id="connfigure_server">
<title>Configuring SSL</title>
<para>The Teiid's configuration file
<code><jboss-install>/server/<profile>/deploy/teiid/teiid-jboss-beans.xml</code>,
@@ -133,5 +133,5 @@
<listitem><para>truststorePassword - password for the truststore. </para></listitem>
</orderedlist>
- </sect1>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/admin-guide/src/main/docbook/en-US/content/vdb-deployment.xml
===================================================================
--- trunk/documentation/admin-guide/src/main/docbook/en-US/content/vdb-deployment.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/admin-guide/src/main/docbook/en-US/content/vdb-deployment.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -9,20 +9,20 @@
create a "Dynamic VDB" without Teiid Designer.
</para>
- <sect1>
+ <section>
<title>Deploying a VDB</title>
<para>Once you have a "VDB" built it can be deployed in Teiid runtime in different ways.</para>
- <sect2>
+ <section>
<title>Direct File Deployment</title>
<para>Copy the VDB file into the "<jboss-install>/server/<profile>/deploy" directory.
Make sure that there are no other VDB files with the same name. If a VDB already exists with
the same name, then this VDB will be replaced with the new VDB. This is the simplest way to deploy a VDB. This is mostly
designed for quick deployment during development, when the Teiid server is available
locally on the developer machine.</para>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>Admin Console Deployment (Web)</title>
<para>Use the JOPR-based web console configuration system. Check out the JOPR plugin at:</para>
@@ -30,27 +30,27 @@
<para>More details for this can be found in the <link linkend="vdb_deploy">Admin Console VDB deployment section.</link>This is the easiest way
to deploy a VDB to a remote server.</para>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>AdminShell Deployment</title>
<para>Teiid provides a groovy based AdminShell scripting tool, which can be used to deploy
a VDB. Check out the "deployVDB" method. Consult the
<link linkend="adminshell">AdminShell documentation</link> for more information. Note that using the AdminShell scripting, you can automate
the deployment of artifacts in your environment.</para>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>Admin API Deployment</title>
<para>The Admin API (look in org.teiid.adminpi.*) provides Java API methods that
lets a user connect to a Teiid runtime and deploy a VDB. If you need to programmatically
deploy a VDB use this method. This method is preferable for OEM users, who are trying to extend the
Teiid's capabilities through their applications.</para>
- </sect2>
+ </section>
- </sect1>
+ </section>
- <sect1>
+ <section>
<title>Deploying VDB Dependencies</title>
<para>Apart from deploying the VDB, the user is also responsible for providing all the necessary
dependent libraries, configuration for creating the data sources that are needed by the Schemas (models)
@@ -62,7 +62,7 @@
<para>Once the VDB and its dependencies are deployed, then client applications can connect using the JDBC API. If there are any errors in the deployment, a connection attempt will not be successful and a message will be logged. You can use the
<link linkend="admin-console">admin-console</link> tool or check the log files for errors and correct them before proceeding.</para>
- <sect2>
+ <section>
<title>Creating An Oracle Data Source</title>
<orderedlist>
<listitem> <para>Copy the Oracle JDBC JAR file into "<jboss-install>/server/<profile>/lib" directory </para> </listitem>
@@ -101,8 +101,8 @@
</orderedlist>
<para>There are templates for all the data sources in the "<jboss-install>/docs/examples/jca" directory.</para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Creating A File Data Source</title>
<para>File data source uses Teiid specific JCA connector. You need to create "-ds.xml" file and copy it to the
"<jboss-install>/server/%lt;profile>/deploy" directory.</para>
@@ -118,15 +118,15 @@
<max-pool-size>1</max-pool-size>
</no-tx-connection-factory>
</connection-factories>]]></programlisting></example>
- </sect2>
- </sect1>
+ </section>
+ </section>
- <sect1>
+ <section>
<title>Migrating VDBs from 6.x</title>
<para>VDBs from prior release contain an older configuration file version that is no longer supported.
You can use the migration utility (bin/migrate.sh or bin/migrate.bat) supplied with the
<link linkend="adminshell">AdminShell</link> download
to update these VDBs for use with Teiid 7. Note - XML and File based sources from previous releases have changed, and require manual changes to the VDB.</para>
- </sect1>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/caching-guide/src/main/docbook/en-US/content/codetable.xml
===================================================================
--- trunk/documentation/caching-guide/src/main/docbook/en-US/content/codetable.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/caching-guide/src/main/docbook/en-US/content/codetable.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -21,7 +21,7 @@
frequently in most enterprise applications. Examples are ISO country
codes, state codes, and different types of financial instrument
identifiers. </para>
- <sect1>
+ <section>
<title>Support Summary</title>
<orderedlist>
<listitem>
@@ -32,8 +32,8 @@
utility</para>
</listitem>
</orderedlist>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>User Interaction</title>
<para>This caching mechanism is automatically invoked when the lookup
scalar function is used. Each time this function is called with a
@@ -96,8 +96,8 @@
<para>lookup(‘StatePostalCodes, ‘StateDisplayName’, ‘PostalCode’,
‘63131’) </para>
<para>lookup(‘EmpIDs’, ‘Name’, ‘ID’, ‘m204815’) </para>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>Cache Configuration</title>
<para>Cached lookup groups might consume significant memory. You can
limit the number and maximum size of these code groups by setting
@@ -106,8 +106,8 @@
<para>The following are the properties that can be set at the query
service level to control reference data caching.</para>
<para />
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>Cache Characteristics</title>
<para>Cache Persistence Mechanism</para>
<para>Reference tables are persisted in object caches local to
@@ -124,14 +124,14 @@
<para>Cache Operational Policy</para>
<para>Cached tables are never proactively cleared. They can only be
cleared through using the svcmgr utility script.</para>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>Cache Administration</title>
<para>The lookup cache can be cleared using the svcmgr utility script.
To clear cached code tables, set expertmode on, and then pass in the
clearCodeTableCaches argument.</para>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>Limitations</title>
<orderedlist>
<listitem>
@@ -152,5 +152,5 @@
<para>Cached code tables are never proactively cleared by the Server.
If a lot of code tables are loaded, or large code tables are loaded,
the Server’s available memory could be exceeded.</para>
- </sect1>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/caching-guide/src/main/docbook/en-US/content/matviews.xml
===================================================================
--- trunk/documentation/caching-guide/src/main/docbook/en-US/content/matviews.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/caching-guide/src/main/docbook/en-US/content/matviews.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -19,7 +19,7 @@
query load on operational sources. MetaMatrix provides a utility to
refresh materialized tables. This utility uses the MetaMatrix batched
update functionality.</para>
- <sect1>
+ <section>
<title>Support Summary</title>
<orderedlist>
<listitem>
@@ -38,8 +38,8 @@
data</para>
</listitem>
</orderedlist>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>User Interaction</title>
<para>When client applications issue queries against a Relational
table or view that has been defined as a materialized view, the
@@ -66,8 +66,8 @@
specify to always use real-time data obtained directly from a source.
The use of caching and non-caching can be mixed in transformation
definitions, just as with user queries.</para>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>Cache Configuration</title>
<para>Materialized View Definition</para>
<para>Materialized views are defined in the MetaBase Modeler by
@@ -503,8 +503,8 @@
loadscript.cmd (.sh on UNIX) command script, located in the server
materializedviews directory. This script can be used to schedule
database loading activities. </para>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>Limitations</title>
<orderedlist>
<listitem>
@@ -518,12 +518,12 @@
currently support this.</para>
</listitem>
</orderedlist>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>Outstanding Issues</title>
<para>Specifying OPTION NOCACHE within a transformation query is the
same as specifying it a user query – the identified virtual groups
will always be re-computed in the context of the virtual group
containing the transformation query with the override option.</para>
- </sect1>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/caching-guide/src/main/docbook/en-US/content/resultset.xml
===================================================================
--- trunk/documentation/caching-guide/src/main/docbook/en-US/content/resultset.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/caching-guide/src/main/docbook/en-US/content/resultset.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -20,7 +20,7 @@
of the incoming SQL string. It only applies to SELECT and EXEC
statements; it does not apply to SELECT INTO statements, or INSERT,
UPDATE, and DELETE statements.</para>
- <sect1>
+ <section>
<title>Support Summary</title>
<orderedlist>
<listitem>
@@ -45,8 +45,8 @@
<para>Administrative clearing of caches</para>
</listitem>
</orderedlist>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>User Interaction</title>
<para>End users or client applications explicitly state whether to use
result set caching for each query. This can be done by setting the
@@ -59,8 +59,8 @@
<para>Each query is re-checked for authorization for the user’s
permissions, regardless of whether or not the query results have been
cached.</para>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>Cache Configuration</title>
<para>Result set caching in the MetaMatrix Server is configured in the
MetaMatrix Console. By default, result set caching is disabled.
@@ -179,8 +179,8 @@
Properties tab. Note that these are all optional properties. Check
the Include Optional Properties setting to see these properties.
</para>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>Cache Characteristics</title>
<para>Cache Persistence Mechanism</para>
<para>Result sets are persisted in object caches local to individual
@@ -194,8 +194,8 @@
(as defined by the ResultSet Cache Maximum Size property), query
result sets are removed to bring the cache back down to the 80%
threshold.</para>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>Cache Administration</title>
<para>Result set caching is administered using the servershell script
under the <server install>/util directory. This script is
@@ -219,8 +219,8 @@
</orderedlist>
<para>These can be listed in help by executing the script with the
command-line argument expertmode on. </para>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>Limitations</title>
<orderedlist>
<listitem>
@@ -245,10 +245,10 @@
allowed). [defect 14444]</para>
</listitem>
</orderedlist>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>Outstanding Issues</title>
<para>Specification of result set caching for ODBC and SOAP is through
extra URL properties, on a per-connection basis.</para>
- </sect1>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/appendix-selfcerts.xml
===================================================================
--- trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/appendix-selfcerts.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/appendix-selfcerts.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -10,7 +10,7 @@
of both the key store and the trust store files for a 1-way SSL configuration with
the security keys.</para>
- <sect1>
+ <section>
<title>Creating private/public key pair:</title>
<programlisting><![CDATA[
keytool -genkey -alias teiid -keyalg RSA -validity 365 –keystore
@@ -37,9 +37,9 @@
(Return if same as keystore password)
]]></programlisting>
<para>The "server.keystore" can be used as keystore based upon the newly created private key.</para>
- </sect1>
+ </section>
- <sect1>
+ <section>
<title>Extracting the public key</title>
<para>From the "server.keystore" created above we can extract a public key for creating a trust store</para>
<programlisting><![CDATA[
@@ -48,9 +48,9 @@
]]></programlisting>
<para>This creates the "public.cert" file that contains the public key based on the
private key in the "server.keystore"</para>
- </sect1>
+ </section>
- <sect1>
+ <section>
<title>Creating the Truststore</title>
<programlisting><![CDATA[
@@ -68,6 +68,6 @@
<para>Now this has created "server.truststore". There are many other ways to create self signed certificates,
the above procedure is just one way. If you would like create them
using "openssl", see <ulink url="http://www.akadia.com/services/ssh_test_certificate.html">this tutorial</ulink>.</para>
- </sect1>
+ </section>
</appendix>
\ No newline at end of file
Modified: trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/appendix-unsupported-jdbc.xml
===================================================================
--- trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/appendix-unsupported-jdbc.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/appendix-unsupported-jdbc.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -13,16 +13,16 @@
If no arguments are specified, then all related (overridden) methods are not supported. If an argument is listed
then only those forms of the method specified are not supported.</para>
- <sect1>
+ <section>
<title>ResultSet Limitations</title>
<itemizedlist>
<listitem><para>TYPE_SCROLL_SENSITIVE is not supported.</para></listitem>
<listitem><para><code>UPDATABLE</code> ResultSets are not supported.</para></listitem>
<listitem><para>Returning multiple ResultSets from Procedure execution is not supported.</para></listitem>
</itemizedlist>
- </sect1>
+ </section>
- <sect1>
+ <section>
<title>Unsupported Classes and Methods in "java.sql"</title>
<table frame='all'>
<title>Connection Properties</title>
@@ -305,9 +305,9 @@
</tbody>
</tgroup>
</table>
- </sect1>
+ </section>
- <sect1>
+ <section>
<title>Unsupported Classes and Methods in "javax.sql"</title>
<table frame='all'>
<title>Connection Properties</title>
@@ -340,5 +340,5 @@
</tbody>
</tgroup>
</table>
- </sect1>
+ </section>
</appendix>
\ No newline at end of file
Modified: trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/jdbc-connection.xml
===================================================================
--- trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/jdbc-connection.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/jdbc-connection.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -40,7 +40,7 @@
<para>Once you have established a connection with the Teiid Server, you can use standard JDBC API classes, like
DatabaseMetadata and ResultSetMetadata, to interrogate metadata and Statement classes to execute queries.</para>
- <sect1 id="driver_connection">
+ <section id="driver_connection">
<title>Driver Connection</title>
<para>Use <code>org.teiid.jdbc.TeiidDriver</code> as the driver class.</para>
@@ -56,7 +56,7 @@
[;]. All supported URL properties are defined in the <link linkend="connection_properties">connection properties section</link>. Property values should be URL encoded if they contain reserved characters, e.g. ('?', '=', ';', etc.)</para></listitem>
</orderedlist>
- <sect2 id="connection_properties">
+ <section id="connection_properties">
<title>URL Connection Properties</title>
<para>The following table shows all the supported connection properties that can used with Teiid
JDBC Driver URL connection string, or on the Teiid JDBC Data Source class.</para>
@@ -225,11 +225,11 @@
</tbody>
</tgroup>
</table>
- </sect2>
+ </section>
- </sect1>
+ </section>
- <sect1 id="datasource_connection">
+ <section id="datasource_connection">
<title>Datasource Connection</title>
<para>To use a data source based connection, use <code>org.teiid.jdbc.TeiidDataSource</code> as the data source class.
The <code>TeiidDataSource</code> is also an XADatasource. Teiid DataSource class is also Serializable, so it possible for it to be used with
@@ -343,13 +343,13 @@
</tbody>
</tgroup>
</table>
- </sect1>
+ </section>
- <sect1>
+ <section>
<title>Standalone Application</title>
<para>To use either Driver or DataSource based connections, add the client JAR to your Java client application's classpath. See the simple client example in the kit for a full Java sample of the following.</para>
- <sect2 id="sa_driver_connection">
+ <section id="sa_driver_connection">
<title>Driver Connection</title>
<para>Sample Code:</para>
@@ -360,9 +360,9 @@
}
}]]></programlisting>
- </sect2>
+ </section>
- <sect2 id="sa_datasource_connection">
+ <section id="sa_datasource_connection">
<title>Datasource Connection</title>
<para>Sample Code:</para>
@@ -378,11 +378,11 @@
}
}]]></programlisting>
- </sect2>
+ </section>
- </sect1>
+ </section>
- <sect1 id="ds_in_jbossas">
+ <section id="ds_in_jbossas">
<title>JBoss AS Data Source</title>
<para>Teiid can be configured as a JDBC data source in the JBoss Application Server to be accessed
from JNDI or injected into your JEE applications. Deploying Teiid as data source in JBoss AS is exactly same as
@@ -403,7 +403,7 @@
<para>Tje data source will then be accessable through the JNDI name specified in the -ds.xml file.</para>
- <sect2 id="as_xa_connection">
+ <section id="as_xa_connection">
<title>DataSource Connection</title>
<para>Make sure you know the correct DatabaseName, ServerName, Port number and credentials that are specific
to your deployment environment. </para>
@@ -431,8 +431,8 @@
<max-pool-size>10</max-pool-size>
</xa-datasource>
</datasources>]]></programlisting> </example>
- </sect2>
- <sect2 id="as_driver_connection">
+ </section>
+ <section id="as_driver_connection">
<title>Driver based connection</title>
<para>You can also use Teiid's JDBC driver class <code>org.teiid.jdbc.TeiidDriver</code> to create a data source</para>
<programlisting><![CDATA[<datasources>
@@ -449,8 +449,8 @@
<max-pool-size>10</max-pool-size>
</local-tx-datasource>
</datasources>]]></programlisting>
- </sect2>
- <sect2 id="local_connection">
+ </section>
+ <section id="local_connection">
<title>Local JDBC Connection</title>
<para>If you are deploying your client application on the same JBoss AS instance as the Teiid runtime is installed, then
there is no reason for your client application to open socket based JDBC connection.
@@ -476,11 +476,11 @@
</datasources>]]></programlisting>
</example>
<para>This is essentially the same as the XA configuration, but "ServerName" and "PortNumber" are not specified.</para>
- </sect2>
+ </section>
- </sect1>
+ </section>
- <!-- <sect1 id="multiple_hosts">
+ <!-- <section id="multiple_hosts">
<title>Using Multiple Hosts</title>
<para>When Teiid Server is deployed on multiple servers for scalbility, then your application that using
Teiid JDBC API can automatically use all Teiid Servers in that group. To enable this feature the client needs
@@ -501,6 +501,6 @@
<para>If you are using DataSource to connect to Teiid Server, use "AlternateServers" property/method to define the failover servers.
Check out the Javadoc on the format of the string.</para>
- </sect1> -->
+ </section> -->
</chapter>
\ No newline at end of file
Modified: trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/jdbc-extensions.xml
===================================================================
--- trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/jdbc-extensions.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/jdbc-extensions.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -6,7 +6,7 @@
<chapter id="jdbc_extensions">
<title>Teiid extensions to the JDBC API</title>
- <sect1 id="statement_extensions">
+ <section id="statement_extensions">
<title>Statement Extensions</title>
<para>The Teiid statement extension interface,
<code>org.teiid.jdbc.TeiidStatement</code>, provides functionality beyond the JDBC standard. To use the extension interface, simply
@@ -93,9 +93,9 @@
</tbody>
</tgroup>
</table>
- </sect1>
+ </section>
- <sect1 id="execution_properties">
+ <section id="execution_properties">
<title>Execution Properties</title>
<para>Execution properties may be set on a per statement basis through the <link linkend="statement_extensions"><code>TeiidStatement</code></link> interface or on the connection via the <link linkend="set_statement">SET statement</link>.
For convenience, the property keys are defined by constants on the <code>org.teiid.jdbc.ExecutionProperties</code> interface.</para>
@@ -172,9 +172,9 @@
</tbody>
</tgroup>
</table>
- </sect1>
+ </section>
- <sect1 id="set_statement">
+ <section id="set_statement">
<title>SET Statement</title>
<para>Execution properties may also be set on the connection by using the SET statement.
@@ -221,9 +221,9 @@
String debugLog = planRs.getString("DEBUG_LOG");
</programlisting>
</example>
- </sect1>
+ </section>
- <sect1 id="show_statement">
+ <section id="show_statement">
<title>SHOW Statement</title>
<para>The SHOW statement can be used to see a varitey of information.
@@ -252,9 +252,9 @@
</listitem>
</itemizedlist>
<para>The SHOW statement is most commonly used to retrieve the query plan, see the plan <link linkend="plan_debug">debug example</link>.</para>
- </sect1>
+ </section>
- <sect1 id="partial_results">
+ <section id="partial_results">
<title>Partial Results Mode</title>
<para>The Teiid Server supports a "partial results" query mode. This mode changes the behavior of the
query processor so the server returns results even when some data sources are unavailable.</para>
@@ -299,12 +299,12 @@
System.out.println(connectorName + “: “ +ConnectorException.getMessage();
}
}]]></programlisting>
- </sect1>
+ </section>
- <sect1>
+ <section>
<title>XML extensions</title>
<para>The XML extensions apply on to XML resutls from queries to XML document models, and not to XML produced by SQL/XML or read from some other source.</para>
- <sect2 id="document_formatting">
+ <section id="document_formatting">
<title>Document formatting</title>
<para>The PROP_XML_FORMAT execution property can be set to modify the way that
XML documents are formatted from XML document models. Valid values for the constant
@@ -320,15 +320,15 @@
XML document in the original model is honored. This may produce either the “tree” or “compact”
form of the document depending on the document setting.</para></listitem>
</orderedlist>
- </sect2>
+ </section>
- <sect2 id="schema_validation">
+ <section id="schema_validation">
<title>Schema validation</title>
<para>The <code>PROP_XML_VALIDATION</code> execution property can be set to indicate that
the server should validate XML document model documents against their schema before returning them
to the client. If schema validation is on, then the server send a SQLWarning if the document does not conform to the schema it is associated with.
Using schema validation will reduce the performance of your XML queries. </para>
- </sect2>
- </sect1>
+ </section>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/jdbc-transactions.xml
===================================================================
--- trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/jdbc-transactions.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/jdbc-transactions.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -10,7 +10,7 @@
by the Teiid Server as XA transactions.
See the <ulink url="http://java.sun.com/javaee/technologies/jta/index.jsp">JTA specification</ulink> for more on XA Transactions.</para>
- <sect1>
+ <section>
<title>Local Transactions</title>
<para>The Connection class uses the "autoCommit" flag to explicitly control local transactions. By default, autoCommit
is set to "true", which indicates request level or implicit transaction control. example of
@@ -49,7 +49,7 @@
<listitem> <para>Connection.rollback()</para> </listitem>
<listitem> <para>A transaction will be rolled back automatically if it times out.</para> </listitem>
</orderedlist>
- <sect2>
+ <section>
<title>Turning Off Local Transactions</title>
<para>In some cases, tools or frameworks above Teiid will call setAutoCommit(false), commit() and rollback()
even when all access is read-only and no transactions are necessary.
@@ -66,10 +66,10 @@
results (if reading data) or inconsistent data in data stores (if writing data).
For safety, this mode should be used only if you are certain that
the calling application does not need local transactions.</para></warning>
- </sect2>
- </sect1>
+ </section>
+ </section>
- <sect1>
+ <section>
<title>Request Level Transactions</title>
<para>Request level transactions are used when the request is not in the
scope of a global or local transaction, which implies "autoCommit" is "true". In a request
@@ -108,15 +108,15 @@
per-query basis using the execution properties. For more information on execution
properties, see the section <link linkend="execution_properties">“Execution Properties”</link></para>
- <sect2>
+ <section>
<title>Multiple Insert Batches</title>
<para>When issuing an INSERT with a query expression (or the deprecated SELECT INTO), multiple insert batches handled by separate source INSERTS may be processed by the Teiid server.
Care should be taken to ensure that targeted sources support XA or that compensating actions are taken in the event of a failure.</para>
- </sect2>
+ </section>
- </sect1>
+ </section>
- <sect1>
+ <section>
<title>Using Global Transactions</title>
<para>Global or client XA transactions allow the Teiid JDBC API to participate in transactions that
are beyond the scope of a single client resource. For this use the Teiid DataSource Class for establishing connections.</para>
@@ -163,18 +163,18 @@
may arise from the same physical source accessed through different cluster members.
If the client transaction manager uses a different branch identifier for each connection, issues may arise
with sources that lock or isolate changes based upon branch identifiers.</para>
- </sect1>
+ </section>
- <sect1>
+ <section>
<title>Restrictions</title>
- <sect2>
+ <section>
<title>Application Restrictions</title>
<para>The use of global, local, and request level transactions are all mutually exclusive.
Request level transactions only apply when not in a global or local transaction. Any attempt to
mix global and local transactions concurrently will result in an exception.</para>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>Enterprise Information System Support</title>
<para>The underlying resource adaptors that represent the EIS system and the EIS system itself must support XA transactions
if they want to participate in distributed XA transaction thru Teiid. If
@@ -185,6 +185,6 @@
transaction is automatically determined based on the resource adaptors XA capability. It is user's repsonsiblity to make sure
that they configure a XA resource when they require them to participate in distributed transaction.
</para>
- </sect2>
- </sect1>
+ </section>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/odbc.xml
===================================================================
--- trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/odbc.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/odbc.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -24,13 +24,13 @@
the application is running on and then create Data Source Name (DSN) that represents a connection profile for your Teiid VDB.
</para>
- <sect1 id="install">
+ <section id="install">
<title>Installing the ODBC Driver Client</title>
<para>A PostgreSQL ODBC driver needed to make the ODBC connection to Teiid is <emphasis>not</emphasis>
bundled with the Teiid distribution. The appropriate driver needs be <ulink url="http://www.postgresql.org/ftp/odbc/versions/">downloaded</ulink>
directly from the PostgreSQL web site. We have tested with <emphasis>8.04.200</emphasis> version of the ODBC driver.</para>
- <sect2>
+ <section>
<title>Microsoft Windows</title>
<orderedlist>
<listitem><para>Download the ODBC driver from <ulink url="http://wwwmaster.postgresql.org/download/mirrors-ftp/odbc/versions/msi/ps...">
@@ -84,8 +84,8 @@
<para>Click "Finish" to complete.</para>
</listitem>
</orderedlist>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Other *nix Platform Installations</title>
<para>For all other platforms other than Microsoft Windows, the ODBC driver needs built from the
source files provided. Download the ODBC driver source files from
@@ -102,12 +102,12 @@
]]></programlisting>
<para>Some *nix distributions may already provide binary forms of the appropriate driver, which can be used as an alternative to
building from source.</para>
- </sect2>
- </sect1>
+ </section>
+ </section>
- <sect1>
+ <section>
<title>Configuring the Data Source Name (DSN)</title>
- <sect2>
+ <section>
<title>Windows Installation</title>
<para>Once you have installed the ODBC Driver Client software on your workstation, you have to
configure it to connect to a Teiid Runtime. Note that the following instructions are specific
@@ -168,9 +168,9 @@
</orderedlist>
<para>You have configured a Teiid's virtual database as a data source for your ODBC applications. Now you can
use applications such as Excel, Access to query the data in the VDB</para>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>Other *nix Platform Installations</title>
<para>Before you can access Teiid using ODBC on any *nix platforms, you need to either install a ODBC driver manager or verify
that one already exists. As the ODBC Driver manager Teiid recommends <ulink url="http://www.unixodbc.org/">unixODBC</ulink>.
@@ -227,11 +227,11 @@
]]></programlisting>
<para>where "commands.sql" file contains the SQL commands you would like to execute.</para>
- </sect2>
+ </section>
- </sect1>
+ </section>
- <sect1>
+ <section>
<title>DSN Less Connection</title>
<para>You can also connect to Teiid VDB using ODBC with out explicitly creating a DSN. However, in these scenarios your
application needs, what is called as "DSN less connection string". The below is a sample connection string </para>
@@ -246,5 +246,5 @@
ODBC;DRIVER={PostgreSQL};DATABASE=<vdb-name>;SERVER=<host-name>;PORT=<port>;Uid=<username>;Pwd=<password>
]]></programlisting>
- </sect1>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/ssl.xml
===================================================================
--- trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/ssl.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/ssl.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -10,7 +10,7 @@
that can be used with Teiid in securing your data access. Note that data level
security (<link linkend="entitlements">data roles</link>) are explained in separate chapter.</para>
- <sect1 id="default_security">
+ <section id="default_security">
<title>Default Security</title>
<para>If you are always using a
@@ -22,9 +22,9 @@
encryption is controlled by <code>clientEncryptionEnabled</code> property in <code>JdbcSslConfiguration</code> and
<code>AdminSslConfiguration</code> sections
in <code><jboss-install>/server/<profile>/deploy/teiid/teiid-jboss-beans.xml</code> file.</para>
- </sect1>
+ </section>
- <sect1 id="ssl_modes">
+ <section id="ssl_modes">
<title>SSL Modes</title>
<para>Teiid supports SSL based channel between the client JDBC application and Teiid Server. Teiid supports the following
SSL modes.</para>
@@ -56,9 +56,9 @@
<listitem><para>client.keystore - client's private key</para></listitem>
<listitem><para>client.truststore - has client's public key</para></listitem>
</orderedlist>
- </sect1>
+ </section>
- <sect1 id="configure_client">
+ <section id="configure_client">
<title>Client SSL Settings</title>
<para>The
following sections define the properties required for each SSL mode. Note that when
@@ -69,7 +69,7 @@
<para>There are two different sets of properties that a client can configure to enable 1-way or 2-way SSL.</para>
- <sect2>
+ <section>
<title>Option 1: Java SSL properties</title>
<para>These are standard Java defined system properties to configure the SSL under any JVM, Teiid is not
unique in its use of SSL. Provide the following system properties to the client VM process.</para>
@@ -89,9 +89,9 @@
-Djavax.net.ssl.trustStorePassword=<password> (optioanl)
-Djavax.net.ssl.keyStroreType=<keystore type> (optional)]]></programlisting>
</example>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>Option 2: Teiid Specific Properties</title>
<para>Use this option for <emphasis>anonymous</emphasis> mode or when the above "javax" based properties
are already in use by the host process. For example if your client application is a Tomcat
@@ -182,6 +182,6 @@
<title>Anonymous</title>
<programlisting><![CDATA[org.teiid.ssl.trustStore=NONE]]></programlisting>
</example>
- </sect2>
- </sect1>
+ </section>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/using-hibernate.xml
===================================================================
--- trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/using-hibernate.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/client-developers-guide/src/main/docbook/en-US/content/using-hibernate.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -5,15 +5,15 @@
]>
<chapter id="using_hibernate">
<title>Using Teiid with Hibernate</title>
- <sect1>
+ <section>
<title>Limitations</title>
<para>Many Hibernate use cases assume a data source has the ability (with proper user permissions)
to process Data Definition Language (DDL) statements like CREATE TABLE and DROP TABLE
as well as Data Manipulation Language (DML) statements like SELECT, UPDATE, INSERT and DELETE.
Teiid can handle a broad range of DML, but does not support DDL.</para>
- </sect1>
+ </section>
- <sect1>
+ <section>
<title>Configuration</title>
<para>For the most part, interacting with Teiid VDBs (Virtual Databases) from Hibernate is no
different from working with any other type of data source.
@@ -78,6 +78,6 @@
...
</class>]]></programlisting>
</example>
- </sect1>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/developer-guide/src/main/docbook/en-US/content/adminapi.xml
===================================================================
--- trunk/documentation/developer-guide/src/main/docbook/en-US/content/adminapi.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/developer-guide/src/main/docbook/en-US/content/adminapi.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -6,14 +6,14 @@
<title>AdminAPI</title>
<para>In most circumstances the admin operations will be performed through the admin console or AdminShell tooling, but it is also possible to invoke admin functionality directly in Java through the AdminAPI.</para>
<para>All classes for the AdminAPI are in the client jar under the <code>org.teiid.adminapi</code> package.</para>
- <sect1 id="connecting">
+ <section id="connecting">
<title>Connecting</title>
<para>An AdminAPI connection, which is represented by the <code>org.teiid.adminapi.Admin</code> interface, is obtained through the <code>org.teiid.adminapi.AdminFactory.createAdmin</code> methods.
<code>AdminFactory</code> is a singleton, see <code>AdminFactory.getInstance()</code>. The <code>Admin</code> instance automatically tests its connection and reconnects to a server in the event of a failure. The <code>close</code> method should be called to terminate the connection.</para>
<para>See your Teiid installation for the appropriate admin port - the default is 31443.</para>
- </sect1>
- <sect1 id="admin_methods">
+ </section>
+ <section id="admin_methods">
<title>Admin Methods</title>
<para>Admin methods exist for monitoring, server administration, and configuration purposes. Note that the objects returned by the monitoring methods, such as getRequests, are read-only and cannot be used to change server state. See the JavaDocs for all of the details.</para>
- </sect1>
+ </section>
</chapter>
Modified: trunk/documentation/developer-guide/src/main/docbook/en-US/content/appendix-b.xml
===================================================================
--- trunk/documentation/developer-guide/src/main/docbook/en-US/content/appendix-b.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/developer-guide/src/main/docbook/en-US/content/appendix-b.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -1,6 +1,6 @@
<appendix id="advanced_topics">
<title>Advanced Topics</title>
- <sect1>
+ <section>
<title>Security Migration From Previous Versions</title>
<para>It is recommended that customers who have utilized the internal JDBC membership domain from releases
prior to MetaMatrix 5.5 migrate those users and groups to an LDAP compliant directory server. Several free
@@ -19,5 +19,5 @@
</para>
<para>See the JBossAS security documentation for using an LDAP directory server. If there are additional questions or the need for guidance in the migration process, please contact
technical support.</para>
- </sect1>
+ </section>
</appendix>
\ No newline at end of file
Modified: trunk/documentation/developer-guide/src/main/docbook/en-US/content/develop-adapter.xml
===================================================================
--- trunk/documentation/developer-guide/src/main/docbook/en-US/content/develop-adapter.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/developer-guide/src/main/docbook/en-US/content/develop-adapter.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -16,7 +16,7 @@
<para>Check out the following links <ulink url="http://docs.jboss.org/jbossas/jboss4guide/r4/html/ch7.chapt.html">Connectors on JBoss</ulink> </para>
- <sect1>
+ <section>
<title>Using the Teiid Framework</title>
<para>If you are going to use the Teiid framework for developing a JCA connector, follow these steps. The required classes are in
<code>org.teiid.resource.api</code> package. Please note that Teiid framework does not make use JCA's CCI framework, only the JCA's SPI interfaces. </para>
@@ -36,7 +36,7 @@
</listitem>
</itemizedlist>
- <sect2 id="managed_connection_factory">
+ <section id="managed_connection_factory">
<title>Define Managed Connection Factory</title>
<para>Extend the <code>BasicManagedConnectionFactory</code>, and provide a implementation for the
"createConnectionFactory()" method. This method defines a factory method that can create connections.</para>
@@ -69,8 +69,8 @@
this.count = value;
}
}]]></programlisting>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Define the Connection Factory class</title>
<para>Extend the <code>BasicConnectionFactory</code> class, and provide a implementation for the "getConnection()" method.</para>
<programlisting><![CDATA[public class MyConnectionFactory extends BasicConnectionFactory {
@@ -90,9 +90,9 @@
<para>Note that you can define "security-domain" for this resource adapter, that is separate from
the Teiid defined "security-domain" for validating the JDBC end user. However, it is users responsibility to make the necessary
logins before the Container's thread accesses this resource adapter, and this can get overly complex.</para>
- </sect2>
+ </section>
- <sect2 id="connection">
+ <section id="connection">
<title>Define the Connection class</title>
<para>Extend the <code>BasicConnection</code> class, and provide a implementation based on your access
of the Connection object in the Translator. If your
@@ -115,9 +115,9 @@
}
}]]></programlisting>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>XA Transactions</title>
<para>If you EIS source can participate in XA transactions, then on your <link linkend="connection">Connection</link> object,
override the "getXAResource()" method and provide the "XAResource" object for the EIS system.
@@ -127,9 +127,9 @@
<para>Note that, only when the resource adapters are XA capable, then Teiid can make them participate in a distributed
transactions. If they are not XA capable, then source can participate in distributed query but will not participate
in the transaction. Transaction semantics at that time defined by how you defined "-ds.xml" file. i.e. with local-tx or no-tx</para>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>Define the configuration properties in a "ra.xml" file</title>
<para>Define a "ra.xml" file (sample shown in the <link linkend="appendix_a">appendix-a</link>) in "META-INF" directory of your RAR file.
For every configuration property defined inside the <link linkend="managed_connection_factory">ManagedConnectionFactory</link>
@@ -173,10 +173,10 @@
Note that all these are optional properties; however in the absence of this metadata, Teiid tooling may not work as expected.
</para>
- </sect2>
- </sect1>
+ </section>
+ </section>
- <sect1 id="ra_package">
+ <section id="ra_package">
<title>Packaging the Adapter</title>
<para>Once all the required code is developed, it is time to package them into a RAR artifact, that can be deployed
into a Conainer. A RAR artifact is lot more similar to a WAR. To put together a RAR file it really depends upon
@@ -225,9 +225,9 @@
<para>Make sure that the RAR file, under its "META-INF" directory has the "ra.xml" file. If you are using maven
see <ulink url="http://maven.apache.org/plugins/maven-rar-plugin/"></ulink>In the root of the RAR file,
you can embed the JAR file containing your connector code and any dependent library JAR files. </para>
- </sect1>
+ </section>
- <sect1 id="ra_deploy">
+ <section id="ra_deploy">
<title>Deploying the Adapter</title>
<para>Once the RAR file is built, deploy it by copying the RAR file into "deploy" directory of JBoss AS's choosen profile.
Typically the server does not need to be restarted when a new RAR file is being added. Alternatively, you can also use
@@ -267,5 +267,5 @@
</listitem>
</itemizedlist>
- </sect1>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/developer-guide/src/main/docbook/en-US/content/extending-jdbc.xml
===================================================================
--- trunk/documentation/developer-guide/src/main/docbook/en-US/content/extending-jdbc.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/developer-guide/src/main/docbook/en-US/content/extending-jdbc.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -37,7 +37,7 @@
</tgroup>
</table>
- <sect1>
+ <section>
<title>Capabilities Extension</title>
<para>This extension must override the methods that begin with "supports" that describe translator capabilities.
For all the available translator capabilities please see <link linkend="translator_capabilities">this</link>.</para>
@@ -47,9 +47,9 @@
to execute the function and often modifying the SQL Translator to translate the function appropriately for the source.</para>
<para>Another common example is turning off unsupported SQL capabilities (such as outer joins or subqueries)
for less sophisticated JDBC sources. </para>
- </sect1>
+ </section>
- <sect1>
+ <section>
<title>SQL Translation Extension</title>
<para>The JDBCExcecutionFactory provides several methods to modify the command and the string form of the resulting syntax before it is sent to the
JDBC driver, including:</para>
@@ -68,9 +68,9 @@
<para>Change the way SQL strings are formed for a LanguageObject. - - see the translate, translateXXX, and <link linkend="function_modifiers">FunctionModifiers</link>.translate methods. Return a list of parts, which can contain strings and LanguageObjects, that will be appended in order to the SQL string. If the in coming LanguageObject appears in the returned list it will not be translated again.</para>
</listitem>
</itemizedlist>
- </sect1>
+ </section>
- <sect1>
+ <section>
<title>Results Translation Extension</title>
<para>The JDBCExecutionFactory provides several methods to modify the java.sql.Statement and java.sql.ResultSet interactions, including:</para>
<orderedlist>
@@ -82,9 +82,9 @@
</listitem>
</orderedlist>
- </sect1>
+ </section>
- <sect1>
+ <section>
<title>Adding Function Support</title>
<para>See <link linkend="udfs">User Defined Functions</link> for adding new functions to Teiid. This example will show you how to declare support for the function
and modify how the function is passed to the data source.</para>
@@ -118,7 +118,7 @@
support provided by the translator you are extending.</para>
<para>This may be all that is needed to support a Teiid function if the JDBC data source supports the
same syntax as Teiid. The built-in SQL translation will translate most functions as: “function(arg1, arg2, …)”.</para>
- <sect2 id="function_modifiers">
+ <section id="function_modifiers">
<title>Using FunctionModifiers</title>
<para>In some cases you may need to translate the function differently or even insert
additional function calls above or below the function being translated. The JDBC translator provides
@@ -186,10 +186,10 @@
<para>Support for the two functions being registered (“abs” and “concat”) must be declared
in the capabilities as well. Functions that do not have modifiers registered will be translated as usual.
</para>
- </sect2>
- </sect1>
+ </section>
+ </section>
- <sect1>
+ <section>
<title>Installing Extensions</title>
<para>Once you have developed an extension to the JDBC translator, you must install it into the Teiid Server.
The process of <link linkend="translator_package">packaging</link> or <link linkend="translator_deploy">deploying</link> the
@@ -197,5 +197,5 @@
driver, there is no need to develop a resource adapter for this source as JBoss AS provides a wrapper JCA connector (DataSource)
for any JDBC driver.
</para>
- </sect1>
+ </section>
</chapter>
Modified: trunk/documentation/developer-guide/src/main/docbook/en-US/content/introduction.xml
===================================================================
--- trunk/documentation/developer-guide/src/main/docbook/en-US/content/introduction.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/developer-guide/src/main/docbook/en-US/content/introduction.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -5,7 +5,7 @@
<chapter id="introduction">
<title>Developing For Teiid</title>
- <sect1>
+ <section>
<title>Introduction to the Teiid Connector Architecture</title>
<itemizedlist>
@@ -47,9 +47,9 @@
</itemizedlist>
<para>Given a combination of a Translator + Resource Adapter, one can connect any EIS system to Teiid for their data integration needs.</para>
- </sect1>
+ </section>
- <sect1>
+ <section>
<title>Do You Need a New Translator?</title>
<para>Teiid provides several translators for common enterprise information system types. If
you can use one of these enterprise information systems, you do not need to develop a custom one.
@@ -87,7 +87,7 @@
</para>
</listitem>
</itemizedlist>
- <sect2>
+ <section>
<title>Custom Translators</title>
<orderedlist numeration="arabic">
<para>High-level Translator development procedure:</para>
@@ -125,9 +125,9 @@
advanced topics, such as streaming large objects. For sample
Translator code, please check the <ulink url="http://anonsvn.jboss.org/repos/teiid/trunk/connectors/">Teiid source code</ulink>
</para>
- </sect2>
- </sect1>
- <sect1>
+ </section>
+ </section>
+ <section>
<title>Do You Need a New Resource Adapter?</title>
<para>As mentioned above, for every Translator that needs to gather data from external source systems, it requires a resource adapter.
</para>
@@ -155,7 +155,7 @@
</listitem>
</itemizedlist>
- <sect2 id="custom_ra_intro">
+ <section id="custom_ra_intro">
<title>Custom Resource Adapters</title>
<orderedlist numeration="arabic">
<para>High-level Resource Adapter development procedure:</para>
@@ -209,10 +209,10 @@
advanced topics, such as transactions. For a sample
resource adapter code, please check the <ulink url="http://anonsvn.jboss.org/repos/teiid/trunk/connectors/">Teiid Source code</ulink>
</para>
- </sect2>
- </sect1>
+ </section>
+ </section>
- <sect1>
+ <section>
<title>Other Teiid Development</title>
<para>Teiid is highly extensible in other ways:</para>
<itemizedlist>
@@ -226,6 +226,6 @@
<para>You may change the <link linkend="custom_security">security</link> subsystem for custom authentication and authorization.</para>
</listitem>
</itemizedlist>
- </sect1>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/developer-guide/src/main/docbook/en-US/content/logging.xml
===================================================================
--- trunk/documentation/developer-guide/src/main/docbook/en-US/content/logging.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/developer-guide/src/main/docbook/en-US/content/logging.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -5,7 +5,7 @@
]>
<chapter id="logging">
<title>Logging</title>
- <sect1 id="custom_logging">
+ <section id="custom_logging">
<title>Customized Logging</title>
<para>
The Teiid system provides a wealth of information via logging. To
@@ -29,7 +29,7 @@
Teiid is installed in.
</para>
- <sect2>
+ <section>
<title>Command Logging API</title>
<para>
If you want to build a custom appender for command logging that will have access to
@@ -37,15 +37,15 @@
<code>org.teiid.logging.CommandLogMessage</code> defined in the <code>teiid-api-&versionNumber;.jar</code>
use these class in your development. The CommmdLogMessage include information about vdb, session, command-sql etc.
</para>
- </sect2>
+ </section>
- <sect2 id="audit_logging">
+ <section id="audit_logging">
<title>Audit Logging API</title>
<para>If you want to build a custom appender for command logging that will have access to
log4j "LoggingEvents" to the "AUDIT_LOG" context, it will have a message that is an instance of
<code>org.teiid.logging.AuditMessage</code> defined in the <code>teiid-api-&versionNumber;.jar</code>
use this class in your development. AuditMessage include information about user, the action, and the
target(s) of the action.</para>
- </sect2>
- </sect1>
+ </section>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/developer-guide/src/main/docbook/en-US/content/security.xml
===================================================================
--- trunk/documentation/developer-guide/src/main/docbook/en-US/content/security.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/developer-guide/src/main/docbook/en-US/content/security.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -13,7 +13,7 @@
url="http://docs.jboss.org/jbossas/admindevel326/html/ch8.chapter.html">JBossAS Security</ulink>
for general information on configuring security in JBossAS.</para>
- <sect1>
+ <section>
<title>Built-in LoginModules</title>
<para>JBossAS provides several LoginModules for common authentication needs, such as authenticating from text files or LDAP.
The below are are some of the available in JBoss AS </para>
@@ -29,8 +29,8 @@
<para>See <ulink url="http://community.jboss.org/docs/DOC-9160">Cert LoginModule configuration</ulink> for
utilizing X509 certificate based authentication. </para>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>Custom LoginModules</title>
<para>
If your authentication needs go beyond the provided LoginModules, please consult the
@@ -40,5 +40,5 @@
<para>If you are extending one of the built-in LoginModules, please see
<ulink url="http://community.jboss.org/docs/DOC-9466">this</ulink>.</para>
- </sect1>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/developer-guide/src/main/docbook/en-US/content/translator-api.xml
===================================================================
--- trunk/documentation/developer-guide/src/main/docbook/en-US/content/translator-api.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/developer-guide/src/main/docbook/en-US/content/translator-api.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -4,7 +4,7 @@
]>
<chapter id="translator_api">
<title>Translator Development</title>
- <sect1>
+ <section>
<title>Extending the ExecutionFactory Class</title>
<para>A component called the Connector Manager is controlling access to your translator. This chapter reviews
the basics of how the Connector Manager interacts with your translator while leaving reference details and
@@ -15,19 +15,19 @@
that can be constructed using Java reflection libraries. This Execution Factory need define/override following elements.
</para>
- <sect2>
+ <section>
<title>ConnectionFactory</title>
<para>Defines the "ConnectionFactory" interface that is expected from resource adapter. This defined as part of
class definition using generics while extending the "ExecutionFactory" class</para>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>Connection</title>
<para>Defines the "Connection" interface that is expected from resource adapter. This defined as part of
class definition using generics while extending the "ExecutionFactory" class</para>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>Configuration Properties</title>
<para>Every software program requires some external configuration, that defines ways user can alter the behavior of a program.
If this translator needs configurable properties define a variable for every property as an attribute in the extended
@@ -71,23 +71,23 @@
<para>masked: The tools need to mask the property; Do not show in plain text; used for passwords</para>
</listitem>
</itemizedlist>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>Initializing the Translator</title>
<para>Override and implement the <code>start</code> method (be sure to call
"super.start()") if your translator needs to do any initializing before it is used by the Teiid engine. This method
will be called by Teiid, once after all the configuration properties set above are injected into the class. </para>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>TranslatorCapabilities</title>
<para>These are various methods that typically begin with method
signature "supports" on the "ExecutionFactory" class. These methods need to be overridden to describe the execution
capabilities of the Translator. See <link linkend="translator_capabilities">Translator Capabilities</link> for more on these methods.</para>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>Execution (and sub-interfaces)</title>
<para>Based on types of executions you are supporting, the following methods need to be overridden
and need to provide implementations for these methods by extending respective interfaces.</para>
@@ -105,30 +105,30 @@
</listitem>
</itemizedlist>
<para>You can choose to implement all the execution modes or just what you need. See more details on this below.</para>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>Metadata</title>
<para>Override and implement the method <code>getMetadata()</code>, if you want to expose the
metadata about the source for use in Dynamic VDBs. This defines the tables, column names, procedures, parameters, etc. for use in the query engine.
This method is not yet used by Designer tooling. </para>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>Logging</title>
<para>Teiid provides <code>org.teiid.logging.LogManager</code> class for logging purposes.
Create a logging context and use the LogManager to log your messages. These will be automatically
sent to the main Teiid logs. You can edit the "jboss-log4j.xml" inside "conf" directory of the JBoss AS's profile
to add the custom context. Teiid uses Log4J as its underlying logging system.</para>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>Exceptions</title>
<para>If you need to bubble up any exception use <code>org.teiid.translator.TranslatorException</code>
class.</para>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>Default Name</title>
<para>Finally, you can define a default instance of your Translator by defining the
annotation <code>@Translator</code> on the "ExecutionFactory". When you define this, and after deployment
@@ -136,19 +136,19 @@
Translator is available any VDB that would like to use by just mentioning its name in its "vdb.xml" configuration file.
VDB can also override the default properties and define another instance of this Translator too. The name you give here is the short
name used every where else in the Teiid configuration to refer to this translator.</para>
- </sect2>
+ </section>
- </sect1>
+ </section>
- <sect1>
+ <section>
<title>Connections to Source</title>
- <sect2>
+ <section>
<title>Obtaining connections</title>
<para>The extended "ExecutionFactory" must implement the <code>getConnection()</code> method to
allow the Connector Manager to obtain a connection. </para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Releasing Connections</title>
<para>Once the Connector Manager has obtained a connection, it will use that connection only for the
lifetime of the request. When the request has completed, the closeConnection() method called on the "ExecutionFactory".
@@ -159,11 +159,11 @@
provided by the JBoss AS container. If your resource adapter does not implement the JEE JCA, then connection pooling
semantics are left to the user to define on their own.
</para>
- </sect2>
- </sect1>
- <sect1>
+ </section>
+ </section>
+ <section>
<title>Executing Commands</title>
- <sect2>
+ <section>
<title>Execution Modes</title>
<para>
The Teiid query engine uses the "ExecutionFactory" class to obtain the "Execution" interface for the command it is
@@ -219,8 +219,8 @@
<para>All of the execution interfaces extend the base <code>Execution</code>
interface that defines how executions are
cancelled and closed. ProcedureExecution also extends ResultSetExecution, since procedures may also return resultsets.</para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>ResultSetExecution</title>
<para>
Typically most commands executed against translators are QueryExpression.
@@ -229,14 +229,14 @@
of results. Note: the expected batch size can be obtained from the
ExecutionContext and used as a hint in fetching results from the EIS.
</para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Update Execution</title>
<para>Each execution returns the update count(s) expected by the update command.
If possible BatchedUpdates should be executed atomically.
The ExecutionContext can be used to determine if the execution is already under a transaction.</para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Procedure Execution</title>
<para>Procedure commands correspond to the execution of a stored procedure or some other functional
construct. A procedure takes zero or more input values and can return a result
@@ -246,9 +246,9 @@
ResultSetExecution interface first. Then, if any output values are expected, they will
be retrieved via the getOutputParameterValues() method.
</para>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>Asynchronous Executions</title>
<para>In some scenarios, a translator needs to execute
asynchronously and allow the executing thread to perform other work. To allow this, you should Throw a DataNotAvailableExecption during a retrival method, rather than explicitly waiting or sleeping for the results. The
@@ -257,9 +257,9 @@
for results. Any non-negative value is allowed.
</para>
<para>Since the exection and the associated connection are not closed until the work has completed, care should be taken if using asynchronous executions that hold a lot of state.</para>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>Bulk Execution</title>
<para> Non batched <code>Insert, Update, Delete</code>
commands may have <code>Literal</code> values marked as multiValued if the
@@ -267,13 +267,13 @@
multiValued <code>Literal</code>s represent multiple executions of the same
command with different values. As with BatchedUpdates, bulk operations should be executed atomically if possible.
</para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Command Completion</title>
<para>All normal command executions end with the calling of <code>close()</code> on the Execution object. Your
implementation of this method should do the appropriate clean-up work for all state created in the Execution object.</para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Command Cancellation</title>
<para>Commands submitted to Teiid may be aborted in several scenarios:</para>
<itemizedlist>
@@ -298,13 +298,13 @@
current processing has completed. Implementing the cancel() method allows for faster
termination of queries being processed and may allow the underlying data source to terminate its operations
faster as well.</para>
- </sect2>
- </sect1>
+ </section>
+ </section>
- <sect1 id="command_language">
+ <section id="command_language">
<title>Command Language</title>
- <sect2>
+ <section>
<title>Language </title>
<para>
Teiid sends commands to your Translator in object form. These classes are all defined in the "org.teiid.language"
@@ -336,7 +336,7 @@
in closer detail below. Also see the <ulink url="&javaDocUrl;">Teiid JavaDocs</ulink>
for more on the classes and interfaces described here.
</para>
- <sect3>
+ <section>
<title>Expressions</title>
<para>An expression represents a single value in context, although in
some cases that value may change as the query is evaluated. For
@@ -391,8 +391,8 @@
</para>
</listitem>
</itemizedlist>
- </sect3>
- <sect3>
+ </section>
+ <section>
<title>Condition</title>
<para>A criteria is a combination of expressions and operators that
evaluates to true, false, or unknown. Criteria are most commonly used in the
@@ -411,9 +411,9 @@
<listitem><para><code>Exists</code> – represents an EXISTS criteria that determines whether a subquery will return any values</para></listitem>
<listitem><para><code>Like</code> – represents a LIKE criteria that compares string values</para></listitem>
</itemizedlist>
- </sect3>
+ </section>
- <sect3>
+ <section>
<title>The FROM Clause</title>
<para>The FROM clause contains a list of <code>TableReference</code>'s. </para>
@@ -434,14 +434,14 @@
<link linkend="command_form_capabilities">Command Form Capabilities</link>
for more information.
</para>
- </sect3>
- <sect3>
+ </section>
+ <section>
<title>QueryExpression Structure</title>
<para><code>QueryExpression</code> is the base for both SELECT queries and set queries. It may optionally take an
<code>OrderBy</code> (representing a SQL ORDER BY clause) and a <code>Limit</code> (represent a SQL LIMIT clause)</para>
- </sect3>
+ </section>
- <sect3>
+ <section>
<title>Select Structure</title>
<para>Each <code>QueryExpression</code> can be a <code>Select</code> describing the expressions
@@ -450,17 +450,17 @@
<code>Select</code> may optionally also supply an <code>Condition</code> (representing a SQL
WHERE clause), a <code>GroupBy</code> (representing a SQL GROUP BY clause), an
an <code>Condition</code> (representing a SQL HAVING clause).</para>
- </sect3>
+ </section>
- <sect3>
+ <section>
<title>SetQuery Structure</title>
<para>A <code>QueryExpression</code> can also be a <code>SetQuery</code> that represents on of the SQL set operations (UNION,
INTERSECT, EXCEPT) on two <code>QueryExpression</code>. The all flag may be set to
indicate UNION ALL (currently INTERSECT and EXCEPT ALL are not allowed in Teiid)</para>
- </sect3>
+ </section>
- <sect3>
+ <section>
<title>Insert Structure</title>
<para>Each <code>Insert</code> will have a single <code>NamedTable</code> specifying the table being
@@ -468,44 +468,44 @@
of the <code>NamedTable</code> that are being inserted into. It also has
<code>InsertValueSource</code>, which will be a list of
Expressions (<code>ExpressionValueSource</code>), or a <code>QueryExpression</code>, or an Iterator (<code>IteratorValueSource</code>)</para>
- </sect3>
+ </section>
- <sect3>
+ <section>
<title>Update Structure</title>
<para>Each <code>Update</code> will have a single <code>NamedTable</code> specifying the table being
updated and list of <code>SetClause</code> entries that specify <code>ColumnReference</code>
and <code>Expression</code> pairs for the update. The Update may optionally provide a criteria
<code>Condition</code> specifying which rows should be updated.</para>
- </sect3>
+ </section>
- <sect3>
+ <section>
<title>Delete Structure</title>
<para>Each <code>Delete</code> will have a single <code>NamedTable</code> specifying the table being
deleted from. It may also optionally have a criteria specifying which rows should be deleted. </para>
- </sect3>
+ </section>
- <sect3>
+ <section>
<title>Call Structure</title>
<para>Each <code>Call</code> has zero or more <code>Argument</code> objects. The
<code>Argument</code> objects describe the input parameters, the output result
set, and the output parameters. </para>
- </sect3>
+ </section>
- <sect3>
+ <section>
<title>BatchedUpdates Structure </title>
<para>Each <code>BatchedUpdates</code> has a list of <code>Command</code> objects (which must be either
<code>Insert</code>, <code>Update</code> or <code>Delete</code>) that compose the batch. </para>
- </sect3>
- </sect2>
+ </section>
+ </section>
- <sect2>
+ <section>
<title>Language Utilities</title>
<para>This section covers utilities available when using, creating, and manipulating the language interfaces.</para>
- <sect3>
+ <section>
<title>Data Types</title>
<para>The Translator API contains an interface <code>TypeFacility</code> that defines
data types and provides value translation facilities. This interface can be obtained from calling "getTypeFacility()"
@@ -518,9 +518,9 @@
interfaces defines constants for all Teiid runtime data types. All
<code>Expression</code> instances define a data type based on this set of types.
These constants are often needed in understanding or creating language interfaces.</para>
- </sect3>
+ </section>
- <sect3>
+ <section>
<title>Language Manipulation</title>
<para>In Translators that support a fuller set of capabilities (those
that generally are translating to a language of comparable to SQL),
@@ -537,10 +537,10 @@
<code>Condition</code> with AND or to break an <code>Condition</code> apart based on AND
operators. These utilities are helpful for breaking apart a criteria
into individual filters that your translator can implement.</para>
- </sect3>
- </sect2>
+ </section>
+ </section>
- <sect2>
+ <section>
<title>Runtime Metadata</title>
<para>Teiid uses a library of metadata, known as "runtime metadata” for
each virtual database that is deployed in Teiid. The runtime metadata
@@ -555,7 +555,7 @@
defined in <code>org.teiid.metadata</code> package. This package defines
API representing a Schema, Table, Columns and Procedures, and ways to navigate these objects.</para>
- <sect3>
+ <section>
<title>Metadata Objects</title>
<para>All the language objects extend <code>AbstractMetadataRecord</code> class</para>
<itemizedlist>
@@ -566,8 +566,8 @@
</itemizedlist>
<para>Once a metadata record has been obtained, it is possible to use its metadata about that object or to find other related metadata.</para>
- </sect3>
- <sect3>
+ </section>
+ <section>
<title>Access to Runtime Metadata</title>
<para>The RuntimeMetadata interface is passed in for the creation of an "Execution". See "createExecution"
@@ -588,13 +588,13 @@
]]></programlisting>
</example>
- </sect3>
- </sect2>
+ </section>
+ </section>
- <sect2>
+ <section>
<title>Language Visitors</title>
- <sect3>
+ <section>
<title>Framework</title>
<para>The API provides a language visitor framework in the
<code>org.teiid.language.visitor</code> package. The framework
@@ -632,8 +632,8 @@
the HierarchyVisitor. Two helper methods are provided on
<code>DelegatingHierarchyVisitor</code> to aid in executing pre- and post-order
visitors. </para>
- </sect3>
- <sect3>
+ </section>
+ <section>
<title>Provided Visitors</title>
<para>The <code>SQLStringVisitor</code> is a special visitor that can traverse a
tree of language interfaces and output the equivalent Teiid SQL. This
@@ -645,8 +645,8 @@
objects of a certain type in a tree. Some additional helper methods
exist to do common tasks such as retrieving all elements in a tree,
retrieving all groups in a tree, and so on. </para>
- </sect3>
- <sect3>
+ </section>
+ <section>
<title>Writing a Visitor</title>
<para>Writing your own visitor can be quite easy if you use the
provided facilities. If the normal method of iterating the language
@@ -674,9 +674,9 @@
// Retrieve state collected while visiting
int count = visitor.getCount();
]]></programlisting>
- </sect3>
- </sect2>
- <sect2 id="translator_capabilities">
+ </section>
+ </section>
+ <section id="translator_capabilities">
<title>Translator Capabilities</title>
<para>The <code>ExecutionFactory</code> class defines all the methods that describe the capabilities of a Translator.
These are used by the Connector Manager to determine what kinds of commands the translator is
@@ -684,15 +684,15 @@
your translator does not support any cpabilities. Your extended
<code>ExecutionFactory</code> class must override the the necessary methods to specify which
capabilities your translator supports. </para>
- <sect3>
+ <section>
<title>Capability Scope</title>
<para>
Note that if your capabilities will remain unchanged for the lifetime
of the translator, since the engine will cache them for reuse by all instances of that
translator. Capabilities based on connection/user are not supported.
</para>
- </sect3>
- <sect3>
+ </section>
+ <section>
<title>Capabilities</title>
<para>The following table lists the capabilities that can be specified in the <code>ExecutionFactory</code> class.</para>
<table frame='all'>
@@ -1269,9 +1269,9 @@
</tgroup>
</table>
<para>Note that any pushdown subquery must itself be compliant with the Translator capabilities.</para>
- </sect3>
+ </section>
- <sect3 id="command_form_capabilities">
+ <section id="command_form_capabilities">
<title>Command Form</title>
<para>The method <code>ExecutionFactory.useAnsiJoin()</code> should return true
if the Translator prefers the use of ANSI style join structure for
@@ -1280,9 +1280,9 @@
true if the Translator requires criteria for any Query, Update, or
Delete. This is a replacement for the model support property "Where
All".</para>
- </sect3>
+ </section>
- <sect3>
+ <section>
<title>Scalar Functions</title>
<para>The method <code>ExecutionFactory.getSupportedFunctions()</code> can be
used to specify which scalar functions the Translator supports. The
@@ -1298,9 +1298,9 @@
system functions appear in this list. This is because some system
functions will always be evaluted in Teiid, are simple aliases to
other functions, or are rewriten to a more standard expression.</para>
- </sect3>
+ </section>
- <sect3>
+ <section>
<title>Physical Limits</title>
<para>The method <code>ExecutionFactory.getMaxInCriteriaSize()</code> can be
used to specify the maximum number of values that can be passed in an
@@ -1310,9 +1310,9 @@
<para>The method <code>ExecutionFactory.getMaxFromGroups()</code> can be used
to specify the maximum number of FROM Clause groups that can used in a
join. -1 indicates there is no limit.</para>
- </sect3>
+ </section>
- <sect3>
+ <section>
<title>Update Execution Modes</title>
<para>The method <code>ExecutionFactory.supportsBatchedUpdates()</code> can be
used to indicate that the Translator supports executing the <code>BatchedUpdates</code> command.
@@ -1321,30 +1321,30 @@
to indicate that the Translator accepts update commands containg multi valued Literals.</para>
<para>Note that if the translator does not support either of these
update modes, the query engine will compensate by issuing the updates individually.</para>
- </sect3>
+ </section>
- <sect3>
+ <section>
<title>Default Behavior</title>
<para>The method <code>ExecutionFactory.getDefaultNullOrder()</code> specifies the default null order. Can be one of UNKNOWN, LOW, HIGH, FIRST, LAST. This is only used if ORDER BY is supported, but null ordering is not.</para>
- </sect3>
+ </section>
- </sect2>
+ </section>
-</sect1>
- <sect1>
+</section>
+ <section>
<title>Large Objects</title>
<para>This section examines how to use facilities provided by the Teiid
API to use large objects such as blobs, clobs, and xml in
your Translator.</para>
- <sect2>
+ <section>
<title>Data Types</title>
<para>Teiid supports three large object runtime data types: blob,
clob, and xml. A blob is a “binary large object”, a clob is a
“character large object”, and “xml” is a “xml
document”. Columns modeled as a blob, clob, or xml are treated similarly by
the translator framework to support memory-safe streaming. </para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Why Use Large Object Support?</title>
<para>Teiid allows a Translator to return a large object through the
Teiid translator API by just returning a reference to the actual
@@ -1368,9 +1368,9 @@
<para>However, these benefits can only truly be gained if the Translator itself does not
materialize an entire large object all at once. For example, the Java JDBC API
supports a streaming interface for blob and clob data.</para>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>Handling Large Objects</title>
<para>The Translator API automatically handles large objects (Blob/Clob/SQLXML) through
the creation of special purpose wrapper objects when it retrieves results.
@@ -1391,19 +1391,19 @@
<programlisting><![CDATA[executionContext.keepExecutionAlive(true);]]></programlisting>
- </sect2>
+ </section>
- <sect2>
+ <section>
<title>Inserting or Updating Large Objects</title>
<para>LOBs will be passed to the Translator in the
language objects as Literal containing a java.sql.Blob, java.sql.Clob, or
java.sql.SQLXML. You can use these interfaces to retrieve the data in
the large object and use it for insert or update.</para>
- </sect2>
+ </section>
- </sect1>
+ </section>
- <sect1 id="translator_package">
+ <section id="translator_package">
<title>Packaging</title>
<para>Once the "ExecutionFactory" class is implemented, package it in a JAR file. The only
additional requirement is provide a file called "jboss-beans.xml" in the "META-INF" directory of the JAR file, with
@@ -1430,9 +1430,9 @@
replace ${name} with name of your translator, and replace ${execution-factory-class} with your
overridden ExecutionFactory class name. This will register the Translator for use with tooling and Admin API.</para>
- </sect1>
+ </section>
- <sect1 id="translator_deploy">
+ <section id="translator_deploy">
<title>Deployment</title>
<para>Copy the JAR file that defines the Translator into "deploy" directory of the JBoss AS's chosen profile, and
the Translator will be deployed automatically. There is no restriction that, JBoss AS need to be restarted. However, if your Translator
@@ -1440,5 +1440,5 @@
This will require a restart of the JBoss Server. Another option to avoid the restart is to bundle all the required JAR files into
the same JAR file as the Translator. It is user's responsibility to make sure they are not running into any conflicts with their
dependent libraries with those already exist in the JBoss environment.</para>
- </sect1>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/developer-guide/src/main/docbook/en-US/content/udf.xml
===================================================================
--- trunk/documentation/developer-guide/src/main/docbook/en-US/content/udf.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/developer-guide/src/main/docbook/en-US/content/udf.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -6,7 +6,7 @@
then Teiid provides a means to define custom scalar functions or
User Defined Functions(UDF). The following steps need to be taken in
creating a UDF.</para>
- <sect1 id="define_udf">
+ <section id="define_udf">
<title>UDF Definition</title>
<para>The FunctionDefinition.xmi file provides metadata to the
query engine on User Defined Functions. See the Designer Documentation for more on creating a Function Definition Model.</para>
@@ -82,8 +82,8 @@
<para>Even pushdown required functions need to be added as a UDF to allow
Teiid to properly parse and resolve the function. Pushdown scalar functions differ from normal user-defined functions in that no code is provided for evaluation in the engine.
An exception will be raised if a pushdown required function cannot be evaluated by the appropriate source.</para>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>Source Supported UDF</title>
<para>While Teiid provides an extensive scalar function
library, it contains only those functions that can be evaluated
@@ -139,8 +139,8 @@
ExecutionFactory. See <link linkend="translator_package">packaging</link> and <link linkend="translator_deploy">deployment</link> instructions for using the jar.</para>
</listitem>
</itemizedlist>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>Non-pushdown Support for User-Defined Functions</title>
<para>Non-pushdown support requires a Java function
that matches the metadata supplied in the FunctionDefinitions.xmi
@@ -148,7 +148,7 @@
logic. This Java method should accept the necessary arguments, which
the Teiid System will pass to it at runtime, and function should
return the calculated or altered value.</para>
- <sect2>
+ <section>
<title>Java Code</title>
<itemizedlist>
<para>Code Requirements</para>
@@ -199,8 +199,8 @@
}
}]]></programlisting>
</example>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Post Code Activities</title>
<orderedlist>
<listitem>
@@ -213,13 +213,13 @@
directory depending upon your preference.</para>
</listitem>
</orderedlist>
- </sect2>
- </sect1>
- <sect1>
+ </section>
+ </section>
+ <section>
<title>Installing user-defined functions</title>
<para>
Once a user-defined function model (FunctionDefinitions.xmi) has been
created in in the Designer Tool, it can be added to the VDB for use
by Teiid.</para>
- </sect1>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/quick-start-example/src/main/docbook/en-US/content/buildvdb.xml
===================================================================
--- trunk/documentation/quick-start-example/src/main/docbook/en-US/content/buildvdb.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/quick-start-example/src/main/docbook/en-US/content/buildvdb.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -9,7 +9,7 @@
you must use Designer based approach to building the VDB. A sample Designer based VDB is
available in the "teiid-examples/portfolio/PortfolioModel" directory.</para>
- <sect1 id="dynamic_vdb">
+ <section id="dynamic_vdb">
<title>Building Dynamic VDB</title>
<para>This XML file is defines a set of sources that need to treated as single source by the client application.
Dynamic VDB does not yet allow for the creation of view layers. Below XML file defines "dynamicvdb-portfolio" example
@@ -83,5 +83,5 @@
files for the data sources (Connection Factories) too.</para></listitem>
</orderedlist>
- </sect1>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/quick-start-example/src/main/docbook/en-US/content/connect-vdb.xml
===================================================================
--- trunk/documentation/quick-start-example/src/main/docbook/en-US/content/connect-vdb.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/quick-start-example/src/main/docbook/en-US/content/connect-vdb.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -8,7 +8,7 @@
<para>At this point you have deployed Teiid and your VDB. Now it's time to connect the sample application
to this VDB, issue SQL queries, and view the returned, integrated data. Note that
this process is no different than connecting to any other JDBC source like Oracle.</para>
- <sect1>
+ <section>
<title>Stand-alone Java Application Deployment</title>
<para>Before you can make a JDBC connection to the Teiid VDB, add the Teiid's driver jar file to your application's classpath</para>
@@ -77,8 +77,8 @@
...]]></programlisting>
<para>TeiidDataSource source also provides an option to set optional parameters using the "set" methods on the
data source look. For all the allowable data source properties check out Client Developer's Guide.</para>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>Testing Your Teiid Deployment</title>
<para>The Teiid installation includes a simple Java class which demonstrates JDBC access of the deployed VDB.
To execute this demonstration, follow these steps:</para>
@@ -97,5 +97,5 @@
Refer to Client Developer's Guide deployment for more information on creating a DataSource.
</para>
<note><para>"embedded" mode is only available in versions of Teiid up to 6.2</para></note>
- </sect1>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/quick-start-example/src/main/docbook/en-US/content/deployment.xml
===================================================================
--- trunk/documentation/quick-start-example/src/main/docbook/en-US/content/deployment.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/quick-start-example/src/main/docbook/en-US/content/deployment.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -8,7 +8,7 @@
<para>This example deploys Teiid within a JBoss AS. The sample deployment is shown below.
You can find more details about deploying to application servers on the Teiid web-site</para>
<para />
- <sect1 id="teiid-runtime">
+ <section id="teiid-runtime">
<title>JBoss AS Application Deployment</title>
<orderedlist>
@@ -38,5 +38,5 @@
</para>
</listitem>
</orderedlist>
- </sect1>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/quick-start-example/src/main/docbook/en-US/content/example-explained.xml
===================================================================
--- trunk/documentation/quick-start-example/src/main/docbook/en-US/content/example-explained.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/quick-start-example/src/main/docbook/en-US/content/example-explained.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -2,7 +2,7 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="example-explained">
<title>Example Explained</title>
- <sect1>
+ <section>
<title>Portfolio Application Explained</title>
<para>
The investor's portfolio information is stored in a Derby database and
@@ -41,7 +41,7 @@
</para>
</listitem>
</itemizedlist>
- </sect1>
+ </section>
<note>
<para>
<ulink url="http://db.apache.org/derby/">Derby</ulink>
@@ -50,7 +50,7 @@
specific to Derby, but can be easily converted for use with other databases.
</para>
</note>
- <sect1 id="step-1">
+ <section id="step-1">
<title>Create the Relational Database's schema and load the sample data</title>
<para>
This example is written using
@@ -98,8 +98,8 @@
<ulink url="http://www.eclipse.org/datatools/">Eclipse's Data Tools</ulink>
plugin to connect to the Derby instance to check the schema and sample data.
</para>
- </sect1>
- <sect1 id="step-2">
+ </section>
+ <section id="step-2">
<title>Describe the CSV file and its contents</title>
<para>In order to use a Text file as the source, we need a data file defines data inside a table</para>
<orderedlist>
@@ -119,5 +119,5 @@
</listitem>
</orderedlist>
<para>Just locate the sample data files provided or create your own data files. Now, both our sources are ready.</para>
- </sect1>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/quick-start-example/src/main/docbook/en-US/content/preface.xml
===================================================================
--- trunk/documentation/quick-start-example/src/main/docbook/en-US/content/preface.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/quick-start-example/src/main/docbook/en-US/content/preface.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -2,7 +2,7 @@
<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<preface>
<title>Preface</title>
- <sect1>
+ <section>
<title>What is Teiid?</title>
<para>Teiid is runtime for executing queries against a Virtual Database or VDB. Before you can access your data in a federated
manner, use can use Teiid Designer or the Dynamic VDB feature to build a VDB. This picture shows the relationship between the tools
@@ -11,24 +11,24 @@
<title>Lifecycle of Events</title>
<graphic align="center" scale="100" fileref="../images/steps.png" />
</figure>
- <sect2>
+ <section>
<title>What is a Virtual Database?</title>
<para> A Virtual Database (VDB) is an artifact that combines one or more
physical data sources to provide for easy data integration. Integration is encapsulated through view and procedures that Teiid will process in an optimized way against their respective sources.
The physical sources can be JDBC sources, delimited text files, spreadsheets, or even Web services.</para>
- </sect2>
+ </section>
<para>The Teiid Designer tool lets you define physical data sources by importing the required metadata
(schema) from these sources. Once the metadata is imported, Designer can assist in building additional view layers.
The collection of physical and view models will form a VDB.</para>
- </sect1>
+ </section>
- <sect1>
+ <section>
<title>What is This Guide About?</title>
<para>This guide takes you through an introduction to the concepts important to Teiid,
downloading the software, and building and deploying a virtual database in 60 minutes.
There is a lot to cover, so let's begin!</para>
- </sect1>
+ </section>
<note>
<para>
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/architecture.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/architecture.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/architecture.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -2,7 +2,7 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="architecture">
<title>Architecture</title>
- <sect1>
+ <section>
<title>Terminology</title>
<itemizedlist>
<listitem>
@@ -43,10 +43,10 @@
manages global, local, and request scoped transactions. See also the documentation on <link linkend="transaction_support">transaction support</link>.</para>
</listitem>
</itemizedlist>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>Data Management</title>
- <sect2>
+ <section>
<title>Cursoring and Batching</title>
<para> Teiid cursors all results, regardless of whether they
are from one source or many sources, and regardless of what type
@@ -63,8 +63,8 @@
returned to synchronous clients. Subsequent batches are returned
based on client demand for the data. Pre-fetching is utilized at
both the client and connector levels.</para>
- </sect2>
- <sect2 id="buffer_management">
+ </section>
+ <section id="buffer_management">
<title>Buffer Management</title>
<para> The buffer manager manages memory for all result sets used
in the query engine. That includes result sets read from a
@@ -74,14 +74,14 @@
<para>When retrieving batches from the buffer manager, the
size of a batch in bytes is estimated and then allocated against
the max limit.</para>
- <sect3>
+ <section>
<title>Memory Management</title>
<para>The buffer manager has two storage managers - a memory
manager and a disk manager. The buffer manager maintains the
state of all the batches, and determines when batches must be
moved from memory to disk.</para>
- </sect3>
- <sect3>
+ </section>
+ <section>
<title>Disk Management</title>
<para>Each tuple source has a dedicated file (named by the
ID) on disk. This file will be created only if at least one
@@ -96,9 +96,9 @@
In cases with heavy buffering, this can cause wait times while
waiting for a file handle to become available (the default max
open files is 64).</para>
- </sect3>
- </sect2>
- <sect2>
+ </section>
+ </section>
+ <section>
<title>Cleanup</title>
<para>When a tuple source is no longer needed, it is removed
from the buffer manager. The buffer manager will remove it from
@@ -116,11 +116,11 @@
to delete any files in the buffer directory as they are not used
across query engine restarts and must be due to a system crash
where buffer files were not cleaned up.</para>
- </sect2>
- </sect1>
- <sect1>
+ </section>
+ </section>
+ <section>
<title>Query Termination</title>
- <sect2>
+ <section>
<title>Canceling Queries</title>
<para>When a query is canceled, processing will be stopped in
the query engine and in all connectors involved in the query.
@@ -129,8 +129,8 @@
implementation. For example, JDBC connectors will asynchronously
call cancel on the underlying JDBC driver, which may or may not
actually support this method.</para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Timeouts</title>
<para>Timeouts in Teiid are managed on the client-side,
in the JDBC API (which underlies both SOAP and ODBC access).
@@ -140,11 +140,11 @@
server for the request and no results are returned to the
client. The cancel command is issued by the JDBC API without the
client’s intervention.</para>
- </sect2>
- </sect1>
- <sect1>
+ </section>
+ </section>
+ <section>
<title>Processing</title>
- <sect2>
+ <section>
<title>Join Algorithms</title>
<para>Nested loop does the most obvious processing – for
every row in the outer source, it compares with every row in the
@@ -161,8 +161,8 @@
decision to implement a dependent join is considered after the
join algorithm is chosen, and does not currently influence the
algorithm selection.</para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Sort Based Algorithms</title>
<para>Sorting is used as the basis of the Sort (ORDER BY),
Grouping (GROUP BY), and DupRemoval (SELECT DISTINCT)
@@ -184,6 +184,6 @@
streams are dropped. In this way, each pass reduces the number
of sorted streams. When only one stream remains, it is the
final output.</para>
- </sect2>
- </sect1>
+ </section>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/datatypes.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/datatypes.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/datatypes.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -2,7 +2,7 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="datatypes">
<title>Datatypes</title>
- <sect1>
+ <section>
<title>Supported Types</title>
<para>Teiid supports a core set of runtime types. Runtime
types can be different than semantic types defined in type fields
@@ -187,8 +187,8 @@
</tbody>
</tgroup>
</table>
- </sect1>
- <sect1 id="type_conversions">
+ </section>
+ <section id="type_conversions">
<title>Type Conversions</title>
<para>
Data types may be converted from one form to another either
@@ -356,10 +356,10 @@
</tbody>
</tgroup>
</table>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>Special Conversion Cases</title>
- <sect2>
+ <section>
<title>Conversion of String Literals</title>
<para> Teiid automatically converts string literals within a
SQL statement to their implied types. This typically occurs in a
@@ -369,8 +369,8 @@
<para> Here if the created_by column has the datatype of date,
Teiid automatically converts the string literal to a date
datatype as well.</para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Converting to Boolean</title>
<para> Teiid can automatically convert literal strings and
numeric type values to Boolean values as follows:</para>
@@ -409,8 +409,8 @@
</tbody>
</tgroup>
</informaltable>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Date/Time/Timestamp Type Conversions
</title>
<para>Teiid can implicitly convert properly formatted
@@ -452,9 +452,9 @@
<code>PARSETIMESTAMP</code>
.
</para>
- </sect2>
- </sect1>
- <sect1>
+ </section>
+ </section>
+ <section>
<title>Escaped Literal Syntax</title>
<para>Rather than relying on implicit conversion, datatype
values may be expressed directly in SQL using escape syntax to
@@ -487,5 +487,5 @@
</tbody>
</tgroup>
</table>
- </sect1>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/entitlements.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/entitlements.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/entitlements.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -12,7 +12,7 @@
<para>Once data roles are enabled, the access permissions defined in a VDB will be enforced by the Teiid Server.</para>
- <sect1>
+ <section>
<title>Permissions</title>
<orderedlist>
<para>To process a <code>SELECT</code> statement or a stored procedure execution, the user account requires the following access rights:</para>
@@ -38,9 +38,9 @@
<listitem> <para><code>DELETE</code> - on the Table being deleted.</para></listitem>
<listitem> <para><code>READ</code> - on every column referenced in the criteria.</para></listitem>
</orderedlist>
- </sect1>
+ </section>
- <sect1>
+ <section>
<title>XML Definition</title>
<para>Data roles are defined inside the <code>vdb.xml</code> file (inside the .vdb Zip archive under META-INF/vdb.xml) if you used Designer.
This example will show a sample "vdb.xml" file with few simple data rules.</para>
@@ -117,6 +117,6 @@
<note><para>Currently there is no GUI tooling support in the Designer or any other management tool to create this data roles
permissions xml, however this is in our roadmap for future releases to provide.</para></note>
- </sect1>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/federated_planning.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/federated_planning.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/federated_planning.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -11,7 +11,7 @@
query. This allows you to focus on building your application, not on
hand-coding joins, and other relational operations, between data
sources.</para>
- <sect1>
+ <section>
<title>Overview</title>
<para>When the query engine receives an incoming SQL query it
performs the following operations:</para>
@@ -121,10 +121,10 @@
storage access because it is typically pushing that burden to the
data source. The most important consideration for a federated query
planner is minimizing data transfer.</para>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>Federated Optimizations</title>
- <sect2 id="access_patterns">
+ <section id="access_patterns">
<title>Access Patterns</title>
<para>
Access patterns are used on both physical tables and views to
@@ -134,8 +134,8 @@
patterns is required to be satisfied.</para>
<para>Currently any form of criteria referencing an affected column may satisfy an access
pattern.</para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Pushdown</title>
<para>In federated database systems pushdown refers to
decomposing the user level query into source queries that
@@ -160,8 +160,8 @@
on how to read a plan to ensure that source queries are as
efficient as possible.
</para>
- </sect2>
- <sect2 id="dependent_joins">
+ </section>
+ <section id="dependent_joins">
<title>Dependent Joins</title>
<para>A special optimization called a dependent join is used to
reduce the rows returned from one of the two relations involved
@@ -192,8 +192,8 @@
inefficient join structure and may result in many source
queries.</para>
</tip>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Copy Criteria</title>
<para> Copy criteria is an optimization that creates additional
predicates based upon combining join and where clause criteria.
@@ -203,22 +203,22 @@
vice versa. In a cross source scenario, this allows for where
criteria applied to a single side of the join to be applied to
both source queries</para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Projection Minimization</title>
<para> Teiid ensures that each pushdown query only projects the
symbols required for processing the user query. This is
especially helpful when querying through large intermediate view
layers.</para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Partial Aggregate Pushdown</title>
<para> Partial aggregate pushdown allows for grouping operations
above multi-source joins and unions to be decomposed so that some of the
grouping and aggregate functions may be pushed down to the
sources.</para>
- </sect2>
- <sect2 id="optional_join">
+ </section>
+ <section id="optional_join">
<title>Optional Join</title>
<para>The optional join hint indicates to the
optimizer that a join clause should be omitted if none of its
@@ -247,8 +247,8 @@
and whose rows under go a distinct operation will automatically be
treated as an optional join and does not require a hint.</para>
</tip>
- </sect2>
- <sect2 id="standard_relational_techniques">
+ </section>
+ <section id="standard_relational_techniques">
<title>Standard Relational Techniques</title>
<para>
Teiid also incorporates many standard relational techniques
@@ -277,11 +277,11 @@
</listitem>
</itemizedlist>
</para>
- </sect2>
- </sect1>
- <sect1>
+ </section>
+ </section>
+ <section>
<title>Federated Failure Modes</title>
- <sect2>
+ <section>
<title>Partial Results</title>
<para>Teiid provides the capability to obtain "partial
results" in the event of data source unavailability. This is
@@ -294,7 +294,7 @@
available sources will be returned. In the case of joins, an
unavailable data source essentially contributes zero tuples to
the result set.</para>
- <sect3>
+ <section>
<title>Setting Partial Results Mode</title>
<para>
Partial results mode is off by default but can be turned on by
@@ -308,8 +308,8 @@
<programlisting>Statement statement = ...obtain statement from Connection...
statement.execute("set partialResultsMode true");</programlisting>
</example>
- </sect3>
- <sect3>
+ </section>
+ <section>
<title>Source Unavailability</title>
<para>A source is considered to be 'unavailable' if the
connection factory associated with the source issues an
@@ -357,10 +357,10 @@
}
}</programlisting>
</example>
- </sect3>
- </sect2>
- </sect1>
- <sect1 id="query_plan">
+ </section>
+ </section>
+ </section>
+ <section id="query_plan">
<title>Query Plans</title>
<para>When integrating information using a federated query
planner, it is useful to be able to view the query plans that are
@@ -370,7 +370,7 @@
engine for executing a command submitted by a user or application.
The purpose of the query plan is to execute the user's query in as
efficient a way as possible.</para>
- <sect2>
+ <section>
<title>Getting a Query Plan</title>
<para> You can get a query plan any time you execute a command.
The SQL options available are as follows:</para>
@@ -397,8 +397,8 @@
</example>
<para>The query plan is made available automatically in several
of Teiid's tools.</para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Analyzing a Query Plan</title>
<para>
Once a query plan has been obtained you will most commonly be
@@ -436,8 +436,8 @@
be executed in any order even in parallel. Only in specific
optimizations, such as dependent join, will the children of a
join execute serially.</para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Relational Plans</title>
<para>Relational plans represent the actually processing
plan that is composed of nodes that are the basic building
@@ -513,7 +513,7 @@
<para />
</listitem>
</itemizedlist>
- <sect3>
+ <section>
<title>Node Statistics</title>
<para>Every node has a set of statistics that are output.
These can be used to determine the amount of data flowing
@@ -643,10 +643,10 @@
</tgroup>
</informaltable>
<para />
- </sect3>
- </sect2>
- </sect1>
- <sect1 id="query_planner">
+ </section>
+ </section>
+ </section>
+ <section id="query_planner">
<title>Query Planner</title>
<para>For each sub-command in the user command an appropriate kind
of sub-planner is used (relational, XML, procedure,
@@ -663,7 +663,7 @@
<para>Plan to process converter - converts plan data structure into a processing form</para>
</listitem>
</orderedlist>
- <sect2>
+ <section>
<title>Relational Planner</title>
<para>The GenerateCanonical class generates the initial (or
“canonical” plan). This plan is based on the typical logical order
@@ -999,14 +999,14 @@
patterns have been satisfied.</para>
</listitem>
</itemizedlist>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Procedure Planner</title>
<para>The procedure planner is fairly simple. It converts the
statements in the procedure into instructions in a program that will
be run during processing. This is mostly a 1-to-1 mapping and very little optimization is performed.</para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>XML Planner</title>
<para>The XML Planner creates an XML plan that is relatively close
to the end result of the Procedure Planner – a program with instructions. Many of the
@@ -1039,6 +1039,6 @@
the same document fragment for both the initial fragment and a set
of repeated fragments (each a new query) until some termination
criteria or limit is met.</para>
- </sect2>
- </sect1>
+ </section>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/grammar.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/grammar.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/grammar.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -2,7 +2,7 @@
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<appendix id="grammar">
<title>BNF for SQL Grammar</title>
-<sect1>
+<section>
<title>TOKENS</title>
<informaltable frame="none">
<tgroup cols="1">
@@ -384,8 +384,8 @@
</tbody>
</tgroup>
</informaltable>
-</sect1>
-<sect1>
+</section>
+<section>
<title>NON-TERMINALS</title>
<informaltable frame="none">
<tgroup cols="2">
@@ -839,5 +839,5 @@
</tbody>
</tgroup>
</informaltable>
-</sect1>
+</section>
</appendix>
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/procedures.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/procedures.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/procedures.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -2,7 +2,7 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="procedures">
<title>Procedures</title>
- <sect1 id="procedure_language">
+ <section id="procedure_language">
<title>Procedure Language</title>
<para>
Teiid supports a procedural language for defining
@@ -14,7 +14,7 @@
<link linkend="update_procedures">update procedures</link>
.
</para>
- <sect2>
+ <section>
<title>Command Statement</title>
<para>
A command statement executes a
@@ -27,8 +27,8 @@
<programlisting>SELECT * FROM MySchema.MyTable WHERE ColA > 100;
INSERT INTO MySchema.MyTable (ColA,ColB) VALUES (50, 'hi');</programlisting>
</example>
- </sect2>
- <sect2 id="dynamic_sql">
+ </section>
+ <section id="dynamic_sql">
<title>Dynamic SQL Command</title>
<para>Dynamic SQL allows for the execution of an arbitrary SQL command in a virtual procedure. Dynamic SQL is useful in situations where the exact command form is not known prior to execution.
</para>
@@ -147,8 +147,8 @@
</para>
</listitem>
</itemizedlist>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Declaration Statement</title>
<para>A declaration statement declares a variable and its type. After you declare a variable, you can use it in that block within the procedure and any sub-blocks. A variable is initialized to null by default, but can also be assigned the value of an expression as part of the declaration statement.
</para>
@@ -179,8 +179,8 @@
</para>
</listitem>
</itemizedlist>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Assignment Statement</title>
<para>An assignment statement assigns a value to a variable by either evaluating an expression or executing a SELECT command that returns a column value from a single row.</para>
<para>
@@ -198,8 +198,8 @@
</para>
</listitem>
</itemizedlist>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>If Statement</title>
<para>An IF statement evaluates a condition and executes either
one of two blocks depending on the result. You can nest IF
@@ -221,8 +221,8 @@
NULL values should be considered in the criteria of an IF statement. IS NULL criteria can be used to detect the presense of a NULL value.
</para>
</note>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Loop Statement</title>
<para>A LOOP statement is an iterative control construct that is used to cursor through a result set.</para>
<para>
@@ -232,8 +232,8 @@
...
END</synopsis>
</para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>While Statement</title>
<para>A WHILE statement is an iterative control construct that is used to execute a set of statements repeatedly whenever a specified condition is met.</para>
<para>
@@ -243,25 +243,25 @@
...
END</synopsis>
</para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Continue Statement</title>
<para>A CONTINUE statement is used inside a LOOP or WHILE construct to continue with the next loop by skipping over the rest of the statements in the loop. It must be used inside a LOOP or WHILE statement.</para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Break Statement</title>
<para>A BREAK statement is used inside a LOOP or WHILE construct to break from the loop. It must be used inside a LOOP or WHILE statement.</para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Error Statement</title>
<para>An ERROR statement declares that the procedure has entered an error state and should abort. This statement will also roll back the current transaction, if one exists. Any valid expression can be specified after the ERROR keyword.</para>
<example>
<title>Example Error Statement</title>
<programlisting>ERROR 'Invalid input value: ' || nvl(Acct.GetBalance.AcctID, 'null');</programlisting>
</example>
- </sect2>
- </sect1>
- <sect1 id="virtual_procedures">
+ </section>
+ </section>
+ <section id="virtual_procedures">
<title>Virtual Procedures</title>
<para>Virtual procedures are defined using the Teiid
procedural language. A virtual procedure has zero or more input
@@ -269,7 +269,7 @@
support the ability to execute queries and other SQL commands,
define temporary tables, add data to temporary tables, walk
through result sets, use loops, and use conditional logic.</para>
- <sect2>
+ <section>
<title>Virtual Procedure Definition</title>
<para>
Usage:
@@ -285,8 +285,8 @@
<para>The last command statement executed in the procedure will be
return as the result. The output of that statement must match the
expected result set and parameters of the procedure.</para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Procedure Input Parameters</title>
<para>Virtual procedures can take zero or more input parameters. Each input has the following information that is used during runtime processing: </para>
<itemizedlist>
@@ -313,8 +313,8 @@
SELECT Balance FROM MySchema.Accts WHERE MySchema.Accts.AccountID = MySchema.GetBalance.AcctID;
END</programlisting>
</example>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Example Virtual Procedures</title>
<para>This example is a LOOP that walks through a cursored table and uses CONTINUE and BREAK.</para>
<example>
@@ -363,8 +363,8 @@
END
</programlisting>
</example>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Executing Virtual Procedures</title>
<para>You execute procedures using the SQL <link linkend="execute_command">EXECUTE</link> command. If
the procedure has defined inputs, you specify those in a
@@ -397,9 +397,9 @@
</para>
</listitem>
</itemizedlist>
- </sect2>
- </sect1>
- <sect1 id="update_procedures">
+ </section>
+ </section>
+ <section id="update_procedures">
<title>Update Procedures</title>
<para>
Views are abstractions above physical sources. They typically
@@ -418,7 +418,7 @@
commands, define temporary tables, add data to temporary tables, walk
through result sets, use loops, and use conditional logic.
</para>
- <sect2>
+ <section>
<title>Update Procedure Definition</title>
<para>
Usage:
@@ -431,11 +431,11 @@
the procedure. The BEGIN and END keywords are used to denote block
boundaries. Within the body of the procedure, any valid <link linkend="procedure_language">statement</link> may be used.
</para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Special Variables</title>
<para>You can use a number of special variables when defining your update procedure.</para>
- <sect3 id="input_variables">
+ <section id="input_variables">
<title>INPUT Variables</title>
<para>Every attribute in the view whose UPDATE and INSERT transformations you are defining has an equivalent variable named INPUTS.<column_name></para>
<para>When an INSERT or an UPDATE command is executed against the view, these variables are initialized to the values in the INSERT VALUES clause or the UPDATE SET clause respectively.</para>
@@ -443,8 +443,8 @@
<warning>
<para>In prior release of Teiid INPUT was also accepted as the quailifer for an input variable. As of Teidd 7, INPUT is a reserved word, so INPUTS is the preferred qualifier.</para>
</warning>
- </sect3>
- <sect3 id="changing_variables">
+ </section>
+ <section id="changing_variables">
<title>CHANGING Variables</title>
<para>Similar to INPUT Variables, every attribute in the view whose UPDATE and INSERT transformations you are defining has an equivalent variable named CHANGING.<column_name></para>
<para>When an INSERT or an UPDATE command is executed against the view, these variables are initialized to <literal>true</literal> or <literal>false</literal> depending on whether the INPUT variable was set by the command.</para>
@@ -469,8 +469,8 @@
</tbody>
</tgroup>
</informaltable>
- </sect3>
- <sect3 id="rowsupdated_variable">
+ </section>
+ <section id="rowsupdated_variable">
<title>ROWS_UPDATED Variable</title>
<para> Teiid returns the value of the VARIABLES.ROWS_UPDATED variable as a response to an update command executed against
the view. Your procedure must set the value that returns
@@ -479,15 +479,15 @@
example, if an UPDATE command is issued that affects 5 records, the
ROWS_UPDATED should be set appropriately so that the user will
receive '5' for the count of records affected.</para>
- </sect3>
- </sect2>
- <sect2>
+ </section>
+ </section>
+ <section>
<title>Update Procedure Command Criteria</title>
<para> You can use a number of special SQL clauses when defining
UPDATE or DELETE procedures. These make it easier to do variable
substitutions in WHERE clauses or to check on the change state of
variables without using a lot of conditional logic.</para>
- <sect3>
+ <section>
<title>HAS CRITERIA</title>
<para>You can use the HAS CRITERIA clause to check whether the user’s command has a particular kind of criteria on a particular set of attributes. This clause evaluates to either true or false. You can use it anywhere you can use a criteria within a procedure.</para>
<para>
@@ -541,8 +541,8 @@
<para>The HAS CRITERIA predicate is most commonly used in
an IF clause, to determine if the user issued a particular form of
command and to respond appropriately.</para>
- </sect3>
- <sect3>
+ </section>
+ <section>
<title>TRANSLATE CRITERIA</title>
<para>You can use the TRANSLATE CRITERIA clause to convert the criteria from the user application’s SQL command into the form required to interact with the target source or view tables. The TRANSLATE CRITERIA statement uses the SELECT transformation to infer the column mapping. This clause evaluates to a translated criteria that is evaluated in the context of a command.</para>
<para>
@@ -604,9 +604,9 @@
gets mapped to expression in SELECT clause at same
position).
</para>
- </sect3>
- </sect2>
- <sect2>
+ </section>
+ </section>
+ <section>
<title>Update Procedure Processing</title>
<orderedlist>
<listitem>
@@ -634,6 +634,6 @@
</para>
</listitem>
</orderedlist>
- </sect2>
- </sect1>
+ </section>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/scalar_functions.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/scalar_functions.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/scalar_functions.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -9,7 +9,7 @@
<link linkend="datatypes">Datatypes</link>
. In addition, Teiid provides the capability for user defined functions or UDFs. See the Developers Guide for adding UDFs. Once added UDFs may be called just like any other function.
</para>
- <sect1 id="numeric_functions">
+ <section id="numeric_functions">
<title>Numeric Functions</title>
<para>Numeric functions return numeric values (integer, long,
float, double, biginteger, bigdecimal). They generally take numeric
@@ -492,7 +492,7 @@
</tbody>
</tgroup>
</informaltable>
- <sect2>
+ <section>
<title>Parsing Numeric Datatypes from Strings</title>
<para>
Teiid offers a set of functions you can use to parse numbers from
@@ -603,8 +603,8 @@
</tbody>
</tgroup>
</informaltable>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Formatting Numeric Datatypes as Strings</title>
<para>
Teiid offers a set of functions you can use to convert numeric
@@ -715,9 +715,9 @@
</tbody>
</tgroup>
</informaltable>
- </sect2>
- </sect1>
- <sect1 id="string_functions">
+ </section>
+ </section>
+ <section id="string_functions">
<title>String Functions</title>
<para>String functions generally take strings as inputs and return strings as outputs. </para>
<para>Unless specified, all of the arguments and return types in the following table are strings and all indexes are 1-based. The 0 index is considered to be before the start of the string.</para>
@@ -1072,8 +1072,8 @@
</tbody>
</tgroup>
</informaltable>
- </sect1>
- <sect1 id="date_time_functions">
+ </section>
+ <section id="date_time_functions">
<title>Date/Time Functions</title>
<para>Date and time functions return or operate on dates, times, or timestamps. </para>
<para>Parse and format Date/Time functions use the convention established within
@@ -1455,7 +1455,7 @@
</tbody>
</tgroup>
</informaltable>
- <sect2>
+ <section>
<title>Parsing Date Datatypes from Strings</title>
<para>
Teiid does not implicitly convert strings that
@@ -1524,8 +1524,8 @@
</tbody>
</tgroup>
</informaltable>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>Specifying Time Zones</title>
<para>Time zones can be specified in several formats. Common
abbreviations such as EST for "Eastern Standard Time" are allowed
@@ -1535,9 +1535,9 @@
Additionally, you can specify a custom time zone by GMT offset:
GMT[+/-]HH:MM.</para>
<para>For example: GMT-05:00</para>
- </sect2>
- </sect1>
- <sect1>
+ </section>
+ </section>
+ <section>
<title>Type Conversion Functions</title>
<para>
Within your queries, you can convert between datatypes using the
@@ -1579,8 +1579,8 @@
</tgroup>
</informaltable>
<para>These functions are identical other than syntax; CAST is the standard SQL syntax, CONVERT is the standard JDBC/ODBC syntax. </para>
- </sect1>
- <sect1 id="choice_functions">
+ </section>
+ <section id="choice_functions">
<title>Choice Functions</title>
<para>Choice functions provide a way to select from two values based on some characteristic of one of the values. </para>
<informaltable frame="all">
@@ -1647,8 +1647,8 @@
</tgroup>
</informaltable>
<para>IFNULL and NVL are aliases of each other. They are the same function. </para>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>Decode Functions</title>
<para>Decode functions allow you to have the Teiid Server
examine the contents of a column in a result set and alter, or
@@ -1771,8 +1771,8 @@
in the column and you have not specified a default value, the DECODE
function will return the original value the Teiid Server found
in that column.</para>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>Lookup Function</title>
<para>The Lookup function allows you to cache a table’s
data in memory and access it through a scalar function. This caching
@@ -1851,8 +1851,8 @@
</tbody>
</tgroup>
</informaltable>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>System Functions</title>
<para>System functions provide access to information in the Teiid system from within a query. </para>
<informaltable frame="all">
@@ -1937,24 +1937,24 @@
</tbody>
</tgroup>
</informaltable>
- </sect1>
- <sect1 id="xml_functions">
+ </section>
+ <section id="xml_functions">
<title>XML Functions</title>
<para>XML functions provide functionality for working with XML data. </para>
- <sect2>
+ <section>
<title>XMLCOMMENT</title>
<para>Returns an xml comment.</para>
<para><synopsis>XMLCOMMENT(comment)</synopsis></para>
<para>Comment is a string. Return value is xml.</para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>XMLCONCAT</title>
<para>Returns an XML with the concatination of the given xml types.</para>
<para><synopsis>XMLCONCAT(content [, content]*)</synopsis></para>
<para>Content is xml. Return value is xml.</para>
<para>If a value is null, it will be ignored. If all values are null, null is returned.</para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>XMLELEMENT</title>
<para>Returns an XML element with the given name and content.</para>
<para><synopsis>XMLELEMENT([NAME] name [, <NSP>] [, <ATTR>][, content]*)</synopsis></para>
@@ -1969,16 +1969,16 @@
<para><emphasis>Example</emphasis>: with an xml_value of <doc/>, <programlisting>xmlelement('elem', 1, '<2/>', xml_value)</programlisting>
Returns: <code><elem>1&lt;2/&gt;<doc/><elem/></code>
</para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>XMLFOREST</title>
<para>Returns an concatination of XML elements for each content item.</para>
<para><synopsis>XMLFOREST(content [AS name] [, <NSP>] [, content [AS name]]*)</synopsis></para>
<para>See XMLELEMENT for the definition of NSP - <link linkend="xmlnamespaces">XMLNAMESPACES</link>.</para>
<para>Name is an identifier. Content can be any type. Return value is xml.</para>
<para>If a name is not supplied for a content item, the expression must be a column reference, in which case the element name will be a partially escaped version of the column name.</para>
- </sect2>
- <sect2 id="xmlparse">
+ </section>
+ <section id="xmlparse">
<title>XMLPARSE</title>
<para>Returns an XML type representation of the string value expression.</para>
<para><synopsis>XMLPARSE((DOCUMENT|CONTENT) expr [WELLFORMED])</synopsis></para>
@@ -1988,14 +1988,14 @@
<para>
If WELLFORMED is specified then validation is skipped; this is especially useful for CLOB and BLOB known to already be valid.
</para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>XMLPI</title>
<para>Returns an xml processing instruction.</para>
<para><synopsis>XMLPI([NAME] name [, content])</synopsis></para>
<para>Name is an identifier. Content is a string. Return value is xml.</para>
- </sect2>
- <sect2 id="xmlquery">
+ </section>
+ <section id="xmlquery">
<title>XMLQUERY</title>
<para>Returns the XML result from evaluating the given xquery.</para>
<para><synopsis>XMLQUERY([<NSP>] xquery [<PASSING>] [(NULL|EMPTY) ON EMPTY]]</synopsis></para>
@@ -2011,8 +2011,8 @@
<para>See also <link linkend="xmltable">XMLTABLE</link></para>
<note><para>A technique known as document projection is used to reduce the memory footprint of the context item document. Only the parts of the document needed by the xquery will be loaded into memory.</para></note>
- </sect2>
- <sect2 id="xmlserialize">
+ </section>
+ <section id="xmlserialize">
<title>XMLSERIALIZE</title>
<para>Returns a character type representation of the xml expression.</para>
<para><synopsis>XMLSERIALIZE([(DOCUMENT|CONTENT)] xml [AS datatype])</synopsis></para>
@@ -2020,36 +2020,36 @@
<para>Only a character type (string, varchar, clob) may be specified as the datatype. CONTENT is the default.
If DOCUMENT is specified and the xml is not a valid document or fragment, then an exception is raised.
</para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>XSLTRANSFORM</title>
<para>Applies an XSL stylesheet to the given document.</para>
<para><synopsis>XSLTRANSFORM(doc, xsl)</synopsis></para>
<para>Doc, xsl in {string, clob, xml}. Return value is a clob.</para>
<para>If either argument is null, the result is null.</para>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>XPATHVALUE</title>
<para>Applies the XPATH expression to the document and returns a
string value for the first matching result.</para>
<para><synopsis>XPATHVALUE(doc, xpath)</synopsis></para>
<para>Doc and xpath in {string, clob, xml}. Return value is a string.</para>
<para>An attempt is made to provide a meaningful result for non-text nodes.</para>
- </sect2>
- </sect1>
- <sect1>
+ </section>
+ </section>
+ <section>
<title>Security Functions</title>
<para>Security functions provide the ability to interact
with the security system.</para>
- <sect2>
+ <section>
<title>HASROLE</title>
<para>Whether the current caller has the role roleName.</para>
<para><synopsis>hasRole([roleType,] roleName)</synopsis></para>
<para>roleName must be a string, the return type is boolean.</para>
<para>The two argument form is provided for backwards compatibility. roleType is a string and must be 'data'</para>
- </sect2>
- </sect1>
- <sect1 id="nondeterministic_functions">
+ </section>
+ </section>
+ <section id="nondeterministic_functions">
<title>Nondeterministic Function Handling</title>
<para>Teiid categorizes functions by varying degrees of determinism.
When a function is evaluated and to what extent the result can be
@@ -2093,5 +2093,5 @@
select clause).</para>
</listitem>
</orderedlist>
- </sect1>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/sql_support.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/sql_support.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/sql_support.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -16,7 +16,7 @@
<link linkend="grammar">grammar</link>
for the exact form of SQL accepted by Teiid.
</para>
- <sect1 id="identifiers">
+ <section id="identifiers">
<title>Identifiers</title>
<para> SQL commands contain references to tables and columns. These
references are in the form of identifiers, which uniquely identify
@@ -108,8 +108,8 @@
resulting names are unambiguous in the context of the command.
Different forms of qualification can be mixed in the same query.
</para>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>Expressions</title>
<para> Identifiers, literals, and functions can be combined into
expressions. Expressions can be used almost anywhere in a query --
@@ -139,7 +139,7 @@
<para><link linkend="parameter_references">Parameter references</link></para>
</listitem>
</itemizedlist>
- <sect2 id="columnidentifiers">
+ <section id="columnidentifiers">
<title>Column Identifiers</title>
<para>
Column identifiers are used to specify the output columns in SELECT
@@ -150,8 +150,8 @@
<link linkend="identifiers">Identifiers</link>
section above.
</para>
- </sect2>
- <sect2 id="literals">
+ </section>
+ <section id="literals">
<title>Literals</title>
<para>
Literal values represent fixed values. These can any of the 'standard' <link linkend="datatypes">data types</link>.
@@ -195,8 +195,8 @@
<para><literal>'\u0027'</literal> - unicode character</para>
</listitem>
</itemizedlist>
- </sect2>
- <sect2 id="aggregate_functions">
+ </section>
+ <section id="aggregate_functions">
<title>Aggregate Functions</title>
<para>Aggregate functions take sets of values from a group produced by an explicit or implicit GROUP BY and return a single scalar value computed from the group.</para>
<itemizedlist>
@@ -260,8 +260,8 @@
<para>
For more information on aggregates, see the sections on GROUP BY or HAVING.
</para>
- </sect2>
- <sect2 id="case">
+ </section>
+ <section id="case">
<title>Case and searched case</title>
<para>
Teiid supports two forms of the CASE expression which allows conditional logic in a scalar expression.
@@ -288,8 +288,8 @@
specify an arbitrary criteria to evaluate. If any criteria evaluates
to true, the THEN expression is evaluated and output. If no WHEN is
true, the ELSE is evaluated or NULL is output if none exists.</para>
- </sect2>
- <sect2 id="scalar_subqueries">
+ </section>
+ <section id="scalar_subqueries">
<title>Scalar subqueries</title>
<para>
Subqueries can be used to produce a single scalar value in the SELECT,
@@ -299,16 +299,16 @@
For other types of subqueries, see the
<link linkend="subqueires">Subqueries</link>
section below.</para>
- </sect2>
- <sect2 id="parameter_references">
+ </section>
+ <section id="parameter_references">
<title>Parameter references</title>
<para> Parameters are specified using a '?' symbol. Parameters may
only be used with PreparedStatement or CallableStatements in JDBC.
Each parameter is linked to a value specified by 1-based index in
the JDBC API.</para>
- </sect2>
- </sect1>
- <sect1 id="criteria">
+ </section>
+ </section>
+ <section id="criteria">
<title>Criteria</title>
<itemizedlist>
<para>Criteria may be:
@@ -390,11 +390,11 @@
<title>Comparing null Values</title>
<para>Null values represent an unknown value. Comparison with a null value will evaluate to 'unknown', which can never be true even if 'not' is used.</para>
</note>
- </sect1>
- <sect1 id="sql_commands">
+ </section>
+ <section id="sql_commands">
<title>SQL Commands</title>
<para>There are 4 basic commands for manipulating data in SQL, corresponding to the CRUD create, read, update, and delete operations: INSERT, SELECT, UPDATE, and DELETE. In addition, procedures can be executed using the EXECUTE command or through a <link linkend="procedural_relational">procedural relational command</link>.</para>
- <sect2 id="select_command">
+ <section id="select_command">
<title>SELECT Command</title>
<para>The SELECT command is used to retrieve records any number of relations.</para>
<itemizedlist>
@@ -482,8 +482,8 @@
named. Because the WHERE clause is processed before the SELECT, the
columns have not yet been named and the aliases are not yet known.
</para>
- </sect2>
- <sect2 id="insert_command">
+ </section>
+ <section id="insert_command">
<title>INSERT Command</title>
<para>The INSERT command is used to add a record to a table.</para>
<itemizedlist>
@@ -497,8 +497,8 @@
</para>
</listitem>
</itemizedlist>
- </sect2>
- <sect2 id="update_command">
+ </section>
+ <section id="update_command">
<title>UPDATE Command</title>
<para>The UPDATE command is used to modify records in a table. The operation may result in 1 or more records being updated, or in no records being updated if none match the criteria.</para>
<itemizedlist>
@@ -508,8 +508,8 @@
</para>
</listitem>
</itemizedlist>
- </sect2>
- <sect2 id="delete_command">
+ </section>
+ <section id="delete_command">
<title>DELETE Command</title>
<para>The DELETE command is used to remove records from a table. The operation may result in 1 or more records being deleted, or in no records being deleted if none match the criteria. </para>
<itemizedlist>
@@ -519,8 +519,8 @@
</para>
</listitem>
</itemizedlist>
- </sect2>
- <sect2 id="exec_command">
+ </section>
+ <section id="exec_command">
<title>EXECUTE Command</title>
<para>The EXECUTE command is used to execute a procedure, such as a virtual procedure or a stored procedure. Procedures may have zero or more scalar input parameters. The return value from a procedure is a result set, the same as is returned from a SELECT. Note that EXEC or CALL can be used as a short form of this command.
</para>
@@ -559,13 +559,13 @@
</para>
</listitem>
</itemizedlist>
- </sect2>
- <sect2 id="cache_hint">
+ </section>
+ <section id="cache_hint">
<title>Cache Hint</title>
<para>Non-update user commands may be preceded with a cache hint, e.g. /* cache */ select ..., to inform the engine that the results of command should be cached. The scope of the result, either session or global, will be deteremined automatically from the determinism level of the source queries and functions executed.</para>
<para>ResultSet caching must be enabled for this hint to have an effect.</para>
- </sect2>
- <sect2 id="procedural_relational">
+ </section>
+ <section id="procedural_relational">
<title>Procedural Relational Command</title>
<para> Procedural relational commands use the syntax of a SELECT to
emulate an EXEC. In a procedural relational command a procedure group
@@ -631,9 +631,9 @@
None of issues listed in the syntax rules above exist if a <link linkend="nested_table">nested table reference</link> is used.
</para>
</note>
- </sect2>
- </sect1>
- <sect1 id="temp_tables">
+ </section>
+ </section>
+ <section id="temp_tables">
<title>Temp Tables</title>
<para>Teiid supports creating temporary,or "temp", tables. Temp tables are dynamically created, but are treated as any other physical table.
</para>
@@ -726,11 +726,11 @@
<para>
See <link linkend="virtual_procedures">virtual procedures</link> for more on temp table usage.
</para>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>SQL Clauses</title>
<para>This section describes the clauses that are used in the various <link linkend="sql_commands">SQL commands</link> described in the previous section. Nearly all these features follow standard SQL syntax and functionality, so any SQL reference can be used for more information.</para>
- <sect2 id="select_clause">
+ <section id="select_clause">
<title>SELECT Clause</title>
<para>
SQL queries start with the SELECT keyword and are often referred to as "SELECT statements". Teiid supports most of the standard SQL query constructs.
@@ -744,8 +744,8 @@
<listitem><para>Aliased expressions are only used as the output column names and in the ORDER BY clause. They cannot be used in other clauses of the query.</para></listitem>
<listitem><para>DISTINCT may only be specified if the SELECT symbols are comparable.</para></listitem>
</itemizedlist>
- </sect2>
- <sect2 id="from_clause">
+ </section>
+ <section id="from_clause">
<title>FROM Clause</title>
<para>
The FROM clause specifies the target table(s) for SELECT, UPDATE, and DELETE statements.
@@ -773,7 +773,7 @@
metadata, and costing information.
</para>
</note>
- <sect3 id="nested_table">
+ <section id="nested_table">
<title>Nested Table Reference</title>
<para>Nested tables may appear in the FROM clause with the TABLE
keyword. They are an alternative to using a view with normal join
@@ -796,8 +796,8 @@
executions of the table expression - once for each correlated row.
</para>
</note>
- </sect3>
- <sect3 id="texttable">
+ </section>
+ <section id="texttable">
<title>TEXTTABLE</title>
<para>The TEXTTABLE funciton processes character input to produce tabular ouptut. It supports both fixed and delimited file format parsing.
The function itself defines what columns it projects.
@@ -874,8 +874,8 @@
</para>
</listitem>
</itemizedlist>
- </sect3>
- <sect3 id="xmltable">
+ </section>
+ <section id="xmltable">
<title>XMLTABLE</title>
<para>The XMLTABLE funciton uses XQuery to produce tabular ouptut.
The XMLTABLE function is implicitly a nested table and may be correlated to preceeding FROM clause entries. XMLTABLE is part of the SQL/XML 2006 specification.
@@ -927,9 +927,9 @@
</para>
</listitem>
</itemizedlist>
- </sect3>
- </sect2>
- <sect2 id="where_clause">
+ </section>
+ </section>
+ <section id="where_clause">
<title>WHERE Clause</title>
<para>
The WHERE clause defines the criteria to limit the records affected by SELECT, UPDATE, and DELETE statements.
@@ -942,8 +942,8 @@
</para>
</listitem>
</itemizedlist>
- </sect2>
- <sect2 id="groupby_clause">
+ </section>
+ <section id="groupby_clause">
<title>GROUP BY Clause</title>
<para>
The GROUP BY clause denotes that rows should be grouped according to the specified expression values. One row will be returned for each group, after optionally filtering those aggregate rows based on a HAVING clause.
@@ -983,8 +983,8 @@
<para>The group by columns must be of a comparable type.</para>
</listitem>
</itemizedlist>
- </sect2>
- <sect2 id="having_clause">
+ </section>
+ <section id="having_clause">
<title>HAVING Clause</title>
<para>
The HAVING clause operates exactly as a WHERE clause although it operates on the output of a GROUP BY. It supports the same syntax as the WHERE clause.
@@ -998,8 +998,8 @@
of the grouping expressions.</para>
</listitem>
</itemizedlist>
- </sect2>
- <sect2 id="orderby_clause">
+ </section>
+ <section id="orderby_clause">
<title>ORDER BY Clause</title>
<para>
The ORDER BY clause specifies how records should be sorted. The options are ASC (ascending) and DESC (descending).
@@ -1049,8 +1049,8 @@
ANSI SQL standard and is a deprecated feature in Teiid. It is
preferable to use alias names in the order by clause.</para>
</warning>
- </sect2>
- <sect2 id="limit_clause">
+ </section>
+ <section id="limit_clause">
<title>LIMIT Clause</title>
<para>
The LIMIT clause specifies a limit on the number of records returned from the SELECT command. An optional offset (the number of rows to skip) can be specified.
@@ -1069,8 +1069,8 @@
<para>LIMIT 500, 100 - skips 500 records and returns the next 100 records (rows 501-600)</para>
</listitem>
</itemizedlist>
- </sect2>
- <sect2 id="into_clause">
+ </section>
+ <section id="into_clause">
<title>INTO Clause</title>
<warning>
<para>Usage of the INTO Clause for inserting into a table has been been deprecated. An <link linkend="insert_command">INSERT</link> with a query command should be used instead.</para>
@@ -1095,8 +1095,8 @@
INTO should not be used UNION query.</para>
</listitem>
</itemizedlist>
- </sect2>
- <sect2 id="option_clause">
+ </section>
+ <section id="option_clause">
<title>OPTION Clause</title>
<para>
The OPTION keyword denotes options the user can pass in with the command. These options are Teiid-specific and not covered by any SQL specification.
@@ -1134,9 +1134,9 @@
<para>Previous versions of Teiid accepted the PLANONLY, DEBUG, and SHOWPLAN option arguments. These are no longer accepted in the OPTION clause.
Please see the <link linkend="other_commands">other commands</link> chapter for using these options.
</para>
- </sect2>
- </sect1>
- <sect1 id="set_operations">
+ </section>
+ </section>
+ <section id="set_operations">
<title>Set Operations</title>
<para>Teiid supports the UNION, UNION ALL, INTERSECT, EXCEPT set operation as a way of combining the results of commands.</para>
<para>
@@ -1162,8 +1162,8 @@
<para>INTERSECT ALL, and EXCEPT ALL are currently not supported.</para>
</listitem>
</itemizedlist>
- </sect1>
- <sect1 id="subqueries">
+ </section>
+ <section id="subqueries">
<title>Subqueries</title>
<para>A subquery is a SQL query embedded within another SQL query. The query containing the subquery is the outer query.</para>
<itemizedlist>
@@ -1195,7 +1195,7 @@
<para>Subqueries may be used in any expression or CASE CRITERIA in the SELECT clasue.</para>
</listitem>
</itemizedlist>
- <sect2 id="from_subquery">
+ <section id="from_subquery">
<title>Inline views</title>
<para> Subqueries in the FROM clause of the outer query (also known as
"inline views") can return any number of rows and columns. This type
@@ -1204,8 +1204,8 @@
<title>Example Subquery in FROM Clause (Inline View)</title>
<programlisting>SELECT a FROM (SELECT Y.b, Y.c FROM Y WHERE Y.d = ‘3’) AS X WHERE a = X.c AND b = X.b</programlisting>
</example>
- </sect2>
- <sect2 id="where_subquery">
+ </section>
+ <section id="where_subquery">
<title>Subqueries in the WHERE and HAVING clauses</title>
<para>Subqueries supported in the criteria of the outer query include subqueries in an IN clause, subqueries using the ANY/SOME or ALL predicate quantifier, and subqueries using the EXISTS predicate. </para>
<example>
@@ -1222,6 +1222,6 @@
SELECT a FROM X WHERE a < SOME (SELECT b FROM Y WHERE c=4)
SELECT a FROM X WHERE a = ALL (SELECT b FROM Y WHERE c=2)</programlisting>
</example>
- </sect2>
- </sect1>
+ </section>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/system_schema.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/system_schema.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/system_schema.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -2,11 +2,11 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="system_schema">
<title>System Schema</title>
- <sect1 id="system_tables">
+ <section id="system_tables">
<title>System Tables</title>
- <sect2>
+ <section>
<title>VDB, Schema, and Properties</title>
- <sect3>
+ <section>
<title>SYS.VirtualDatabases</title>
<para>This table supplies information about the currently
connected
@@ -54,8 +54,8 @@
</tbody>
</tgroup>
</informaltable>
- </sect3>
- <sect3>
+ </section>
+ <section>
<title>SYS.Schemas</title>
<para>This table supplies information about all the schemas in
the
@@ -159,8 +159,8 @@
</tbody>
</tgroup>
</informaltable>
- </sect3>
- <sect3>
+ </section>
+ <section>
<title>SYS.Properties</title>
<para>This table supplies user-defined properties on all objects
based on metamodel extensions. Normally, this table is empty if
@@ -229,11 +229,11 @@
</tbody>
</tgroup>
</informaltable>
- </sect3>
- </sect2>
- <sect2>
+ </section>
+ </section>
+ <section>
<title>Table Metadata</title>
- <sect3>
+ <section>
<title>SYS.Tables</title>
<para>This table supplies information about all the groups
(tables,
@@ -391,8 +391,8 @@
</tbody>
</tgroup>
</informaltable>
- </sect3>
- <sect3>
+ </section>
+ <section>
<title>SYS.Columns</title>
<para>This table supplies information about all the elements
(columns, tags, attributes, etc) in the virtual database.</para>
@@ -764,8 +764,8 @@
</tbody>
</tgroup>
</informaltable>
- </sect3>
- <sect3>
+ </section>
+ <section>
<title>SYS.Keys</title>
<para>This table supplies information about primary, foreign,
and
@@ -912,8 +912,8 @@
</tbody>
</tgroup>
</informaltable>
- </sect3>
- <sect3>
+ </section>
+ <section>
<title>SYS.KeyColumns</title>
<para>This table supplies information about the columns
referenced by
@@ -1048,13 +1048,13 @@
</tbody>
</tgroup>
</informaltable>
- </sect3>
- </sect2>
- <sect2>
+ </section>
+ </section>
+ <section>
<title>
Procedure Metadata
</title>
- <sect3>
+ <section>
<title>SYS.Procedures</title>
<para>This table supplies information about the procedures in
the
@@ -1166,8 +1166,8 @@
</tbody>
</tgroup>
</informaltable>
- </sect3>
- <sect3>
+ </section>
+ <section>
<title>SYS.ProcedureParams</title>
<para>This supplies information on procedure parameters.
</para>
@@ -1336,13 +1336,13 @@
</tbody>
</tgroup>
</informaltable>
- </sect3>
- </sect2>
- <sect2>
+ </section>
+ </section>
+ <section>
<title>
Datatype Metadata
</title>
- <sect3>
+ <section>
<title>SYS.DataTypes</title>
<para>
This table supplies information on
@@ -1581,10 +1581,10 @@
</tbody>
</tgroup>
</informaltable>
- </sect3>
- </sect2>
- </sect1>
- <sect1 id="system_procedures">
+ </section>
+ </section>
+ </section>
+ <section id="system_procedures">
<title>System Procedures</title>
<informaltable frame="all">
<tgroup cols="3">
@@ -1649,5 +1649,5 @@
</tbody>
</tgroup>
</informaltable>
- </sect1>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/transaction_support.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/transaction_support.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/transaction_support.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -45,7 +45,7 @@
</tgroup>
</table>
<para>The default transaction isolation level for Teiid is READ_COMMITTED.</para>
- <sect1 id="autowrap">
+ <section id="autowrap">
<title>AutoCommitTxn Execution Property</title>
<para>Since user level commands may execute multiple source
commands, users can specify the AutoCommitTxn execution property to
@@ -105,8 +105,8 @@
</para>
<para>The update count may be set on all procedures as part of
the procedure metadata in the model.</para>
- </sect1>
- <sect1 id="updating_model_count">
+ </section>
+ <section id="updating_model_count">
<title>Updating Model Count</title>
<para>The term "updating model count" refers to the number of times
any model is updated during the execution of a command. It is used to
@@ -147,10 +147,10 @@
</tbody>
</tgroup>
</table>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>JDBC and Transactions</title>
- <sect2>
+ <section>
<title>JDBC API Functionality</title>
<itemizedlist>
<para>The transaction scopes above map to these JDBC modes:
@@ -182,8 +182,8 @@
</para>
</listitem>
</itemizedlist>
- </sect2>
- <sect2>
+ </section>
+ <section>
<title>J2EE Usage Models</title>
<itemizedlist>
<para>J2EE provides three ways to manage transactions for beans:
@@ -209,9 +209,9 @@
this with the caution that this is not portable or predictable.
Generally speaking, to support most typical EJB activities in a
portable fashion requires some kind of transaction support.</para>
- </sect2>
- </sect1>
- <sect1>
+ </section>
+ </section>
+ <section>
<title>Limitations and Workarounds</title>
<itemizedlist>
<listitem>
@@ -232,5 +232,5 @@
transaction capabilities.</para>
</listitem>-->
</itemizedlist>
- </sect1>
+ </section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/translators.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/translators.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/translators.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -2,7 +2,7 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="translators">
<title>Translators</title>
-<sect1>
+<section>
<title>Introduction to the Teiid Connector Architecture</title>
<para>The TCA (Teiid Connector Architecture) provides Teiid with a robust mechanism for integrating with external systems. The TCA defines a common client interface between Teiid and an external system that includes metadata as to what SQL constructs are supported for pushdown and the ability to import metadata from the external system.</para>
<para>>A Translator is the heart of the TCA and acts as the bridge logic between Teiid and an external system, which is most commonly accessed through a JCA resource adapter. See the Teiid Developers Guide for details on developing custom Translators and JCA resource adapters for use with Teiid.</para>
@@ -12,8 +12,8 @@
<note>
<para>The import capabilities of Teiid Translators is currently only used in <link linkend="dynamic_vdbs">dynamic VDBs</link> and not by the Teiid Designer.</para>
</note>
-</sect1>
-<sect1>
+</section>
+<section>
<title>Translators</title>
<para>A Translator is typically paired with a particular JCA resource adapter. In instances where pooling, environment dependent configuration management, advanced security handling, etc. are not needed, then a JCA resource adapter is not needed. The configuration of JCA ConnectionFactories for needed resource adapters is not part of this guide, please see the Teiid Admin Guide and the kit examples for configuring resource adapters for use in JBossAS.</para>
<para>Translators can have a number of configurable properties. These are broken down into execution properties, which determine aspects of how data is retrieved, and import settings, which determine what metadata is read for import.</para>
@@ -74,7 +74,7 @@
<para>Only a subset of the metadata as to what SQL constructs the source supports can be set through execution properties. If more control is needed, please consult the Teiid Developers Guide.</para>
</note>
<para>There are no base importer settings.</para>
-<sect2>
+<section>
<title>File Translator</title>
<para>The file translator, known by the type name <emphasis>file</emphasis>, exposes stored procedures to leverage file system resources exposed by the file resource adapter.
It will commonly be used with the <link linkend="texttable">TEXTTABLE</link> or <link linkend="xmltable">XMLTABLE</link> table functions to use CSV or XML formated data.</para>
@@ -98,16 +98,16 @@
</tgroup>
</table>
<para>There are file importer settings, but it does provide metadata for dynamic vdbs.</para>
-<sect3><title>Usage</title>
+<section><title>Usage</title>
<para>Retrieve all files as BLOBs with the given extension at the given path. <programlisting>call getFiles('path/*.ext')</programlisting>
If the extension pattern is not specified and the path is a directory, then all files in the directory will be returned. If the path or filename doesn't exist, then no results will be returned.
</para>
<para>Retrieve all files as CLOBs with the given extension at the given path. <programlisting>call getTextFiles('path/*.ext')</programlisting></para>
<para>Save the CLOB, BLOB, or XML file to given path <programlisting>call saveFile('path', value)</programlisting></para>
<para>See the database metadata for full descriptions of the getFiles, getTextFiles, and saveFile procedures.</para>
-</sect3>
-</sect2>
-<sect2>
+</section>
+</section>
+<section>
<title>JDBC Translator</title>
<para>The JDBC translator bridges between SQL semantic and data type difference between Teiid and a target RDBMS. Teiid has a range of specific translators that target the most popular open source and proprietary databases.</para>
<itemizedlist>
@@ -287,12 +287,12 @@
<property name="importer.tableTypes" value="TABLE,VIEW"/>
<property name="importer.schemaPattern" value="my-schema"/>
...]]></programlisting></para>
-<sect3><title>Usage</title>
+<section><title>Usage</title>
<para>Usage of a JDBC source is straight-forward. Using Teiid SQL, the source ma be queried as if the tables and procedures were local to the Teiid system.
</para>
-</sect3>
-</sect2>
-<sect2>
+</section>
+</section>
+<section>
<title>LDAP Translator</title>
<para>The LDAP translator, known by the type name <emphasis>ldap</emphasis>, exposes an LDAP directory tree relationally with pusdown support for filtering via criteria. This is typically coupled with the LDAP resource adapter.</para>
<table>
@@ -324,8 +324,8 @@
</tbody>
</tgroup>
</table>
-</sect2>
-<sect2>
+</section>
+<section>
<title>Loopback Translator</title>
<para>The Loopback translator, known by the type name <emphasis>loopback</emphasis>, provides a quick testing solution. It supports all SQL constructs and returns default results, with configurable behavior.</para>
<table>
@@ -366,8 +366,8 @@
</tgroup>
</table>
<para>There are no import settings for the Loopback translator; it also does not provide metadata - it should be used as a testing stub.</para>
-</sect2>
-<sect2>
+</section>
+<section>
<title>Salesforce Translator</title>
<para>The Salesforce translator, known by the type name <emphasis>salesforce</emphasis> supports the SELECT, DELETE, INSERT and UPDATE operations against a Salesforce.com account. It is designed for use with the Teiid Salesforce resource adapter.</para>
<table>
@@ -393,9 +393,9 @@
</tgroup>
</table>
<para>The Salesforce translator can import metadata, but does not currently have import settings.</para>
-<sect3>
+<section>
<title>Usage</title>
-<sect4>
+<section>
<title>SQL Processing</title>
<para>Salesforce does not provide the same set of
functionality as a relational database. For example, Salesforce does
@@ -452,8 +452,8 @@
to avoid fetching large data sets from Salesforce and making you
queries as performant as possible. See all <link linkend="sf_supported">Supported Capabilities</link>.
</para>
- </sect4>
- <sect4>
+ </section>
+ <section>
<title>Selecting from Multi-Select Picklists</title>
<para>
A multi-select picklist is a field type in Salesforce that can
@@ -503,8 +503,8 @@
<programlisting><![CDATA[SELECT * FROM Issue WHERE Status = 'current';
SELECT * FROM Issue WHERE Status = 'current;critical';
SELECT * FROM Issue WHERE Status != 'current;working';]]></programlisting>
- </sect4>
- <sect4>
+ </section>
+ <section>
<title>Selecting All Objects</title>
<para>
The Salesforce connector supports the calling the queryAll operation
@@ -535,8 +535,8 @@
select * from Contact where isDeleted = false;
]]>
</programlisting>
- </sect4>
- <sect4>
+ </section>
+ <section>
<title>Selecting Updated Objects</title>
<para>If the option is selected when importing metadata from
Salesforce, a GetUpdated procedure is generated in the model with
@@ -555,8 +555,8 @@
</ulink>
operation in the Salesforce documentation for usage details.
</para>
- </sect4>
- <sect4>
+ </section>
+ <section>
<title>Selecting Deleted Objects</title>
<para>If the option is selected when importing metadata from
Salesforce, a GetDeleted procedure is generated in the model with
@@ -577,8 +577,8 @@
</ulink>
operation in the Salesforce documentation for usage details.
</para>
- </sect4>
- <sect4>
+ </section>
+ <section>
<title>Relationship Queries</title>
<para>Salesforce does not support joins like a relational database,
but it does have support for queries that include parent-to-child
@@ -609,8 +609,8 @@
</ulink>
operation in the SalesForce documentation for limitations.
</para>
- </sect4>
- <sect4 id="sf_supported">
+ </section>
+ <section id="sf_supported">
<title>Supported Capabilities</title>
<para>The following are the the connector capabilities supported by
the Salesforce Connector. These SQL constructs will be pushed down to
@@ -656,10 +656,10 @@
OuterJoins with join criteria KEY
</para></listitem>
</itemizedlist>
- </sect4>
-</sect3>
-</sect2>
-<sect2>
+ </section>
+</section>
+</section>
+<section>
<title>Web Services Translator</title>
<para>The Web Services translator, known by the type name <emphasis>ws</emphasis>, exposes stored procedures for calling web services backed by a Teiid WS resource adapter.
It will commonly be used with the <link linkend="texttable">TEXTTABLE</link> or <link linkend="xmltable">XMLTABLE</link> table functions to use CSV or XML formated data.</para>
@@ -696,7 +696,7 @@
<note>
<para>Setting the org.teiid.CONNECTOR.WS logging context to detail will show the request/response documents as part of the log.</para>
</note>
-<sect3><title>Usage</title>
+<section><title>Usage</title>
<para>The main procedure, invoke, allows for multiple binding, or protocol modes, including HTTP, SOAP11, and SOAP12.
<programlisting>Procedure invoke(binding in STRING, action in STRING, request in XML, endpoint in STRING) returns XML</programlisting>
</para>
@@ -705,10 +705,10 @@
<para>Since multiple parameters are not required to have values, it is often more clear to call the invoke procedure with named parameter syntax. e.g. <programlisting>call invoke(binding='HTTP', action='GET')</programlisting></para>
<para>The request XML should be a valid XML document or root element.</para>
<para>See the ws-weather example in the kit and database metadata for a full description of invoke.</para>
-</sect3>
-</sect2>
-</sect1>
-<sect1 id="dynamic_vdbs">
+</section>
+</section>
+</section>
+<section id="dynamic_vdbs">
<title>Dynamic VDBs</title>
<para>
Teiid integration is available via a "Dynamic VDB" without the need for Teiid Designer tooling. While this mode of operation does not yet allow for the creation of view layers, the underlying sources can still be queried as if they are a single source. See the kit's "teiid-example/dynamicvdb-*" for working examples.
@@ -749,7 +749,7 @@
</translator>
</vdb>
]]></programlisting>
-<sect2>
+<section>
<title>VDB Element</title>
<itemizedlist>
<title>Attributes</title>
@@ -763,8 +763,8 @@
<listitem><para><emphasis>UseConnectorMetadata</emphasis> - Setting to use connector supplied metadata. Can be "true" or "cached". "true" will obtain metadata once for every launch of Teiid. "cached" will save a file containing the metadata into the <jboss-install>/server/<profile>/data/teiid directory</para>
</listitem>
</itemizedlist>
-</sect2>
-<sect2>
+</section>
+<section>
<title>Model Element</title>
<itemizedlist>
<title>Attributes</title>
@@ -787,8 +787,8 @@
<listitem><para><emphasis>importer.<propertyname></emphasis> - Property to be used by the connector importer for the model for purposes importing metadata. See possible property name/values in the Translator specific section. Note that using these properties you can narrow or widen the data elements available for integration.
</para></listitem>
</itemizedlist>
-</sect2>
-<sect2>
+</section>
+<section>
<title>Translator Element</title>
<itemizedlist>
<title>Attributes</title>
@@ -803,6 +803,6 @@
<listitem><para>Set a value that overrides a translator default property. See possible property name/values in the Translator specific section.
</para></listitem>
</itemizedlist>
-</sect2>
-</sect1>
+</section>
+</section>
</chapter>
\ No newline at end of file
Modified: trunk/documentation/reference/src/main/docbook/en-US/content/xml_queries.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/xml_queries.xml 2010-08-04 04:01:19 UTC (rev 2412)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/xml_queries.xml 2010-08-04 13:08:10 UTC (rev 2413)
@@ -2,7 +2,7 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="xml_queries">
<title>XML SELECT Command</title>
- <sect1>
+ <section>
<title>Overview</title>
<para>Complex XML documents can be dynamically constructed by Teiid using XML Document Models. A document model is
generally created from a schema. The document model is bound to
@@ -13,8 +13,8 @@
<para>Querying XML documents is similar to querying relational
tables. An idiomatic SQL variant with special scalar functions gives
control over which parts of a given document to return.</para>
- </sect1>
- <sect1>
+ </section>
+ <section>
<title>Query Structure</title>
<para>
A valid XML SELECT Command against a document model is of the form
@@ -37,7 +37,7 @@
</para>
<para> Partially qualified names for elements and attributes can be
used as long as the partial name is unique.</para>
- <sect2 id="xml_from_clause">
+ <section id="xml_from_clause">
<title>FROM Clause</title>
<para>Specifies the document to generate. Document names
resemble other virtual groups - "model"."document name".</para>
@@ -48,8 +48,8 @@
desired document.</para>
</listitem>
</itemizedlist>
- </sect2>
- <sect2 id="xml_select_clause">
+ </section>
+ <section id="xml_select_clause">
<title>SELECT Clause</title>
<para>The select clause determines which parts of the XML document
are generated for output.</para>
@@ -90,8 +90,8 @@
attribute, and all child content should be output.</para>
</listitem>
</itemizedlist>
- </sect2>
- <sect2 id="xml_where_clause">
+ </section>
+ <section id="xml_where_clause">
<title>WHERE Clause</title>
<para>The where clause specifies how to filter content from the
generated document based upon values contained in the underlying
@@ -153,12 +153,12 @@
only a single root mapping class. This behavior is the same as
prior releases but may be fixed in a future release.</para>
</note>
- <sect3>
+ <section>
<title>XML SELECT Command Specific Functions</title>
<para>XML SELECT Command functions are resemble scalar functions,
but act as hints in the WHERE clause. These functions are only
valid in an XML SELECT Command.</para>
- <sect4 id="context_function">
+ <section id="context_function">
<title>Context Function</title>
<para>
<code>CONTEXT(arg1, arg2)</code>
@@ -180,8 +180,8 @@
</para>
</listitem>
</itemizedlist>
- </sect4>
- <sect4 id="rowlimit_function">
+ </section>
+ <section id="rowlimit_function">
<title>Rowlimit Function</title>
<para>
<code>ROWLIMIT(arg)</code>
@@ -204,8 +204,8 @@
a given context.</para>
</listitem>
</itemizedlist>
- </sect4>
- <sect4 id="rowlimitexception_function">
+ </section>
+ <section id="rowlimitexception_function">
<title>Rowlimitexception Function</title>
<para>Limits the rows processed for the given context and
throws an exception if the given number of rows is exceeded.
@@ -230,10 +230,10 @@
a given context.</para>
</listitem>
</itemizedlist>
- </sect4>
- </sect3>
- </sect2>
- <sect2 id="xml_order_by_clause">
+ </section>
+ </section>
+ </section>
+ <section id="xml_order_by_clause">
<title>ORDER BY Clause</title>
<para>The XML SELECT Command ORDER BY Clause specifies ordering
for the referenced mapping class queries.</para>
@@ -248,9 +248,9 @@
will be applied to their respective mapping classes.</para>
</listitem>
</itemizedlist>
- </sect2>
- </sect1>
- <sect1>
+ </section>
+ </section>
+ <section>
<title>Document Generation</title>
<para>Document generation starts with the root mapping class
and proceeds iteratively and hierarchically over all of the child
@@ -276,13 +276,13 @@
treated as independent mapping classes during planning and execution.
This allows for a more document centric approach to applying criteria
and order bys to mapping classes.</para>
- <sect2 id="document_validation">
+ <section id="document_validation">
<title>Document Validation</title>
<para>The execution property XMLValidation should be set to 'true'
to indicate that generated documents should be checked for
correctness. Correctness checking will not prevent invalid documents
from being generated, since correctness is checked after generation
and not during.</para>
- </sect2>
- </sect1>
+ </section>
+ </section>
</chapter>
\ No newline at end of file
14 years, 6 months