Configuration

This part of the book contains information on installation configurations that may be relevant.

Configuration concepts

Configuration of an iKnowBase installation is done through setting named configuration properties to specific values. Changes to configuration objects are static, and will require a restart of the application server.

There are many sources of configuration property values, and the exact sources that are used in a particular installation can only be seen on the ikb$console-page shown below. However, this list shows the overall structure.

Thus, there are plenty of options for configuring the instance. Often, the database table is most convenient, but you may also choose to use any of the available property source. Either way, you can and should verify that the correct values are set, using /ikb$console.

Configuring the ikbViewer application

This section describes the main configuration objects for the ikbViewer application.

ContentServerConfiguration

The Content Server is the unit responsible for serving file content, such as word documents or PDFs.

Property name Description
com.iknowbase.contentServer.defaultContentDisposition Set to “inline” to have the browser try to open documents in-line, or to start Office for viewing. Set to “attachment” to have “save as” as the default browser behaviour.
com.iknowbase.contentServer.createResponseHeaders Toggles whether to include HTML-headers for document information. Normally left unchanged.

PageEngineConfiguration

The Page Engine is the unit responsible for composing portlets and data, and rendering information to web clients.

Property name Description
com.iknowbase.pageEngine.contentCacheEnabled Toggles whether content caching is used at all. The legal values are either “true” or “false”.

SearchClientConfiguration

The Search Client, using SOLR, handles connections to a SOLR search server. “searchEngineName” refers to the logical name given to the Solr Configuration.

Property name Description
com.iknowbase.searchEngine. <searchEngineName>.search.URL URL to index server, e.g. http://solr.example.com/solr.
com.iknowbase.searchEngine. <searchEngineName>.search.connectionTimeoutMillis Max number of milliseconds to wait for the connection.
com.iknowbase.searchEngine. <searchEngineName>.search.operationTimeoutMillis Max number of milliseconds to wait for the operation.

CacheManagerConfiguration

The iKnowBase system provides a content cache, based on Ehcache ( http://www.ehcache.org). While Ehcache is used for many caching needs internally in iKnowBase, the content cache is special in that it is in fact a replicated cache: Values stored in the content cache is replicated to all other nodes in a cluster. For more information on Ehcache replication and the meaning of the configuration variables, see http://ehcache.org/documentation/distributed_caching_with_rmi.html.

Property name Description
com.iknowbase.cache.EHCache.peerDiscovery Sets the properties used by Ehcache to discover other nodes.
com.iknowbase.cache.EHCache.listenerProperties Sets the properties used by Ehcache node for cache replication.

SecureTokenEngineConfiguration

iKnowBase needs to generate a secure token for login information in the following scenarios:

  1. On-demand loading in an Oracle Portal-based Dimension Navigator.
  2. Content loading when using the Office add-in.
  3. Client authentication integration between ikbViewer and ikbInstant.

This token is generated using the HMAC_SHA1 message authentication algorithm, based on a secret key along with user and time information.

By default, a suitable key is automatically generated when the application server starts up. However, for load balanced scenarios with multiple application servers, this would result in different keys and spurious failures during data load. You may then manually specifiy a secret key in the configuration. Please use a long phrase with multiple words, numbers and special characters.

Property name Description
com.iknowbase.secureTokenEngine.secureKey Key value used for generating tokens, when required.

ActivitiProcessEngineConfiguration

iKnowBase comes with an embedded process engine based on the Activity BPM Platform. This engine must be explicitly enabled if you want to use it.

Property name Description
com.iknowbase.process.activiti.enabled Toggles whether the activiti engine is enabled
com.iknowbase.process.activiti.jobExecutorEnabled Toggles whether the activiti engine will pick up jobs from the database, or only respond to online requests
com.iknowbase.process.activiti.processEngineName Sets the name of the process engine. Should normally not be changed.
com.iknowbase.process.activiti.mailServerDefaultFrom Sets default “from” address for email sent from activiti.
com.iknowbase.process.activiti.mailServerHost Hostname for smtp server used when sending email.
com.iknowbase.process.activiti.mailServerPort Port number for smtp server.
com.iknowbase.process.activiti.mailServerUsername Username used for logging in to email server when sending email.
com.iknowbase.process.activiti.mailServerPassword Password used for logging in to email server when sending email.

BpelProcessServicesConfiguration

When iKnowBase Process Services is installed, the ikbViewer runtime application(s) will need to know how to connect to the iKnowBase Process Services engine (ikbProcessServices), and how to log on to the underlying Oracle BPEL engine.

Property name Description
com.iknowbase.ProcessServices.WorkflowService.initialContextFactory Name of the java-class to use for the InitialContextFactory when connecting to the Process Services Server
com.iknowbase.ProcessServices.WorkflowService.providerURL URL used to connect to the Process Services Server
com.iknowbase.ProcessServices.WorkflowService.securityPrincipal Username used for connecting to the Process Services server. This username is used by the application server itself, and is often not a real user.
com.iknowbase.ProcessServices.WorkflowService.securityCredentials Password for the given user
com.iknowbase.ProcessServices.BPELWorkflowService.domain The domain id for the BPEL-domain. The default value of “domain” is often correct.
com.iknowbase.ProcessServices.BPELWorkflowService.securityRealm The realm used by Process Services when connecting on to the BPEL server.
com.iknowbase.ProcessServices.BPELWorkflowService.securityPrincipal The username used by Process Services when connecting to the BPEL-server
com.iknowbase.ProcessServices.BPELWorkflowService.securityCredentials The password used by Process Services when connecting to the BPEL-server.

The values for WorkflowService.initialContextFactory and WorkflowService.providerURL vary between application servers. Typical values are as follows:

Application server Property Format of typical value
Oracle WebLogic Server WorkflowService.initialContextFactory weblogic.jndi.WLInitialContextFactory
WorkflowService.providerURL t3://localhost:8001

Configuring the ikbBatch application

This section describes the main configuration objects for the ikbBatch application.

FileConverterConfiguration

The ikbBatch application contains a file converter server, which can be configured to listen for file conversion requests. In order to work, you must install Oracle Outside In on the server, and then set the outside in location as a configuration property.

Property name Description
com.iknowbase.batch.fileConverter.enabled Toggles whether to start the fileConverter. The legal values are either “true” or “false”.
com.iknowbase.batch.fileConverter.dequeTimeoutSeconds Number of seconds each dequeue() shall wait before recycyling.
com.iknowbase.batch.fileConverter.spawnPolicy Decides when the fileConverter starts listening for a new message. Use “immediate” for parallel processing, or “delayed” for serial processing.
com.iknowbase.batch.fileConverter.outsideInDirectory Location of outside in installation. File Converter is disabled when this is not set.
com.iknowbase.batch.fileConverter.replyMessageExpirationSeconds Number of seconds each reply message shall be valid, before expiring.

BatchPageEngineConfiguration

The ikbBatch application contains a page engine server, which can be configured to listen for page rendering requests.

Property name Description
com.iknowbase.batch.pageEngine.enabled Toggles whether to start the fileConverter. The legal values are either “true” or “false”.
com.iknowbase.batch.pageEngine.dequeTimeoutSeconds Number of seconds each dequeue() shall wait before recycyling.
com.iknowbase.batch.pageEngine.spawnPolicy Decides when the pageEngine starts listening for a new message. Use “immediate” for parallel processing, or “delayed” for serial processing.
com.iknowbase.batch.pageEngine.replyMessageExpirationSeconds Number of seconds each reply message shall be valid, before expiring.

ContentIndexerConfiguration

The ikbBatch application contains a content indexer server, which listens for indexing requests and forwards them to the appropriate search engine for actual indexing. “searchEngineName” refers to the logical name given to the Solr Configuration.

Property name Description
com.iknowbase.batch.contentIndexer.enabled Toggles whether to start the contentIndexer. The legal values are either “true” or “false”.
com.iknowbase.batch.contentIndexer.dequeTimeoutSeconds Number of seconds each dequeue() shall wait before recycyling.
com.iknowbase.batch.contentIndexer.spawnPolicy Decides when the pageEngine starts listening for a new message. Use “immediate” for parallel processing, or “delayed” for serial processing.
com.iknowbase.searchEngine. <searchEngineName>.index.type Type of index server. Currently “SOLR” is the only supported value.
com.iknowbase.searchEngine. <searchEngineName>.index.URL URL to index server, e.g. http://solr.example.com/solr/CoreName.
com.iknowbase.searchEngine. <searchEngineName>.index.connectionTimeoutMillis Max number of milliseconds to wait for the connection.
com.iknowbase.searchEngine. <searchEngineName>.index.operationTimeoutMillis Max number of milliseconds to wait for the operation.
com.iknowbase.searchEngine. <searchEngineName>.index.commitWithinSeconds Max number of seconds before the index server commits an update to the search index.

EmailReaderConfiguration

The ikbBatch application contains an email reader client, which can load email from external mail servers. This can be enabled or disabled through configuration.

Property name Description
com.iknowbase.batch.emailReader.enabled Toggles whether the emailReader is enabled or not.

Configuring the ikbStudio application

There are no configuration items specific to the ikbStudio application.

Configuring the ikbWebdav application

This section describes the main configuration objects for the ikbWebdav application.

FtpServiceConfiguration

The ikbWebdav application contains an embedded FTP-server that lets you use FTP against all documents exposed through the Webdav protocol. This is enabled by setting the following properties:

Property name Description
com.iknowbase.webdav.ftp.listenPort Port number to listen for FTP-requests on.

Configuring the ikbWebServices application

This section describes the main configuration objects for the ikbWebServices application.

WebServicesConfiguration

Property name Description
com.iknowbase.ws.mtomEnabled Toggles whether MTOM is enabled for the SOAP endpoints.

WebServicesSecurityConfiguration

Property name Description
com.iknowbase.ws.security.requireAuthentication Toggles whether WS-SECURITY based authentication is required to connect to the SOAP server.
com.iknowbase.ws.security.loginModuleName Name of login module to handle login requests. Use default value.
com.iknowbase.ws.security.trustedPrincipal Name of trusted principal (user or group) if only some users are to be given access

Configuring the ikbInstant application

This section describes the main configuration objects for the ikbInstant application.

InstantServerConfiguration

The Instant Server is the contact point for Web Clients as well as managing all topics, clients, users and message delivery.

Property name Description
com.iknowbase.instant.suspendTimeoutLP How long in miliseconds a Long Polling connection is suspended before the server resumes the connection. This will trigger a reconnect by the client.
com.iknowbase.instant.enableCORSFilter Server side support for Cross Origin Resource Sharing (CORS). The legal values are either “true” or “false”.
com.iknowbase.instant.disconnectCleanupInterval How often the disconnect cleanup maintenance thread looks for disconnected clients.
com.iknowbase.instant.disconnectCleanupInactivityThreshold How long a connection needs to be in disconnect inactivity queue before it is examined and validated.

Note: Make sure you also configure SecureTokenEngine to enable authentication for web clients

InstantQueueServerConfiguration

The Instant Queue Server is the unit responsible for consuming messages published using Instant’s PL/SQL API and delivering them to the specified topic where all web clients are connected.

Property name Description
com.iknowbase.instant.aq.enabled Toggles whether AQ messages is processed by this instance at all. The legal values are either “true” or “false”.
com.iknowbase.instant.aq.dequeTimeoutSeconds Number of seconds each dequeue() shall wait before recycyling.
com.iknowbase.instant.aq.spawnPolicy Decides when the AQ server starts listening for a new message. Use “immediate” for parallel processing, or “delayed” for serial processing.

Sample script

This is a sample script, showing how to set installation properties:

truncate table ikb_installation_properties;
insert into ikb_installation_properties (property_name, property_value)
select 'com.iknowbase.page.PageEngine.isContentCacheEnabled', 'true' from dual UNION
select 'com.iknowbase.ProcessServices.WorkflowService.InitialContextFactory', 'weblogic.jndi.WLInitialContextFactory' from dual UNION
select 'com.iknowbase.ProcessServices.WorkflowService.ProviderURL', 'opmn:ormi://localhost:6003:home/ikbProcessServices' from dual UNION
select 'com.iknowbase.ProcessServices.WorkflowService.SecurityPrincipal', 'orcladmin' from dual UNION
select 'com.iknowbase.ProcessServices.WorkflowService.SecurityCredentials', 'mypassword' from dual;