Configuration and Administration

glog.query Properties

To control the behavior of Oracle Transportation Management, you can change settings in the glog.properties file or the appropriate property set.

Property

New in Version

Description

glog.query.asDateColumns.
<table_name=column_name_1,column_name_2>

 

Indicates which columns should be treated as a date instead of a date/time when querying the system.

glog.query.hint.all=<SQL hint>

glog.query.hint.<fully-qualified query class name>=<SQL hint>

6.3

Allows you to optimize hints in SQL generated from query objects. The hints are added in a single /*+ ... */ clause immediately following the select identifier. Note that multiple hints are space-delimited.

Hints affect all ad-hoc finder queries and saved queries where USE_IN_FINDER='Y'. This can include business monitors, agent conditions, agent IF statements and any other user of saved queries. Note that ad-hoc finders always reflect the most current configuration of hints; saved queries reflect the configuration of hints when they were last updated to the database.

You can set global hints for use in every generated query, or hints for use with a specific query. To add a global hint, set the property:

  glog.query.hint.all=<SQL hint>

Note that <SQL hint> should not have the enclosing /*+ ... */ delimiters: these are added by the query generator. This property is multi-valued so multiple hints can be added by specifying the property multiple times.

To set a hint for a particular query class, set the property:

  glog.query.hint.<fully-qualified query class name>=<SQL hint>

This property is also multi-valued so multiple hints can be added by specifying the property multiple times. Note that the query class can be a superclass of the actual query. Thus,

glog.query.hint.glog.server.query.shipment.ShipmentQuery=CURSOR_SHARING_EXACT applies /*+ CURSOR_SHARING_EXACT */ to both BuyShipmentQuery and SellShipmentQuery.

When determining the hints for a particular query, the query generator uses the union of global and specific hints.

glog.query.joinSubqueryToParent

glog.query.joinSubqueryToParent.<query class name>=<subquery link field>

6.3

Implements additional where clauses in all subselects.

Default: false

You can control the optimization for specific query objects and fields by using a property of the form: glog.query.joinSubqueryToParent.<query class name>=<subquery link field>.

For example, to enable a parent back clause in the first shipment status query field, set: glog.query.joinSubqueryToParent.glog.server.query.shipment.ShipmentQuery = ss1ShipmentGid

glog.query.limit.<query name>

 

The following properties default to 100 for performance purposes.

glog.query.limit.glog.server.query.invoice.InvoiceLineitemQuery

glog.query.limit.glog.server.query.invoice.VoucherInvoiceLineitemJoinQuery

glog.query.limit.glog.server.query.order.OrderReleaseLineQuery

glog.query.limit.glog.server.query.order.ShipUnitLineQuery

glog.query.limit.glog.server.query.order.ShipUnitQuery

glog.query.limit.glog.server.query.orderbase.ObLineQuery

glog.query.limit.glog.server.query.orderbase.ObShipUnitQuery

glog.query.limit.glog.server.query.powerdata.DistanceLookupQuery

glog.query.limit.glog.server.query.powerdata.LeaseEquipmentQuery

glog.query.limit.glog.server.query.powerdata.RateZoneProfileDQuery

glog.query.limit.glog.server.query.powerdata.RegionDetailQuery

glog.query.limit.glog.server.query.rate.ServiceTimeQuery

glog.query.limit.glog.server.query.shipment.ShipmentStopDQuery

glog.query.limit.glog.server.query.shipment.SShipUnitLineQuery

glog.query.limit.glog.server.query.shipment.SShipUnitQuery

glog.query.limit.gtm.server.query.transaction.GtmTransactionLineQuery

  • The property glog.query.limit.gtm.server.query.content.GtmContentSetDQuery defaults to 2000. This sets the number of content set details records that will be displayed when you perform data loading.
  • The following properties apply checks on the number of lines/child lines displayed on transaction/transaction line, declaration/declaration line, and trade item structure:
    • glog.query.limit.gtm.server.query.structure.GtmStructureComponentQuer
    • glog.query.limit.gtm.server.query.transaction.GtmTransactionLineQueryDefault: 100
  • The property glog.query.limit.gtm.server.query.license.GtmProductGroupDCodeQuery defaults to 100. This sets the number of records that will be displayed in the Product Classification Group Codes section of the Product Classification Groups page. If the number of group codes associated with this group exceeds 100, then a link is provided to view all the group code records in the Product Classification Group Codes power data page.

 

If the results of the query contain more records than the number you indicate in the property, then the resulting page will have a button/link to display the results rather than display the results in a grid. This improves performance time for large queries.

For example, you set the property to glog.query.limit.glog.server.query.rate.ServiceTimeQuery = 50, and run that query. If the application finds more than 50 results, then the Service Time button is displayed rather than showing all the results in a grid. Clicking the button takes you to a power data screen where the data is displayed.

Note: It is recommended that you contact support before setting this property.

glog.query.limit.max

 

Sets the total number of records that should be returned when using a manager. By default, OTM limits all children (which show as grids in the UI) to 1000. This affects mostly edit and view screens, although other screens that rely on the same code will be affected.

glog.query.oneOrderBasePerShipmentOptimization

 

ShipmentOrderReleaseRecalc checks this property to see if the current domain is in the domain list or if the property value is (all). If it is, the related order base GID is set to primaryOrderBaseGid on the shipment. Otherwise, the primaryOrderBaseGid field is left empty.

The valid values are domain names separated by commas. It also can take "(all)" as its value. (don't forget () ). The default is "(all)", so, by default, shipment's primaryOrderBaseGid will be set to the related order base ID.

glog.query.optimizationDomainMax

6.3

Domain optimization does not apply if the number of domains for the GID query exceeds the value defined for this property.

glog.query.statusOptimizationDomainMax

 

The property controls how many domains will be included before the logic reverts to the same behavior as “none”.

glog.query.suppressJoin=<table>.<column>

6.3.1

Suppresses a join on a particular data column globally.

glog.query.suppressJoinByQuery = <query class>,<table>.<column>[,true|false]

6.3.1

Suppresses a join for a particular query, by setting this property where the <query class> is the full Java class name (with package) for the query or one of its superclasses; <table>.<column> is a lower-case specification of the child field in the join. The last parameter specifies whether the join should be suppressed or not. If you specify a join should be globally suppressed via glog.query.suppressJoin, you can selectively add it back in for specific queries by specifying false for the last parameter of suppressJoinByQuery.

glog.query.trackStatistics

6.3

If true, generated query performance is tracked. Tracking entails some overhead and may not be desired at all customers. Default: false. Note that QueryStatistics logging requires this property be true.

glog.query.trackStatistics.byUser=[true|false]

6.3

If true, groups are collected by user. This increases the number of groups.

Default: false

glog.query.trackStatistics.byValues=[true|false]

6.3

If true, groups are collected by criteria values. This increases the number of groups.

Default: false

glog.query.trackStatistics.maxStore=[# of groups]

6.3

Controls the maximum number of groups to store for diagnostics. The system maintains groups with the longest maximum execution time. Note that if a group is swapped out of the store, all cumulative information on that group is lost. This can skew the diagnostics if the group is subsequently added back in.

Default: 5000

glog.query.trackStatistics.maxValues=[number of values]

6.3

When storing and displaying criteria values, the diagnostic limits the number of values resulting from an IN or OR operation. An ellipsis (...) is used to show the user that the actual # of values was greater than those being displayed.

Default: 10

glog.query.trackStatistics.minTime=[duration]

6.3

Controls the execution time threshold for a query to be added to a group. Setting this above 0 seconds can skew query count and average execution time. Setting it too low may clutter the diagnostic screen.

Default: 10 seconds (note that the value is a glog.util.uom.data.Duration).

glog.query.trackStatistics.sql=[true|false]

6.3

If true, the SQL statement and bind values are stored with the longest query and available on the diagnostic screen. They are also included with QueryStatistics logging.

Default: false

glog.query.uom.baseWhereClauseCacheOnSubstring

21C

Optimize memory usage during parsing of SQL statements for Units of Measure caching by setting this property to false. This avoids excessive memory during parsing. To restore old behavior, set this property to true.

glog.query.uom.padding

 

In instances where there are differences in numeric precision values and the actual stored values, the ROUND function is used in Oracle Transportation Management. The default behavior for UOM values is to round to the precision value of the parameter being used for the query. This property is available to append zeros to the query parameter in order to expand the precision value.

Default: zero

glog.query.vpdOptimization.<query name>

 

This property adds the ability to suppress/change VPD optimization for one or more queries. The valid options are none, lite, active. Following is an example to suppress the optimization from stylesheet profile queries:

glog.query.vpdOptimization.glog.server.query.notify.StylesheetProfileQuery=none

This overrides the default behavior of glog.query.vpdOptimization.

glog.query.xidOptimization.<query class>.<query field>=<domain optimization>

6.3

Provides general support for domain-based status optimizations on any XID field. These optimizations are controlled by properties for each query field of the form:

  glog.query.xidOptimization.<query class>.<query field>=<domain optimization>

where:

  <query class> = the fully-qualified Java class name of the query

  <query field> = the Java member variable representing the Xid in the query

  <domain optimization> = the domain optimization to use

Domain optimizations include:

  1. none = no optimization
  2. currentDomain = the XID query is replaced by the parent GID query for the current domain. E.g. status_value.status_value_xid='ENROUTE_ENROUTE' becomes shipment_status.status_value_gid='MYDOMAIN.ENROUTE_ENROUTE'.
  3. childDomains = the XID query is replaced by the parent GID query for the current domain and all children.
  4. grantedDomains = the XID query is replaced by the parent GID query for the current domain and all domains granted to the current user.
  5. parentDomains[:stopAtDomain] = the XID query is replaced by the parent GID query for the current domain and all parent domains, including PUBLIC. If stopAtDomain is specified, the parent domain search stops at the specified domain. This is useful if GIDs are defined in a common parent, not PUBLIC.
  6. staticDomain:domain = the XID query is replaced by the parent GID query for the specified domain.

Note that the domain optimization only applies if:

  • the query operator is IS_NULL, NOT_NULL, EQUALS, NOT_EQUALS, IN or NOT_INT
  • the number of domains for the GID query does not exceed glog.query.optimizationDomainMax

Staged Optimizations

Optimizations have been staged for status values in the following queries: claim, consol, container group, document, invoice, job, order base, order base line, order base ship unit, order movement, order release, quote, schedule, sku, shipment, shipment group, and voucher.

Optimizations have been staged for shipment reference numbers, remarks, special services, transport mode, shipment type, service providers and involved parties (qualifier, contacts and locations).

For backward compatibility and simplicity, the following properties are used as macros to populate the staged optimizations:

  • glog.query.statusOptimization
  • glog.query.remarkOptimization
  • glog.query.refnumOptimization
  • glog.query.partyOptimization
  • glog.query.specialServiceOptimization
  • glog.query.transportModeOptimization
  • glog.query.shipmentTypeOptimization
  • glog.query.servprovOptimization

They all default to none. The idea here is to allow a customer to set a single property to optimize all status queries, or all remark queries. Only status queries are implemented across many tables.

Optimal performance is likely to be met when glog.query.statusOptimization=currentDomain and all the other glog.query optimization properties are set to parentDomain.

Note that the glog.query.XXOptimization properties are macros: they cannot be modified in the Properties Servlet and affect query generation. To modify query generation on the fly, you must modify the individual glog.query.xidOptimization properties.

Optimizing

By setting:

glog.query.xidOptimization=<domain optimization>

you can default to optimizing all fields ending in _xid. If a particular XID field needs special optimization, the glog.query.xidOptimization.<query name>.<field name> properties override the default. Note that, out of the box, all glog.query optimization properties default to $glog.query.xidOptimization$.

You can optimize using LIKE operators, such as Begins With, Contains, and Ends With.

All shipment reference number fields can be explicitly optimized.

The following properties are added in version 23A to optimize querying on the listed fields in Global Trade Management screens:

glog.query.xidOptimization.gtm.server.query.transaction.GtmTransactionQuery.rqRemarkQualXid: Used for Transaction Remark Qualifier on Transaction Finder

glog.query.xidOptimization.gtm.server.query.transaction.GtmTransactionQuery.gtrefqGtmTransRefnumQualXid: Used for Transaction Reference Number Qualifier on Transaction Finder 

glog.query.xidOptimization.gtm.server.query.transaction.GtmTransactionLineQuery.gtlremqRemarkQualXid: Used for Transaction Line Remark Qualifier on Transaction Line Finder 

glog.query.xidOptimization.gtm.server.query.transaction.GtmTransactionLineQuery.gtlrefqGtmTranslineRefnumQualXid: Used for Transaction Line Reference Number Qualifier on Transaction Line Finder

glog.query.xidOptimization.gtm.server.query.transaction.GtmTradeTransactionLineQuery.ipqgtlipInvolvedPartyQualXid: Used for Involved Party on Transaction Line and Declaration Line

Related Topics