5 Improving Unified Inventory Management Performance
This chapter describes ways to improve Oracle Communications Unified Inventory Management (UIM) performance.
Improving Performance of Searches That Include Characteristics
You can add characteristics to search criteria in UIM. For example, if your inventory includes Logical Device entities based on specifications that have a characteristic called Service Provider Name, you can add that characteristic to a logical device search. See UIM Concepts and UIM online Help for more information about adding characteristics to searches.
If you regularly include four or more characteristics in an entity search such as Telephone Number, Logical Device, or Place, you can change properties in the system-config.properties file to improve performance. You must also run scripts to support the database changes for this feature.
Caution:
Once you run these database scripts for the performance improvement, you cannot revert the system changes back to its original state. Also, if you enable this feature for individual entities, the SQL script content must be altered to address only those entities.
Making Changes to the system-config.properties File
You can change the setting for all entity types or for a selection of entity types.
To improve characteristic search performance and enable this feature:
-
Navigate to UIM_Home/config.
-
Open the system-config.properties file.
-
Set the inv.extendedCharSearchEnabled property to true.
-
Do one of the following:
-
To enable the extended search feature for all entity types, set the inv.extendedCharSearchEnabledForAll property to true.
-
To enable the extended search feature for a selection of entity types, set the inv.extendedCharSearchEnabledForAll property to false and add sequentially numbered properties for the entities you want. For example:
inv.extendedCharSearchEnabledEntities.1=TelephoneNumber inv.extendedCharSearchEnabledEntities.2=LogicalDevice inv.extendedCharSearchEnabledEntities.3=GeographicPlace
Note:
If you chose the option to specify one or more specific entities, some scripts need to be altered to apply changes only to the desired entities.
-
-
Save and close the system-config.properties file.
Making Changes to the Database Schema
To improve characteristic search performance, you must perform the following database changes:
-
Back up the UIM database. See "Database Backup and Restore" for more information.
-
Ensure that you have database modification level privileges.
-
Create two temporary directories, temp_dir and temp_dir_schema.
-
Download the UIM software for your operating system from the Oracle software delivery website and save it to temp_dir.
-
From the downloaded ZIP file, extract the ora_uim_dbtools.jar file into temp_dir_schema.
-
In the temp_dir_schema directory, open the ora_uim_dbtools.jar file and extract all the contents into temp_dir_schema. You can ignore the additional files in this jar. They are used in the upgrade process of the database.
-
The scripts for this feature default to enabling this feature for all entities. If you provided specific entities in the system-config.properties file, such as Logical Devices, you need to evaluate the contents of the following scripts and alter them to only apply to the entities you specified:
-
temp_dir_schema/sqlscripts/B23314430.sql
-
temp_dir_schema/sqlscripts/B23318206.sql
-
temp_dir_schema/sqlscripts/B23541213.sql
-
-
Open a command line window and login to SQL*Plus for the desired database. Run the following SQL scripts providing the full path of the files. For example, use the @scriptFileName command where scriptFileName is the full path and name of the file.
-
temp_dir_schema/procs/CREATE_CHAR_EXT_TABLE.sql
-
temp_dir_schema/sqlscripts/B23314430.sql
-
temp_dir_schema/sqlscripts/B23318206.sql
-
temp_dir_schema/sqlscripts/B23541213.sql
-
-
(Optional) To verify that these scripts ran successfully, you can verify that the UIM schema includes the following elements:
-
A table named CHARACTERTICS_TABLE_MAPPING
-
A procedure named CREATE_CHAR_EXT_TABLE
-
A trigger named ADD_CHAR_COLUMN_TRIGGER
-
Verifying Areas When this Feature is Enabled
There are a few area that you need to verify if this feature is enabled. Ensure you review the following areas if you reference characteristic tables directly:
-
Determine if there is any impact to custom database queries in custom code such as cartridges and web services.
-
Determine if there is any impact to areas where there is direct database access.
Configuring a Shared Index Directory
For muiltiserver deployment environments (including configurations for multiple single servers, administration/managed servers, and administration/clustered servers), you must deploy a common shared storage, such as a storage area network, for all UIM WebLogic application servers. Without a storage area network, results may vary on different servers because some servers may have different domains.
Changing the Logging Level
UIM is using log4j for the logging services. For details on log4j, refer to:
https://logging.apache.org/log4j/2.x/manual/
The logging level is defined in the loggingconfig.xml file.
The file is located in UIM_Home/config.
Appender Configuration
Three default appenders are supplied by default:
-
Stdout
Console Appender - used to log messages to the standard output
-
rollingFile
Rolling File Appender - used to log messages to the rolling file UIM_Home/logs/WebLogic_Name_uim.log
-
rebuildRollingFile
Rolling File Appender - used to log the rebuild topology messages to the rolling file UIM_Home/logs/WebLogic_Name_uim_rebuild.log
The following is an example of the layout of the appender log message:
%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%X{userName}] ["%X{requestSession}] [%c{1}] %m%n
where:
-
%d{yyyy-MM-dd HH:mm:ss,SSS}
is the Date in the format yyyy-MM-dd HH:mm:ss,SSS
-
%-5p
is the priority of the logging event
-
%X{userName}
is the user name associated with the thread that generated the logging event
-
%X{requestSession}
is the session ID associated with the thread that generated the logging event. Note that the requestSession is not included by default. The layout value needs to be modified to add the requestSession.
-
%c{1}
is the category of the logging event with the precision specifier (ie: the decimal constant in brackets). The precision specifier corresponds to the right most components of the category name. For example, for the category name oracle.communications.inventory.techpack.video.impl.VideoManagerImpl the pattern %c{1} outputs VideoManagerImpl.
-
%m
is the application supplied message associated with the logging event. For example: [INV-801005] No subscriber is associated to the service.
-
%n
is the platform dependent line separator character or characters
For all parameters, see:
This is a localized logging output message example:
2016-01-03 15:20:22,087 ERROR [uimuser1] [VideoManagerImpl] [INV-801005] No subscriber is associated to the service.
It is possible to filter the logging messages by the UIM user. To enable the UIM user filter, we need to add the following element to the default appender:
<ContextMapFilter onMatch="ACCEPT" onMismatch="NEUTRAL" operator="or"> <KeyValuePair key="userName" value=""/> </ContextMapFilter>
The filter is already available, but commented out, in the default appender. To enable the UIM user filter, we can uncomment the filter and add a value to the userName parameter. For example:
<ContextMapFilter onMatch="ACCEPT" onMismatch="NEUTRAL" operator="or"> <KeyValuePair key="userName" value="Justin"/> </ContextMapFilter>
We can list multiple users in the filter by repeating the param element. For example:
<ContextMapFilter onMatch="ACCEPT" onMismatch="NEUTRAL" operator="or"> <KeyValuePair key="userName" value="Lili-Mai"/> <KeyValuePair key="userName" value="Marilou"/> <KeyValuePair key="userName" value="Ramesh"/> </ContextMapFilter>
Logger Configuration
By default the root logger is set to error and logs the messages to the standard output and the UIM rolling file:
<Root level="error"> <AppenderRef ref="rollingFile"/> </Root>
Logger levels can be configured. The set of possible levels are (in the order message logging rank):
-
all: Lowest possible rank and is intended to turn on all logging
-
trace: Finer-grained informational events than the debug
-
debug: Fine-grained informational events that are most useful to debug an application
-
info: Informational messages that highlight the progress of the application at coarse-grained level
-
warn: Potentially harmful situations
-
error: Error events that might still allow the application to continue running
-
fatal: Very severe error events that presumably lead the application to abort
-
off: Highest possible rank and is intended to turn off logging
Several application loggers are also pre-configured in the loggingconfig.xml file. Additional ones may be added as needed. For example, if the root logger level is set to error, but we would like to set a UIM technology pack package logger level to debug, then we would add the following to the loggingconfig.xml:
<Logger name="oracle.communications.inventory.techpack" additivity="false" level="debug"> <AppenderRef ref="rollingFile"/> </Logger>
Note:
Appender Additivity
The output of a log statement of logger C goes to all the appenders in C and its ancestors. This is the meaning of the term appender additivity.
However, if an ancestor of logger C, say P, has the additivity flag set to false, then C's output is directed to all the appenders in C and its ancestors up to and including P but not the appenders in any of the ancestors of P.
Loggers have their additivity flag set to true by default.
Source: http://logging.apache.org/log4j/2.x/manual/index.html
Connecting debugger to UIM
Tip:
To enable debug logging for the UIM Ruleset Extension Point Framework, you can add the following to the loggingconfig.xml file:
<Logger name="RuleSetLogger" additivity="false" level="debug"> <AppenderRef ref="stdout"/> <AppenderRef ref="rollingFile"/> </Logger>
If you add the above, then you can comment out or remove the logger for oracle.communications.inventory.extensibility.rules.impl. It is redundant because debug level is enable on its parent package.
If we need to connect a debugger to the UIM WebLogic server, then we would need to edit the file Domain_Home/bin/setUIMEnv.sh and add the following string to the USER_MEM_ARGS variable:
"-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=1234,server=y,suspend=n -Djava.compiler=NONE"
Example 5-1 USER_MEM_ARGS Before the Change
USER_MEM_ARGS="-Xms1024m -Xmx3000m -Xmn850m -XX:MaxPermSize=1024m -Xrs -XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled"
Example 5-2 USER_MEM_ARGS After the Change
USER_MEM_ARGS="-Xms1024m -Xmx3000m -Xmn850m -XX:MaxPermSize=1024m -Xrs -XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=1234,server=y,suspend=n -Djava.compiler=NONE"
You can adjust the port by changing address=1234.
Enabling SQL and Other EclipseLink Logging
To enable SQL and other EclipseLink logging, perform the following:
-
Open a command window.
-
Navigate to the MW_Home/oracle_common/common/bin directory.
-
Start the WebLogic Scripting Tool (WLST) using the following command:
./wlst.sh
-
Connect to the server on which you want to change the logging level, use the following command:
connect(userid,password,'t3://hostname:port')
-
Go to Custom settings using the following command:
custom()
Note:
'custom()' can take a while to execute, approximately 5 minutes or more.
-
Go to TopLink using the following command:
cd('TopLink')
-
List the sessions at this level using the following command:
ls()
Note:
The following is an example of a TopLink session:
'TopLink:Name=Session(file/share/uimcluster/domains/clusterUim 720b1357/servers/uim_ms1/tmp/_WL_user/ oracle.communications.inventory/b0t675/APP-INF/lib/uim-entities.jar_default'
-
Copy the session and go to that session using the following command:
cd('session')
-
Change the EclipseLink logging level using the following command:
set('CurrentEclipseLinkLogLevel',newLevel)
EclipseLink provides nine logging levels, refer to Table 5-1 for a list of the different logging levels and a brief description of each.
Table 5-1 EclipseLink Logging Levels
Level Description OFF
This setting disables the generation of the log output. You may want to set logging to OFF during production to avoid the overhead of logging.
SEVERE
This level enables reporting of failure cases only. Usually, if the failure occurs, the application stops.
WARNING
This level enables logging of issues that have a potential to cause problems. For example, a setting that is picked by the application and not by the user.
INFO
This level enables the standard output. The contents of this output is very limited. It is the default logging level if a logging level is not set.
CONFIG
This level enables logging of such configuration details as your database login information and some metadata information. You may want to use the CONFIG log level at deployment time.
FINE
This level enables logging of the first level of the debugging information and SQL. You may want to use this log level during debugging and testing, but not at production.
FINER
This level enables logging of more debugging information than the FINE setting. For example, the transaction information is logged at this level. You may want to use this log level during debugging and testing, but not at production.
FINEST
This level enables logging of more debugging information than the FINER setting, such as a very detailed information about certain features (for example, sequencing). You may want to use this log level during debugging and testing, but not at production.
ALL
This level currently logs at the same level as FINEST.
-
To enable SQL logging use the following command:
set('CurrentEclipseLinkLogLevel','FINE')
Updating the System Configuration Files
You use files to control many aspects of UIM performance and configuration. These system configuration files are located in UIM_Home/config. Each file includes properties for which you can set values.
This section includes reference information and examples for the following configuration files:
-
config-reload.properties. See "Controlling Automatic Inventory Reloading".
-
consumer.properties. See "Controlling Entity Consumption".
-
inventoryBulkProcess.properties. See "Controlling Bulk Operations".
-
importEntity.properties. See "Defining Column Headers in Spreadsheets for Importing Entities".
-
inventoryImport.properties. See "Defining Column Headers in Spreadsheets for Importing Entities in Bulk".
-
reference.properties. See "Controlling Reference Properties".
-
ruleProcess.properties. See "Controlling the Work Manager".
-
system-config.properties. See "Setting System Properties".
-
timers.properties. See "Controlling System Timer Events".
-
telephoneNumberBulk.properties. See "Controlling Ported-In Telephone Number Consumption".
-
topologyProcess.properties. See "Controlling Topology".
-
outageReport.properties. See "Monitoring Outage Impacts".
Controlling Automatic Inventory Reloading
You use the config-reload.properties file to control automatic inventory reloading.
Table 5-2 lists and describes the properties in the file.
Table 5-2 Properties in the config-reload.properties file
Property | Description |
---|---|
inventory.auto.reload.enabled |
This property enables and disable the automatic reloading of system configuration properties. The default value is true. For example: inventory.auto.reload.enabled=true |
inventory.auto.reload.interval |
This property sets the reload interval in milliseconds. The default value is 3000 milliseconds. For example: inventory.auto.reload.interval=3000 |
Controlling Entity Consumption
You use the consumer.properties file to control entity consumption. The tn.* properties pertain to the telephone number aging process and the telephone number lifecycle process.
Table 5-3 lists and describes the properties in the consumer.properties file.
Table 5-3 Properties in the consumer.properties file
Property | Description |
---|---|
consumer.resourcesWithQuarantinePeriod.1 consumer.resourcesWithQuarantinePeriod.2 consumer.resourcesWithQuarantinePeriod.3 consumer.resourcesWithQuarantinePeriod.4 |
These properties assign the Quarantine Periods for the corresponding entities. For example: consumer.resourcesWithQuarantinePeriod.1= TelephoneNumber consumer.resourcesWithQuarantinePeriod.2= IPSubnet consumer.resourcesWithQuarantinePeriod.3= IPv4Address consumer.resourcesWithQuarantinePeriod.4= IPv6Address |
deleteReservation.batchsize |
This property controls the number of expired reservation records to be deleted for each execution of the Cleanup Expired Reservation timer process. The default value is 1000 records. For example: deleteReservation.batchSize=1000 |
tn.defaultDisconnectedStateExpiry |
This property controls the expiration period for transitioning telephone number assignment states from Disconnected to Transitional state. The default value is 30 days. For example: tn.defaultDisconnectedStateExpiry=30 |
tn.enableTNDeletion |
This property controls whether telephone numbers that are not consumed but were previously assigned to services can be deleted. When the property is absent (the default) or set to false, these telephone numbers cannot be deleted. When set to true, they can be deleted. For example: tn.enableTNDeletion= false |
tn.defaultTransitionalStateExpiry |
This property controls the expiration period for transitioning telephone number assignment states from Transitional to Unassigned. The default value is 30 days. For example: tn.defaultTransitionalStateExpiry=30 |
tn.portabilityCharacteristicName |
This property specifies the telephone number characteristic that is used in portability logic. The default value is tnType. For example: tn.portabilityCharacteristicName=tnType |
tn.recallTNSearchResultsLimit |
This property controls the number of telephone number assignment records selected for the TN Aging and Recall Timer process. The default value is 500. For example: tn.recallTNSearchResultsLimit=500 |
tn.winbackCharacteristicName |
This property specifies the telephone number characteristic used in winback (stealback) logic. The default value is winback. For example: tn.winbackCharacteristicName=winback |
tn.defaultTransitionalStateExpiryForSnapback |
This property specifies the aging period (for Transitional status) for a Ported telephone number in a snapback scenario. This value is the number of days it will remain in Transitional status before moving to Unassigned. The default value is 0. For example: tn.defaultTransitionalStateExpiryForSnapback=0 |
Controlling Bulk Operations
You use the inventoryBulkProcess.properties file to control the bulk operations in UIM.
Table 5-4 lists and describes the properties in the file.
Table 5-4 Properties in the inventoryBulkProcess.properties File
Property | Description |
---|---|
chunkSizeInThread |
This property defines the number of entities that you want processed in a thread bulk operation. A larger number of chunks per transaction means that fewer transactions are required to process the bulk operation. For example: chunkSizeInThread=50 |
chunkSizeInThreadForAddEdges |
This property defines the number of connectivity edges that you want to process in a thread in bulk operation. For example: chunkSizeInThreadForAddEdges=1 |
MANAGED_EXECUTOR_SERVICE_NAME |
This property setting is specifies the managed executor service name. For example: MANAGED_EXECUTOR_SERVICE_NAME=inventoryMES |
MANAGED_EXECUTOR_SERVICE_JNDI |
This property is a setting only for WebLogic. For example: MANAGED_EXECUTOR_SERVICE_JNDI=java:comp/env/inventoryMES |
Defining Column Headers in Spreadsheets for Importing Entities
You use the importEntity.properties files to specify entity information in column headers in spreadsheets that enable you to import entities into UIM to process telephone number bulk operations.
Example 5-3 shows the UIM_Home/config/importEntity.properties file, which defines column headers for the different spreadsheets that you use to import entities into UIM to process telephone number bulk operations.
Example 5-3 importEntity.properties File
#SHEET NAMES importentity.tn.sheetName=TelephoneNumber importentity.tnsa.sheetName=TNServiceAssignment importentity.sim.sheetName=SIM importentity.imsi.sheetName=IMSI importentity.simMapping.sheetName=SimMapping #TelephoneNumber SHEET COLUMN HEADERS importentity.tn.action=action importentity.tn.id=telephoneNumber importentity.tn.specification=specification importentity.tn.description=description importentity.tn.characteristic=characteristic #TNServiceAssignment SHEET COLUMN HEADERS importentity.tnsa.action=action importentity.tnsa.tnId=telephoneNumber importentity.tnsa.serviceSpecification=serviceSpecification importentity.tnsa.serviceName=serviceName importentity.tnsa.serviceConfigurationSpecification=serviceConfigurationSpecification importentity.tnsa.serviceDescription=serviceDescription importentity.tnsa.serviceCharacteristic=serviceCharacteristic #SIM SHEET COLUMN HEADERS importentity.sim.action=action importentity.sim.name=name importentity.sim.specification=specification importentity.sim.description=description importentity.sim.characteristic=characteristic importentity.sim.deviceIdentifier=deviceIdentifier importentity.sim.networkLocation=networkLocation #IMSI SHEET COLUMN HEADERS importentity.imsi.action=action importentity.imsi.name=name importentity.imsi.specification=specification importentity.imsi.description=description importentity.imsi.characteristic=characteristic importentity.imsi.simName=SIMName importentity.imsi.simId=SIMId #SimMapping SHEET COLUMN HEADERS importentity.simMapping.action=action importentity.simMapping.msisdn=MSISDN importentity.simMapping.simName=SIMName importentity.simMapping.imsiName=IMSIName #Specification for creating custom involvements between SIM and MSISDN importentity.simMapping.custInvSpecName=PreconfigureSpec #FileUpload content types importentity.fileUploadWhiteListMimeTypes=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Table 5-5 describes the columns defined for the TelephoneNumber spreadsheet in the importEntity.properties file.
Table 5-5 TelephoneNumber Spreadsheet Column Headers
Column Header | Description |
---|---|
action |
This column must have one of the following values:
|
telephoneNumber |
The telephone numbers that you want to create or transition. |
specification |
The Telephone Number specification. |
description |
When creating entities in bulk, all telephone numbers are created with the same name. Specifying a description is optional. |
characteristic |
Characteristic specifies the characteristic name/value pair per cell for the telephone number entities you are creating. You can specify any number of characteristics. |
Table 5-6 describes the columns defined for the TNServiceAssignment spreadsheet in the importEntity.properties file.
Table 5-6 TNServiceAssignment Spreadsheet Column Headers
Column Header | Description |
---|---|
action |
This column must have one of the following values:
|
telephoneNumber |
The telephone numbers that you want to create/transition and assign. |
serviceSpecification |
The Service specification used to create the services. |
serviceName |
The name of the service that you want to create. |
serviceConfigurationSpecification |
The Service Configuration specification used to create the service configurations. |
serviceDescription |
The description for the service. |
serviceCharacteristic |
Characteristic specifies the characteristic name/value pair per cell for the services you are creating. |
Table 5-7 describes the columns defined for the SIM spreadsheet in the importEntity.properties file.
Table 5-7 SIM Spreadsheet Column Headers
Column Header | Description |
---|---|
action |
This column must have the value CREATE. |
name |
The name of the SIM (represented by logical device) that you are creating. |
specification |
The specification used to create the SIM (logical device). |
description |
The description for the SIM. |
characteristic |
Characteristic specifies the characteristic name/value pair per cell for the SIM that you are creating. You can add any number of column headers named characteristic for specifying multiple characteristics. |
deviceIdentifier |
The device identifier of the SIM (logical device) associated with the network location. |
networkLocation |
The network location with which the SIM is associated. |
Table 5-8 describes the columns defined for the IMSI spreadsheet in the importEntity.properties file.
Table 5-8 IMSI Spreadsheet Column Headers
Column Header | Description |
---|---|
action |
This column must have the value CREATE. |
name |
The name of the IMSI (represented by logical device account) that you are creating. |
specification |
The specification used to create the IMSI (logical device account). |
description |
The description for the IMSI. |
characteristic |
Characteristic specifies the characteristic name/value pair per cell for the IMSI that you are creating. You can specify any number of characteristics. You can add any number of column headers named characteristic for specifying multiple characteristics. |
SIMName |
The name of the SIM (logical device) that manages the IMSI that you are creating. |
SIMId |
The ID of the SIM that manages the IMSI that you are creating. |
Table 5-9 describes the columns defined for the SimMapping spreadsheet in the importEntity.properties file.
Table 5-9 SimMapping Spreadsheet Column Headers
Column Header | Description |
---|---|
action |
This column must have the value ASSOCIATE. |
MSISDN |
Specify the MSIDN (represented by telephone number) that you want to associate with the SIM. |
SIMName |
Specify the name of the SIM (represented by logical device) that you want to associate with MSISDN and IMSI. |
IMSIName |
Specify the name of the IMSI (represented by logical device account) that you want to associate with the SIM. |
Defining Column Headers in Spreadsheets for Importing Entities in Bulk
You use the inventoryimport.properties files to specify entity information in column headers in spreadsheets that enable you to import entities into UIM to process the corresponding bulk operations.
Example 5-4 shows the UIM_Home/config/inventoryimport.properties file, which defines column headers for the different spreadsheets that you use to import entities into UIM to process the corresponding bulk operations. See Importing Inventory Entities in Bulk for descriptions on each worksheet and the corresponding column headers.
Example 5-4 inventoryimport.properties File
inventoryimport.con.diRowLockexpiryTime=30000 # SHEET NAMES inventoryimport.loc.sheetname=Locations inventoryimport.nec.sheetname=NetworkEntityCodes inventoryimport.place.sheetname=Places inventoryimport.assocPlace.sheetname=AssociatePlace inventoryimport.ld.sheetname=LogicalDevices inventoryimport.pd.sheetname=PhysicalDevices inventoryimport.eq.sheetname=Equipments inventoryimport.devicemapping.sheetname=DeviceMappings inventoryimport.device.sheetname=Devices inventoryimport.shelf.sheetname=InsertShelfs inventoryimport.card.sheetname=InsertCards inventoryimport.portmap.sheetname=PortMappings inventoryimport.con.sheetname=Connectivities inventoryimport.pipe.sheetname=Pipes inventoryimport.connPipeEn.sheetname=ConnectivityPipeEnablement inventoryimport.nw.sheetname=Networks inventoryimport.addcon.sheetname=AddConnectivityEdges inventoryimport.node.sheetname=NetworkNodes inventoryimport.edge.sheetname=NetworkEdges inventoryimport.tn.sheetname=TelephoneNumber inventoryimport.tnsa.sheetname=TNServiceAssignment inventoryimport.sim.sheetname=SIM inventoryimport.imsi.sheetname=IMSI inventoryimport.simmapping.sheetname=SimMapping #TelephoneNumber SHEET COLUMN HEADERS inventoryimport.tn.action=action inventoryimport.tn.id=telephoneNumber inventoryimport.tn.specification=specification inventoryimport.tn.description=description inventoryimport.tn.characteristic=characteristic #TNServiceAssignment SHEET COLUMN HEADERS inventoryimport.tnsa.action=action inventoryimport.tnsa.tnId=telephoneNumber inventoryimport.tnsa.serviceSpecification=serviceSpecification inventoryimport.tnsa.serviceName=serviceName inventoryimport.tnsa.serviceConfigurationSpecification=serviceConfigurationSpecification inventoryimport.tnsa.serviceDescription=serviceDescription inventoryimport.tnsa.serviceCharacteristic=serviceCharacteristic #SIM SHEET COLUMN HEADERS inventoryimport.sim.action=action inventoryimport.sim.name=name inventoryimport.sim.specification=specification inventoryimport.sim.description=description inventoryimport.sim.characteristic=characteristic inventoryimport.sim.deviceIdentifier=deviceIdentifier inventoryimport.sim.networkLocation=networkLocation #IMSI SHEET COLUMN HEADERS inventoryimport.imsi.action=action inventoryimport.imsi.name=name inventoryimport.imsi.specification=specification inventoryimport.imsi.description=description inventoryimport.imsi.characteristic=characteristic inventoryimport.imsi.simName=SIMName inventoryimport.imsi.simId=SIMId #SimMapping SHEET COLUMN HEADERS inventoryimport.simMapping.action=action inventoryimport.simMapping.msisdn=MSISDN inventoryimport.simMapping.simName=SIMName inventoryimport.simMapping.imsiName=IMSIName #LOCATION CREATION SHEET COLUMN HEADERS inventoryimport.loc.action=Action inventoryimport.loc.propertyname=PropertyName inventoryimport.loc.street=Street inventoryimport.loc.city=City inventoryimport.loc.state=State inventoryimport.loc.postalcode=PostalCode inventoryimport.loc.country=Country inventoryimport.loc.networklocationcode=NetworkLocationCode inventoryimport.loc.longitude=Longitude inventoryimport.loc.latitude=Latitude inventoryimport.loc.geocodeaddress=GeoCodeAddress inventoryimport.loc.isnetworklocation=IsNetworkLocation inventoryimport.loc.isservicelocation=IsServiceLocation #NETWORKENTITYCODE CREATION SHEET COLUMN HEADERS inventoryimport.nec.action=Action inventoryimport.nec.networklocationcode=NetworkLocationCode inventoryimport.nec.networkentitycode=NetworkEntityCode #PLACE HEADERS inventoryimport.place.action=Action inventoryimport.place.specification=Specification inventoryimport.place.placeType=PlaceType inventoryimport.place.name=Name inventoryimport.place.latitude=Latitude inventoryimport.place.longitude=Longitude inventoryimport.place.vertical=Vertical inventoryimport.place.horizontal=Horizontal inventoryimport.place.Address=Address inventoryimport.place.AddressRange=AddressRange inventoryimport.place.Location=Location inventoryimport.place.Site=Site inventoryimport.place.placeCharacteristic=PlaceCharacteristic #ASSOCIATE PLACE HEADERS inventoryimport.assocPlace.action=Action inventoryimport.assocPlace.placeName=PlaceName inventoryimport.assocPlace.placeType=PlaceType inventoryimport.assocPlace.entityType=EntityType inventoryimport.assocPlace.entityName=EntityName inventoryimport.assocPlace.Address=Address inventoryimport.assocPlace.AddressRange=AddressRange inventoryimport.assocPlace.Location=Location inventoryimport.assocPlace.Site=Site inventoryimport.assocPlace.EQUIPMENT=Equipment inventoryimport.assocPlace.LOGICAL_DEVICE= LogicalDevice inventoryimport.assocPlace.PHYSICAL_DEVICE= PhysicalDevice inventoryimport.assocPlace.PROPERTY_LOCATION= PropertyLocation #LOGICAL DEVICE COLUMN HEADERS inventoryimport.ld.action=Action inventoryimport.ld.name=Name inventoryimport.ld.specification=Specification inventoryimport.ld.networklocation=NetworkLocation inventoryimport.ld.networkentitycode=NetworkEntityCode inventoryimport.ld.deviceidentifier=DeviceIdentifier inventoryimport.ld.characteristic=LDcharacteristic #PHYSICAL DEVICE COLUMN HEADERS inventoryimport.pd.action=Action inventoryimport.pd.name=Name inventoryimport.pd.specification=Specification inventoryimport.pd.networklocation=NetworkLocation inventoryimport.pd.serialnumber=SerialNumber inventoryimport.pd.characteristic=PDcharacteristic #EQUIPMENT COLUMN HEADERS inventoryimport.eq.action=Action inventoryimport.eq.name=Name inventoryimport.eq.specification=Specification inventoryimport.eq.networklocation=NetworkLocation inventoryimport.eq.serialnumber=SerialNumber inventoryimport.eq.characteristic=EQcharacteristic #DEVICE MAPPING COLUMN HEADERS inventoryimport.devicemapping.physicaldevice=PhysicalDevice inventoryimport.devicemapping.logicaldevice=LogicalDevice inventoryimport.devicemapping.equipment=Equipment #DEVICE CREATION COLUMN HEADERS inventoryimport.device.action=Action inventoryimport.device.name=Name inventoryimport.device.deviceidentifier=DeviceIdentifier inventoryimport.device.logicaldevicespecification=LogicalDeviceSpecification inventoryimport.device.physicaldevicespecification=PhysicalDeviceSpecification inventoryimport.device.equipmentspecification=EquipmentSpecification inventoryimport.device.networklocation=NetworkLocation inventoryimport.device.networkentitycode=NetworkEntityCode inventoryimport.device.serialnumber=SerialNumber inventoryimport.device.macaddress=MACAddress inventoryimport.device.pdcharacteristic=PDcharacteristic inventoryimport.device.ldcharacteristic=LDcharacteristic inventoryimport.device.eqcharacteristic=EQcharacteristic #INSERT SHELF CREATION COLUMN HEADERS inventoryimport.shelf.action=Action inventoryimport.shelf.rackname=RackName inventoryimport.shelf.specification=ShelfSpecification inventoryimport.shelf.name=ShelfName inventoryimport.shelf.serialnumber=SerialNumber inventoryimport.shelf.characteristic=ShelfCharacteristic #INSERT CARD CREATION COLUMN HEADERS inventoryimport.card.action=Action inventoryimport.card.shelfname=ShelfName inventoryimport.card.specification=CardSpecification inventoryimport.card.slot=Slot inventoryimport.card.name=Name inventoryimport.card.abbreviation=Abbreviation inventoryimport.card.characteristic=CardCharacteristic #PORT MAPPINGS COLUMN HEADERS inventoryimport.portmap.action=Action inventoryimport.portmap.type=Type inventoryimport.portmap.name=Name inventoryimport.portmap.portspecification=PortSpecification inventoryimport.portmap.portname=PortName inventoryimport.portmap.interfacespecification=InterfaceSpecification inventoryimport.portmap.interfacename=InterfaceName inventoryimport.portmap.ldname=LogicalDeviceName #CONNECTIVTY CREATE COLUMN HEADERS inventoryimport.con.action=Action inventoryimport.con.technology=Technology inventoryimport.con.specification=Specification inventoryimport.con.format=Format inventoryimport.con.alocation=ALocation inventoryimport.con.zlocation=ZLocation inventoryimport.con.ratecode=RateCode inventoryimport.con.oversubscription=Oversubscription inventoryimport.con.function=Function inventoryimport.con.identifier=Identifier inventoryimport.con.characteristic=Concharacteristic inventoryimport.con.autotermination=AutoTermination inventoryimport.con.adevice=ADevice inventoryimport.con.zdevice=ZDevice inventoryimport.con.gapmessage=GapMessage #Additional UNI Connectivity Attributes inventoryimport.con.servicemultiplexing=ServiceMultiplexing inventoryimport.con.bundling=Bundling inventoryimport.con.alltoonebundling=AllToOneBundling inventoryimport.con.valanbased=VLANBased inventoryimport.con.maxpvncount=MaxPacketVirtualNetworkCount #Additional INNI Connectivity Attributes inventoryimport.con.internetwork=Internetwork #Additional ENNI Connectivity Attributes inventoryimport.con.otherserviceprovidername=OtherServiceProvider inventoryimport.con.otherproviderdemarcationpoint=OtherProviderDemarcationPoint inventoryimport.con.exprRateCode=ExpressToRateCode #PIPE CREATE COLUMN HEADERS inventoryimport.pipe.action=Action inventoryimport.pipe.specification=Specification inventoryimport.pipe.name=Name inventoryimport.pipe.autotermination=AutoTermination inventoryimport.pipe.medium=Medium inventoryimport.pipe.transmissionSignalType=TransmissionSignalType inventoryimport.pipe.parentPipe=ParentPipe inventoryimport.pipe.startingWavelength=StartingWavelength inventoryimport.pipe.startingFrequency=StartingFrequency inventoryimport.pipe.numOfChannels=NumOfChannels inventoryimport.pipe.aEntityType=AEntityType inventoryimport.pipe.zEntityType=ZEntityType inventoryimport.pipe.aEntityId=AEntityId inventoryimport.pipe.zEntityId=ZEntityId inventoryimport.pipe.aEntityName=AEntityName inventoryimport.pipe.zEntityName=ZEntityName inventoryimport.pipe.characteristic=Pipecharacteristic inventoryimport.pipe.EQUIPMENT=Equipment inventoryimport.pipe.LOGICAL_DEVICE= LogicalDevice inventoryimport.pipe.PHYSICAL_DEVICE= PhysicalDevice inventoryimport.pipe.DEVICE_INTERFACE= DeviceInterface inventoryimport.pipe.PHYSICAL_PORT= PhysicalPort #PIPE CONNECTIVITY ENABLE COLUMN HEADERS inventoryimport.connPipeEn.action=Action inventoryimport.connPipeEn.trailType=TrailType inventoryimport.connPipeEn.trailName=TrailName inventoryimport.connPipeEn.TDMFacility=TDMFacility inventoryimport.connPipeEn.pipe=Pipe inventoryimport.connPipeEn.connectivity=Connectivity # Network COLUMN HEADERS inventoryimport.nw.action=Action inventoryimport.nw.name=NetworkName inventoryimport.nw.specification=NetworkSpecification inventoryimport.nw.topology=Topology inventoryimport.nw.characteristic=NWCharacteristic # ADD Network NODES COLUMN HEADERS inventoryimport.node.action=Action inventoryimport.node.nwname=NetworkName inventoryimport.node.entitytype=EntityType inventoryimport.node.entityname=EntityName # Add Connectivity Edges to Network inventoryimport.addcon.action=Action inventoryimport.addcon.nwname=NetworkName inventoryimport.addcon.entitytype=EntityType inventoryimport.addcon.entityname=EntityName # ADD Network EDGES CUCOLUMN HEADERS inventoryimport.edge.action=Action inventoryimport.edge.nwname=NetworkName inventoryimport.edge.entitytype=EntityType inventoryimport.edge.entityname=EntityName inventoryimport.edge.fromnode=FromNode inventoryimport.edge.tonode=ToNode #Specification for creating custom involvements between SIM and MSISDN inventoryimport.simMapping.custInvSpecName=PreconfigureSpec #FileUpload content types inventoryimport.fileUploadWhiteListMimeTypes=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Controlling Reference Properties
You use the reference.properties file to control referenced properties.
Table 5-10 lists and describes the properties in the file. The properties are listed in order by entity type.
Table 5-10 Properties in the reference. properties file
Property | Description |
---|---|
AllowCancelReferencedBusinessInteraction |
This property controls the cancellation of referenced business interactions. The default value is true. For example: AllowCancelReferencedBusinessInteraction=true |
AllowDeactivateReferencedCustomNetworkAdrress |
This property controls the deactivation of referenced custom network addresses. The default value is false. For example: AllowDeactivateReferencedCustomNetworkAddress=false |
AllowDeactivateReferencedCustomObject |
This property controls the deactivation of referenced custom object property. The default value is false. For example: AllowDeactivateReferencedCustomObject=false |
AllowDeactivateReferencedEquipment |
This property controls the deactivation of referenced equipment. The default value is false. For example: AllowDeactivateReferencedEquipment=false |
AllowedDeactivateReferencedLogialDevice |
This property controls the deactivation of referenced logical devices. The default value is false. For example: AllowDeactivateReferencedLogicalDevice=false |
AllowDeactivateReferencedLogialDeviceAccount |
This property controls the deactivation of referenced logical device accounts. The default value is false. For example: AllowDeactivateReferencedLogicalDeviceAccount=false |
AllowDeactivateReferencedNetwork |
This property controls the deactivation of referenced networks. The default value is false. For example: AllowDeactivateReferencedNetwork=false |
AllowDeactivateReferencedPhysicalDevice |
This property controls the deactivation of referenced physical devices. The default value is false. For example: AllowDeactivateReferencedPhysicalDevice=false |
AllowDeactivateReferencedPipe |
This property controls the deactivation of referenced pipes. The default value is false. For example: AllowDeactivateReferencedPipe=false |
AllowSuspendReferencedService |
This property controls the suspension of referenced services. The default value is true. For example: AllowSuspendReferencedService=true |
AllowDisconnectReferencedService |
This property controls the disconnect of referenced services. The default value is true. For example: AllowDisconnectReferencedService=true |
AllowCancelReferencedService |
This property controls the cancellation of referenced services. The default value is true. For example: AllowCancelReferencedService=true |
AllowDeactivateReferencedTelephoneNumber |
This property controls the deactivation of referenced telephone numbers. The default value is false. For example: AllowDeactivateReferencedTelephoneNumber=false |
Controlling the Work Manager
You use the ruleProcess.properties file to control Work Manager. Work Manager is used to compile rulesets during cartridge compilation.
Table 5-11 lists and describes the properties in the file.
Table 5-11 Properties in the ruleProcess.properties File
Property | Description |
---|---|
WORK_MANAGER_JNDI |
This property applies only to WebLogic. For example: WORK_MANAGER_JNDI=java:comp/env/wm/ruleWorkManager |
timeOutSec |
This property sets the timeout in WorkManager during cartridge install. The default value is 10000 milliseconds. For example: timeOutSec=10000 |
Setting System Properties
You use the system-config.properties file to control system configuration properties.
Table 5-12 lists the system configuration properties in alphabetical order. Some related properties are grouped together out of order.
Table 5-12 Properties in the system-config.properties File
Property | Description |
---|---|
billofmaterial.currency |
This property determines the currency that is used in bills of material (BOMs) generated from engineering work orders, business interactions, and projects. The default values is USD (US dollar). Change the value to another ISO-standard currency abbreviation to specify that currency. For example, to use the Euro in BOMs: billofmaterial.currency=EUR See UIM Concepts for more information about BOMs. |
adminServerListenerPort adminServerListenerSSLPort |
These properties set the AdminServer ports. Setting the ports allow you to change the LDAP user password from UIM UI using the Change Password field under Administration section. The default value is 0 if nothing specified. |
businessInteraction.allowCancelWithCompletedChild |
This property controls whether a business interaction can be cancelled if it has completed children. For example: businessInteraction.allowCancelWithCompletedChild=false |
businessInteraction.allowCancelWithCompletedConfiguration |
This property controls whether a business interaction can be cancelled if it is associated to a completed configuration version. For example: businessInteraction.allowCancelWithCompletedConfiguration=false |
cmws.asynch.mode |
This property sets the cartridge deployment mode to either synchronous or asynchronous. The default value is true (asynchronous). For example: cmws.asynch.mode=true |
connectivity.capactityVariant |
Defines the percentage by which pipe capacity can vary from a rate code and still be validated successfully. The default value is 4. For example: connectivity.capacityVariant=4 |
connectivity.skipSameRateCodeValidationFor |
Skips certain rate codes for SameRateCode validation. For example: connectivity.skipSameRateCodeValidationFor=ODU4 |
createIPAddress.flushSize |
This property controls the number of IP Address entities to create before flushing transactions. Do not set the value of the property to a value greater than 500. For example: createIPAddress.flushSize=500 |
createIPSubnets.flushSize |
This property controls the number of IP Subnet entities to create before flushing transactions. Do not set the value of the property to a value greater than 500. For example: createIPSubnets.flushSize=500 |
createIPAddress.maxLimit |
This property controls the number of IP Address entities to create in one transaction. For example: createIPAddress.maxLimit=20000 |
createIPSubnets.maxLimit |
This property controls the number of IP Subnet entities to create in one transaction. For example: createIPSubnets.maxLimit=20000 |
createTN.flushSize |
This property controls the number of telephone number entities to create before calling the flush transaction. Do not set the createTN.flushSize property to a value greater than 500. The default value is 500. For example: createTN.flushSize=500 |
db.sequence.cacheSize |
This property sets the cache size for Oracle Sequence used for Auto ID generation. The default value is 75000. For example: db.sequence.cacheSize=75000 |
default.connectivity.color default.gap.color default.crossconnect.color default.jumper.color default.pipe.color selected.connectivity.patchcolor |
These properties control the colors used in the connectivity schematic view. Colors are expressed in standard RGB values. For example: default.connectivity.color=0,0,153 default.gap.color=165,165,165 default.crossconnect.color=0,204,255 default.jumper.color=84,141,212 default.pipe.color=165,165,165 selected.connectivity.patchcolor=0,175,0 |
domainName.1 domainName.2 |
This property sets the list of all domain names that are allowed. For example: domainName.1=oracle domainName.2=cloud.oracle |
eLocation.defaultCountry |
This property is used to select the default country in the Country drop-down list while creating a property location. You set the value to one of the two-character ISO country abbreviations listed in the country.properties file. For example, the following entry defines the default country as the US: eLocation.defaultCountry=US For detailed information about eLocation configuration, see UIM Developer's Guide. |
eLocation.URL |
This property defines the eLocation URL The default value is: eLocation.URL=http://eLocation.oracle.com/eLocation/lbs |
eLocation.matchMode |
This property determines the eLocation match mode. The default value is: eLocation.matchMode=Default See the eLocation documentation for more information about match mode. |
eLocation.http.proxyExists eLocation.http.proxyHost eLocation.http.proxyPort eLocation.http.proxyUser eLocation.http.proxyPassword |
UIM allows for a proxy server to be used to connect to the Oracle eLocation Service used for displaying base maps in UIM. If you connect to the eLocation through a proxy server, set eLocation.http.proxyExists to true, then set the other values based on the proxy server you are using. For example: eLocation.http.proxyExists=true eLocation.http.proxyHost=www-proxy.xyz.sample.com eLocation.http.proxyPort=80 eLocation.http.proxyUser=user eLocation.http.proxyPassword=password |
fiber.maxDWDMChannelsLimit fiber.maxCWDMChannelsLimit fiber.DWDMStartingFrequency fiber.DWDMMaxFrequencyLimit fiber.CWDMStartingWavelength fiber.CWDMMaxWavelengthLimit |
These properties control number of channels, frequency, and wavelength of the corresponding optical fiber. fiber.maxDWDMChannelsLimit=2 fiber.maxCWDMChannelsLimit=2 fiber.DWDMStartingFrequency=1270 fiber.DWDMMaxFrequencyLimit=1810 fiber.CWDMStartingWavelength=190.1 fiber.CWDMMaxWavelengthLimit=197.3 |
inv.extendedCharSearchEnabled inv.extendedCharSearchEnabledForAll inv.extendedCharSearchEnabledEntities |
These properties control the extended characteristic search feature. This feature improves performance for searches for entities that include characteristics. See "Improving Performance of Searches That Include Characteristics" for more information. |
ip.defaultTransitionalStateExpiry |
This property controls the number of days IP resources should be in the TRANSITIONAL state before moving to UNASSIGNED state. The default value is 30. For example: ip.defaultTransitionalStateExpiry=30 |
ipAddress |
This property specifies the possible ipv4/ipv6 initial pattern that are allowed. If 127.10. is specified, the system allows all ipv4 addresses starting 127.10.. For example: ipAddress=127.10. |
lockPolicy.defaultRowLockExpirationDuration |
This property sets the default row lock expiration duration for the entity. The value is defined in milli seconds. This value should be defined as that it should be less than or equal to transaction time out. The default value is 30000. For example: lockPolicy.defaultRowLockExpirationDuration=30000 |
lockPolicy.MaxSupportedRowLocks |
This property sets the default maximum number of entities to be row locked. This should be in sync with the maximum number or range. The default value is 100. For example: lockPolicy.MaxSupportedRowLocks=100 |
logfactory.logexactclass feedmessage.logexactlocation |
These properties control whether the exact location and class name are included in the log when an exception occurs. For example: logfactory.logexactclass=false feedmessage.logexactlocation=false |
logicalDevice.alertConsumptionPercent |
This property alerts when the consumption percentage is above or equal to the value you enter. The default value is 80. For example: logicalDevice.alertConsumptionPercent=80 |
logicalDevice.warnConsumptionPercent |
This property warns when the consumption percentage is above or equal to the value you enter. The default value is 60. For example: logicalDevice.warnConsumptionPercent=60 |
logicalDevice.alertConsumptionPercentColor |
This property displays the consumption percentage for alerts in the color you specify. The default value is #940000. For example: logicalDevice.alertConsumptionPercentColor=#940000 |
logicalDevice.warnConsumptionPercentColor |
This property displays the consumption percentage for warnings in the color you specify. The default value is #ff7300. For example: logicalDevice.warnConsumptionPercentColor=#ff7300 |
logicalDevice.alertConsumptionPercentTextColor |
This property displays the text in the consumption percentage alert in the color you specify. The default value is #ffffff. For example: logicalDevice.alertConsumptionPercentTextColor=#ffffff |
logicalDevice.warnConsumptionPercentTextColor |
This property displays the text in the consumption percentage warning in the color you specify. The default value is #000000. For example: logicalDevice.warnConsumptionPercentTextColor=#000000 |
topLevelDomainName.1 topLevelDomainName.2 |
This property sets the list of all top-level domain names that are allowed. For example: topLevelDomainName.1=.com topLevelDomainName.2=.co.uk |
securityViolationLoggingEnabled |
This property enables and disables security access violation logging. For example: securityViolationLoggingEnabled=true |
system.* |
These properties are used for setting system-specific settings: system.minDate=0 system.maxDate=2147483647000 system.lastModifiedDateThreshold=15 |
system.auth.debug |
This property is used to enable and disable system authentication when debugging. For example: system.auth.debug=false |
ui.custominvolvement.setDefaultSpec.name |
This property sets a default specification used when creating Custom Involvement entities. The property is commented out by default. To set a default Custom Involvement specification, uncomment the property and add a specification name. For example: ui.custominvolvement.setDefaultSpec.name = DefCustInv |
ui.lastSavedSearch |
This property enables or disables the last saved search. The default value is true. For example: ui.lastSavedSearch=true |
ui.ldsummary.portlets.disableCount |
This property disables the count that appears in the Total Results field in Logical Device Summary page portlets (sections). This property is commented out by default. To disable the count, uncomment the property set to true. For example: ui.ldsummary.portlets.disableCount=true |
ui.logicaldevicesummary.logicaldeviceaccountportlet.deactivate ui.logicaldevicesummary.rolesportlet.deactivate ui.logicaldevicesummary.mediaportlet.deactivate ui.logicaldevicesummary.biportlet.deactivate ui.logicaldevicesummary.networknodesportlet.deactivate ui.logicaldevicesummary.serviceportlet.deactivate |
These properties control whether particular portlets (sections) are displayed in Logical Device Summary pages. These properties are commented out by default. To deactivate a portlet, uncomment the relevant property. For example: ui.logicaldevicesummary.serviceportlet.deactivate=true |
ui.search.pageSize |
This property sets the number of rows shown in UIM search results pages. Search results are displayed one page at a time. When you scroll beyond the results in a page the next page is automatically retrieved from the database. The default value is 200. For example: ui.search.pageSize=200 |
ui.search.queryBehavior |
This property determines the query behavior. There are various choices presented to the system about how much data is queried from the database and whether the count is retrieved for the UI. Based on performance evaluations, one of the following values can be picked:
See "Changing the Query Behavior and Row Limit Parameters" for more information about these query behaviors, including the pros and cons to consider when using them. The default value is 6. For example: ui.search.queryBehavior=6 |
ui.search.queryLimit |
This property sets a limit to UIM query results. The default value is 10000, which indicates that a maximum of 10000 rows will be retrieved and displayed in the UIM query results. You can also set this property to -1, which indicates that no limit is applied to the query results. See "Changing the Query Behavior and Row Limit Parameters" for more information on how this query limit is used. For example: ui.search.queryLimit=10000 |
uim.attachment.ws.log.information.enabled |
This property controls logging for web service request attachments. The default value is false, which disables information logging for the attachment if the resource to be preconfigured is blocked or reserved. For example: uim.attachment.ws.log.information.enabled=false |
uim.cache.config.customization.enabled |
Automatically set to true if Eclipse Link cache configuration customization has been enabled. Caution: Do not change this setting manually. |
uim.characteristic.readonly.enabled |
This property is used for read-only characteristics. The default value is true, which validates for read only characteristics. Set the value to false to bypass the CharacteristicManagerImpl.validateReadOnly method. The default value is true. For example: uim.characteristic.readonly.enabled=true |
uim.characteristic.entitylink.rowlimit |
This property sets a limit for the number of rows returned by an entity link query. The default value is 500. uim.characteristic.entitylink.rowlimit=500 |
uim.characteristic.entitylink.executeQueryWithoutValues |
This property controls whether a child drop-down is populated if the parent is not present in entity-link search criteria. For example, the City characteristic is characteristics on the State characteristic. If this property is set to false and you add the City characteristic to the search criteria, the drop-down is empty because State is not included in the criteria. If the property is set to true, the drop-down includes all values for City, unconstrained by State values. uim.characteristic.entitylink.executeQueryWithoutValues=false |
uim.characteristic.entitylink.maxSuggestedItems |
This property sets the maximum number of suggested results when entity-link drop-down lists are also auto-suggest fields. For example: uim.characteristic.entitylink.maxSuggestedItems=25 |
uim.characteristic.dropdown.entitylink.width |
This property sets the width of the field in the UIM user interface for entity-link characteristic fields. For example: uim.characteristic.dropdown.entitylink.width=28 |
uim.characteristic.addCharacteristicsToResultsTable |
This property determines whether entity-link characteristics are included as columns in the search results. For example: uim.characteristic.addCharacteristicsToResultsTable=true |
uim.characteristic.entitylink.dropdown.includeID |
This property determines whether ID values are displayed in entity-link drop-down lists. For example: uim.characteristic.entitylink.dropdown.includeID=true |
uim.characteristic.p_wdType.mask |
This property avoids hard coding of the value for password type characteristic. For example: uim.characteristic.p_wdType.mask=****** |
uim.connectivityresultstable.pendingBiInfo.enable |
This property determines whether connectivities in pending business interactions are displayed in connectivity search results. The default value is true. uim.connectivityresultstable.pendingBiInfo.enable = true |
uim.default.paging.query.hint |
This property defines a a default query hint that is used to improve performance of the finder APIs when invoked from Web Services. When a search query is fired from a web service without a SearchPolicy, then the API sets this default query hint. For example: uim.default.paging.query.hint=FIRST_ROWS(25) |
uim.defaultSenderEmail |
This property sets the default email id of the sender, for email notifications. |
uim.entity.autoCreateDefaultVersion |
This property controls the creation of default configuration versions for Service entities. If this property is enabled, and if there is only a single specification option for the service, a version is created during service creation. The default value is false. For example: uim.entity.autoCreateDefaultVersion=false |
uim.entity.autoCreateDefaultVersion |
This property controls whether a service configuration version is created automatically when you create a Service entity. This behavior applies only when the Service specification is associated to one and only one service configuration specification. The default value is false. For example, to enable the creation of a default service configuration version when you create a service: uim.entity.autoCreateDefaultVersion=true For more information, see UIM Concepts. |
uim.disable.entity.event.listeners |
This property enables and disables entity-level listeners. The default value is true, which disables the event listeners. To enable event listeners, set this property value to false. For example: uim.disable.entity.event.listeners=true |
uim.entity.maxCreateRange |
This property controls the maximum number of entities that can be created at once for entities that allow bulk creation. The default value is 10000. For example: uim.entity.maxCreateRange=10000 |
uim.entity.flushTriggerBufferSize |
This property defines the number of entities created in memory for bulk entity creation. The default value is 1000, which is equal to the EclipseLink batch writing size as defined in the poms.properties file. The value determines the number of persistent entities held in memory before being persisted to the database. The value should be less than or equal to the batch writing size. For example: uim.entity.flushTriggerBufferSize=1000 |
uim.entityNameSearch.operators |
This property enables you to choose which search operators should be displayed in the search page for the following entities:
You can set the following values for this property:
For example, if you want only the EQUALS search operator to be displayed in the Service Search page, set this property as follows: uim.serviceSearch.operators=EQUALS Similarly, if you want both the EQUALS and CONTAINS operators displayed in the Physical Device Search page, set this property as follows: uim.physicalDeviceSearch.operators=EQUALS, CONTAINS |
ui.entityNamesummary.portletName.deactivate |
This property enables you to personalize entity Summary pages by specifying the portlet name and the name of the entity Summary page within which you want to show or hide the portlet. For example, to hide the Roles portlet in the Party Summary page, set this property as follows: ui.partysummary.rolesportlet.deactivate=true This property setting is not user-specific, but applies to all the UIM users. |
uim.flowidentifier.id.delimiter |
This property defines the delimiter to be used while concatenating the domain name to the identifier value while building the ID of a flow identifier. The default value is #. For example: uim.flowidentifier.id.delimiter= |
uim.host.* |
These properties are added to provide server host and port information to support UIM notification functionality. For example, to set the host name and port for the URL in notifications: uim.host.name=uimserver uim.host.port=7001 See UIM Developer's Guide for more information about properties for UIM notifications. |
uim.mpcenabled |
This property determines whether multiple pending configuration functionality is enabled or not. The default value is true. For example, to disable this functionality, set this property to false: uim.mpcenabled=false See UIM Concepts Guide for more information about multiple pending configuration functionality. |
uim.query.cache.hint.entitylist |
This property adds the RESULTS_CACHE hint to queries involving entities. For example: uim.query.cache.hint.entitylist=CharacteristicSpecUsageDAO |
uim.query.MaxSearchResults |
This property sets a limit on the number of entities retrieved for a search. The default value is -1, which sets no limit; search result pages display all retrieved entities (unless a range is explicitly set on the finder). For example: uim.query.MaxSearchResults=-1 |
uim.rest.dateFormat |
This property sets the default date format to ISO8601 standard data format. Any changes need the application to restart and the date format should be compatible with SimpleDateFormat. The default value is yyyy-MM-dd'T'HH:mm:ss.SSS'Z'. For example: uim.rest.dateFormat=yyyy-MM-dd'T'HH:mm:ss.SSS'Z' |
uim.rest.limitRange |
This property sets the default limit to 200, if the limit is not specified in the URL. Value of this should be <=10000. For example: uim.rest.limitRange=200 |
uim.rest.includeTotalCount |
This property is used for pagination and it can be disabled for better performance. The default value is true. For example: uim.rest.includeTotalCount=true |
uim.rest.logicalDevice.category uim.rest.telephoneNumber.category uim.rest.service.category |
These properties set names for the Category fields of the corresponding specifications. You can set a generic category name for all the specifications. For example: uim.rest.logicalDevice.category=category uim.rest.telephoneNumber.category=category uim.rest.service.category=category If the category name is different for each specification, include separate properties for each specification. For example: uim.rest.logicalDevice.BATLDSpec.category=ldcategory |
uim.rest.service.relationshipPrefix uim.rest.service.relationshipTypePrefix |
These properties set names for the service relationships. For example: uim.rest.service.relationshipPrefix=serviceRel uim.rest.service.relationshipTypePrefix=serviceRelType |
uim.security.filter.enabled |
This property sets security access to allow for the configuring of partitions. For example: uim.security.filter.enabled=false |
uim.serverName uim.serverPort |
These properties set server name and port for triggering email notifications, when the request comes from a web service. |
uim.serverAccessProtocol |
This property sets the server access protocol. The valid values are http and https. The default value is https. For example: uim.serverAccessProtocol=https |
uim.supportedImageExtensions |
This property defines the image extensions that are allowed. The default values are gif, png, bmp, dib, jpg, jpeg, jpe, jfif, tif, tiff, heic, and svg. For example: uim.supportedImageExtensions=gif,png,bmp,dib,jpg,jpeg,jpe,jfif,tif,tiff,heic,svg |
uim.telephonenumber.validation.leadingzeros.included |
This property controls validation settings for creating telephone numbers with leading zeros. Setting the property to false (the default setting) means that leading zeroes are stripped before checking for duplicate numbers. Setting the property to true allows leading zeroes. For example: uim.telephonenumber.validation.leadingzeros.included=false |
uim.telephonenumber.search.invGroup.enable |
This property determines whether inventory groups are included in telephone number search results. The default value is true. For example: uim.telephonenumber.search.invGroup.enable=true |
uim.ui.equipment.search.level |
This property filters equipment results based on the child hierarchy level. You can set this value to any desired equipment hierarchy level. For example: uim.ui.equipment.search.level=2 |
uim.ui.hierarchyTrailColor uim.ui.hierarchyTrailStyle uim.ui.hierarchyInterconnectionColor uim.ui.hierarchyInterconnectionStyle uim.ui.hierarchyConnectivityExpandedColor uim.ui.hierarchyPipeExpandedColor uim.ui.hierarchyConnectivityExpandedStyle uim.ui.hierarchyPipeExpandedStyle uim.ui.hierarchyGapColor uim.ui.hierarchyGapStyle |
These properties assigns the style and color parameters that can be customized. The available values for style are solid, dot, dash, and dashDot. For color, you can choose any color in the CSS format. For example: uim.ui.hierarchyTrailColor=Blue uim.ui.hierarchyTrailStyle=Solid uim.ui.hierarchyInterconnectionColor=Blue uim.ui.hierarchyInterconnectionStyle=Solid uim.ui.hierarchyConnectivityExpandedColor=Green uim.ui.hierarchyPipeExpandedColor=Green uim.ui.hierarchyConnectivityExpandedStyle=solid uim.ui.hierarchyPipeExpandedStyle=solid uim.ui.hierarchyGapColor=Red uim.ui.hierarchyGapStyle=dash |
uim.ui.propertyLocation.displayInfo |
This property displays the Property Name as DisplayInfo instead of the default display information. The default value is false. For example: uim.ui.propertyLocation.displayInfo=false |
uim.ui.propertyLocation.renderCity |
This property is defined to not render the City field in the Property Location pages. The default value is true. For example: uim.ui.propertyLocation.renderCity=true To disable the field, set the value to false. |
uim.ui.propertyLocation.renderState |
This property is defined to not render the State field in the Property Location pages. The default value is true. For example: uim.ui.propertyLocation.renderState=true To disable the field, set the value to false. |
uim.ui.propertyLocation.renderCountry |
This property is defined to not render the Country field in the Property Location pages. The default value is true. For example: uim.ui.propertyLocation.renderCountry=true To disable the field, set the value to false. |
uim.default.autosuggest.rowlimit uim.default.autosuggest.disable |
These properties control the behavior of auto-suggest in UIM. You can disable auto-suggest and set a limit for the number of rows it displays. For example: uim.default.autosuggest.rowlimit=20 uim.default.autosuggest.disable=false |
uim.networkentitycode.maxlength uim.networklocation.code.minlength uim.networklocation.code.maxlength uim.networkentitylocation.code.delimiter.enabled uim.propertylocation.name.maxlength uim.propertylocation.name.delimiter poms.cache.coordination.enabled |
The following properties are used for setting Property Location settings: uim.networkentitycode.maxlength=10 uim.propertylocation.name.maxlength=255 uim.networklocation.code.minlength=3 uim.networklocation.code.maxlength=20 uim.networkentitylocation.code.delimiter.enabled=true uim.propertylocation.name.delimiter= poms.cache.coordination.enabled=false |
uim.ws.search.query.range |
This property sets the default maximum number of entities returned for the findEntity web service operation. This maximum can also be specified for a specific entity. The default value is 1000, if this property isn't specified, and the minimum value is 10. For example: uim.ws.search.query.range=100 |
uim.ws.entityName.search.query.range |
This property sets the default maximum number of records returned for the findEntity web service operation for a specific entity. This maximum can also be specified for all entities. The default value is 1000 and the minimum value is 10. For example: uim.ws.telephonenumber.search.query.range=100 |
groom.items.per.transaction |
This property defines the number of riders having COMPLETED pipe configuration versions that are to be processed per transaction. The default value is 5. For example: groom.items.per.transaction=5 |
system.exception.writableStackTrace |
This property is used to reduce CPU usage. For example: system.exception.writableStackTrace=false |
ws.includeEntityFromAssignment |
This property determines whether to include the entity in web service requests from an assignment or reference. The default value is false. ws.includeEntityFromAssignment=false |
workflow.defaultUserSpecification.<user1> |
This property sets the default Engineering Work Order page. There can be multiple users and every user can optionally set their own default value from the Multiple Workflow template, in the properties file. For example: workflow.defaultUserSpecification.<user1> = <defaultWorkflowTemplateName> workflow.defaultUserSpecification.<user2> = <defaultWorkflowTemplateName> |
Controlling System Timer Events
You use the timers.properties file to control system timer events.
Each timer can be defined by five properties:
-
firstTime: The first time to call the listener. If it is specified as relative time (without ":"), such as 600 (in seconds), then the listener is called 10 minutes after the system is started. If it is specified as absolute time, such as 12:00:00(noon), or 23:00:00(11PM), then the listener is called at the specified time after the system is started.
If it is specified as "onTheHour", then the listener is executed on the next hour (for example 08:00:00) after the system is started (for example 07:28:34).
The default is 60 seconds in relative time.
-
period: After the listener is called the first time, the number of seconds between repeating expiration intervals. The listener is called when the timer expires.
The default is 600 seconds.
-
fixedRate: This is not used.
-
listener: The listener's class name. The listener's timerExpired (Timer timer) method is executed when the timer expired.
There is no default. This property must be specified.
-
cluster: The flag indicates whether this timer is cluster aware. If it is set to true, then there is only one instance of this timer running in the cluster. If it is set to false, then each server has this timer instance running locally. The default value is true.
You normally use the default value for all timers except clusterTimeMonitor, which should be run individually on every server in a cluster.
The properties for the timers.properties file are:
Table 5-13 Properties in the timers.properties file
Property | Description |
---|---|
cleanReservation |
This property controls the timer for cleaning up expired reservations. There should be only one instance of this timer in the cluster. For example: cleanReservation.firstTime=600 cleanReservation.period=600 cleanReservation.listener=oracle.communications.inventory.api.consumer.impl.ReservationManagerImpl |
clusterTimerMonitor |
This property controls the timer that monitors whether the current server that manages the cluster-aware timers is still alive. This timer should be running on every server in the cluster. For example: clusterTimerMonitor.firstTime=10 clusterTimerMonitor.period=10 clusterTimerMonitor.listener=oracle.communications.inventory.api.framework.timer.TimerController clusterTimerMonitor.cluster=false |
customTimer |
This property controls a timer for custom extensions. There should be only one instance of this timer in the cluster. For example: customTimer.firstTime=300 customTimer.period=600 customTimer.listener=oracle.communications.inventory.api.common.TimeoutEventListener |
ipAddressAging |
This property controls a timer for recalling disconnected IP resources. For example: ipAddressAging.firstTime=600 ipAddressAging.period=600 ipAddressAging.listener=oracle.communications.inventory.api.ip.IPResourceTimerListener |
outageAging |
This property controls a timer that reloads the Outage tables automatically. These timer values are commented by default. And therefore, you can uncomment and set the corresponding values to reload the Outage tables automatically. For example: #outageAging.firstTime=0 #outageAging.period=0 #outageAging.listener=oracle Note: You can manually reload the Outage reports using the Reload Outage Tables option from the UIM application. |
rowLockExpiration |
This controls the timer for cleaning up expired entity row locks. For example: rowLockExpiration.firstTime=120 rowLockExpiration.period=600 rowLockExpiration.listener=oracle.communications.inventory.api.common.impl.RowLockExpiryTimerListener |
telephoneNumberAging |
This property controls a timer for recalling disconnected telephone numbers. For example: telephoneNumberAging.firstTime=600 telephoneNumberAging.period=600 telephoneNumberAging.listener=oracle.communications.inventory.api.number.TelephoneNumberHelper For more information on telephone number aging and telephone number life cycles, see UIM Concepts. |
Controlling Ported-In Telephone Number Consumption
You use the telephoneNumberBulk.properties file to control the consumption of the ported-in telephone numbers.
Table 5-14 lists and describes the properties in the telephoneNumberBulk.properties file.
Table 5-14 Properties in the telephoneNumberBulk.properties file
Property | Description |
---|---|
tn.import.fileUploadWhiteListMimeTypes |
This property validates the MIME type of the spreadsheet file that you are uploading. For example: tn.import.fileUploadWhiteListMimeTypes=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
tn.import.portin.reason |
This property specifies the reason for porting in the telephone numbers. For example: tn.import.portin.reason=Reservation for portin number |
tn.import.portin.reservationType |
This property specifies the duration of the validity for ported-in telephone number. For example: tn.import.portin.reservationType=SHORTTERM |
tn.import.portin.reservedFor |
This property specifies the person who is making the reservation for the ported-in telephone number. For example: tn.import.portin.reservedFor=portedIn user |
tn.import.portin.reservedForType |
This property specifies the type of entity or process for which the ported-in telephone number reservation is made. For example: tn.import.portin.reservedForType=CUSTOMER |
tn.import.portin.quarantinePeriod |
Ported-in telephone numbers are subject to a quarantine period (in days). After the telephone numbers are ported in, the telephone numbers are reserved and quarantined, which means that those ported-in telephone numbers cannot be assigned to a service until the quarantine period is completed. This property controls the quarantine period for ported-in telephone numbers. For example: tn.import.portin.quarantinePeriod=10 |
tn.import.portin.serviceConifgItemNameForTN |
This property specifies the name of the service configuration item configured for the telephone number entity. For example: tn.import.portin.serviceConifgItemNameForTN=TelephoneNumber |
Controlling Topology
You use the topologyProcess.properties file to control how topology is managed in UIM.
Table 5-15 lists and describes the properties in the file.
Table 5-15 Properties in the topologyProcess.properties file
Property | Description |
---|---|
disableTopology |
This property turns topology refresh On or Off. The default value is false. For example: disableTopology=false |
processSynchronous |
This property refreshes the topology as part of the transaction (true) or asynchronously in a separate transaction (false). The default value is true. For example: processSynchronous=true |
mapperClass |
This property defines the class that maps the business model to the topology. For example: mapperClass=oracle.communications.inventory.api.topology.mapper.impl.TopologyMapperImpl |
WORK_MANAGER_CLASS WORK_MANAGER_NAME WORK_MANAGER_THREADS |
These properties are no longer used. |
WORK_MANAGER_JNDI |
This property is a setting only for WebLogic. For example: WORK_MANAGER_JNDI=java:comp/env/wm/TopologyWorkManager |
defaultBaseMap defaultApplicationDatasource defaultMapTileServerUrl defaultMapCopyright |
These properties define set map profile settings. These are the default settings: defaultBaseMap=ELOCATION_MAP defaultApplicationDatasource=UIMDATA defaultMapTileServerUrl=http://elocation.oracle.com/mapviewer/mcserver defaultMapCopyright=Copyright \u00a9 2007, 2020 Oracle Corp If you use a third-party geocoding service, change these values. See "Configuring a Geocode Service" for more information. |
MapViewerUrl |
This property specifies the map viewer URL if it is running in a separate domain. To specify the URL, enter the URL in the following format: mapviewerUrl=http://hostname:port/mapviewer |
simpleLinearMode simpleLinearModeMaxCycles continueProcessingIndicator |
These properties control various aspects of path analysis processing. See UIM Developer's Guide for information about the purpose of these properties. These are the default values: simpleLinearMode=false simpleLinearModeMaxCycles=5 continueProcessingIndicator=true |
rebuildChunkSize |
This property defines the number of topology objects in the topology rebuild chunk size. A larger number of chunks per transaction means that fewer transactions are required to rebuild the topology. For example: topology.rebuildChunkSize=100 |
Monitoring Outage Impacts
You use outageReport.properties file to control the outage reports. Outage report provides the list of outages happened.
Note:
If you set any property value as False, the report does not include the corresponding information.Table 5-16 lists and describes the properties in the file.
Table 5-16 Properties in the outageReport.properties File
Property | Description |
---|---|
outagereport.display.pipe_entity_id outagereport.display.pipe_id outagereport.display.pipe_name |
These properties set the Pipe information in the outage report. For example: outagereport.display.pipe_entity_id=true outagereport.display.pipe_id=true outagereport.display.pipe_name=true |
outagereport.display.a.place outagereport.display.a.coordinates outagereport.display.a.device outagereport.display.a.parentdevice |
These properties set the A side information of the pipe or connectivity in the outage report. For example: outagereport.display.a.place=true outagereport.display.a.coordinates=true outagereport.display.a.device=true outagereport.display.a.parentdevice=true |
outagereport.display.z.place outagereport.display.z.coordinates outagereport.display.z.device outagereport.display.z.parentdevice |
These properties set the Z side information of the pipe or connectivity in the outage report. For example: outagereport.display.z.place=true outagereport.display.z.coordinates=true outagereport.display.z.device=true outagereport.display.z.parentdevice=true |
outagereport.display.capacity |
These properties set the Capacity information in the outage report. For example: outagereport.display.capacity=true |
outagereport.display.service_entity_id outagereport.display.service_id outagereport.display.service_name |
These properties set the Service information in the outage report. For example: outagereport.display.service_entity_id=true outagereport.display.service_id=true outagereport.display.service_name=true |
outagereport.display.lda_entity_id outagereport.display.lda_id outagereport.display.lda_name |
These properties set the Logical Device information in the outage report. For example: outagereport.display.lda_entity_id=true outagereport.display.lda_id=true outagereport.display.lda_name=true |
outagereport.display.customer |
These properties set the customer information in the outage report. For example: outagereport.display.customer=true |
outagereport.display.email |
These properties set the Email information in the outage report. For example: outagereport.display.email=true |
outagereport.display.contact |
These properties set the contact information in the outage report. For example: outagereport.display.contact=true |
Setting Timeout Values for UIM
The WebLogic server supports distributed transactions, which are transactions that update multiple resource managers, such as an application server and a database, in a single transaction. This guarantees data integrity by ensuring that transactional updates are either committed or rolled back in all of the participating databases.
This section explains how to set transaction timeouts for the Oracle database and JTA. In general, the JTA timeout should be less than or equal to the Oracle database timeout:
JTA timeout <= database timeout
Oracle recommends setting the transaction timeouts to 1800
seconds.
Setting the Oracle Database Timeout
The DISTRIBUTED_LOCK_TIMEOUT
is a parameter of the database. There are two ways to change this parameter. You can use Oracle Enterprise Manager or use sql.
To change the DISTRIBUTED_LOCK_TIMEOUT
parameter using sql:
-
Open SQL Plus.
-
Connect to the database.
-
Enter:
'alter system set distributed_lock_timeout=1800 scope=spfile'
The default value for this parameter is 60 seconds, but Oracle recommends setting this parameter to 1800 seconds.
Note:
Oracle recommends setting the database timeout value higher than the XA transaction timeout value. Otherwise, in-doubt table locks can occur on the database side before the WebLogic server JTA or JDBC XA can close the transaction.
-
Exit SQL Plus.
Setting the JTA Timeout
You specify how long a transaction can remain in the Active state until the transaction is rolled back by using the WebLogic server administration console.
To set the JTA timeout value:
-
Log in to the WebLogic server administration console at:
http://
ServerName:
PortNumber
/console
-
Click Lock & Edit.
-
In the Domain Structure tree, expand Services, and then click JTA.
The Settings for Domain_Name pane appears.
-
Update the value in the Timeout Seconds field and then click Save.
-
Click Activate Changes.
Changing the Query Behavior and Row Limit Parameters
The query behavior and row limit parameters are defined in the system-config.properties file.
The file is located in the UIM_Home/config/system-config.properties.
This example shows the default options:
ui.search.queryLimit=10000 ui.search.queryBehavior=6 ui.search.pageSize=200
The queryLimit parameter adds the rownum clause to the search query unless it is a -1 value, which indicates that no limit is applied. The pageSize parameter is for pagination on the search results page in the UI.
Table 5-17 describes the options available for the Query Behavior and Row Limit parameters.
Table 5-17 Query Behavior and Row Limit Parameters
Behavior (option #) | Row Limit | Count | Scrolling |
---|---|---|---|
FULL_COUNT_FULL_QUERY (1) |
N/A |
The exact count is displayed. |
User can scroll through the entire result set. |
NO_COUNT_FULL_QUERY (2) |
N/A |
Not displayed. |
User can scroll through the entire result set. |
LIMIT_COUNT_FULL_QUERY (3) |
Used for count only |
If total count < row limit, then total count is displayed, else the following is displayed: Total count: row limit (Limit Reached) |
User can scroll the results up to the row limit. |
LIMIT_COUNT_LIMIT_QUERY (4) |
Used for count and query |
If total count < row limit, then total count is displayed, else the following is displayed: Total count: row limit (Limit Reached) |
User can scroll the results up to the row limit. |
NO_COUNT_LIMIT_QUERY (5) |
Used for query only |
Not displayed. |
User can scroll the results up to the row limit. |
FULL_COUNT_LIMIT_QUERY (6) |
Used for query only |
The exact count is displayed. |
User can scroll the results up to the row limit. |
To change the Query Behavior and Row Limit parameters, perform the following:
-
Open a command window.
-
Navigate to the UIM_Home/config/system-config.properties file.
-
Open the system-config.properties file and scroll down to the ui.search.queryLimit, ui.search.queryBehavior and ui.search.pageSize entries.
-
Change the parameters as required, to meet the specific needs of your deployment.
Refer to Table 5-18 for a description of the pros and cons of the parameter options.
-
Save and close the system-config.properties file.
Table 5-18 Parameter Options Pros and Cons
Behavior | Advantages | Disadvantages |
---|---|---|
FULL_COUNT_FULL_QUERY(1) |
You know the exact count of rows satisfying the criteria. You can scroll through the entire result set. |
If the user does not give meaningful criteria, and the number of rows matching the criteria is large, it may take a while to calculate the count. If the database is not tuned correctly, sorting the entire data set may take a while. |
NO_COUNT_FULL_QUERY(2) |
The query for finding the total count is not performed. So it helps the performance of the pages. |
Usability of the page is not as good. The scrollbar in the page is not representative of the number of rows satisfying the data and so user never knows how much he needs to scroll. If the database is not tuned correctly, sorting the entire data set may take a while. |
LIMIT_COUNT_FULL_QUERY(3) |
If the criteria is meaningful, and the number of rows satisfying the criteria is less than the row limit, there is no difference in the results brought back and usability of the pages compared to Behavior (1) or Behavior (4). Better performance compared to Behavior (1), as the count query is limited. Results are more accurate compared to Behavior (4). |
User cannot scroll to the rows past the row limit. |
LIMIT_COUNT_LIMIT_QUERY(4) |
If the criteria is meaningful, and the number of rows satisfying the criteria is less than the row limit, there is no difference in the results brought back and usability of the pages compared to Behavior (1) or Behavior (3). Better performance compared to Behavior (1), as the count query is limited. Better performance compared to Behavior (3), as the query is limited. |
User cannot scroll to the rows past the row limit. If the number of rows matching the criteria is more than the row limit, the row limit is applied before the ordering, so the first rows displayed may not be the first in the sort order of the entire dataset. |
NO_COUNT_LIMIT_QUERY (5) |
The query for finding the total count is not performed. This helps the performance of the pages. And the number of rows queried is limited. Better performance compared to Behavior (2), as the query is limited. |
User cannot scroll to the rows past the row limit. If the number of rows matching the criteria is more than the row limit, the row limit is applied before the ordering, so the first rows displayed may not be the first in the sort order of the entire dataset. |
FULL_COUNT_LIMIT_QUERY(6) |
You know the exact count of rows satisfying the criteria. Better performance compared to Behavior (1), as the query is limited. |
If the user does not give meaningful criteria, and the number of rows matching the criteria is large, it may take a while to calculate the count. User cannot scroll to the rows past the row limit. If the number of rows matching the criteria is more than the row limit, the row limit is applied before the ordering, so the first rows displayed may not be the first in the sort order of the entire dataset. |
Disabling Sorting for Selected Entities
By default sorting entities in UIM is enabled and entities are ordered by their identifier or ID. In calling APIs, you can set a value in the InventorySearchCriteria interface to disable sorting for selected entities. The method to disable sorting is setDisableOrdering() and you set the value to true. The default value is set to false. You can disable ordering on the following selected entities:
-
Logical Devices
-
Physical Devices
-
Services
By disabling the sorting, you can improve the performance of the entity retrievals. See the UIM Javadoc for more detailed information on the InventorySearchCriteria interface.
Using Hints for Improving Performance in Querying
By default including conditions and reservation are included in an entity query. In calling APIs, you can set query hints in the InventorySearchCriteria interface to disable these being included which can improve performance. The method to add hints on the search criteria is the addHint() method and you set the hint type and the value to true. You can add hints for the following:
-
EXCLUDE_CONDITIONS_IN_UNASSIGNED_QUERY
-
EXCLUDE_RESERVATIONS_IN_UNASSIGNED_QUERY
Example 5-5 shows sample code using the addHint() method on the LogicalDeviceSearchCriteria class. The LogicalDeviceSearchCriteria class extends InventorySearchCriteria interface.
Example 5-5 Sample Code Using the addHint Method on InventorySearchCriteria
LogicalDevice ld = null; Collection<CriteriaItem> criteriaItems = new ArrayList<CriteriaItem>(); LogicalDeviceManager ldManager = PersistenceHelper.makeLogicalDeviceManager(); LogicalDeviceSearchCriteria ldCriteria = ldManager.makeLogicalDeviceSearchCriteria(); LogicalDeviceSpecification ldSpec = (LogicalDeviceSpecification) findAndValidateSpecification(specName); if (ldSpec != null) ldCriteria.setLogicalDeviceSpecification(ldSpec); ldCriteria.setAssignmentState(AssignmentState.UNASSIGNED); ldCriteria.setDistinct(true); ldCriteria.setDisableOrdering(true); ldCriteria.addHint( InventorySearchCriteriaHints.EXCLUDE_CONDITIONS_IN_UNASSIGNED_QUERY, "true"); ldCriteria.addHint( InventorySearchCriteriaHints.EXCLUDE_RESERVATIONS_IN_UNASSIGNED_QUERY, "true"); List<LogicalDevice> ldList = ldManager.findLogicalDevice(ldCriteria);
By adding these hints to the query criteria, any existing conditions or reservations are excluded from the query. Using these hints you can improve the performance of the retrievals. See the UIM Javadoc for more detailed information on the InventorySearchCriteria interface and the LogicalDeviceSearchCriteria class.