Version History:
Version# | Date | Modified By | Description of Modification |
---|---|---|---|
0.1 | 3/19/2015 | Sailaja Adusumilli | This page provides description of each property in CONNECT gateway.properties. |
1.0 | 3/15/2016 | Minh-Hai Nguyen | Update DirectTest Flag field |
1.1 | 1/4/2018 | Tabassum Jafri | Updated UDDI properties |
Overview
The gateway.properties configuration file is used to modify configurable CONNECT functions and components. Note that all properties are pre-populated when CONNECT is deployed. Adopters can edit property values as needed but should avoid setting the value to null or deleting the property altogether. The only property values that cannot be changed are the passthrough properties (they can be uncommented to set the gateway to function in passthrough mode).
Before deployment, the gateway.properties file can be found in the \CONNECT\Product\Production\Common\Properties\src\main\resources directory. This file must remain in the same NHIN configuration directory as the other CONNECT NHIN configuration files regardless where they are copied to during deployment/production.
Important note regarding UDDIConnectionInfo.xml and internalConnectionInfo.xml
As of CONNECT 5.1, both files have been replaced with the more versatile exchangeInfo.xml and internalExchangeInfo.xml files. For users of CONNECT 5.0 and earlier versions, substitute references to these new files with the original uddiConnectionInfo.xml and internalConnectionInfo.xml files
Request Object Identifier for your Gateway
Each gateway has a unique identifier known as the Object Identifier (OID) or Home Community ID (HCID). Organizations that exchange information need to be uniquely identifiable.
Many groups use the Health Level 7 (HL7) OID website to obtain an OID. Visit http://www.hl7.org/oid/index.cfm to obtain an OID.
An adopter can then enter this ID as the "Home Community Id" in the gateway property file.
Parameters Table
The table below lists gateway property settings and their usage in CONNECT. Included description of each property, usage and post update.
Property Name | Brief Description | Usage Details |
---|---|---|
localHomeCommunityId | The actual home community OID for the system using this instance of CONNECT | Required: This property requires a value for proper/stable gateway behavior Format : urn:oid:<home community OID> Pre-configured value: urn:oid:1.1 (must be changed) System usage: localHomeCommunityId is used to identify the Gateway and its local services endpoints from internalExchangeInfo.xml and exchangeInfo.xml files. HomeCommunityMap will read the "localhomecommunityid" key value from the gateway.properties. localHomeCommunityId is one of the mandatory parameter in all the underlying connect services (PD,DQ,DR and DS) to process Gateway request and send the response to the requested localHomeCommunityId. This value is not stored in the database, if this is not provided correctly the Gateway will not function as expected. |
localDeviceId | The device ID of this CONNECT instance, used for Patient Discovery | R |
patientDiscoveryResponseMode | Determines how patient correlation is performed during a patient discovery transaction | Required: This property requires a value for proper/stable gateway behavior Acceptable values: verify, trust, passthrough Pre-configured value: verify System Usage: The Patient Discovery Service Specifications gives NHIEs the choice of trusting the Patient Discovery response or verifying that they agree that the response is a match. The mode configuration is handled using patientDiscoveryResponseMode property. These modes were introduced to help CONNECT adopters deal with the possibility of receiving false positive matches to patient demographic queries. ResponseFactory object will read the property value from the gateway properties file, based on the mode value, it checks whether the patient exists locally are not and then establishes the correlations. ResponseModeType is used in StandardInboundPatientDiscoveryDeferredResponse object to process the response. This value is not stored in the database. The possible values are: verify: This mode of response indicates to the responding gateway to verify the match before agreeing on the match and creating a patient correlation. trust: This mode does not require the responding gateway to verify the match, but instead creates a patient correlation directly based on the responding message. passthrough: The responding gateway sends the message directly to the agency without creating any patient correlation. |
| Note: In CONNECT 5.1, this property is replaced by url and type in ExchangeInfo
| |
UDDIBusinessesToIgnore | Contains a list of UDDI Service Registry services, separated by semicolons, that should be ignored as they are not real connections | Required: This property requires a value for proper/stable gateway behavior Format: <service1>;<service2> Pre-configured value: uddi:replication:findbusiness;uddi:replication:findmodels;uddi:nhinregistry:node System Usage: UDDI will send a list of business entities that should ignore. These are configured in UDDIBusniessesToIgnore property and will be used to eliminate some of the entries got back from the UDDI server. UDDIAccessor object is used to read the UDDIBusinessesToIgnore property value and it is used to eliminate from the UDDI business list. This property value is not stored in the database. |
Note: In CONNECT 5.1, this property is replaced by disabled in ExchangeInfo
| ||
Note: In CONNECT 5.1, this property is replaced by refreshInterval in ExchangeInfo
| ||
| Note: In CONNECT 5.1, this property is replaced by maxNumberOfBackups in ExchangeInfo
| |
Note: In CONNECT 5.1, this property is replaced by maxNumberOfBackups in ExchangeInfo
| ||
UDDIMaxResults | The maximum Number of UDDI entries to retrieve from the NHIN UDDI Service Registry | Required: This property requires a value for proper/stable gateway behavior. Format: Integer Pre-configured value: 200 System Usage: UDDIMaxResults property provide the ability to configure number of results returned in a UDDI query. UDDIFindBusinessProxyBase object reads the property value to return maxresults value. The maxresults value used in findBusinessfromUDDI() function to return list of businesses from UDDI after finding the business services. If there is no value specified, then it is default to unlimited results. |
UDDI.TLS | The TLS version to use to attempt connections to an UDDI server | Not required Acceptable values: TLSv1, TLSv1.1, TLSv1.2 (and other TLS versions supported by the application server) Pre-configured valule: TLSv1 |
FHIR.TLS | The TLS version to use to attempt connections to a FHIR directory server | Not required Acceptable values: TLSv1, TLSv1.1, TLSv1.2 (and other TLS versions supported by the application server) Pre-configured valule: TLSv1.2 |
InternalConnectionRefreshDuration | Refresh of internal connection information in seconds. | |
InternalConnectionRefreshKeepBackups | Backup of internal connection info files | Acceptable values: True or False |
PdpEntityName | Determines which PDP the Policy Engine will use | Required: This property requires a value for proper/stable gateway behavior. Acceptable values: ConnectOpenSSO, jericho Pre-configured value: ConnectOpenSSO System Usage: PdpEntityName property provides information about which PDP the policy engine will use. AdapterPDPProxyOpenSSOClientImpl object will read this property selection value from the gateway properties file and it is used in processing the PDPRequest. It is only used by Consumer Preferences. |
webserviceproxy.timeout | The amount of idle time, in milliseconds, that is allowed to elapse before a web service call will timeout | Required: This property requires a value for proper/stable gateway behavior. Format: Integer ( time value in milliseconds) Pre-configured value: 120000 System Usage: webserviceproxy.timeout property provides a specific time value when a web service call will timeout if there is no activity. TimeoutServiceEndpointDecorator retrieve the property value and it is one of the value used in configuring the service endpoint. WebServiceProxyHelperProperties retrieve the property value, and this class is instantiated in WebServiceProxyHelper which is used as a helper in each of the Web Service Proxies. |
webserviceproxy.retryattempts | The number of times CONNECT will retry a web service call if an exception occurs | Required: This property requires a value for proper/stable gateway behavior. Format: Integer Pre-configured value: 2 System Usage: webserviceproxy.retryattempts provides information about how many times a web service call should retry if an exception occurs. If there is no value passed from the configuration then the default value 0 will be used. WebServiceProxyHelperProperties get the property value, and this value is being used in WebServiceProxyHelper to invoke operation on port. If the operation is success then it returns web service response, otherwise null response will be returned. |
webserviceproxy.retrydelay | The amount of time delay, in milliseconds, between web service call retries | Required: This property requires a value for proper/stable gateway behavior. Format: Integer (time value in milliseconds) Pre-configured value: 30000 System Usage: webserviceproxy.retrydelay property specifies a wait time for web service proxy class before it attempts to make another web service call. WebServiceProxyHelperProperties object retrieve the retry delay setting value from property file, and this value is being used in invoking port operations. |
webserviceproxy.exceptionstext | The text message to display to users when a web service timeout exception occurs | Required: This property requires a value for proper/stable gateway behavior. Format: String Pre-configured value: SocketTimeoutException System Usage: webserviceproxy.exceptionstext specifies the text to look for when a web service exception occurs during a web service call. WebServiceProxyHelperProperties retrieves the property value and this text is used to scan for in the exception. This text value allows the exceptions to be considered for web service call retry which is configured in webserviceproxy.retryattempts property. |
NOTE: This property is no longer supported in CONNECT release 4.0 and later, instead webserviceproxy.timeout property value is used. | ||
NOTE: This property is no longer supported in CONNECT release 4.0 and later, Instead webserviceproxy.timeout property value is used. | ||
purposeForUseEnabled | Determines whether or not the SAML header will include <purposeForUse> or <purposeOfUse> attribute | Required: This property requires a value for proper/stable gateway behavior. Acceptable values: true, false Pre-configured value: false System Usage: purposeForUseEnabled is a boolean flag which is used to determine whether to enable purseFor / purseOf setting for backward compatibility. PurposeUseProxyDefaultImpl class gets the purposeForUseEnabled property value and it is being utilized by PurposeOfForDecider object to decide whether to use purposeFor are purposeOf based on apilevel, hcid and Nhin spec service name. Setting this value to "true" causes CONNECT to use <purposeForUse> |
hl7PrefixForAttributes | Determines whether or not "hl7" will be prefixed to the PurposeOfUse and Role attributes | Required: This property requires a value for proper/stable gateway behavior. Acceptable values: true, false Pre-configured value: false System Usage: hl7PrefixForAttributes is a boolean flag and it is used to configure SAML assertion for HL7 attributes (Code, CodeSystemName and DisplayName) used in the PurposeOfUse and Role elements. OpenSAML2ComponentBuilder object gets the property value from gateway.properties file and it is used in createHL7Attribute() function to check weather to add HL7 prefix are not for SAML attributes. |
DeferredQueueProcessActive | Determines whether or not messages will be stored in the asyncmsgs.asynmsgrepo database for asynchronous responses | Required: This property requires a value for proper/stable gateway behavior. Acceptable values: true, false Pre-configured value: false System Usage: DefferedQueueProcessActive is a boolean flag and it indicates whether the service is enabled are disabled for deferred queue message processing. Deffered request goes out and the responses might come and anytime later. Deferred queue message processing is used to match the response with the request that is used. All deferred messages are stored in Asyn table with messageID, servicename etc.,. Once the response is received the row gets deleted from the table. DeferredQueueTimerTask class gets the property value from gateway.properties file, and if the flag value is enabled then the outstanding deferred queue request messages get processed. It is added with CONNECT 3.2. |
DeferredQueueRefreshDuration | The amount of time, in milliseconds, the Deferred Queue Process will sleep between executions | Required: This property requires a value for proper/stable gateway behavior. Format: Integer (time value in milliseconds) Pre-configured value: 600 System Usage: DeferredQueueRefreshDuration specifies refresh time in seconds that the service will sleep between executions. DeferredQueueTimer class gets the property value from the gateway.properties file and the value is used by this thread class to start a timer and when it wakes up will process any deferred queue request messages. DeferredQueueTimer thread will throw an initializing error if the property value is less than "0". |
DeferredQueueGlobalThreshold | The maximum number of deferred queue records to process | Required: This property requires a value for proper/stable gateway behavior. Format: Integer Pre-configured value: 100 System Usage: DeferredQueueGlobalThreshold specifies maximum size of deferred queue to process during a single execution. DeferredQueueManagerHelper class get the property value and it is set as global threshold value for defferred queue while processing the deferred request messages. DeferredQueueManageHelper classes checks whether this property value is less than "0" are not, if it is, then it will throw an error while setting it as global threshold value. |
asyncDbRecExpValue | The amount of time messages will persist in the deferred queue before they expire (time unit defined in asyncDbRecExpUnits property below) | Required: This property requires a value for proper/stable gateway behavior. Format: Integer Pre-configured value: 30 System Usage: asyncDbRecExpValue property specifies asynchronous database record expiration value and, along with asyncDbRecExpUnits setting, is used to determine when an asynchronous database entry is stale. AsyncMsgRecordDao object get the property value and it is used to examine asyncmsgrepo table records to determine if creation time has expired based on the asyncDbRecExpValue value setting. If expired records found, then all those records will be updated with an expired status. Currently it is used only for Deferred Patient Discovery Service. |
DirectTesting | Determines whether or not CONNECT will archive direct message in DB | Not Required: This property does not require a value for proper/stable gateway behavior. Acceptable Values: true/false Pre-configured value: false System Usage: The flag will indicate whether Connect will remove expired archived message and mark processing message as archive in DB |
ConcurrentPoolSize | The maximum number of Patient Discovery web service calls this CONNECT instance will process at one time | Required: This property requires a value for proper/stable gateway behavior. Format: Integer Pre-configured value: 100 System Usage: ConcurrentPoolSize property specifies executor service thread pool size for services. ExecutorServiceHelper object get the property value from gateway.properties. In case of fanout, the pool size for the job is normally the size specified in concurrentpoolsize. |
LargeJobPoolSize | The maximum number of large task web service calls this CONNECT instance will process at one time | Required: This property requires a value for proper/stable gateway behavior. Format: Integer Pre-configured value: 200 System Usage: If one single job will take more than 75% of the normal connection pool, the pool size is extended to the size of LargeJobPoolSize. ExecutorServiceHelper object read the LargeJboPoolSize property value to configure 75% using LargeJobSizePercent property. If task fanout count >= (LargeJobSizePercent / 100) * ConcurrentPoolSize then it is a large task. |
LargeJobSizePercent | Determines if a task will be executed using the large job executor
| Required: This property requires a value for proper/stable gateway behavior. Format: Integer Pre-configured value: 75 System Usage: Large Job executor is a thread pool, If the task is determined as large job, it goes into Queue and wait until the tread availability for job execution. If the job is identified and extended to LargeJobPoolSize, then largeJobSizePercent will be calculated as below: If concurrent task count >= LargeJobSizePercent * ConcurrentPoolSize then it is a large job. Boundary: 0 < LargeJobSizePercent < 100. |
ParsePayloadAsFileURIOutbound | Determines whether or not outbound request messages with an attached document will be converted to a file URI value as its payload and streamed as an object. | Required: This property requires a value for proper/stable gateway behavior. Acceptable values: true, false Pre-configured value: true System Usage: The payload is in-line, but if file is too large to put in-line, use document field to point to a file on the file system and CONNECT will read the file, and use that file as the payload. LargeFileUtils object gets the property value from gateway.properties file and it is used to determine whether the gateway is configured to parse document payload as a URI pointing to the data rather than having actual data itself. If the property value is true, then gateway process document payload as a URI. Only the attached payload gets converted to file URI. If the value is false then it returns the actual payload document. |
SavePayloadToFileInbound | Determines whether or not the inbound streamed payload will be saved as a file | Required: This property requires a value for proper/stable gateway behavior. Acceptable values: true, false Pre-configured value: true System Usage: LargeFileUtils object gets the property value from gateway.properties file and it is used to determine whether the gateway is configured to save incoming payload to the file system are not. If the value is true then it will save payload to the file system, otherwise not. |
PayloadSaveDirectory | The directory where streamed payload files are saved | Required: This property requires a value for proper/stable gateway behavior. Format: valid file path (Ex: c:/largepayload/inbound) Pre-configured value: /nhin/tmp System Usage: LargeFileUtils object gets the property value from gateway.properties file and this is where the attachment file will be created for large payload. If there is no specific payload directory exists then java tmp directory is used to create a file. When enabled, the gateway will save the document attachment from the inbound message to the file system and replaces the document in the message with the URI location of the file. |
TimeStampStrict | Determines whether or not CONNECT will check if the timestamp has expired | Required: This property requires a value for proper/stable gateway behavior. Acceptable values: true, false Pre-configured value: true System Usage: TimeStampStrict property specifies whether Timestamp expiration should be enforced or not. TimestampValidator object gets the property value from gateway.properties file and it is used to validate whether the security semantics of the message has expired are not. This is applicable for Document Service and Admin Distribution services. If the value is not determined from gateway.properties file then the default value ("true") will be used. |
TimeStampTimeToLive | The amount of time, in seconds, to append to the Creation value of an incoming timestamp to determine whether or not a timestamp is still valid | Required: This property requires a value for proper/stable gateway behavior. Format: Integer Pre-configured value: 300 System Usage: TimeStampTimeToLive specified the value in seconds for the validity of the created time. TimestampValidator object gets the property value from gateway.properties file and it is used as one of the parameter to calculate the time that is allowed for the message to travel. This is applicable for Document Service and Admin Distribution services. If the value is not determined from gateway.properties file then the default value (300) will be used. This setting is used to specify the time in seconds to append to the Creation value of an incoming Timestamp to determine whether to accept the Timestamp as valid or not. This value should be greater than or equal to 0. |
FutureTimeToLive | The amount of time, in seconds, in the future within which the Created time of an incoming Timestamp is valid. | Required: This property requires a value for proper/stable gateway behavior. Format: Integer Pre-configured value: 60 System Usage: FutureTimeToLive property specifies value in seconds for the future validity of the Created time. TimestampValidator object gets the property value from gateway.properties file and it is used as one of the parameter to validate whether the security semantics of the message has expired are not. This is applicable for Document Service and Admin Distribution services. If the value is not determined from gateway.properties file then the default value (60) will be used. This property will allow the time in seconds in the future within which the Created time of an incoming Timestamp is valid. This value should be greater than or equal to 0. |
CoreX12GenericBatchTimeStampStrict | Determines whether or not CONNECT will check if the timestamp has expired | Required: This property requires a value for proper/stable gateway behavior. Acceptable values: true, false Pre-configured value: true System Usage: CoreX12GenericBatchTimeStampStrict property is specific to X12 generic batch request and batch response services. CoreX12GenericBatchTimestampValidator object reads the property from gateway.properties file and this class overwrites default CONNECT Core TimestampValidator.getTimeStampStrict() to get timestampstrict value specific to X12GenericBatch services. |
CoreX12GenericBatchTimeStampTimeToLive | The amount of time, in seconds, to append to the Creation value of an incoming timestamp to determine whether or not a timestamp is still valid. | Required: This property requires a value for proper/stable gateway behavior. Format: Integer Pre-configured value: 300 System Usage: CoreX12GenericBatchTimeStampTimeToLive property is specific to X12 generic batch request and batch response services. CoreX12GenericBatchTimestampValidator object reads the property from gateway.properties file and this class overwrites default CONNECT Core TimestampValidator.getTimeStampTTL() to get TimeSTampTimeToLive value specific to X12GenericBatch services. This property specify the time in seconds to append to the Creation value of an incoming Timestamp to determine whether to accept the Timestamp as valid or not. (analogous to ws-security.timestamp.timeToLive). |
CoreX12GenericBatchFutureTimeToLive | The amount of time, in seconds, in the future within which the Created time of an incoming Timestamp is valid. | Required: This property requires a value for proper/stable gateway behavior. Format: Integer Pre-configured value: 60 System Usage: CoreX12GenericBatchFutureTimeToLive property is specific to X12 generic batch request and batch response services. CoreX12GenericBatchTimestampValidator object reads the property from gateway.properties file and this class overwrites default CONNECT Core TimestampValidator.getTimeStampFutureTTL() to get FutureTimeToLive value specific to X12GenericBatch services. This setting is used to identify the time in seconds in the future within which the Created time of an incoming Timestamp is valid.(analogous to ws-security.timestamp.futureTimeToLive) |
PostmasterEmailIdPrefix | The email ID (xxx@thismailserver.com) for the admin of the mail server this instance of Direct will poll | Not Required: This property does not require a value for proper/stable gateway behavior Format: String Pre-configured value: postmaster System Usage: PostmasterEmailIdPrefix property specifies prefix for domain emailid. MessageMonitoringUtil class gets the property value from gateway.properties file and if there is no value, then it will use default emailid prefix value as "postmaster". MessageMonitoringAPI class make use of this value to construct domains emailid for sending success/failed SMTP edge notifications. |
OutboundFailedMessageRetryCount | The number of times CONNECT will re-attempt to send an outbound message if previous attempt failed | Not Required: This property does not require a value for proper/stable gateway behavior Format: Integer Pre-configured value: 1 System Usage: MessageMonitoringUtil class get the property value from gateway.properties file and if the value is greater than or equal to 0 then it uses property value as message retry count, if the value is less than 0 then it will use the default property value. It must be greater than or equal to 0. |
InboundFailedMessageRetryCount | The number of times CONNECT will re-attempt to send an outbound message if previous attempt failed. | Not Required: This property does not require a value for proper/stable gateway behavior Format: Integer Pre-configured value: 1 System Usage: MessageMonitoringUtil class get the property value from gateway.properties file and if the value is present, then it uses property value as message retry count, if the value is less than 0 then it will use the default property value. |
NotifyOutboundSecurityFailureImmediate | Determines whether or not to send failure edge notifications immediately | Not Required: This property does not require a value for proper/stable gateway behavior Acceptable values: true, false Pre-configured value: true |
MessageMonitoringEnabled | Enables or disables message monitoring and tracking | Not Required: This property does not require a value for proper/stable gateway behavior Acceptable values: true, false Pre-configured value: true System Usage: MessageMonitoringEnabled property specifies whether the message monitoring is enabled or disabled. MessageMonitoringUtil class get the property value from gateway.properties file, if the value is empty then it returns default value as 'true'. If the value is true, then the MessageMonitoringAPI will update incoming / outgoing message notifications, adding message notifications, building the message cache and to check and update message status. |
ProcessedMessageReceiveTimeLimit | The time limit, in milliseconds, before the Processed and Dispatched MDNs must be received from the Destination HISP before a timeout exception occurs | Not Required: This property does not require a value for proper/stable gateway behavior Format: Integer (time in milliseconds) Pre-configured value: 3600000 System Usage: MessageMonitoringUtil class get the property value from gateway.properties file, if the value is less than 0, then the default value will be used to set the time limit before the processed and dispatched MDNs received from the destination HISP. The value should be greater than or equal to 0. |
AgentSettingsCacheRefreshTime | The interval, in milliseconds, in which CONNECT will reload and make active new Direct agent settings from configdb.settings | Not Required: This property does not require a value for proper/stable gateway behavior Format: Integer (time in milliseconds) Pre-configured value: 300000 System Usage: CONNECT Direct caches all the SMTP agent settings during the server startup. The cache can be configured to refresh every 'n' milli seconds using the property "AgentSettingsCacheRefreshTime" which is defined in gateway.properties. The default value is 5 minutes. Whenever a Agent Setting Entity is changed/added/removed, the Direct Gateway will take 'AgentSettingsCacheRefreshTime' milli seconds to take effect. MessageMonitoringUtil class reads the property value from gateway.properties file. This class checks whether the agent settings cache refresh flag is enabled or disabled, if it is enabled then return AgentSettingsCacheRefreshTime value to update settings cache timeout value. AgentSettingsCacheRefreshTime value should be greater than 0 to update the settings timeout.. |
AgentSettingsCacheRefreshActive | Enables or disables agent settings cache refresh | Not Required: This property does not require a value for proper/stable gateway behavior Acceptable values: true, false Pre-configured value: true System Usage: MessageMonitoringUtil class reads the property value from gateway.properties file. In order to update agent settings cache timeout value, this property value need to be set as 'true', otherwise settings cache timeout value will not be updated. |
disableCNCheck | Indicates whether or not the certificate Common Name should be verified against hostname. | Not Required: Optional property, CONNECT will default to false if missing. The property is pre-configured to true for testing and development environments. Acceptable values: true, false Pre-configured value: true System Usage: disableCNCheck when set to true, deactivates HostName verification done against hostname in url and Common Name in certificate. For production environments, it is highly recommended to use false. |