Deutsch | English

ECMSDK 3.6.0 now available

inxire published new version of ECMSDK

We are happy to announce the release of ECMSDK 3.6.0.

This release includes a new feature that allows the configuration of 3rd party logging frameworks in addition to the existing native support for the java.util.logging (JUL) framework. It also enhances the support for automatic load-balancing of event handlers introduced in ECMSDK 3.5.0 so that this new framework can be used even for the most complex use cases.

Additional details can be found in the release notes and javadoc.
You will find the ECMSDK Standard Edition downloads and latest documentation on www.ecmsdk.com.

ECMSDK 3.5.0 now available

inxire published new version of ECMSDK

We are happy to announce the release of ECMSDK 3.5.0.

This release includes a new feature that allows event Handlers to efficiently distribute processing load across a set of working handlers, with the ability to dynamically increase or decrease the number of working handlers according to overall load. This release also fixes a major bug related to contention of IfsEvent read/write operations, a particularly serious problem in some Oracle RAC configurations.

Additional details can be found in the release notes and javadoc.
You will find the ECMSDK Standard Edition downloads and latest documentation on www.ecmsdk.com.

ECMSDK 3.4.0 now available

inxire published new version of ECMSDK

We are happy to announce the release of ECMSDK 3.4.0.

This release includes a comprehensive overhaul of the ECMSDK Runtime System, resulting in significant improvements in ECMSDK robustness and scalability of its runtime elements. These improvements include: This release also completes the ECMSDK infrastructure for Python-based Information Extraction, which allows for innovation in Natural Language Processing using Python-based architectures such as spaCy.

  • Less contention on tables in supporting failover and load balancing of runtime elements.

  • ECMSDK objects and data structures now provide a very accurate account of the Runtime System, and enables high quality monitoring and control of the runtime elements.

  • Allows for flexible definition and execution of a runtime plan, that seeks to balance runnable elements across a dynamic set of compute resources.

  • Ability to handle Cloud environments naturally.

  • Provides the first phase of advanced support for dynamic scaling of ECMSDK Event Handlers.

  • Very minimal impact on existing Agent and Event Handler code, and on existing ECMSDK infrastructure.

Additional details can be found in the release notes and javadoc.
You will find the ECMSDK Standard Edition downloads and latest documentation on www.ecmsdk.com.

ECMSDK 3.3.0 now available

inxire published new version of ECMSDK

We are happy to announce the release of ECMSDK 3.3.0.

This release includes major enhancements to ECMSDK's primary search APIs, which enables developers to fully leverage the power of SQL in constructing complex searches. It also includes several other enhancements aimed at improving scripting and the ability to customize ECMSDK.

Additional details can be found in the release notes and javadoc.
You will find the ECMSDK Standard Edition downloads and latest documentation on www.ecmsdk.com.

ECMSDK 3.2.1 now available

inxire published new version of ECMSDK

We are happy to announce the release of ECMSDK 3.2.1.

Version 3.2.1 is a minor release that extends some capabilities added in ECMSDK 3.2.0, mainly for Information Extraction features.

Additional details can be found in the release notes and javadoc.
You will find the ECMSDK Standard Edition downloads and latest documentation on www.ecmsdk.com.

ECMSDK 3.2.0 now available

inxire published new version of ECMSDK

We are happy to announce the release of ECMSDK 3.2.0.

This release introduces new regular expression features in support of Information Extraction, including the ability to define regular expressions for identifying entity relations in solved outcomes. It also introduces support for a new ECMSDK map data type for String/Double maps, and performance enhancements for the Group membership cache.

Additional details can be found in the release notes and javadoc.
You will find the ECMSDK Standard Edition downloads and latest documentation on www.ecmsdk.com.

ECMSDK 3.1.0 now available

inxire published new version of ECMSDK

We are proud to announce the release of ECMSDK 3.1.0.

This release introduces a major new component to ECMSDK - the ability to perform Information Extraction using Natural Language Processing (NLP). This component has an open architecture to allow customizable solutions using any NLP infrastructure and advanced algorithms for solving complex NLP problems. This first version of Information Extraction support is fully integrated with Stanford's CoreNLP framework.
This release also introduces a new lightweight metadata management option, provided by the new classes SimpleProperty, SimplePropertyTable, and SimplePropertyTableList.

Additional details can be found in the release notes and javadoc.
You will find the ECMSDK Standard Edition downloads and latest documentation on www.ecmsdk.com.

ECMSDK 3.0.0 now available

inxire published new version of ECMSDK

We are very proud to announce the release of ECMSDK 3.0.0.
ECMSDK now also supports the use of a PostgreSQL realtional database, OpenJDK and the latest non-Oracle Middleware, which makes it completely independent of Oracle if required. For Oracle Database customers, ECMSDK now supports Oracle Database 18c.
In addition, this release contains several bug fixes.

Additional details can be found in the release notes and javadoc.
You will find the ECMSDK Standard Edition downloads and latest documentation on www.ecmsdk.com.

ECMSDK 2.5.0 now available

inxire published new version of ECMSDK

We are proud to announce the release of ECMSDK 2.5.

This release is adding significant enhancements to ECMSDK's ability to store multiple values for a single defined Attribute. This was limited to the array data types, and even didn't cover all data types (the notable exception is array of SimpleObjects).

In addition, this release contains several bug fixes.

Additional details can be found in the release notes and javadoc.
You will find the ECMSDK Standard Edition downloads and latest documentation on www.ecmsdk.com.

ECMSDK 2.4.0 now available

inxire published new version of ECMSDK

We are proud to announce the release of ECMSDK 2.4. This release includes several bug fixes as well as a number of product enhancements.

  • Added support for Content Encryption

  • Added a new tool for ClassObject creation for improved performance and robustness

  • Introduced a pattern to enforce single instance categories

A new API has been added that can be used to indicate that new content being added to ECMSDK (via creation or update of a Document) should be encrypted when it is stored in the database or within a designated custom Media store. This prevents unauthorized access to the content when the Media store is inspected directly. When the content is accessed in an authorized manner via the API or protocols, the content presented to the user will be automatically decrypted.

A new tool for added that uses a new set of script operations for creating ECMSDK ClassObjects during installation, and for creating or modifying ClassObjects during upgrade. These new script operations improve the performance of the installation and upgrade processes, and provides a complete and robust definition of the entire object model used within ECMSDK.

A new pattern has been introduced for enforcing certain Categories to have no more than one instance defined on any given PublicObject. The new pattern uses a simple data-driven approach using ClassObject properties, and replaces the old pattern that required custom coding.

Additional details can be found in the release notes and javadoc.
You will find the ECMSDK Standard Edition downloads and latest documentation on www.ecmsdk.com.

ECMSDK 2.3.2 now available

inxire published new version of ECMSDK

We are proud to announce the release of ECMSDK 2.3.2. This release includes several bug fixes as well as a better Application Server independency.

Beginning in 2.3 it is no longer required to perform an ECMSDK schema upgrade for every new ECMSDK software version, which simplifies management and administration.

You will find the ECMSDK Standard Edition downloads and latest documentation on www.ecmsdk.com.

ECMSDK 2.3 now available

inxire published new version of ECMSDK

We are proud to announce the release of ECMSDK 2.3. This release includes several bug fixes as well as a number of product enhancements.

  • Introducing a new type of group called CompositeGroup

  • Enhanced activity framework for improved customization of activity tracking

  • Command-line support for managing ECMSDK Nodes

  • Support multiple software versions against a single schema version

A composite group manages a specific membership set that remains static through the lifetime of the composite group. This is useful in applications that require complex group memberships.

The activity framework data model was expanded to allow finer tracking of information on the activity records, such as the reason for tracking a private record. Also the extensibility APIs were improved for more powerful customizations.

Added ability to start and stop ECMSDK Nodes via the single command-line tool.

Beginning in 2.3 it is no longer required to perform an ECMSDK schema upgrade for every new ECMSDK software version, which simplifies management and administration.

You will find the ECMSDK Standard Edition downloads and latest documentation on www.ecmsdk.com.

ECMSDK 2.2 now available

inxire published new version of ECMSDK

We are very proud to announce the release of ECMSDK 2.2. This release includes over 20 bug fixes as well as a number of important product enhancements.

  • Introducing a new base object type called SimpleObject.

  • Introducing a new mechanism for coordinating a group of AuditEvent handler instances for better scalability and throughput

  • Added additional configuration parameters and reservation information for multi-threaded library sessions

  • Enable new Oracle Text features in Oracle 12c database that are beneficial for markup and highlighting

  • Added additional formats for out-of-the-box full text searches

The new SimpleObject is a peer to PublicObject, SchemaObject and SystemObject. It enables full control about the table storage and inheritance hierarchy of this object. If you have billions of objects of different types, this object gives you the right level of control without decreaing the overall system performance.
WIth the new coordinated handler mechanism for grouping multiple AuditEvent handler instances, you can dynamically add or remove handlers to react on demand for resources in case of peaks in your application. The coordination is fully done by the ECMSDK runtime environment, so developers do not have to take care of writing competing AuditEvent handles anymore.
Multi-thread enabled library sessions can now be configured in many ways to have an even better control abour the internal session pool.

You will find the ECMSDK Standard Edition downloads and latest documentation on www.ecmsdk.com.

Meet us at the following upcoming events for a live demo of the new ECMSDK 2.2:

  • Mar 28 - 30, 2017

    Javaland 2017, Booth 218, Phantasialand, Brühl, Germany

How-To: Deploy ECMSDK on JBoss WildFly

After you installed your ECMSDK software and created the ECMSDK schema inside your Oracle Database, you can deploy an ECMSDK Node inside a JEE container of your choice. If you want to deploy ECMSDK on a JBoss WildFly AS, you need to follow the steps below.

  1. First is to register an Oracle JDBC driver as a new module in WildFly. This driver will be used for the DataSource that an ECMSDK Node uses when deployed inside a JEE container.

    1. Create the following folder structure under your WildFly installation home, hereafter referred as $JBOSS_HOME

      cd $JBOSS_HOME/modules
      mkdir -p oracle/jdbc/main

    2. Upload the ojdbc6.jar shipped with ECMSDK to the folder $JBOSS_HOME/modules/oracle/jdbc/main

    3. Create a new file named module.xml inside the folder $JBOSS_HOME/modules/oracle/jdbc/main with the following content

      <?xml version="1.0" encoding="UTF-8"?>
      <module xmlns="urn:jboss:module:1.0" name="oracle.jdbc">
      <resources>
      <resource-root path="ojdbc6.jar"/>
      </resources>
      <dependencies>
      <module name="javax.api"/>
      <module name="javax.transaction.api"/>
      </dependencies>
      </module>

    4. Restart your WildFly server to read the new module configuration

    5. Your new Driver should now be listed inside your standalone.xml or domain.xml, depending on the mode you are starting your WildFly with.
      The entry should look similar to this:

      <drivers>
      <driver name="OracleJDBCDriver" module="oracle.jdbc"/>
      ...
      </drivers>

  2. We can now create our DataSource which manages the database connection to the ECMSDK repository

    1. Access the WildFly Management Console UI and navigate to Configuration --> Subsystems --> Datasources --> Non-XA

    2. Click the Add Button to create a new DataSource

    3. Choose Oracle Database from the list of DataSources, then click Next

    4. Enter a Name for your DatabaSource, i.e. OracleDS

    5. Enter the following JNDI Name: java:/jdbc/OracleDS, then click Next
      !! If you specify a different JNDI Name here than jdbc/OracleDS please read Step 5.c. carefully

    6. Select Detected Driver tab on the screen to get a list of registered JDBC drivers. This should list at least two drivers, h2 and OracleJDBCDriver

    7. Select OracleJDBCDriver, then click Next

    8. Enter the Connection Settings for the ECMSDK schema. This information can be retrieved from the Environment.properties file located under $ECMSDK_HOME/lib of your ECMSDK installation
      Connection URL: jdbc:oracle:thin:@ecmsdk.inxire.com:1521:orcl
      Username: ecmsdk
      Password: ecmsdk
      After entering the Connection Settings then click Next

    9. Click Finish on the Summary Screen

  3. As a validation step you can select the Datasource after the creation and choose Test Connection.

  4. Your new DataSource should now be listed inside your standalone.xml or domain.xml, depending on the mode you are starting your WildFly with.
    The entry should look similar to this:

    <datasource jta="true" jndi-name="java:/jdbc/OracleDS" pool-name="OracleDS" enabled="true" use-ccm="true">
    <connection-url>jdbc:oracle:thin:@ecmsdk.inxire.com:1521:orcl</connection-url>
    <driver-class>oracle.jdbc.OracleDriver</driver-class>
    <driver>OracleJDBCDriver</driver>
    <security>
    <user-name>ecmsdk</user-name>
    <password>ecmsdk</password>
    </security>
    <validation>
    <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"/>
    <background-validation>true</background-validation>
    <stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker"/>
    <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"/>
    </validation>
    </datasource>

  5. Now, after we successfully set up our DataSource for ECMSDK, we can deploy the ECMSDK Node to WildFly

    1. First we need to prepare the ecmsdk.war that is shipped with the ECMSDK installation under $ECMSDK_HOME/lib. Copy the following JAR files into the WEB-INF/lib folder inside the ecmsdk.war file

      • xmlparserv2.jar

      • orai18n.jar

      • orai18n-mapping.jar
        (The JAR files can be found under $ECMSDK/lib as well.)

    2. Add a new file into the WEB-INF folder of the ecmsdk.war file called jboss-deployment-structure.xml. This file should have the following content:

      <?xml version="1.0" encoding="UTF-8"?>
      <jboss-deployment-structure>
      <deployment>
      <dependencies>
      <module name="oracle.jdbc" slot="main"/>
      </dependencies>
      </deployment>
      </jboss-deployment-structure>
      !! This file is important, as it lists dependencies to already existing WildFly modules. If you don't add this file to your ecmsdk.war you can receive one of the following exceptions: ClassCastException, NoClassDefFoundError

    3. In addition to the above, you might need to change the DataSource name attribute in the web.xml of the ecmsdk.war file, if you configured a different JNDI Name in Step 2.e. than the default jdbc/OracleDS.

      <context-param>
      <description>The name of the DataSource for the ECMSDK repository</description>
      <param-name>IFS.NODE.DataSourceName</param-name>
      <param-value>java:/jdbc/OracleDS</param-value>
      </context-param>

    4. Save your changes to ecmsdk.war

    5. Upload ecmsdk.war as a new deployment through your JBoss WildFly management console UI

  6. To verify your deployment, you can check the DefaultNode.log under $JBOSS_HOME/bin for any errors.

This documentation was tested with JBoss AS product: WildFly Full 10.1.0.Final

How-To: Run ECMSDK against a RAC cluster

Using ECMSDK in a production environment often requires a robust, reliable and failover enabled repository. When using Oracle Real Application Cluster (RAC) with your ECMSDK repository you need to have a specific configuration in place to support such a setup. This post will explain the configuration steps required when running ECMSDK with Oracle WebLogic Server (WLS).

In the previous CMSDK 9.0.4.2 version a RAC enabled connect string looked like this:

(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = rac2)(PORT = 1521)) (LOAD_BALANCE = NO) (FAILOVER = ON) (CONNECT_DATA = (SERVICE_NAME = rac) (failover_mode = (type=select)(method=basic)) )

ECMSDK makes use of data sources to connect to the underlying database. These data sources are configured inside your Application Server, such as Oracle WebLogic Server.
In Oracle WebLogic Server, a single data source implementation has been introduced to support an RAC cluster. It responds to Fast Application Notification (FAN) events to provide Fast Connection Failover (FCF), Runtime Connection Load-Balancing (RCLB), and RAC instance graceful shutdown. XA affinity is supported at the global transaction Id level. The feature is called WebLogic Active GridLink for RAC; which is implemented as the GridLink data source within WebLogic Server.

This GridLink data source also works with Oracle Single Client Access Name (SCAN). SCAN is a feature used in RAC environments that provides a single name for clients to access any Oracle Database running in a cluster. You can think of SCAN as a cluster alias for databases in the cluster. The benefit is that the client’s connect information does not need to change if you add or remove nodes or databases in the cluster.

The ECMSDK documentation describes how to create a regular JDBC data source named jdbc/OracleDS. Please refer to the following document which describes in detail how to create a GridLink data source in WLS.

How-To: Start a ECMSDK Node in a custom application

With the removal of the Oracle CMSDK DomainController concept in ECMSDK, it is important to know that the ECMSDK Node itself now manages the Service, Servers and possible failovers to another Node.

Recently I have encountered a number of customers that have never ran an ECMSDK Node in the past. That is somehow worrisome, as a ECMSDK Node plays a key role in the whole ECMSDK architecture. Although ECMSDK is an SDK, there are some required background processes running as Agents, Servers and Handlers. These Agents and Handlers are responsible for cleanup tasks, lifecycle management, and among others, the underlying event system.

The whole Node management in ECMSDK might be a blog topic of its own, but I would like to give at least an example of how to run an ECMSDK Node within your own custom application, so you can take advantage of a real managed ECMSDK environment.

This custom Node does not replace the ECMSDK Node that you create when you deploy the ecmsdk.ear file, which is mandatory. It furthermore extends the environment and helps your application to take advantage of the built-in Node management.

  1. First create a custom NodeConfiguration, as we don't want to run all servers and agents by default in our custom Node. This can be done by executing a script. An example can be found at $ECMSDK_HOME/install/config/CreateNodeConfiguration.def.

    The minimum required agents needed to run inside any custom Node are:

    - EventHandlerAgent using IFS.SERVER.EventHandlerAgentConfiguration

    - StatisticsAgent using IFS.SERVER.StatisticsAgentConfiguration

    To only inherit those from the SuperNodeConfiguration you can insert the following line after line

    ; inherit all the servers

    m += addDefinitionStringArrayProperty defTag IFS.NODE.EnabledInheritedServerNames "{EventHandlerAgent, StatisticsAgent}"

    You should create your own .def that contains the custom NodeConfiguration. To execute that script run the

    following command:

    $ECMSDK_HOME/bin/ecmsdk script
    and enter CustomNodeConfiguration.def upon request

  2. Make sure that your custom application contains a web.xml. This is required for the following instructions.

    If a web.xml is not possible to add, you need to follow different instructions. Let me know if this is the case and I will publish the other instructions as well (might be a rare case, though).

  3. Register a new Servlet Context Listener to your custom application, by adding the following entries to the web.xml. If listeners are already part of the web.xml make sure that the new one will be listed first.

    <listener>

    <description>Starts and Stops the Node in this JVM</description>

    <display-name>NodeManager</display-name>

    <listener-class>oracle.ifs.core.runtime.NodeManager</listener-class>

    </listener>

  4. The new Servlet Context Listener makes use of several configuration parameters that you need to specify in the web.xml as well. You can use the defaults for most of them, but should make sure that the corresponding param-values for

    - IFS.NODE.DataSourceName

    - IFS.NODE.Service

    - IFS.NODE.NodeConfigurationName

    - IFS.NODE.ServiceConfigurationName

    match your specific configuration.

    Add the following context-params to your web.xml:

    <context-param>

    <description>The name of the DataSource for the CMSDK repository</description>

    <param-name>IFS.NODE.DataSourceName</param-name>

    <param-value>jdbc/OracleDS</param-value>

    </context-param>

    <context-param>

    <description>The class name of CMSDK Node instance running in this JVM</description>

    <param-name>IFS.NODE.Class</param-name>

    <param-value>oracle.ifs.core.runtime.Node</param-value>

    </context-param>

    <context-param>

    <description>The unique name of CMSDK Node running in this JVM</description>

    <param-name>IFS.NODE.NodeName</param-name>

    <param-value>DefaultNode</param-value>

    </context-param>

    <context-param>

    <description>The name of the Service this Node is running with</description>

    <param-name>IFS.NODE.Service</param-name>

    <param-value>DefaultService</param-value>

    </context-param>

    <context-param>

    <description>The name of the node configuration for this CMSDK Node</description>

    <param-name>IFS.NODE.NodeConfigurationName</param-name>

    <param-value>IFS.NODE.DefaultNodeConfiguration</param-value>

    </context-param>

    <context-param>

    <description>The name of the service configuration the service is running with</description>

    <param-name>IFS.NODE.ServiceConfigurationName</param-name>

    <param-value>IFS.SERVICE.SmallServiceConfiguration</param-value>

    </context-param>

    <context-param>

    <description>Time in seconds the shutdown process should wait for the service to disappear.</description>

    <param-name>IFS.NODE.ShutdownWaitTime</param-name>

    <param-value>30</param-value>

    </context-param>

    <context-param>

    <!-- Options: OFF, SEVERE, WARNING, INFO (default), CONFIG, FINE, FINER, FINEST, ALL -->

    <description>The overall LogLevel of the Node.</description>

    <param-name>LogLevel</param-name>

    <param-value>INFO</param-value>

    </context-param>

    <context-param>

    <description>The filename of the logfile for this Node.</description>

    <param-name>LogFileName</param-name>

    <param-value>DefaultNode.log</param-value>

    </context-param>

    <!-- Optional, per default the logfile will be written to your runtime directory

    <context-param>

    <description>The absolute path of the logfile location for this Node.</description>

    <param-name>LogFilePath</param-name>

    <param-value>/tmp</param-value>

    </context-param>

    -->

    <context-param>

    <!-- Options: Defines the top level package name for logging -->

    <description>The name of the root logger.</description>

    <param-name>RootLoggerName</param-name>

    <param-value>oracle.ifs</param-value>

    </context-param>

    <context-param>

    <!-- Options: text (default), xml -->

    <description>The format of the logfile for this Node.</description>

    <param-name>LogFileFormat</param-name>

    <param-value>text</param-value>

    </context-param>

    <context-param>

    <!-- Options: true, false (default) -->

    <description>Routes logging to console (stdout) AND to a logfile.</description>

    <param-name>LogToConsole</param-name>

    <param-value>false</param-value>

    </context-param>

    <context-param>

    <!-- Options: 5MB (default), 0 means no limit, other number in bytes -->

    <description>Defines the maximum size in bytes of a logfile before creating the next one.</description>

    <param-name>MaxLogFileSize</param-name>

    <param-value>5242880</param-value>

    </context-param>

    <context-param>

    <description>Defines the maximum number of logfiles to keep before overwriting the oldest one.</description>

    <param-name>MaxLogFileCount</param-name>

    <param-value>30</param-value>

    </context-param>

    <context-param>

    <!-- Options: 1d (default), 0 indicates no time based rotation

    Allowed values are a number followed by either D (days), H (hours), M (minutes) and S (seconds)

    If no postfix is specified the provided number is assumed to be in milliseconds.

    Examples are: 12H = 12 hours; 3D = 3 days; 35M = 35 minutes; 86400000 = 86,400,000 milliseconds

    -->

    <description>Defines the log period in milliseconds before rotating the logfile.</description>

    <param-name>LogFileRotationPeriod</param-name>

    <param-value>1d</param-value>

    </context-param>

    <context-param>

    <!--

    Syntax: oracle.ifs.examples : FINE, oracle.ifs.core.runtime.NodeManager : INFO

    The list of overrides should be seperated by a comma ','

    The override is defined as 'class/package : LogLevel'

    -->

    <description>Implements LogLevel overrides at class or package level</description>

    <param-name>LogLevelOverrides</param-name>

    <param-value></param-value> </context-param>

    NOTE: Each ECMSDK should have a unique name. So make sure that the param-value for IFS.NODE.NodeName is different in each web.xml if you are planning to run a multi-Node environment.

  5. In your code you can now use the following way of connecting to ECMSDK via a managed service:

    if(LibraryService.isServiceStarted(SERVICE_NAME))

    {

    service = LibraryService.findService(SERVICE_NAME);

    }

    else

    {

    // This should not be necessary, as the Node should have already started the Service by now.

    // Just in case he didn't, we can start a Service the old fashion way as unmanaged. The Node will

    // find it later and manage it from then on.

    service = LibraryService.startService(SERVICE_NAME, CMSDK_SCHEMA_PWD, SERVICE_CONFIG_NAME, DOMAIN_URL);

    }

    ...

    LibrarySession session = service.connect(credentials, null);

How-To: Deploy ECMSDK on Tomcat

Although there are ways to run ECMSDK in a standalone JVM, when you need to use the WebDAV protocol to access documents in the ECMSDK repository you can’t avoid deploying it into at least a web container.

WebLogic Server or GlassFish Server are one choice, but even Tomcat can be used to host the ECMSDK Node that provides the ECMSDK protocol servers along with other processes.

When you need to set up a data source on Tomcat the official documentation gives an example like this:

<Resource name="jdbc/OracleDS" auth="Container"

type="javax.sql.DataSource"

driverClassName="oracle.jdbc.OracleDriver"

url="jdbc:oracle:thin:@myhost.inxire.com:1521:orcl"

username="ecmsdk" password="****" maxActive="20" maxIdle="10"

maxWait="-1"/>

Unfortunately, when using this data source definition you will see the following exception and the Node won’t come up.

java.lang.ClassCastException: org.apache.tomcat.dbcp.dbcp.DelegatingCallableStatement cannot be cast to oracle.jdbc.OracleCallableStatement

Whereas in other container configurations (such as in WLS and GlassFish) we can specifically disable the JDBC data type wrapping, this isn’t the case in Tomcat. In Tomcat we need to change the definition of the data source to this, to get the Node started and the defaults overwritten:

<Resource name="jdbc/OracleDS" auth="Container"

type="oracle.jdbc.pool.OracleDataSource"

factory="oracle.jdbc.pool.OracleDataSourceFactory"

connectionCachingEnabled="true"

user="ecmsdk" password="****"

driverClassName="oracle.jdbc.OracleDriver"

url="jdbc:oracle:thin:@myhost.inxire.com:1521:orcl"

removeAbandoned="true"

removeAbandonedTimeout="30"

maxActive="20"

maxIdle="10" maxwait="-1"/>

In addition to the above, you need to change the data source name attribute in the web.xml of the ecmsdk.ear file, as Tomcat places all configured entries and resources in the java:comp/env portion of the JNDI namespace which is different from what most other containers are doing.The modified data source name in the ECMSDK web.xml for Tomcat should look like this:

<context-param>

<description>The name of the DataSource for the CMSDK repository</description>

<param-name>IFS.NODE.DataSourceName</param-name>

<param-value>java:/comp/env/jdbc/OracleDS</param-value>

</context-param>

ECMSDK 2.1 Docker image published

inxire just published a Docker image with ECMSDK 2.1 on the Docker Hub Registry

Docker

Get it NOW, start NOW!

inxire just updated the Docker image on Docker Hub Repository with the latest ECMSKD 2.1 version and the latest Tomcat 8.0.33 release. With this it is easier than ever to start your ECMSDK 2.1 development project.

By pulling this image from the Docker Hub Repository and running it, you are able to immediately connect to your ECMSDK schema inside an Oracle Database XE. The image contains only license free software, such as Ubuntu Linux, openJDK 7, Tomcat 8, Oracle Database XE and of course ECMSDK 2.1. This gives developers a low entry barrier to start with an ECMSDK development project. Everything is pre-configured, ready to use, and easy to backup, roll back, and extend.

Feel free to use this image as the base install for POCs, application tests and demos.

Download link and documentation of the ECMSDK Docker image:
https://registry.hub.docker.com/u/inxire/ecmsdk/

ECMSDK 2.1 now available

inxire published new version of ECMSDK

We are very proud to announce the release of ECMSDK 2.1. This release includes over 30 bug fixes as well as a number of important product enhancements.

  • Introducing a new Media Driver to store binary streams directly on a File System

  • Performance improvements by introducing new caches and an asynchronous mode for the group index

  • Better support for multi-thread enabled library sessions

  • Added new search macros for array-type attributes

  • The ability to split and execute the installation with different responsibilities

We added some performance improvements to this runtime and development platform, and continued to simplify the installation process with this ECMSDK release.
By introducing a cache for the group memberships and the new asynchronous mode for the group index, the overall system performance will be significantly increased when group hierarchies larger than several hundred thousands are in-place.
The new FileSystemMediaDriver allows you to store unstructured content directly on a local or mounted file system, despite that the content will still be accessible via full-text searches.
Multi-thread enabled library sessions now make it easier for application developers to share a single LibrarySession across multiple threads.

You will find the ECMSDK Standard Edition downloads and latest documentation on www.ecmsdk.com.

Meet us at the following upcoming events for a live demo of the new ECMSDK 2.1:

ECMSDK 2.0 now available

inxire published new version of ECMSDK

We are very proud to announce the release of ECMSDK 2.0. This ECMSDK 2.0 release includes nearly 50 bug fixes as well as a number of very important product enhancements.

  • The dependencies to an Oracle Database Client installation have been removed

  • Significantly simplified installation and patching procedure by implementing a single command process

  • Additional support for Oracle Database Express Edition (XE) for license free end-to-end solutions

  • New Action and Activity Framework for building content-centric IoT or Social applications

The latest product increment, the new ECMSDK Activity module, is the most comprehensive and powerful enhancement to this runtime and development platform in many years. It improves and simplifies the communication and collaboration between users and/or devices.
This outstanding product features enables the modeling of many user and data driven use cases in the real world. For example, social intranet actions such as "follow”, "like" or "suggest” can be captured and summarized for documents or other supporting data objects. Finally they can be tracked in an organized manner by users with access to the object. Many other use cases in the area of IoT or Smart Data can also benefit from this product enhancement.

You will find the ECMSDK Standard Edition downloads and latest documentation on www.ecmsdk.com.

Meet us at the following upcoming events for a live demo of the new ECMSDK 2.0: