Batch module

iKnowBase comes with a batch module used for processing certain off-line and near-line tasks, such as email processing and file format conversion.

Currently, the Batch Server handles these services:

The batch server is enabled by default, but may be disabled as needed. In particular, a larger site with multiple servers might want to disable batch processing on the servers handling public traffic. Disabling the batch module will implicitly also disable all services described below.

The BatchServerConfiguration accepts these configuration properties:

Property name Description
com.iknowbase.batch.enabled Toggles whether the batch server modules are available.

ContentIndexer

When using the Solr search engine for content search, the iKnowBase database repository will send indexing requests to the batch server, which will then submit content to the Solr server for actual indexing.

The ContentIndexerConfiguration accepts these configuration properties:

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 recycling.
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.

iKnowBase is capable of submitting content to multiple search engines for indexing. The administrative interface uses a logical “search engine name” when mapping content for searching; for each such there is a corresponding SearchEngineConfiguration accepting these configuration properties:

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.

EmailReader

Most of the EmailReader configuration is performed in the Development Studio, where you define the various email accounts that you want to process, along with the pl/sql packages you want to use for processing the actual messages.

By default, any running iKnowBase batch server will process email messages. This is nice, unless you happen to have multiple BatchServers installed and running in parallel, which might lead to multiple batch servers accessing the same email account at the same time. This is a potential source of trouble, so we recommend that you configure the EmailReader so that only one instance is active at any time.

The EmailReaderConfiguration accepts these configuration properties:

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

Support non-standard character sets

UTF-7 character set is not included in Java by default. If you receive emails using this character set, or any other non-included character sets, you must add this character set to your JDK’s jre/lib/ext directory.

Example: To support UTF-7, use the jutf7 library from http://jutf7.sourceforge.net/. Add the jutf7-VERSION.jar to $JAVA_HOME/jre/lib/ext and restart the application.

EmailSender

EmailSender is the preferred method for sending emails and is set as default for new installations. An alternative method is available through the iKnowBase repository, see IKB_GLOBAL_PREFS.

The EmailSender configuration is performed using configuration properties, where you define profiles and settings used for sending emails. Whether emails are sent using this service or sent using iKnowBase Repository is controlled by iKnowBase Global Preferences in the iKnowBase Repository.

The EmailSenderConfiguration accepts these configuration properties:

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

Transformation Server

The Transformation Server provides a database accessible entry point to the Content Transformation Service.

The TransformationServer is reachable through the database package IKB_TRANSFORMATION_API.

See Content Transformation Providers for provider specific installation instructions.

The TransformationConfiguration accepts these configuration properties:

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

PageEngine

The ikbBatch module contains a page engine server, which can be configured to listen for page rendering requests. This is used by for example the newsletter module, which asks the batch module to render a page to be used as the content.

The BatchPageEngineConfiguration accepts these configuration properties:

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 recycling.
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.