Server Setup
The MDM Server is the core component of ONE MDM that powers master data management through its integrated MDM Engine, which handles data cleansing, validation, matching, and merging operations. The server includes comprehensive APIs, orchestration capabilities, and scheduling functions. For a more detailed overview of the MDM architecture, see Architecture.
The following article outlines the key differences between the MDM Server and ONE Runtime Server and points to resources for configuring the MDM Server.
MDM Server and ONE Runtime Server: what you need to know
In ONE MDM, the MDM Server hosts multiple components, primarily the MDM Engine. In addition to this, it acts as a Spring Boot wrapper for the embedded Runtime Server, which is used for additional orchestration and connectivity capabilities.
The start-mdm-server.bat
script uses .serverConfig
as a parameter:
call %MDM_SERVER_HOME%\bin\start.bat -config="%PROJECT_HOME%\etc\mdm.serverConfig" start
This integrated version of ONE Runtime Server allows you to configure additional components for the MDM Engine, such as:
-
Connections to data sources and other servers.
-
Path variables.
-
Workflow resources for workflows running in the MDM Server.
-
A number of server components, as listed in Server components used in MDM Server.
The embedded Runtime Server also includes a web application for server administration and monitoring, called Web App Admin Center.
When it comes to storage, the MDM Engine uses a dedicated MDM repository, while with the Runtime Server, you can configure project-specific data sources as needed.
Server components used in MDM Server
The following server components can be configured for the embedded Runtime Server when it is deployed as part of a self-managed ONE MDM solution. In cloud deployments, only some elements are available for configuration, as described in MDM Custom Ataccama Cloud Deployment and MDM Project Local Server Configuration Testing.
These components are declared in the .serverConfig
file that is referenced by the MDM Server.
- Required
-
-
runtimeConfig
reference (see Project-Specific Configuration and Runtime Parameters in MDM)
- Recommended/Useful
- Optional
When the MDM Server starts, additional component are shown in the Admin Center. |
To see an example of all supported settings and components, see the sample file:
Click here to expand
<?xml version='1.0' encoding='UTF-8'?>
<server>
<port>8059</port>
<runtimeConfiguration>mdm.runtimeConfig</runtimeConfiguration>
<serverComponents>
<component class="com.ataccama.dqc.server.services.HealthStateProviders"
pathVariableRefreshRate="60" dataSourceRefreshRate="60" />
<component class="com.ataccama.dqc.web.console.WebConsoleComponent" />
<component class="com.ataccama.dqc.web.health.HealthStateWebConsole" />
<component class="com.ataccama.dqc.server.services.VersionedFileSystemComponent">
<versionedFolders>
<versionedFolder>../data/ext/lkp</versionedFolder>
</versionedFolders>
</component>
<component class="com.ataccama.dqc.online.OnlineServicesComponent">
<serviceLookupFolders>
<configFolder>../services</configFolder>
</serviceLookupFolders>
</component>
<component class="com.ataccama.adt.web.WorkflowServerComponent">
<sources>
<source>
<path>../workflows</path>
<id>WF1</id>
</source>
</sources>
<resourcesFolder>../storage/resources/workflow</resourcesFolder>
<stateStorageProvider
class="com.ataccama.adt.runtime.state.storage.FileStateStorageProvider" />
</component>
<component
class="com.ataccama.adt.scheduler.server.SchedulerServerComponent">
<sources>
<source>
<path>../schedulers</path>
<id>S1</id>
</source>
</sources>
<resourcesFolder>../storage/resources/scheduler</resourcesFolder>
<resultPersister
class="com.ataccama.adt.scheduler.persister.FileStateResultPersister" />
</component>
<component class="com.ataccama.dqc.streaming.KafkaProviderComponent">
<!-- <kafkaResources>
<string>myKafkaResource</string>
</kafkaResources> -->
</component>
<component class="com.ataccama.dqc.jms.JmsProviderComponent">
<!--
<connectionPoolSize>5</connectionPoolSize>
<healthStateRefreshRate>60</healthStateRefreshRate>
<filters>
<jmsFilterBean>
<filter logRequestContents="true" logResponseContents="true" logFile="myRequestResponse.log" logRequestHeaders="true" maxResponseLogSize="128" appendLog="true" class="com.ataccama.dqc.jms.filters.JmsLoggingFilter" logResponseHeaders="true" maxRequestLogSize="128"/>
<mappings>
<filterMappingBean destination="myMessageQueue1" connection="myJmsConnection1"/>
<filterMappingBean destination="myMessageQueue2" connection="myJmsConnection2"/>
</mappings>
</jmsFilterBean>
<jmsFilterBean>
<filter level="INFO" name="myTimeLogger" class="com.ataccama.dqc.jms.filters.JmsResponseTimeLogger"/>
<mappings>
<filterMappingBean destination="*" connection="myJmsConnection2"/>
</mappings>
</jmsFilterBean>
</filters>
<jmsResources>
<resource>myJmsConnection1</resource>
<resource>myJmsConnection2</resource>
<resource>myJmsConnection3</resource>
</jmsResources> -->
</component>
</serverComponents>
</server>
Was this page useful?