Red Hat Training

A Red Hat training course is available for Red Hat JBoss Data Virtualization

10.10. System Properties

Some behavior can be configured via system properties, rather than configuration files. A typical place to set system properties for JBoss Data Virtualization is in the EAP_HOME/bin/standalone.conf. A property setting has the format -Dproperty=value.

Table 10.1. System Properties

Setting Description Default Value
org.teiid.allowNanInfinity Set to true to allow numeric functions to return NaN (Not A Number) and +-Infinity. Note that these values are not covered by the SQL specification. Defaults to false.
org.teiid.useValueCache Set to true to enable the canonical value cache. Value caching is used dynamically when buffer memory is running low to reuse identical values, reducing the memory consumed by JBoss Data Virtualization. However, there is a computation cost associated with the cache lookup, so enabling this setting is not appropriate for installations handling large volumes of dissimilar data. Defaults to false.
org.teiid.ansiQuotedIdentifiers Set to false to emulate prior behavior of treating double quoted values without leading identifier parts as string literals, which is not expected by the SQL specification. Defaults to true.
org.teiid.subqueryUnnestDefault Set to true to aggressively unnest subquery IN and EXISTS predicates. If possible, the predicate will be unnested to a traditional join and will be eligible for dependent join planning. If a traditional join is not possible (such as with NOT IN) a merge join version of the semijoin or antijoin will be considered based upon the costing information available. Defaults to false.
org.teiid.ODBCPacketSize Target size in bytes of the ODBC results buffer. This is not a hard maximum, LOBS and wide rows may use larger buffers. Defaults to 307200.
org.teiid.decimalAsDouble Set to true to parse exact fixed point literals (for example, 1.0) as double values rather than as decimal/BigDecimal values and to return a double value from the AVG function for integral values in the same way as previous versions. Defaults to false.
org.teiid.comparableLobs Set to true to allow BLOB and CLOB column values to be comparable in JBoss Data Virtualization. Source type metadata will determine if the comparison can be pushed down. Defaults to false.
org.teiid.comparableObject Set to true to allow object column values to be comparable in JBoss Data Virtualization. Source type metadata will determine if the comparison can be pushed down. The object instances are expected to correctly implement java.lang.Comparable.compareTo. If the instance object is not Comparable, then ClassCastExceptions may the thrown. Defaults to false.
org.teiid.padSpace Set to true to compare strings as if PAD SPACE collation is being used. This means strings will be right padded to the same length for comparison. If this property is set, it is not necessary to use the trimStrings translator option. Defaults to false.
org.teiid.collationLocale Set to a Java locale string language[_country[_varient]], where language, country, and variant are two letter codes - see java.util.Locale for more on valid codes. Note that even if org.teiid.comparableLobs is set, CLOB values will not be compared using the locale collator. Not set by default, which means that Java's natural (UTF-16) string comparison will be used.
org.teiid.clientVdbLoadTimeoutMillis The default amount of time a client (currently only local clients) will wait to make a connection to an active VDB before throwing an exception. Clients may override this setting via the waitForLoad connection property. Defaults to 5 minutes.
org.teiid.enDateNames Set to true to use English month and day names for the system function dayName and monthName, rather than returning names from the Java default locale. Prior to this release, dayName and monthName always returned English names. Defaults to false.
org.teiid.pushdownDefaultNullOrder Set to true to mimic prior release behavior of pushing the default null order of nulls low if the source has a different default null order and supports explicit null ordering. Defaults to false.
org.teiid.implicitMultiSourceJoin Set to false to disable prior release behavior of implicitly partitioning joins between multi-source tables. When set to false an explicit predicate such as tbl1.source_name = tbl2.source_name is required to partition the results of the join. Defaults to true.
org.teiid.joinPrefetchBatches Sets the number of batches that can be pre-fetched/buffered for join processing that may otherwise be streamed from the source. Consider increasing when you have slow ALREADY_SORTED sources participating in a non-dependent join that return significantly more batches. Note however that increasing this value can lead to an increase in disk utilization to perform the buffering. Defaults to 10.
org.teiid.maxStringLength Sets the nominal maximum length of strings in JBoss Data Virtualization. Most operations will truncate strings that are larger than this value. Setting this value can also adjust the maximum size of LOB bytes held in memory. Note that sources may not appropriately handle string values that are larger than what the source supports.

Warning

Strings are held entirely in memory. Do not set this value too high as you may experience out of memory errors.
Defaults to 4000.
org.teiid.calendarTimestampDiff Set to false to use the timestampdiff behaviour from previous versions. Note that using the old behavior can result in differing results between pushed and non-pushed versions of timestampdiff for intervals greater than seconds. This is because sources use the date part and not approximate interval differences. Defaults to true
org.teiid.widenComparisonToString This defaults to false. Set to true to enable widening of values to string in comparisons, (which was the default behavior earlier releases). For example, with this set to false, a timestamp_col < 'a' will produce an exception whereas when it is set to true it evaluates cast(timestamp_col as string) < `a'. Defaults to false.
The following properties are provided for PostgreSQL compatibility.

Table 10.2. System Properties for PostgreSQL Compatibility

Setting Description Default Value
org.teiid.iso8601Week Set to true to use ISO 8601 rules for week calculations regardless of the locale. When set to true, the dayOfWeek function will begin with 1 for MONDAY rather than SUNDAY, and the week function will require that week 1 of a year contains the year's first Thursday. Defaults to false.
org.teiid.backslashDefaultMatchEscape Set to true to use '\' as the default escape character for LIKE and SIMILAR TO predicates when no escape is specified. Otherwise JBoss Data Virtualization assumes the SQL specification compliant behavior of treating each non-wildcard character as an exact match character. Defaults to false.
org.teiid.honorDeclareFetchTxn When set to false, the wrapping begin/commit of a UseDeclareFetch cursor will be ignored as Red Hat JBoss Data Virtualization does not require a transaction. Defaults to false.
org.teiid.maxSessionBufferSizeEstimate Set this to your desired size in bytes in order to limit the amount of buffer resources (heap and disk) consumed by a single session’s tuple buffers and table structures. (This is based upon the memory footprint estimate and may not correspond exactly to heap or disk consumption.) 2^63 - 1
org.teiid.pgVersion This is the value that is reported by the server_version function. "PostgreSQL 8.2"

Note

These properties for PostgreSQL compatibility affect JBoss Data Virtualization globally, not just through the ODBC transport.