Version: 2021.3.2

Configuration

You can configure:

  • The targets and the detail level of the logs
    • Local log4net files for server and client
    • Centralized logging into the AdminDB
  • Connection settings
  • Location of the AdminDB
  • Location of the UserDB and the Admin-Users
  • AD-Settings for LDAP import

Server Configuration

inPoint.Admin.Server.exe.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!-- === Release configuration for inPoint.Admin.Server ========================================================= -->
<appSettings>
<add key="log4net.Config" value="log4net.config" />
<add key="log4net.Config.Watch" value="True" />

<!-- The LogLevel for logs sent to the AdminDB.
Valid values are: Trace, Debug, Information, Warning, Error, Critical or None
When not specified, defaults to: Debug -->
<add key='serverLogLevel' value='Information' />

<!-- Optional elements to define the transmission timeouts (for all protocols)
open: Optional timeout value. When missing defaults to 00:05:00 (5 minute)
send: Optional timeout value. When missing defaults to 00:05:00 (5 minute)
receive: Optional timeout value. When missing defaults to 00:20:00 (20 minutes)
close: Optional timeout value. When missing defaults to 00:05:00 (5 minute)
concurrentConnections: Optional value for maximum number of concurrent connections
(per service): When missing defaults to 4 -->
<!--
<add key='transmissionSettings.open' value='00:00:05' />
<add key='transmissionSettings.send' value='00:02:00' />
<add key='transmissionSettings.receive' value='00:20:00' />
<add key='transmissionSettings.close' value='00:00:06' />
<add key='transmissionSettings.concurrentConnections' value='4' />
-->

<!-- Optional DB-Connection to the inPoint-Admin-Database.

NOTE: This setting is required installations without an inPoint-Database
(for example: HybridStore only installations)

The password can be specified in clear text at the connection string but it is really
recommended to use the Encrypter-Tool to calculate an encrypted password.
If password is set the encrypted password is used in the connection string via {0}

When a Prefix is specified, this prefix is used for the inPoint.Admin-Tables.
All inPoint.Admin-Tables are starting with {prefix}IPA_

For SQLSERVER the connectionString may look like:
'User Id=admin;Password={0};Data Source=dbServer\dbInstance;Initial Catalog=inPoint'

For ORACLE the connectionString may look like:
'data source="(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dbHost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ora.local)))";user id=admin;password={0};hscommandtimeout=3600''
-->
<!--
<add key='inPointAdminDb.type' value='SQLSERVER' />
<add key='inPointAdminDb.schema' value='sampleSchema' />
<add key='inPointAdminDb.prefix' value='' />
<add key='inPointAdminDb.password' value='sampleEncryptedPassword' />
<add key='inPointAdminDb.connectionString' value='Data Source=sampleDatabase\sampleInstance;Initial Catalog=sampleCatalog;User Id=sampleUser;Password={0}' />
-->

<!-- Optional DB-Connection to the inPoint-Database. This Database is used to authenticate
users.
This elements should be only specified when the machine running the service has no
inPoint-Server installed. For example when installing HybridStore on a separate machine
which has no local inPoint-Server running, this settings may be used to locate the
remote inPoint-Database.

For normal use, the location of the inPoint-Database is read from the current
PAM.Storage/PAM.Archive configuration.

If specified, it overrides the settings specified in PAM.Storage/PAM.Archive! -->
<!--
<add key='pamDb.type' value='SQLSERVER' />
<add key='pamDb.schema' value='pam' />
<add key='pamDb.password' value='sampleEncryptedPassword' />
<add key='pamDb.connectionString' value='Data Source=sampleDatabase\sampleInstance;Initial Catalog=sampleCatalog;User Id=sampleUser;Password={0}' />
-->

<!-- Optional, AD-User/Group/Roles required to use the inPoint.Admin.
Specify all users here separated by , or ;

Usually, this setting is only needed for HybridStore only installations where no
inPoint-Database can be used.

Granting users access does not grand access by the Repository-Plug-in!
Currently it can only be used to grant access to the HybridStore plug in.

#1 If you specify an user as domain\user only a string-match is done
(and no AD-requests are needed)
#2 If you specify an user as username@domainname the active directory is
used to resolve the user.
#3 If you specify a group as group@domainname the active directory is
used to resolve the user.
For the cases #2 and #3 maybe setting up adUser and adPass is required
(see settings below)
-->
<!--
<add key='service.adminUsers' value= user@domain.local, group@domain.local, DOMAIN\USER' />
-->

<!-- If the AD back end is used the service user (usually LOCAL-SYSTEM) is used to
fetch principals from the active directory.
But if the LOCAL-SYSTEM is not allowed to create the PrincipalContext you can
specify users and passwords to be used for this queries.

To do this list all domain and credentials with service.adDomain{suffix},
service.adUser{suffix} and service.adPass{suffix}

All settings with equal suffix are merged into a AdCredentials map (domain, user, pass).
This map is used for getting the required users to retrieve users and groups
from the active directory:
- On duplicate domain name entries only the first entry is used.
- Records with invalid encoded passwords are ignored.
- An entry with an empty domain can be used specify a user for
"all other domains" lookups
- If an entry for a specific domain is specified, this user/pass is used
- If a wild card entry is specified, this user/pass is used
- If no matching entry was found, the default credentials are used -->

<!-- sample wild card entry: use this user and password for all domains
(which are not explicit listed) -->
<!--
<add key='service.adUser' value='myDomain\myUser' />
<add key='service.adPass' value='encryptedPassword' />
-->

<!-- sample entries per domain -->
<!--
<add key='service.adDomain dom1' value='DOMAIN1' />
<add key='service.adUser dom1' value='domain1\user1' />
<add key='service.adPass dom1' value='encryptedPassword' />

<add key='service.adDomain domB' value='DOMAINB' />
<add key='service.adUser domB' value='domainB\user2' />
<add key='service.adPass domB' value='encryptedPassword' />
-->

<!-- entry for a single domain: use default credentials instead of the wild card
entry for this domain
-->
<!--
<add key='service.adDomain odom' value='OtherDomain' />
-->

<!-- The Base-URL used by all services. If not specified, it defaults to
'inPoint.Admin.Server'
-->
<!--
<add key='service.baseUrl' value='inPoint.Admin.Server' />
-->

<!-- Optional , the path to a certificate-name which is needed for some protocols (for example https:)
The certificate is loaded from StoreName\StoreLocation\certificateName
Valid StoreNames may be: AddressBook, AuthRoot, CertificateAuthority, Disallowed, My,
Root, TrustedPeople, TrustedPublisher
Valid StoreLocations are: CurrentUser, LocalMachine -->
<!--
<add key='service.certificatePath' value='My\LocalMachine\myCertificate' />
-->

<!-- Optional, the list of protocols used to expose all services. Specify all protocols
here separated by , or ;
The Port-Number specifies the Port for the Admin.Service itself. Every plug in gets a
subsequent port number (except for net.pipe)

When not specified defaults to: net.tcp:830/mex

Available settings are:

net.tcp:{firstPortNumber}/mex
TCP binary (secured by transport security) -> this is the preferred transport

https:{firstPortNumber}/mex
TTP SSL encrypted. Use it when you need a firewall-friendly protocol but https has a
more overhead than net.tcp.
To use this protocol you need to also set the certificatePath

http:{firstPortNumber}/mex
HTTP plain text (unencrypted). Use it only for internal traffic

net.pipe:
The (binary) net.pipe protocol.
NOTE: net.pipe can only be used for connects to the local machine!
NOTE: net.pipe uses no port. -->
<!--
<add key='service.protocols' value='net.tcp:830/mex' />
-->

<!-- Template to calculate the URL's of the help-pages
NOTE: When this setting is missing, no help links are shown in the inPoint.Admin client
-->
<add key='help.template' value='http://serviceportal.hs.ag/docs/inPoint.Enterprise/docs/{version}/{helpId}'/>

</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" />
</startup>
</configuration>

You can configure:

  • log4net.Config: Which file to use to configure log4net

  • serverLogLevel: The minimum log-level for writing to the AdminDB-Log. Unlike to log4net also the level Trace is supported.

  • transmissionSettings.\*: General settings for all Web-Service calls (for Client-Service but also for Service-HybridStore and Service-PAM connections)

  • inPointAdminDb.\*: Connection settings for the AdminDB. The password should be never written in clear text into the config. Instead write {0} for the password and specify the encrypted password in the inPointAdminDb.password setting. Use the Encrypter tool to encrypt the password. Each setting which is not provided here is taken from the pamDB.* connection.

  • service.baseUrl: Defines the prefix where the admin service is listening on. When changing the value here, the client setting should also be adjusted.

  • service.protocols: Defines the protocol and optional the first port where the admin service is listening. When specifying net.pipe you cannot specify a port number and only local connects are allowed. The admin service starts on the specified port. Every plugin gets the next port number. (So for 2 plug ins you need the ports StartPort, StartPort+1 and StartPort+2 are used)

  • service.adminUsers: One entry per user which get the right to use the inPoint.Admin. This fields are only required for HybridStore only environments when no inPoint-Database can be used to get the rights. If possible the permissions are always read from the inPoint-Database.

    Multiple users a separated by , or .. They should be always fully qualified ({user}@{domain} or DOMAIN\\USER and not just by the user name)

  • service.adUser / service.adPass / service.adDomain: User name and password for a user which is allowed to do domain lookups in the active directory. This is needed if AD lookups are required, no inPoint-Db is available or the current service user has no permission to query the active directory.

  • pamDb.\*: Connection settings for the inPoint-Database. The password should be never written in clear text into the config. Instead write {0} for the password and specify the encrypted password in the pamDb.password setting. Use the Encrypter tool to encrypt the password.

    Usually this settings are not needed because the location of the inPoint-Database is read from the Pam.Archive config from the web.config. This is only possible if the inPoint server is running on the same machine. When installing HybridStore on a separate machine this settings should be used to find the inPoint-Db.

  • help.template: Defines the Base-URL for the help pages of inPoint.Admin and should be: http://serviceportal.hs.ag/docs/inPoint.Enterprise/docs/{version}/{helpId} The patterns {version} and {helpId} are filled when the user opens the help page (when clicking the Help-Buttons or pressing F1 in inPoint.Admin).

    If this setting is not present, the help functionality in inPoint.Admin is disabled.

    NOTE: Also after an update this setting must be manually added!

For default installations all this settings are not needed. But it's recommended to have an inPoint.Admin.Server.exe.config with at least log4net.Config and serverLogLevel configured. Else no log files at all are written and the AdminDb is flooded with many Debug log entries.

Also the help.template should be there or the help-links (and typing F1) would not work in inPoint.Admin.

inPoint.Admin.LoaderJob.exe.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!-- === Release configuration for inPoint.Admin.LoaderJob ====================================================== -->
<appSettings>
<add key="log4net.Config" value="log4net.config" />
<add key="log4net.Config.Watch" value="True" />
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" />
</startup>
</configuration>

You can configure:

  • log4net.Config: The file which configures log4net. Usually this references the same config file which is also used by inPoint.Admin.Server.exe.config. So the logs from the LoaderJob are written to the same log file.

All other settings are used from the inPoint.Admin.Server.exe.config.

log4net.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!-- Release log4net configuration for inPoint.Admin.Server and LoaderJob -->
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>

<log4net>
<appender name="PerformanceOutput" type="log4net.Appender.FileAppender">
<!-- appender to write to a file (configured for performance logging) -->
<file value="c:\temp\logs\inPoint.Admin.Server.Performance.log"/>
<appendToFile value="true"/>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5p [%thread] %c %M - %m%n"/>
</layout>
</appender>

<appender name="RollingFileAppender" type="HsLog.HsRollingFileAppender, HsLog, Version=1.2.13.0, Culture=neutral, PublicKeyToken=83f8129610a968e2">
<!-- appender to write to a file -->
<file value="c:\temp\logs\inPoint.Admin.Server.log" />
<maximumFileSize value="10MB" />
<maxSizeRollBackups value="10" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{yyyy-MM-dd HH:mm:ss.fff} %-5level %-8property{ProcessName} [%property{pid}/%thread] %c - %m%n"/>
</layout>
</appender>

<appender name="OutputDebugStringAppender" type="log4net.Appender.OutputDebugStringAppender">
<!-- appender writing to the debug system (shown by the DebugViewer) -->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5level [%thread] %c - %m%n" />
</layout>
</appender>

<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<!-- appender to write to the console -->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{yyyy-MM-dd HH:mm:ss} %-5p [%thread] %m%n"/>
</layout>
</appender>

<appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
<!-- appender to write to the console and colorizes the messages -->
<mapping>
<level value="ERROR" />
<foreColor value="White" />
<backColor value="Red, HighIntensity" />
</mapping>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%c %M - %m%n" />
</layout>
</appender>

<root>
<!-- Valid values are: OFF, FATAL, ERROR, WARN, INFO, DEBUG -->
<!--<level value="INFO"/>-->
<!-- raised level for diagnostics of Bug 43537 -->
<level value="DEBUG"/>
<appender-ref ref="OutputDebugStringAppender"/>
<appender-ref ref="RollingFileAppender"/>
<!-- <appender-ref ref="ColoredConsoleAppender"/>-->
</root>

<logger name="Pam.DB">
<!-- Hide details from Pam.DB (logging of database commands) -->
<level value="WARN" />
</logger>

<logger name="PSW" additivity="false">
<!-- Logger for performance logging -->
<!--Possible values for 'value'
DEBUG => display start and end of timed operation
INFO => display end only
OFF => don't log
-->
<level value="OFF" />
<!--<appender-ref ref="PerformanceOutput"/>-->
<appender-ref ref="OutputDebugStringAppender"/>
</logger>

<logger name="inPoint.Admin.Client.PluginDownloadHelper" additivity="false">
<!-- Hide most messages about plugin download: WARN -->
<level value="WARN" />
<appender-ref ref="OutputDebugStringAppender"/>
</logger>

</log4net>

</configuration>

You can configure:

  • appender/file: The location of the log file. For ${temp} The temp folder of the current user which runs the service is used.

  • root/level: The minimum log level for writing entries. Usually set to WARN. Can be set to DEBUG for troubleshooting.

  • Logger Pam.DB/level: Should be always set to WARN or the Pam.DB would write many log records.

  • Logger PSW/level: Should be always set to WARN or the Pam.DB would write many log records.

  • Logger inPoint.Admin.Client.PluginDownloadHelper/level: Should be always set to WARN. Can be raised to troubleshoot issues when downloading plugins to the inPoint.Admin client.

Registry

The install folders are calculated like:

Key: HS_INSTALL_DIR

Read from [HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\HS Europe\\inPoint.HybridStore]

When not found or not exists, read from [HKEY\_LOCAL\_MACHINE\\SOFTWARE\\WOW6432Node\\Heilig & Schubert\\UnifySetup\\HybridStore\]

When not found or not exists, try %ProgramFiles(x86)%\HS Europe\HybridStore

When not exists use %ProgramFiles(x86)%\H&S Heilig und Schubert Software AG\HybridStore

Key: SRV_INSTALL_DIR

Read from [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\HS Europe\inPoint.Server]

When not found or not exists, read from [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Heilig & Schubert\UnifySetup\Pam.Storage]

When not found or not exists, try %ProgramFiles(x86)%\HS Europe\Pam.Storage

When not exists use %ProgramFiles(x86)%\H&S Heilig und Schubert Software AG\Pam.Storage

Key: ADM_INSTALL_DIR

Read from [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\HS Europe\inPoint.AdminServer]

When not found or not exists, read from [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Heilig & Schubert\UnifySetup\inPoint.Admin.Server]

When not found or not exists, read from %ProgramFiles(x86)%\HS Europe\inPoint.Admin.Service

When not exists use %ProgramFiles(x86)%\H&S Heilig und Schubert Software AG\inPoint.Admin.Service

This keys are used to locate some files:

%ADM_INSTALL_DIR%\Server\inPoint.Admin.Server.exe.config The LoaderJob needs this to find the connection to the inPoint-Database

%SRV_INSTALL_DIR%\Pam.Loader.Console\inPointLoaderParameters.xml The inPoint.Admin.Service needs this to locate create requests for creating tenants, creating GSR's or deleting GSR's.

%SRV_INSTALL_DIR%\Pam.Loader.Console\Pam.Loader.Console.exe Is needed by the LoaderJob to run the Pam.Loader console when executing the requests for creating tenants, creating GSR's or deleting GSR's.

%SRV_INSTALL_DIR%\web\web.config Is needed by inPoint.Admin.Service and LoaderJob to locate the current Pam.Archive configuration.

%HS_INSTALL_DIR%\HybridStoreSv.exe.Config Is used by the inPoint.Admin.Service to communicate with HybridStore (Required by the HybridStore- and the Repository-Plug-in)

When the Admin.Service cannot locate the inPoint-Database connection, the permission checks via inPoint-Database are deactivated.

In such a case, the users which are allowed to use inPoint.Admin have to be listed in the adminUser tags in the config. Then maybe also some AD-Settings have to be specified.

Client Configuration

inPoint.Admin.exe.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!-- === Release configuration for inPoint.Admin.Client ========================================================= -->
<appSettings>
<add key="log4net.Config" value="log4net.config" />
<add key="log4net.Config.Watch" value="True" />

<!-- The LogLevel for logs sent to the DB-Log.
Valid values are: Trace, Debug, Information, Warning, Error, Critical or None
When not specified, defaults to: Debug -->
<add key="serverLogLevel" value="Warning" />

<!-- Language for the client.
Accepted languages are: de, de-DE, de-AT, de-CH, en, en-GB, en-US or cs
If not specified defaults to: de -->
<!--
<add key="language" value="de" />
-->

<!-- Optional list of initial services. Specify all users here separated by , or ;
The initial services should not be set here but defined by via registry
from HKEY_LOCAL_MACHINE\SOFTWARE\HS Europe\inPoint.Admin\Environment
or HKEY_LOCAL_MACHINE\SOFTWARE\HS Europe\inPoint\Environment -->
<!--
<add key="initialServices" value="net.tcp://localhost:830/inPoint.Admin.Server" />
-->

<!-- Optional elements to define the transmission timeouts (for all protocols)
open: Optional timeout value. When missing defaults to 00:01:00 (1 minute)
send: Optional timeout value. When missing defaults to 00:01:00 (1 minute)
receive: Optional timeout value. When missing defaults to 00:10:00 (10 minutes)
close: Optional timeout value. When missing defaults to 00:01:00 (1 minute)
concurrentConnections: Optional value for maximum number of concurrent connections -->
<!--
<add key='transmissionSettings.open' value='00:05:00' />
<add key='transmissionSettings.send' value='00:05:00' />
<add key='transmissionSettings.receive' value='00:20:00' />
<add key='transmissionSettings.close' value='00:05:00' />
<add key='transmissionSettings.concurrentConnections' value='2' />
-->

</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="InfragisticsWPF" publicKeyToken="7dd5c3163f2cd0cb" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-17.1.20171.2108" newVersion="17.1.20171.2108" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="InfragisticsWPF.DataManager" publicKeyToken="7dd5c3163f2cd0cb" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-17.1.20171.2108" newVersion="17.1.20171.2108" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="InfragisticsWPF.Undo" publicKeyToken="7dd5c3163f2cd0cb" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-17.1.20171.2108" newVersion="17.1.20171.2108" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="InfragisticsWPF.Controls.Menus.XamMenu" publicKeyToken="7dd5c3163f2cd0cb" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-17.1.20171.2108" newVersion="17.1.20171.2108" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="InfragisticsWPF.Documents.RichTextDocument" publicKeyToken="7dd5c3163f2cd0cb" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-17.1.20171.2108" newVersion="17.1.20171.2108" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

You can configure:

  • log4net.Config: Which file to use to configure log4net

  • serverLogLevel: The minimum log-level for writing to the AdminDB-Log. Unlike to log4net also the level Trace is supported.

  • transmissionSettings.\*: General settings for all Web-Service calls (for Client-Service but also for Service-HybridStore and Service-PAM connections)

  • language: UI-Language for the client.

  • initialService: One item per Admin.Service URL. You should use this setting only when it is not possible to define the environment(s) in the registry.

log4net.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!-- Release log4net configuration for inPoint.Admin.Client and PSM -->
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>

<log4net>
<appender name="PerformanceOutput" type="log4net.Appender.FileAppender">
<!-- appender to write to a file (configured for performance logging) -->
<file value="${temp}\logs\inPoint.Admin.Performance.log"/>
<appendToFile value="true"/>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5p [%thread] %c %M - %m%n"/>
</layout>
</appender>

<appender name="RollingFileAppender" type="HsLog.HsRollingFileAppender, HsLog, Version=1.2.13.0, Culture=neutral, PublicKeyToken=83f8129610a968e2">
<!-- appender to write to a file -->
<file value="${temp}\logs\inPoint.Admin.log" />
<maximumFileSize value="10MB" />
<maxSizeRollBackups value="10" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{yyyy-MM-dd HH:mm:ss.fff} %-5level %-8property{ProcessName} [%property{pid}/%thread] %c - %m%n"/>
</layout>
</appender>

<appender name="OutputDebugStringAppender" type="log4net.Appender.OutputDebugStringAppender">
<!-- appender writing to the debug system (shown by the DebugViewer) -->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5level [%thread] %c - %m%n" />
</layout>
</appender>

<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<!-- appender to write to the console -->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{yyyy-MM-dd HH:mm:ss} %-5p [%thread] %m%n"/>
</layout>
</appender>

<appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
<!-- appender to write to the console and colorizes the messages -->
<mapping>
<level value="ERROR" />
<foreColor value="White" />
<backColor value="Red, HighIntensity" />
</mapping>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%c %M - %m%n" />
</layout>
</appender>

<root>
<!-- Valid values are: OFF, FATAL, ERROR, WARN, INFO, DEBUG -->
<level value="INFO"/>
<appender-ref ref="OutputDebugStringAppender"/>
<appender-ref ref="RollingFileAppender"/>
<!-- <appender-ref ref="ColoredConsoleAppender"/>-->
</root>

<logger name="inPoint.Admin.Client.EnumToStringConverter">
<!-- Hide most messages about enum localization: WARN -->
<level value="WARN" />
</logger>

<logger name="inPoint.Admin.Client.PluginDownloadHelper">
<!-- Hide most messages about plugin download: WARN -->
<level value="WARN" />
</logger>

</log4net>

</configuration>

You can configure:

  • appender/file: The location of the log file. For ${temp} The temp folder of the current user which runs the service is used.

  • root/level: The minimum log level for writing entries. Usually set to WARN. Can be set to DEBUG for troubleshooting.

Registry

inPoint-Environment

By the setup one default environment is created:

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\HS Europe\inPoint\Environment\default]

ServiceUrl="https://{inpoint.server.host}/pam.web"

All settings below HKLM\SOFTWARE\WOW6432Node\HS Europe\inPoint\Environment\* are loaded. The ServiceUrl are read and URL's for the inPoint.Admin service are created like net.tcp://{inpoint.server.host}:830/inPoint.Admin.Service.

If there are more than one environments during startup of the client the user have to select one of the environments.

Usage:
  • Using the inPoint-Environment is the preferred method.
  • Can only be used when there is a single (initial) inPoint.Armin service instance.
  • Can only be used when the service is using
    • Protocol net.tcp
    • Port 830
    • baseUrl inPoint.Admin.Service

inPoint.Admin-Environment

Sample setting:

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\HS Europe\inPoint.Admin\Environment\default\]

@="Default Environment"
"1"="net.tcp://host1:830/inPoint.Admin.Server"
"2"="net.tcp://host2:930/inPoint.Admin.Server"


[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\HS Europe\inPoint.Admin\Environment\other\]

@="Other Environment"
"1"="net.tcp://host3:830/inPoint.Admin.Server"

With this keys you can also specify initial services. (Like done when specifying initialServices in the inPoint.Admin.exe.config). On startup the entries from the inPoint-Environments are read. Then the entries from the inPoint.Admin-Environments. inPoint.Admin-Environments with the same name are overwriting inPoint-Environments entries. Then, if available the keys from initialServices in the inPoint.Admin.exe.config are loaded into as separate environment.

If there are multiple environments available (after loading and merging) the user has to select one environment. This question can be overridden by specifying the argument /env:{name} at the command line.

Usage:
  • Alternate method to the inPoint-Environment
  • Works also when having redundant inPoint.Admin services
  • Works also on any protocol, port and baseUrl

LoaderJob

The LoaderJob (inPoint.Admin.LoaderJob.exe) is a Pam.Archive Job which is registered by the Wizard:

Job-Name: inPoint.Admin.LoaderJob

Job-Class: inPoint.Admin.LoaderJob.LoaderJob, inPoint.Admin.LoaderJob, Version=2018.0.0.0,Culture=neutral,PublicKeyToken=null

App-Path: %installdir%\inPoint.Admin\Server

App-Config: %installdir%\inPoint.Admin\Server\inPoint.Admin.LoaderJob.exe.config

Scheduling: Start: 00:00, Stop: 23:59, Recurrence: 3600

Generic Job:

<?xml version="1.0"?>
<LoaderJobSettings>
<ServerConfigPath>%installdir%\Server\inPoint.Admin.Server.exe.config</ServerConfigPath>
</LoaderJobSettings\>

The LoaderJob is run by the Pam.Archive service and checks for new Create-Requests. If there are any requests, they are delegated to the PamLoader.exe.