Summary of Changes to the MineMarket Service and Server Config Files

Important: If changing any port numbers, review the summary of all Default Port Numbers.

In both BulkTrak.Service.exe.config and BulkTrak.Server.exe.config on the MineMarket Application Server:

  • To assist with identifying the source of errors logged in the Windows Event Viewer, the applicationName can be changed to unique values. A unique value is recommended for multiple installations of MineMarket.
    Copy
    <exceptionManagement>
      <publisher assembly="cdal" type="Microsoft.ApplicationBlocks.ExceptionManagement.DefaultPublisher" logName="Application" applicationName="MineMarket V5 - Service" />
    </exceptionManagement>

    and

    Copy
    <exceptionManagement>
      <publisher assembly="cdal" type="Microsoft.ApplicationBlocks.ExceptionManagement.DefaultPublisher" logName="Application" applicationName="MineMarket V5 - Server" />
    </exceptionManagement>
  • To enable Server Object Verification whenever data is saved, the value in the following code must be set to true.

    This verification checks that there are the appropriate samples in memory and that they are associated with the correct transactions. The samples in memory are checked that they have the same values as the samples in the database.

    When the value of this app setting is true, the verification runs every time data is saved to the MineMarket database. Any errors that are detected are recorded in the Windows Event Log. If the MineMarket Server is run in console mode, the console window also displays the results of each verification. The console window can be used to run a verification, by entering the VERIFY command. Alternatively, Server Object Verification can be run on demand via the Options screen in the MineMarket Client.

    Copy
    <add key="RunStateEngineVerification" value="false"/>
  • The following code might be uncommented and have the value changed.
    Copy
    <add key="ObjectNotificationMaxPendingChannels" value="128" />
  • The following code might be uncommented and have the value changed.
    Copy
    <add key="MonitoredServicesTimeOut" value="5" />
  • The two IMSObjectChanged port numbers and other details must match in the client and service end points.
    Copy
    <endpoint name="Mincom.MineMarket.IMSChangeNotification.Interfaces.IMSObjectChanged" address="net.tcp://localhost:8040" binding="netTcpBinding" bindingConfiguration="DynamicTCPForObjectChangeNotification" contract="Mincom.MineMarket.IMSChangeNotification.Interfaces.IMSObjectChanged" />
  • The IMSRegisterClientForNotification port number in the following end point must match the IMSRegisterClientForNotification port number in the BulkTrak.MarketingService.exe.config file and in the BulkTrak.exe.config file.
    Copy
    <endpoint name="Mincom.MineMarket.IMSChangeNotification.Interfaces.IMSRegisterClientForNotification" address="net.tcp://localhost:8030" binding="netTcpBinding" bindingConfiguration="TCPForRegisterClientForObjectChangeNotification" contract="Mincom.MineMarket.IMSChangeNotification.Interfaces.IMSRegisterClientForNotification" />
  • The port numbers for monitoring the status of the MineMarket Marketing Service, MineMarket Search Service and MineMarket Information Services can be changed, but must match the port number in the applicable configuration files for those services.
    Copy
    <!-- For receiving monitored service status updates. -->
    <service name="IMS.ServiceInstrumentation.WCF.ServiceStatusListener" behaviorConfiguration="rpterr" >
      <endpoint address="net.tcp://localhost:17040" binding="netTcpBinding" bindingConfiguration="TCPForServiceStatusNotification" contract="IMS.ServiceInstrumentation.WCF.ServiceContracts.IServiceStatusListener" />
    </service>
  • A different network path and file name can be specified in the following code in the log4net section. The logging level may need to be changed to INFO or DEBUG for more information about errors.
    Copy
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <level value="ERROR" />
      <file value="MineMarketServerLog.txt" />
      <preserveLogFileNameExtension value="true" />
      <immediateFlush value="true" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="9" />
      <maximumFileSize value="1MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%date %-5level %message%newline" />
      </layout>
    </appender>
  • If system security prevents loading .NET assemblies from network locations (as indicated by the error message "An attempt was made to load an assembly from a network location which would have caused the assembly to be sandboxed..."), add the following section of code:
    Copy
    <runtime>
      <loadFromRemoteSources enabled="true"/>
    </runtime>
  • Further changes may be required. Refer to the Configuration Examples.

Updates and Upgrades

To generate new files:

  1. Rename the existing BulkTrak.Service.exe.config and BulkTrak.Server.exe.config files in the MineMarket installation folder, so that they can be used for reference purposes.
  2. Either:
    1. Start the MineMarket Service as a background Windows service.

      A new version of BulkTrak.Service.exe.config is created.

    2. Copy BulkTrak.Service.exe.config and rename it BulkTrak.Server.exe.config.
  3. Or:
    1. Start the MineMarket Service in console mode.

      A new version of BulkTrak.Server.exe.config is created.

    2. Copy BulkTrak.Server.exe.config and rename it BulkTrak.Service.exe.config.
  4. Configure the MineMarket Service as required.

Note: Even for implementations with custom integrations, Datamine does not recommend trying to update configuration files from MineMarket 5.5.0 or earlier. The following changes are cumulative.

To manually update an existing file from MineMarket 5.5.1:

  1. Edit the binding redirects of the following dependent assemblies in the runtime section.
    Copy
    <dependentAssembly>
      <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-4.0.4.1" newVersion="4.0.4.1" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
    </dependentAssembly>
  2. Add the following dependent assembly in the runtime section.
    Copy
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.Practices.ServiceLocation" publicKeyToken="31bf3856ad364e35" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0" />
    </dependentAssembly>

To manually update an existing file from MineMarket 5.5.2:

  1. Add the following dependent assemblies in the runtime section.
    Copy
    <dependentAssembly>
      <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-4.1.3.0" newVersion="4.1.3.0" />
    </dependentAssembly>
  2. Add the following application in the system.runtime.remoting section.
    Copy
    <application name="BulkTrakService">
      <client>
        <wellknown type="Mincom.MineMarket.Services.ExportAndReportsService, BulkTrak.Component" url="tcp://localhost:8050/ExportAndReportsService" />
      </client>
    </application>