Skip to main content Skip to footer

How to Work With the wyn.conf File

Background:

The wyn.conf file provides administrators with extensive control over almost all aspects of Wyn through an XML editor. This document serves as a guide to introduce the wyn.conf file and demonstrate how various functionalities can be achieved through manual editing.

An important thing to note is that while these features are accessible in the Admin Portal through the GUI, they may not be available in certain deployments, such as a Kubernetes deployment. In such cases, the instructions below will guide you on effectively working with the wyn.conf file.

 

Always make sure to make a backup of your Wyn.conf whenever editing it as well as to avoid issues due to improper editing of the file.

 

How to find the wyn.conf file and using the wyn.conf.sample file

 

The wyn.conf file is situated within the Monitor folder. For a typical Windows installation, the file path will be: C:\Program Files\Wyn Enterprise\Monitor\conf.

Please note that the wyn.conf file should not be confused with the wyn.conf.sample file (shown just below the wyn.conf in the screenshot above). The wyn.conf.sample file provides a comprehensive showcase of various modifications that can be applied to the wyn.conf file. It serves as an illustrative example, helping administrators identify the correct placement and syntax for the desired additions. Further details on utilizing the wyn.conf.sample file are covered in the last section of this blog.

Basic structure of the wyn.conf

The conf file starts off with some settings for the XML and then has the following sections after the file start.

Version:

This area contains the major version and must match the installed major version of Wyn for it to work properly.

Global settings:

This area will contain the IdentityServerURL, LogLevel, DataWarehouse, and a few hidden default values. The three mentioned are all editable as needed for different purposes. In this article we address how to change LogLevel.

Services:

Inside of this node of the conf you will see each of the services/works that Wyn uses. Each has a section, a when the section is present that worker is active due to it running off of some defaulted values that are on display in the conf.sample we review later on. Most edits we go over are within the server worker.

Cluster and following Nodes:

These nodes all are for internal use of the Wyn server and are rarely edited

Common Conf edits or additions:

How to Set the Log Level

In order to set the log level, you must find the following tags:

<LogLevel>
  <Default>Debug</Default>
</LogLevel>

 

The presence of the <GlobalSettings> opening tag indicates the relevant section. Inside this parent tag, you will find the <LogLevel> opening and closing tags. Within <LogLevel>, you can find the <Default> opening and closing tags. Here, you can adjust the log level to the following options:

  • Verbose

  • Debug

  • Information

  • Warning

  • Error

  • Fatal

For effective troubleshooting of errors, it is advisable to switch the log level to Debug and then reproduce the issue, as Debug mode provides comprehensive error event details. However, it is recommended to revert the log level to a lower setting, such as Information, after reproducing and addressing the issue. Debug and Verbose level logs consume more resources and disk space compared to other log levels due to the greater amount of information they record.

How to set the CORS Origins and Exposed Headers

In order to set the CORS Origins and Exposed Headers, you must find the following tags:

<Server>
  <Cors>
        <AllowedOrigins>
          <sys:string>CorsOrgin-1</sys:string>
          <sys:string>CorsOrgin-2</sys:string>
          <sys:string>CorsOrgin-3</sys:string>
        </AllowedOrigins>
        <ExposedHeaders>
          <sys:string>EXPOSEDHEADER-1</sys:string>
          <sys:string>EXPOSEDHEADER-2</sys:string>
          <sys:string>EXPOSEDHEADER-3</sys:string>
        </ExposedHeaders>
      </Cors>
    </Server>

Note the <Cors> tag is nested within the <Server> tags. Within the <Cors> tags, you are able to set the Allowed Origins and the Exposed Headers.

 

Enabling BuiltInHTTPS

<!--This will force all connections to be HTTPS-->
<RequireHttps>false</RequireHttps>

<!--This will allow you to add a PFX certificate into your Wyn server to host it on HTTPS-->
<BuiltInHttps>
  <EnableBuiltInHttps>false</EnableBuiltInHttps>
  <EnableHttpsDefaultPort>false</EnableHttpsDefaultPort> <!--Enables 443 -->
  <Certificate>
    <Path></Path> <!--File path from main drive to where the pfx is-->
    <Password></Password> 
  </Certificate>
</BuiltInHttps>

This setting will allow you to host a PFX certificate on your Wyn server to enable built in https. First you will need to add this node under the <Server /> node. Next you will need to record the path needed to access your PFX cert from the base directory. From there you will add in the password for the file and if you want to use 443.

This item can be turned on and off via the bool controller <EnableBuiltInHttps>false</EnableBuiltInHttps>.

Creating Extra Headers

<ExtraHttpHeaders>
  <Headers>
    <sys:Item>
      <Key>X-Frame-Options</Key>
      <Value>SAMEORIGIN</Value>
    </sys:Item>
    <sys:Item>
      <Key>Content-Security-Policy</Key>
      <Value>connect-src 'self'</Value>
    </sys:Item>
  </Headers>
</ExtraHttpHeaders>

You can add extra Http headers to your Wyn server via adding them in Key-Value pairs as seen with these <sys:Item> nodes. This area is found under the <Server> Node.

Utilizing the wyn.conf.sample file

For developers aiming to exercise complete control over the wyn.conf file while ensuring precise syntax for each setting, the wyn.conf.sample serves as a valuable resource. Keep in mind that it is a resource and should not be edited to be your actual wyn.conf file

This file encompasses a comprehensive collection of sample data, defaulted settings that are hidden inside the normal wyn.conf, and covers all conceivable settings that could be changed. However most of them are for internal use by the Wyn service and if you change them you may cause issues.

How to use the file:

As an example of how to use the wyn.conf.sample, we will go through the process of enabling BuiltInHTTPS on Wyn. This item is not included in the standard wyn.conf so we can do the following to add it to Wyn.

First you need to locate your Wyn.conf.sample, it is in the same folder as your conf.

Open the file in your preferred text editor.

Then use the ctrl+f function to search for "BuiltInHTTPS," or whichever fuctionality you are looking to add, without spaces.

Below is what you will see:

Having identified a sample section demonstrating the correct syntax, you can duplicate it in your own wyn.conf file with the desired settings.

However, it is essential to identify the parent node in which the XML code for BuiltInHttps should be nested.

To determine the correct parent node, scroll up in the file. In this instance, the wyn.conf.sample indicates that the BuiltInHttps is located within the <Server> node. Ensure to replicate this structure in your own wyn.conf file for proper placement.

 

“So what can I edit?”

Below we have a edited wyn.conf.sample for your viewing, please make note of the several comments on it and make sure to only add/edit the areas where applicable.

<!-- This is a sample conf for your Wyn Enterprise solution -->
<!-- Do not use this as your actual conf, as it is to guide you and help you understand some defaulted areas and for you to see the structure of the Conf-->
<!-- Do not add any areas here into your main conf other than if instructed to or you have a need. I have the items marked as editable/addable if you are able to-->
<!-- If you edit or add to areas where marked not to this will mess with your Wyn solution and could cause issues.-->

<!-- Remember never edit the main conf without taking a backup as to avoid issues due to improper editing-->



<?xml version="1.0" encoding="utf-8"?>
<SystemConfig xmlns:sys="https://extendedxmlserializer.github.io/system" xmlns="clr-namespace:ConfigMigration.Configuration.V70;assembly=ConfigMigration">


  <!--Defaulted to version installed. Major versions only and must match the version that will be running. ei 6.1 to 6.1, 7.0 to 7.0 -->
  <Version>7.0</Version>

  <GlobalSettings>

    <!--Default Editable-->
    <IdentityServerUrl>http://localhost:51980</IdentityServerUrl>

    <!--Default Editable-->
    <LogLevel>
      <Default>Information</Default>

      <!--Defaulted Do not add/edit-->
      <Override>
        <sys:Item>
          <Key>System</Key>
          <Value>Warning</Value>
        </sys:Item>
        <sys:Item>
          <Key>Microsoft</Key>
          <Value>Warning</Value>
        </sys:Item>
        <sys:Item>
          <Key>IdentityServer4</Key>
          <Value>Warning</Value>
        </sys:Item>
      </Override>
    </LogLevel>

    <!--Default Not suggested to add/change -->
    <TryRestartCount>-1</TryRestartCount>
    <RedirectOutputOfService>false</RedirectOutputOfService>

    <!--Default based on install. You can not change this after the install. Only reinstall can change this-->
    <EnableEncryptedConnectionString>false</EnableEncryptedConnectionString>

    <!--Default Not suggested to add/change-->
    <PathBase>/wyn</PathBase>
    <HealthCheck>
      <Enabled>true</Enabled>
      <Interval>1</Interval>
      <MaxRetryCount>3</MaxRetryCount>
    </HealthCheck>
    <AkkaHeartbeat>
      <Interval>10</Interval>
      <AcceptablePause>30</AcceptablePause>
      <Threshold>12.0</Threshold>
    </AkkaHeartbeat>
    <SchedulerConfig>
      <Mode>OutProcess</Mode>
      <ServerHost>localhost</ServerHost>
      <ServerPort>51991</ServerPort>
      <AkkaHeartbeat>
        <Interval>10</Interval>
        <AcceptablePause>30</AcceptablePause>
        <Threshold>12.0</Threshold>
      </AkkaHeartbeat>
    </SchedulerConfig>

    <!--Defaulted Do not add/edit-->
    <HeapLimit>0</HeapLimit>
    <HeapLimitPercent>0</HeapLimitPercent>
    <HighMemoryPercent>0</HighMemoryPercent>
    <MemoryStreamOptions>
      <BlockSize>131072</BlockSize>
      <LargeBufferMultiple>1048576</LargeBufferMultiple>
      <MaximumBufferSize>134217728</MaximumBufferSize>
      <MaximumSmallPoolFreeBytes>1073741824</MaximumSmallPoolFreeBytes>
      <MaximumLargePoolFreeBytes>2147483648</MaximumLargePoolFreeBytes>
      <UseTempFileForLargeStream>false</UseTempFileForLargeStream>
      <DebugResourceLeak>false</DebugResourceLeak>
    </MemoryStreamOptions>
    <WatchProcess>true</WatchProcess>

    <!--Default Editable: Can only be MonetDB or ClickhouseDB-->
    <DataWarehouse>
      <Provider>MonetDB</Provider>
      <ConnectionString>host=localhost;port=54321;username=monetdb;password=monetdb;database=wyndw;</ConnectionString>
    </DataWarehouse>

    <!--Defaulted Do not add/edit-->
    <RemoveLineBreakFromConsoleLog>false</RemoveLineBreakFromConsoleLog>

  </GlobalSettings>
  <Services>
    <Server>
      <Name>Server</Name>

      <!--Default Editable-->
      <Urls>http://*:51980</Urls>

      <!--Defaulted Do not add/edit-->
      <Plugins>
        <sys:string>Plugins/Dashboard/Gces.Dashboards.Plugin.dll</sys:string>
        <sys:string>Plugins/Reporting/Gces.Reporting.Plugin.dll</sys:string>
        <sys:string>Plugins/Dataset/Gces.Dataset.Plugin.dll</sys:string>
        <sys:string>Plugins/Account/Gces.Account.Plugin.dll</sys:string>
        <sys:string>Plugins/AnalysisModel/Gces.AnalysisModel.Plugin.dll</sys:string>
        <sys:string>Plugins/DataMonitoring/Gces.DataMonitoring.Plugin.dll</sys:string>
      </Plugins>

      <!--Default Editable: Can be Postgres, SQL Server, MySQL, or Oracle Databases. Can be single database if set up so during the install of Wyn-->
      <DataExtraction>
        <StorageType>Postgres</StorageType>
        <ConnectionString>Host=localhost;Port=5444;UserName=wyn-enterprise;Password=Wr8TGfe2r0;Database=wyndatacache;</ConnectionString>
        <EnableDirectQueryOnPostgres>false</EnableDirectQueryOnPostgres>
      </DataExtraction>
      <Storage>
        <StorageType>Postgres</StorageType>
        <ConnectionString>Host=localhost;Port=5444;UserName=wyn-enterprise;Password=Wr8TGfe2r0;Database=wynserverdata;</ConnectionString>
      </Storage>
      <IdentityServer>
        <StorageType>Postgres</StorageType>
        <ConnectionString>Host=localhost;Port=5444;UserName=wyn-enterprise;Password=Wr8TGfe2r0;Database=wynis;</ConnectionString>
      </IdentityServer>

      <!--Defaulted Do not add/edit-->
      <DataSourceProxy>
        <URI>http://localhost:51988</URI>
        <Auth>
          <UserName>java_service</UserName>
          <Password>d9Wf7csTfk4r</Password>
        </Auth>
      </DataSourceProxy>
      <MemoryDBProxy>
        <URI>http://localhost:51987</URI>
        <Auth>
          <UserName>java_service</UserName>
          <Password>d9Wf7csTfk4r</Password>
        </Auth>
      </MemoryDBProxy>

      <!--Defaulted Do not add/edit-->
      <DashboardNodeServiceProxy>
        <URI>http://localhost:52000</URI>
      </DashboardNodeServiceProxy>

      <!--Default Editable-->
      <Cookie>
        <ShareCookie>false</ShareCookie>
        <CookieName>wyn.sc</CookieName>
        <SameSite>Lax</SameSite>
        <DataProtectionKey>ifioEFEF8y8Fy3fp</DataProtectionKey>
        <Secure>false</Secure>
      </Cookie>

      <!--Defaulted Do not add/edit-->
      <Reports>
        <ParametersPanelPosition>Top</ParametersPanelPosition>
        <SessionManager>
          <Path>rendering-temp</Path>
          <CleanupInterval>24</CleanupInterval>
          <ExpirationPeriod>72</ExpirationPeriod>
        </SessionManager>
      </Reports>

      <!--Default Editable-->
      <Culture>
        <Culture>en-us</Culture>
        <SupportedCultures>en-us, ru-ru, ja-jp, zh-cn, zh-tw, pl-pl</SupportedCultures>
      </Culture>

      <!--Defaulted Do not add/edit-->
      <VersionsManagerURL>https://wyn-versions.grapecitydev.com</VersionsManagerURL>
      <VisualMarketURL>https://marketplace.grapecity.com.cn/ProductList?productType=wyn&amp;moduleType=wyn-plugin&amp;sortBy=new</VisualMarketURL>
      <ThemeDesigner>
        <Url>https://wyn-themes.grapecitydev.com</Url>
      </ThemeDesigner>
      <EnableSwagger>true</EnableSwagger>
      <Webpage>
        <AllowRelativeUrl>false</AllowRelativeUrl>
      </Webpage>

      <!--Defaulted Do not add/edit-->
      <ServerCluster>
        <Secret></Secret>
        <Port>51985</Port>
        <Host>127.0.0.1</Host>
        <PrimaryNode>
          <Host>127.0.0.1</Host>
          <Port>51986</Port>
        </PrimaryNode>
        <AkkaHeartbeat>
          <Interval>10</Interval>
          <AcceptablePause>30</AcceptablePause>
          <Threshold>12.0</Threshold>
        </AkkaHeartbeat>
      </ServerCluster>

      <!--Default Editable-->
      <RequireHttps>false</RequireHttps>

      <!--Editable area no defaults-->
      <Cors>
        <AllowedOrigins>
          <sys:string></sys:string>
        </AllowedOrigins>
        <ExposedHeaders>
          <sys:string></sys:string>
        </ExposedHeaders>
      </Cors>

      <!--Defaulted Do not add/edit-->
      <ApplicationInsights>
        <UseApplicationInsights>false</UseApplicationInsights>
        <InstrumentationKey></InstrumentationKey>
      </ApplicationInsights>

      <!--Editable area, no defaults-->
      <Authentication>
        <OAuth>
          <sys:Item>
            <Key></Key>
            <Value>
              <DisplayName></DisplayName>
              <ClientId></ClientId>
              <ClientSecret></ClientSecret>
              <AuthorizationEndpoint></AuthorizationEndpoint>
              <TokenEndpoint></TokenEndpoint>
              <UserInformationEndpoint></UserInformationEndpoint>
              <CallbackPath></CallbackPath>
              <Scopes>
                <sys:string></sys:string>
                <sys:string></sys:string>
              </Scopes>
              <ClaimMappings>
                <Id></Id>
                <Name></Name>
                <Surname></Surname>
                <GivenName></GivenName>
                <Email></Email>
                <MobilePhone></MobilePhone>
                <Avatar></Avatar>
              </ClaimMappings>
            </Value>
          </sys:Item>
        </OAuth>

        <!--Editable area some defaults-->
        <SSO>
          <AuthenticationProtocol>cas</AuthenticationProtocol>
          <Scheme>custom-scheme-name</Scheme>
          <Disabled>false</Disabled>
          <EnableSLO>true</EnableSLO>
          <AllowIncognizantUser>true</AllowIncognizantUser>
          <CasServerUrlBase></CasServerUrlBase>
          <CasServerLogoutUrl></CasServerLogoutUrl>
          <CasProtocolVersion>3</CasProtocolVersion>
          <Authority></Authority>
          <MetadataAddress></MetadataAddress>
          <ClientId></ClientId>
          <ClientSecret></ClientSecret>
          <Scopes>
            <sys:string>openid</sys:string>
            <sys:string>profile</sys:string>
          </Scopes>
          <CallbackPath>/signin-oidc</CallbackPath>
          <ResponseType>code id_token</ResponseType>
          <ResponseMode>form_post</ResponseMode>
          <RequireHttpsMetadata>false</RequireHttpsMetadata>
          <GetClaimsFromUserInfoEndpoint>true</GetClaimsFromUserInfoEndpoint>
          <SaveTokens>true</SaveTokens>
          <UsePkce>false</UsePkce>
          <AuthorizationEndpoint></AuthorizationEndpoint>
          <TokenEndpoint></TokenEndpoint>
          <UserInformationEndpoint></UserInformationEndpoint>
          <ClaimMappings>
            <sys:Item>
              <Key>sub</Key>
              <Value>id</Value>
            </sys:Item>
            <sys:Item>
              <Key>name</Key>
              <Value>nickname</Value>
            </sys:Item>
          </ClaimMappings>
        </SSO>
      </Authentication>

      <!--Default Editable-->
      <BuiltInHttps>
        <EnableBuiltInHttps>false</EnableBuiltInHttps>
        <EnableHttpsDefaultPort>false</EnableHttpsDefaultPort>
        <Certificate>
          <Path></Path>
          <Password></Password>
        </Certificate>
      </BuiltInHttps>

      <!--Default Editable-->
      <HideWelcomeScreen>false</HideWelcomeScreen>

      <!--Do not edit this. Default based on license-->
      <EnableMultipleServers>false</EnableMultipleServers>

      <!--Defaulted Do not add/edit-->
      <Cache>
        <DocumentRecordCache>
          <Enabled>true</Enabled>
          <Size>100</Size>
          <Expiration>1440</Expiration>
        </DocumentRecordCache>
        <AttachmentCache>
          <Enabled>true</Enabled>
          <Size>104857600</Size>
          <Expiration>1440</Expiration>
        </AttachmentCache>
        <DashboardQueryCache>
          <Enabled>true</Enabled>
          <Size>100</Size>
          <Expiration>1440</Expiration>
        </DashboardQueryCache>
        <RoleAclCache>
          <Enabled>true</Enabled>
          <Size>100</Size>
          <Expiration>1440</Expiration>
        </RoleAclCache>
        <DistributedDatabaseCache>
          <DefaultSlidingExpiration>20</DefaultSlidingExpiration>
          <ExpiredItemsDeletionInterval>30</ExpiredItemsDeletionInterval>
          <EnableAutoSliding>true</EnableAutoSliding>
        </DistributedDatabaseCache>
        <DistributedMemoryCache>
          <ConfigString>Server=localhost:6379,Expire=0,Db=0,ThrowOnFailure=true,Timeout=3000</ConfigString>
          <InstanceName>wyn</InstanceName>
        </DistributedMemoryCache>
      </Cache>

      <!--Defaulted Do not add/edit-->
      <SchedulerConfig>
        <Mode>OutProcess</Mode>
        <LocalHost>localhost</LocalHost>
        <LocalPort>51990</LocalPort>
        <ServerHost>localhost</ServerHost>
        <ServerPort>51991</ServerPort>
        <AkkaHeartbeat>
          <Interval>10</Interval>
          <AcceptablePause>30</AcceptablePause>
          <Threshold>12.0</Threshold>
        </AkkaHeartbeat>
      </SchedulerConfig>
      <EnableCreateSemanticModel>false</EnableCreateSemanticModel>
      <EnableTokenFailsPolicy>true</EnableTokenFailsPolicy>
      <RemoteDeployment>
        <InstallModuleTimeout>300</InstallModuleTimeout>
      </RemoteDeployment>
      <!--Default based on lisence, Do not edit-->
      <EnableCustomLanguagePackage>false</EnableCustomLanguagePackage>

      <!--Default Editable-->
      <ExtraHttpHeaders>
        <Headers>
          <sys:Item>
            <Key>X-Frame-Options</Key>
            <Value>SAMEORIGIN</Value>
          </sys:Item>
          <sys:Item>
            <Key>Content-Security-Policy</Key>
            <Value>connect-src 'self'</Value>
          </sys:Item>
        </Headers>
      </ExtraHttpHeaders>
      
      <!--Defaulted Do not add/edit-->
      <IntegrationTokenName>token</IntegrationTokenName>
      <MemoryStreamOptions>
        <BlockSize>131072</BlockSize>
        <LargeBufferMultiple>1048576</LargeBufferMultiple>
        <MaximumBufferSize>134217728</MaximumBufferSize>
        <MaximumSmallPoolFreeBytes>1073741824</MaximumSmallPoolFreeBytes>
        <MaximumLargePoolFreeBytes>2147483648</MaximumLargePoolFreeBytes>
        <UseTempFileForLargeStream>false</UseTempFileForLargeStream>
        <DebugResourceLeak>false</DebugResourceLeak>
      </MemoryStreamOptions>
      <!--Defaulted Do not add/edit-->
	  <CustomPortalConfig>
		  <File4Js></File4Js>
		  <File4Css></File4Css>
      </CustomPortalConfig>
      <LanguagePackageContainerURL></LanguagePackageContainerURL>
    </Server>

    <!--Default Editable areas as marked-->
    <ReportingWorker>
      <!--Defaulted Do not add/edit-->
      <Name>Reporting Worker</Name>
      <Urls>http://localhost:51982</Urls>
      <DisplayName>reporting-worker</DisplayName>
      <DependsOn>
        <sys:string>Server</sys:string>
      </DependsOn>

      <!--Editable-->
      <Culture>      
        <Culture>en-us</Culture>
        <SupportedCultures>en-us, ru-ru, ja-jp, zh-cn, zh-tw, pl-pl</SupportedCultures>
      </Culture>

      <!--Editable-->
      <FontsFactorySettings>
        <Folders>
          <FontFolder>
            <Path>C:\Windows\Fonts</Path>
            <Recurse>true</Recurse>
          </FontFolder>
          <FontFolder>
            <Path>/usr/share/fonts</Path>
            <Recurse>true</Recurse>
          </FontFolder>
        </Folders>
        <FallbackFonts>
          <sys:string>Microsoft Sans Serif</sys:string>
          <sys:string>MS UI Gothic</sys:string>
        </FallbackFonts>
        <Substitutes>
          <sys:Item>
            <Key></Key>
            <Value></Value>
          </sys:Item>
        </Substitutes>
      </FontsFactorySettings>

      <!--Defaulted Do not add/edit-->
      <SchedulerConfig>
        <LocalHost>localhost</LocalHost>
        <LocalPort>51992</LocalPort>
        <ServerHost>localhost</ServerHost>
        <ServerPort>51991</ServerPort>
        <AkkaHeartbeat>
          <Interval>10</Interval>
          <AcceptablePause>30</AcceptablePause>
          <Threshold>12.0</Threshold>
        </AkkaHeartbeat>
        <Identities>
          <sys:string>reporting</sys:string>
          <sys:string>reportingInfo</sys:string>
          <sys:string>reportingExport</sys:string>
          <sys:string>reportingDownload</sys:string>
          <sys:string>reportingUserFunctions</sys:string>
          <sys:string>reportingParameters</sys:string>
          <sys:string>reportingParametersValues</sys:string>
        </Identities>
      </SchedulerConfig>

      <!--Template for where User fuctions from admin portal go-->
      <UserFunctionsReferences>
        <CSharp>
          <Assemblies>
            <sys:string></sys:string>
          </Assemblies>
          <Namespaces>
            <sys:string></sys:string>
          </Namespaces>
        </CSharp>
        <VisualBasic>
          <Assemblies>
            <sys:string></sys:string>
          </Assemblies>
          <Namespaces>
            <sys:string></sys:string>
          </Namespaces>
        </VisualBasic>
      </UserFunctionsReferences>

      <!--Defaulted Do not add/edit-->
      <MemoryStreamOptions>
        <BlockSize>131072</BlockSize>
        <LargeBufferMultiple>1048576</LargeBufferMultiple>
        <MaximumBufferSize>134217728</MaximumBufferSize>
        <MaximumSmallPoolFreeBytes>1073741824</MaximumSmallPoolFreeBytes>
        <MaximumLargePoolFreeBytes>2147483648</MaximumLargePoolFreeBytes>
        <UseTempFileForLargeStream>false</UseTempFileForLargeStream>
        <DebugResourceLeak>false</DebugResourceLeak>
      </MemoryStreamOptions>
    </ReportingWorker>

   <!--Defaulted Do not add/edit-->
    <CotWorker>
      <Name>Cot Worker</Name>
      <Urls>http://localhost:51983</Urls>
      <DisplayName>cot-worker</DisplayName>
      <DependsOn>
        <sys:string>Server</sys:string>
      </DependsOn>
      <WriteFileBufferSize>8388608</WriteFileBufferSize>
      <DataSourceProxy>
        <URI>http://localhost:51988</URI>
        <Auth>
          <UserName>java_service</UserName>
          <Password>d9Wf7csTfk4r</Password>
        </Auth>
      </DataSourceProxy>
      <SchedulerConfig>
        <Mode>OutProcess</Mode>
        <LocalHost>localhost</LocalHost>
        <LocalPort>51993</LocalPort>
        <ServerHost>localhost</ServerHost>
        <ServerPort>51991</ServerPort>
        <AkkaHeartbeat>
          <Interval>10</Interval>
          <AcceptablePause>30</AcceptablePause>
          <Threshold>12.0</Threshold>
        </AkkaHeartbeat>
        <Identities>
          <sys:string>cot</sys:string>
        </Identities>
      </SchedulerConfig>
      <MemoryStreamOptions>
        <BlockSize>131072</BlockSize>
        <LargeBufferMultiple>1048576</LargeBufferMultiple>
        <MaximumBufferSize>134217728</MaximumBufferSize>
        <MaximumSmallPoolFreeBytes>1073741824</MaximumSmallPoolFreeBytes>
        <MaximumLargePoolFreeBytes>2147483648</MaximumLargePoolFreeBytes>
        <UseTempFileForLargeStream>false</UseTempFileForLargeStream>
        <DebugResourceLeak>false</DebugResourceLeak>
      </MemoryStreamOptions>
    </CotWorker>

    <!--Defaulted Do not add/edit-->
    <DashboardNodeService>
      <Name>Dashboard Node Service</Name>
      <Urls>http://localhost:52000</Urls>
      <UrlPort>52000</UrlPort>
    </DashboardNodeService>

    <!--Default Do not edit other than where marked-->
    <DashboardWorker>
      <Name>Dashboard Worker</Name>
      <Urls>http://localhost:51984</Urls>
      <DisplayName>dashboard-worker</DisplayName>
      <DependsOn>
        <sys:string>Server</sys:string>
      </DependsOn>

      <!--Editable-->
      <ChromeExecutablePath></ChromeExecutablePath>

      <!--Defaulted Do not add/edit-->
      <SchedulerConfig>
        <Mode>OutProcess</Mode>
        <LocalHost>localhost</LocalHost>
        <LocalPort>51994</LocalPort>
        <ServerHost>localhost</ServerHost>
        <ServerPort>51991</ServerPort>
        <AkkaHeartbeat>
          <Interval>10</Interval>
          <AcceptablePause>30</AcceptablePause>
          <Threshold>12.0</Threshold>
        </AkkaHeartbeat>
        <Identities>
          <sys:string>dashboard</sys:string>
        </Identities>
      </SchedulerConfig>
      <MemoryStreamOptions>
        <BlockSize>131072</BlockSize>
        <LargeBufferMultiple>1048576</LargeBufferMultiple>
        <MaximumBufferSize>134217728</MaximumBufferSize>
        <MaximumSmallPoolFreeBytes>1073741824</MaximumSmallPoolFreeBytes>
        <MaximumLargePoolFreeBytes>2147483648</MaximumLargePoolFreeBytes>
        <UseTempFileForLargeStream>false</UseTempFileForLargeStream>
        <DebugResourceLeak>false</DebugResourceLeak>
      </MemoryStreamOptions>
    </DashboardWorker>

    <!--Defaulted Do not add/edit-->
    <DataSourceService>
      <Urls>http://localhost:51988</Urls>
      <Port>51988</Port>
      <UserName>java_service</UserName>
      <UserPassword>d9Wf7csTfk4r</UserPassword>
      <MaxPoolSize>16</MaxPoolSize>
      <MinIdle>1</MinIdle>
      <IdleTimeout>600000</IdleTimeout>
      <ThirdPartyDriverPath>third-party-drivers</ThirdPartyDriverPath>
    </DataSourceService>

    <!--Defaulted Do not add/edit-->
    <MemoryDBService>
      <Urls>http://localhost:51987</Urls>
      <Port>51987</Port>
      <ServerUrl>http://localhost:51980</ServerUrl>
      <AuthUserName>java_service</AuthUserName>
      <AuthPassword>d9Wf7csTfk4r</AuthPassword>
      <UserName>worker</UserName>
      <UserPassword>uSbs2m8ypBTMmBsvKpYVmfRT</UserPassword>
      <Scope>server_portal</Scope>
    </MemoryDBService>

    <!--Defaulted Do not add/edit-->
    <SchedulerService>
      <Name>SchedulerService</Name>
      <Urls>http://localhost:51981</Urls>
      <SchedulerConfig>
        <Mode>OutProcess</Mode>
        <ServerHost>localhost</ServerHost>
        <ServerPort>51991</ServerPort>
        <AkkaHeartbeat>
          <Interval>10</Interval>
          <AcceptablePause>30</AcceptablePause>
          <Threshold>12.0</Threshold>
        </AkkaHeartbeat>
      </SchedulerConfig>
    </SchedulerService>
    <AnalysisDBService>
      <Arguments>--dbpath=/var/monetdb5/dbfarm/wyndw --set max_clients=200 --set mapi_port=54321 --set mapi_open=true --set embedded_py=false --set mapi_listenaddr=0.0.0.0</Arguments>
    </AnalysisDBService>
  </Services>

  <!--Defaulted Do not add/edit-->
  <Cluster>
    <Role>primary</Role>
    <Host>127.0.0.1</Host>
    <Port>51986</Port>
    <Secret></Secret>
    <AkkaHeartbeat>
      <Interval>10</Interval>
      <AcceptablePause>30</AcceptablePause>
      <Threshold>12.0</Threshold>
    </AkkaHeartbeat>
  </Cluster>

  <!--Defaulted Do not add/edit-->
  <Metrics>
    <EnableCollector>true</EnableCollector>
  </Metrics>

  <!--Defaulted Do not add/edit-->
  <CustomActions>
    <CustomAction>
      <Name></Name>
      <Description></Description>
      <ExecutionStage>BeforeStartingServices;AfterServicesStarted;BeforeStoppingServices;AfterServicesStopped</ExecutionStage>
      <Process></Process>
      <WorkingDirectory></WorkingDirectory>
      <Arguments></Arguments>
    </CustomAction>
  </CustomActions>
</SystemConfig>