JPA – WORKING WITH GENERIC VALUE OBJECTS

Working with generic value objects and jpa is shown by the implementation of the ImixsEntityService EJB. This service ejb is provided by the Imixs Workflow Project. It can be used to store objects independent from a specific Entity Bean. Also queries with JPQL are possible.
See: http://www.imixs.org/jee/examples/entityservice.html

IMIXS ADMIN CLIENT 2.1.1

The latest version of the Imixs Admin Client is finally released. TheImixs Admin Client is a Web Application which allows you to administrate a Imixs JEE Workflow Instance. The Admin Client can be deployed on any JEE Server independent from a workflow Application. So the Imixs Admin Client can be used to adminstrate different instances of the Imixs JEE Workflow Implemenation on the same JEE Application Server.

Downloadpage

HIDING ACTIVIES FROM USER

Today I stumbled into an issue with hidden workflow activities. Normally you can simple hide an activity to unauthorized users by adding an application specific access role to the property section ‘Visiblity and Access’. For example you can add the role ‘org.imixs.ACCESSLEVEL.MANAGERACCESS’ to allow only Managers to use this workflow activity.

But this seems not to work. The reason is that the Imixs Modeler stores the read-access restriction into the property ‘namReaders’. And this is no read-access property per default. Only the property ‘$readAccess’ will be recognized by the workflow system to protect workitems.

But the solution is quite simple. You only need to add the field name to the Imixs EntityService Bean declaration from the ejb-jar.xml descriptor:

            <ejb-name>EntityServiceBean</ejb-name>
            <ejb-class>org.imixs.workflow.jee.ejb.EntityServiceBean</ejb-class>
            <session-type>Stateless</session-type>
            <env-entry>
                <description>Additional Reader Field for Workflow Model</description>
                <env-entry-name>READ_ACCESS_FIELDS</env-entry-name>
                <env-entry-type>java.lang.String</env-entry-type>
                <env-entry-value>namreaders</env-entry-value>
            </env-entry>            
        </session>

No the property ‘namReaders’ is treated by the Imixs Workflow System as a reader field.

I think we will change the Imixs Modeler in the next release to support also the default field ‘$readAccess’. So no further configuration will be necesary here.

MYSQL AND BLOB FIELD SIZE

Using the Imixs Workflow together with mysql can lead into a problem with large data stored in a single workitem. The Database schema use by the Imixs Workflow will be generated automatically by the OR-Mapper (e.g. Toplink, Eclipslink). This is all done well. But the Data table ‘EntityData’ used by the Imixs Workflow engine contains the column ‘itemcollection’. This column will store all undstuctured data. And in some cases this data can become very large. For example when storing a attachment into a workitem the field can be serveral MB in size. The default field type in mysql is ‘BLOB’. And this fieldtype is restricted to a maximum size of 64KB. So the Imixs workflow engine can not store large workitems. This will result into a SQL Execption.

To avoid this problem the Datatype can be changed from ‘BLOB’ to ‘MEDIUMBLOB’ (=16MB) or ‘LONGBLOB’ (=4GB). This can be done with the MySQL Admin Client or from the MySQL command line.

ALTER TABLE <Tabellenname> CHANGE <columnname> <columnname> LONGBLOB;

To change the datatype for a example database ‘imixsdb’ use the following command:

ALTER TABLE ENTITYDATA CHANGE ITEMCOLLECTION ITEMCOLLECTION LONGBLOB;

 

BPM SOLUTION FOR GLASSFISH AND JBOSS

Imixs Software Solutions GmbH presents with the Open Source project “Imixs Workflow” a Business Process Management (BPM) solution for Glassfish and JBoss Application Servers. Glassfish and JBoss are open source application servers based on the Java EE specification. These server platforms are widely-used by a lot of small and medium companies. The Imixs JEE Workflow components can be seamlessly integrated into Glassfish 2.1, 3.0 and JBoss 5.0 and 6.0 infrastructure. Thus the project provides a highly scalable and robust BPM solution. The Imixs workflow project makes use from the powerful component framework provided by the Java EE specification. All Imixs Workflow Java EE components are implemented as Enterprise Session and Entity EJBs. This makes it very easy to integrate these components in a new or existing enterprise software project. Continue reading “BPM SOLUTION FOR GLASSFISH AND JBOSS”

SWITCHING JDK FOR GLASSFISH APPLICATION SERVER

Since the latest Imixs Workflow release 2.1.0 we recommend to run Imixs Workflow Applications on Glassfish Application Server using JDK 1.6.

If you use Linux Debian as your Server platform – which is a nice choice – the upgrade from JDK 1.5 to JDK 1.6 is a little bit tricky. So make sure to pay attention to the following points:

  1. Java 1.6 for debian 4 (etch) is available in backports, so just add backports.org to sources.list:
      >vi /etc/apt/sources.list
    and add the following line to the list of repositories:
    deb http://www.backports.org/debian etch-backports main contrib non-free
  2. Next you can install the JDK 1.6 with following command
    >aptitude update
    >aptitude -t etch-backports install sun-java6-jdk
  3. Now you be able to switch to the new java version using the following command:
    >update-alternatives –config java
    You will see an output like this:
 There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                      Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-6-sun/jre/bin/java       63        auto mode
  1            /usr/lib/jvm/java-1.5.0-sun/jre/bin/java   53        manual mode
* 2            /usr/lib/jvm/java-6-sun/jre/bin/java       63        manual mode

Press enter to keep the current choice[*], or type selection number:

now you can choose the new JDK.
After you have upgraded the Java Version you can check the version number with

 >java -version

You should now see something like this:

java version "1.6.0_07"
Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
Java HotSpot(TM) 64-Bit Server VM (build 10.0-b23, mixed mode)

UPDATE THE GLASSFISH ENVIRONMENT

After you have changed the JDK on your OS you need to change also the JDK setting used by the Glassfish Server.

The JDK which is used to start the Glassfish Server is configured in the file

GLASSFISH_INSTALL/config/asenv.conf

Edit the file with

>vi asenv.conf

and change the line

AS_JAVA="/usr/lib/jvm/java-1.5.0-sun-1.5.0.14/jre/.."

into

AS_JAVA="/usr/lib/jvm/java-6-sun/jre/.."

Now you can restart Glassfish Server which will now run with the new JDK 1.6.

IMIXS WORKFLOW RUNS ON JBOSS APPLICATION SERVER

The Imixs JEE Workflow components are successfully tested on the latest release of JBoss Application Server V 5.1.0.GA (JBossAS 5). The JBoss Application Server is the one of the most widely used Java application servers on the market.

The Imixs JEE Workflow is a full featured Workflow Management System (WFMS) based on the Java EE5 specification and fulfills the requirements to a scalable, transactional, robust and simple deployable Java EE Workflow System.
JBoss 5 for the Java EE5 codebase fully complies with the Java EE5 specification. So the JBossAS 5 is an ideal platform for Workflow Management Systems based on the Imixs Open Source Workflow.
The Imixs JEE Project site provides additional Installation guides for JBoss and also informations about deployment strategies to get best results running the Imixs Worklow on JBoss Application Server.

Read more about the Imixs Java EE Workflow System.

ORACLE-FIX 2.0.1

Running the latest stable release of the Imixs JEE Workflow components (imixs-workflow-jee-impl-2.0.1) on a Oracle database can lead into a situation where users did not find any entities or can process new workitems.

The reason for this issue is a query optimizer used in one of the core EJBs. The Problem did not occur on MySQL Database Pools but on Oracle Database Pools.

To fix this problem please use on oracle based workflow systems the following hot fix release:

imixs-workflow-jee-impl-2.0.1-ORACLE-FIX

This patch is available in the subversion repository in /branches. Please let us know if you have any problems. The bug will be fixed in upcoming new 2.0.2 release. Please see also details at Issue Tracker Issue #55.