Troubleshooting

This chapter describes known issues and known restrictions for the usage of Stardust.

For known issues concerning upgrades from earlier version, also refer to chapter Upgrading to Later Versions.

Known Issues

Out of Memory Errors

Eclipse-Integration

A common problem in Eclipse environments is the running out of PermGenSpace. When using a Sun VM, you can increase the size of the permanent generation memory. The default maximum is 64 megabytes, but more may be needed depending on your plug-in configuration and use. The maximum permanent generation size is increased by using the -XX:MaxPermSize=<memory size> argument. Note that this argument may not be available for all VM versions and platforms, please consult your VM documentation for more details.

If an out of memory error occurs while running the modeler please increase the heap size available to Eclipse. To do this edit the eclipse.ini file, residing in your Eclipse folder.

Now set the minimal and maximal heap size, for example:

-vmargs
-Xms128m
-Xmx512m
-XX:MaxPermSize=128m

Hereby the -Xms option specifies the stack space and -Xmx the maximum heap size. MaxPermSize specifies the maximum PermGen size. PermGen means "Permanent Generation" and it is a part of memory where all permanent objects are stored.

Server

In case you got a PermGen space error while running a server, you have to assign more memory to the server itself. In the launch configuration of your server add the following VM arguments:

-Xms128m -Xmx512m -XX:MaxPermSize=128m

These are the minimum requirements, the values are increasable. Please test which value applies to your requirements.

To change the launch configuration accordingly perform the following steps:

  1. In the server view right-click your server and choose Open.
  2. Select Open launch configuration.

Server Launch

  1. In the Edit launch configuration properties dialog switch to the Arguments tab.
  2. In the VM arguments entry field enter the memory arguments for your server.
    For example for a Tomcat server set: -Xms128m -Xmx512m -XX:MaxPermSize=128m

Server Arguments
Figure: Setting Server Arguments for Tomcat

In case you run out of memory while you are working with an external server, the memory can be increased by adding some arguments in specific batch files or Java option environment variables. Please refer to the documentation of the server you are using for detailed information.

Stardust Rapid Application Environment

Stardust Portal is not provided for Dynamic Web module version 3.0

If the Stardust Portal is not provided in Dynamic Web Project Dialog drop-down list in the Configuration section, check for the right setting in the Dynamic web module_version. Note that for the time being only versions 2.4 and 2.5 are supported. For details refer to section

Incomplete Derby database creation

Sometimes it might happen that your database created in the Rapid Application environment is incomplete. In this case try one of the following or a combination:

No automatic upgrading of libraries

Currently there is no automated facility for upgrading the libraries contained in existing Dynamic Web Projects with Stardust facets to the most recent Stardust version. In that case you have to upgrade the Stardust facets manually as described in detail in the section Upgrading Stardust Facets of the chapter Creating a Dynamic Web Project in Eclipse.

Corrupt content of Jackrabbit repository

In some cases, e.g. after a non graceful shutdwon, it might occur that your Jackrabbit repository content is corrupt. If it does not contain important content to be lost, remove the complete repository to make it created newly.

Internal Web browser currently not supported

For the time being, the internal Web browser is not supported. Use your default external Web browser, which you can set in the Windows preferences.

Modeling

Process interface implementation - use referenced data

When implementing a process interface in a different model, make sure to import data that is used in the process interface into the new model per reference. Creating data with the same Id is not sufficient and data values passed by the process interface will not be passed into the implementing process. Only data referenced from the model defining the process interface can be accessed correctly. No modeling validation is displayed to warn of this behavior.

Process Attachments do not work across process interface implementations and separate models

Process attachments do not work in a scenario where a subprocess is invoked that is an implementation of a process interface and was defined in a different model fragment. To avoid this problem, make sure that the model which implements the interface imports and overwrites his own process attachment data with the one of the provider model.

Overwriting models

Overwriting models, where the ID of a model element having instances (i.e. an activity having activity instances) was changed may lead to corrupted (but recoverable) audit trails. Please avoid modification of element IDs in overwrite scenarios.

JMS response activities not working

In case JMS response activities are not working, make sure that the property QueryService.Guarded = false is set in your carnot.properties file. Please refer to the section Service of the chapter Client Side Properties in the Operation Guide for detailed information on this property.

Problems with JSP Applications and shared sessions

The shared session approach is a way to let an external JSP application interact with Stardust and the process data. This is no longer a recommended approach as several standard-compliant technology stacks are provided as outlined in the Process-based UI Mashups - External Web Applications chapter.

The usage of a shared session includes leveraging of object names which might not be stable and introduces common class-loading issues. The external JSP application must not request any object which relates (either due to inheritence or member attribute) to classes from the JEE Stack (Servlets, JSF-classes etc.), otherwise CallNotFoundExceptions will occur if the libraries from the external JSP application differ from those bundled with the Stardust Portal. For example the usage of an external JSP application powered by RichFaces is not possible in shared-session mode as those JSF library classes will clash with those provided by the Stardust Portal.

Structured Data - Invocation of XSD attributes fails

In case invocation of xsd attributes fails, you can change the behavior of the xpath validation. Per default, a strict xpath validation will be performed on XSD schemas. To provide a lenient validation, you can set the property XPath.StrictEvaluation in your carnot.properties file to false. Please refer to the section XSD Schema Validation of the chapter Structured Data Types for detailed information.

Problems occur when using shared XSD Types

In case a model has a reference to an external structured type definition that is also referenced by other models, a change of this structured type definition can cause problems in some of these models. If you change an XSD which is referenced by multiple models, you must make sure that it is still valid for all other referencing models. We recommend to give the XSD file an unique name for every model version to prevent invalid XSDs.

Structured Data - Behavior of xsd:time

In case of structured data type xsd:time, the date (not time) returned by engine is relative to the current date on server and not the date which is given as input to the structured data type. For example, for structured data type xsd:time, the date/time is specified as 01-July-2012:06:20:20. If you verify the same via out data path, 02-Aug-2012:06:20:20 is returned. Here it assumes that current date is 02-Aug-2012. Thus, all times returned by the engine are relative to the start of the server current day (midnight) adjusted for the server time zone and daylight saving time.

Language bundle cannot be deleted

In case a language bundle defined in the modeler cannot be deleted, use the following workaround:

  1. Restart the Eclipse environment.
  2. Manually delete the resource bundle file from its location in the tree in the Package Explorer.

MTA - Fully-qualified class names are not accepted for Serializable Data

Pasting fully-qualified class names into text box for Serializable Data name is not possible in Message Transformation Application. It works when selecting the class via browsing.

Business Process Modeler

Stardust Portal Issues

Generic DMS error during first login to Process Portal on WebSphere 7 environment

In case a Generic DMS error is thrown during the first login to the Process Portal in a WebSphere 7 environment, the reason might be that outer transactions cannot be resumed. Set the server-side property Stardust.DocumentManagement.Resource.Create.inNestedTx in your carnot.properties file to true to create Documents or Folders in a new nested transaction.

Changes in Text and HTML Documents need to be saved to server first

Clicking the general Save Document button to save an edited Text or HTML document, does not send updated contents to the server. The Save icon provided in the text editing toolbar has to be used first to save to the server. Afterwards the general Save Document button will save the content correctly.

Using session-scoped managed beans for interactive JSF activities might cause corrupt data

Using session-scoped managed beans for interactive JSF activities might lead to corrupt process data as it is possible to open several activities of the same kind at the same time. Use Spring-based beans declared with a portalTab scope instead. For details refer to chapter Integrating JSF Applications of the System Integration.

Session Timeout during principal login

In case a session timeout occurs with principal login and you are using WebLogic as application server, deactivate the keep alive option for WebLogic as described in section Deactivating the KeepAlive option of chapter WebLogic.

LDAP login provider allows login without user password

Note that in case Stardust is configured to use the LDAP Login Provider and internal security, a user is allowed to login without providing a password. You can either modify the LDAP server to disallow empty passwords or use the following code snippet to avoid the LoginFailedException, if you are using the LDAP Login Provider example. Modify your LDAP Login Provider class with the following code snippet.

public class LDAPLoginProvider implements ExternalLoginProvider
{
   public static final Logger trace = LogManager.getLogger(LDAPLoginProvider.class);

   public ExternalLoginResult login(String id, String password, Map properties)
   {
      if(password == null || StringUtils.isEmpty(password))
      {
         throw new LoginFailedException(
               BpmRuntimeError.LOGIN_LDAP_INVALID_USER_PASSWORD.raise(),
               LoginFailedException.AUTHORIZATION_FAILURE);
      }
      return LDAPAdapter.instance().login(id, password, properties);
   }
}

Performance decrease and timeout during process search

Performance issue and timeout may occur when searching for processes that include case process instances. It happens if the All Processes option is selected and the total count is not available in the summary of the search result table. This happens in two cases:

To avoid any issues, the summary displayed at the top of the table will change as described in section Issues with pagination and records displayed for process search results including cases of chapter Searching for Processes and Activities in the End User Handbook.

Manual trigger might be missing in case process does not appear in startable process list

In case a specific process does not appear in your startable process list as expected, please check if a manual trigger is missing in this process to trigger the process.

IllegalStateException on Stardust Portal Logout

If you are using Tomcat version above 6.0.18, you may encounter IllegalStateException on Stardust Portal logout. In this case perform the following settings:

Other

Using session-scoped managed beans for interactive JSF activities might cause corrupt data

Using session-scoped managed beans for interactive JSF activities might lead to corrupt process data as it is possible to open several activities of the same kind at the same time. Use Spring-based beans declared with a view scope instead. For details refer to chapter Integrating JSF Applications of the System Integration.

Reporting

Boolean Type Parameters

In case UseOuterJoins is to 'true' in the Parameters property page and processes exist having boolean data not yet initialized, the result view page displays for this data the value 'false'.

Errors and warnings in Birt version

The bundled Birt version comes with some errors and warnings that can be disregarded.

Reporting URL access problems

In case you have deployed your report in an external environment, problems occur in accessing the reporting URL. The relative links to reports are not generated correctly by Birt when using standalone servers and thus cannot be found.

For example, the generated link

http://localhost:8080/carnot-reporting/run?__report=AnalysisOverview.rptdesign

misses the prefix reports/carnot/. The correct link here should be:

http://localhost:8080/carnot-reporting/run?__report=reports/carnot/AnalysisOverview.rptdesign

To access the report link you can either:

Deployment

Websphere issue with version 8

Using Websphere 8 with versions earlier than 8.0.0.5 might cause issues. Please use version 8.0.0.5 or later.

WebLogic - Rhino version incompatibility with Stardust

In WebLogic version 10 an older version of the JavaScript library Rhino is integrated, which is not compatible with Stardust. An exception like the following occurs during model deployment resulting from this incompatibility:

java.lang.NoSuchMethodError: org.mozilla.javascript.Context.enter(Lorg/mozilla/javascript/Context;Lorg/mozilla/javascript/ContextFactory;)Lorg/mozilla/javascript/Context;

To avoid this exception perform the following steps:

  1. Download Rhino version 1.6 R7 ( ftp://ftp.mozilla.org/pub/mozilla.org/js/rhino1_6R7.zip).
  2. From the downloaded rhino1_6R7.zip file take the js.jar file only and put it to the lib folder of the WebLogic domain (e.g. C:\appserver\bea\user_projects\domains\mydomain\lib).
  3. Change the following line in the startWebLogic.cmd, residing in the bin folder of your WebLogic domain (e.g. C:\appserver\bea\user_projects\domains\mydomain\bin\startWebLogic.cmd in case you use Windows)
    from
    set CLASSPATH=%CLASSPATH%;%MEDREC_WEBLOGIC_CLASSPATH%
    to
    set CLASSPATH=C:\appserver\bea\user_projects\domains\mydomain\lib\js.jar;%CLASSPATH%;%MEDREC_WEBLOGIC_CLASSPATH%
    .
  4. Stop and restart WebLogic using this modified script.

Now WebLogic is using the Rhino version required by Stardust.

WebLogic - connection to engine in an EJB environment with tunneling service configuration fails

If you like to connect to the engine in an EJB tunneling environment with WebLogic, use the TunnelingSessionFactory provided by Stardust to avoid connection issues. To use this session factory, set the following property in your client-side carnot.properties file:

Secure.Session.Factory = org.eclipse.stardust.engine.api.ejb2.TunnelingSessionFactory

Missing validation classes during EJB deployment

During an EJB deployment, it will be searched for validation classes. If they will be detected, they will be used, otherwise a deployment warning will be generated, which can be ignored. This is different for interactive applications. No warning will be generated for them as it is assumed that they are unknown to the engine in any case. However a ClassNotFoundException will be logged, but these exceptions will not interrupt the deployment.

Model cannot be deployed from Eclipse via Spring remoting on Windows 7

When deploying the model on Windows 7 via spring remoting, sometimes the localhost cannot be resolved correctly. In this case, replace the localhost from the file carnot-spring-client.properties by real host name. Also, turn-off automatic publishing of resources (ippConfigPublisher) to avoid the change overridden with each content published to the server. To do this, go to Server View > Publishing > Select Publishing Actions and clear IPPConfigPublisher checkbox.

Deployment fails in case model file name contains Japanese characters

For the time being, model names containing Japanese characters, are not supported. A deployment of such models results in an Exception. In that case rename the model file using UTF-8 encoding.

Audit Trail

Lock wait timeout when synchronizing user session to disk

The BatchUpdateException occurs in case a system user is used to retrieve a Stardust service and this system user has not been excluded for session tracking. To avoid session tracking for system users, please provide the property Carnot.AuditTrail.Session.NoSessionTracking = motu within the carnot.properties file.

HeuristicMixedException on WebLogic during transaction commit

This exception occurs if WebLogic's JTA transaction timeout settings are greater than the timeouts for the XA data source. This leads to the database transaction timing out before the WebLogic transaction. To resolve this, check the application server's default transaction timeout settings and server-specific deployment descriptor timeout settings. Also the standard deployment descriptor shipped with Stardust contains the settings:

<trans-timeout-seconds>600</trans-timeout-seconds>

Databases

Sybase - failing invocation of parallel activities

To avoid problems during the invocation of parallel activities in a process definition, especially after an AND-split, set the property AuditTrail.UseLockTables in your carnot.properties file to true. Please refer to the entry AuditTrail.UseLockTables in the chapter Client Side Properties, residing in the operation guide, for information on this property.

Sybase - deadlock situation

To avoid deadlock situations, set the property AuditTrail.InterceptJdbcCalls in your carnot.properties file to true. Please refer to the entry AuditTrail.InterceptJdbcCalls in the chapter Client Side Properties, residing in the operation guide, for information on this property.

Mixing transactional and non-transactional behavior in MySQL

MySQL does not consider (some) errors as errors, if they happen on the second or subsequent row of a multi-row insert. Only if it happens on the first row, it is an error. To change this behavior so that every error is really an error, set:

SET SQL_MODE='STRICT_ALL_TABLES'

DMS

Mapping - Hidden Type Mismatch

Mapping types, which are different, but which are both represented as Number in JavaScript, can cause a hidden type mismatch. This can be avoided by using the expression toFixed(0).

For example use the following expression, if you map a structured data element with type int to an element with the type double:

DemoStructType.DoubleTest = DemoStructType.IntegerTest.toFixed(0);

Please refer to the section Supported XSD Types for information on how specific XSD types are mapped to JavaScript types.

Performance

Setting properties of Message Transformation Application

You may notice some performance issues while changing the properties of Message Transformation Application. This is due to the automatic validation process of JSF, JSP and JavaScript.

This issue is not related to Stardust, and it will persist even if you turn off Stardust validation. (Eclipse-> Window-> Preferences-> Stardust-> Enable auto validation). You may take following steps to resolve it:

  1. Select Window> Preferences> Validation
  2. Disable the offending validators

Validation
Figure: Setting properties of Message Transformation Application

Note that you may not get any warning or error message related to the syntax and the semantics of the model in the Problems view after disabling the Automatic validation. However, you can do a one time validation after completing the model by using following method:

  1. Enable the validation again using the same method described above
  2. Goto Eclipse > Project > Clean

Note that this solution applies to other cases also, where performance is affected by the automatic validation. (For example, in Message Parsing and Message serialization).

Web Services

WebServices API not completely provided yet

The API for the following features is not yet available via WebServices API:

Collaborative Modeling

Lock Failed Error - Item is out of date

When trying to lock an element, it might happen that you get an exception indicating that the item is out of date, as in the following screenshot:

Lock Error
Figure: Lock Failed Message

The lock file might be out of date, if another user just released a lock on this element and the refresh job is not running during your locking process. As a workaround, you can either:

However, after the lock folder is refreshed, locking is working without problems again.

Jackrabbit

Dirty Internal State on Transaction-Rollback during Global Transaction (container managed transaction)

If you encounter a problem as described in ticket JCR-2712 please contact Stardust Support.

Deadlock inside XASession on WebLogic

If you encounter a problem as described in ticket JCR-2554 please contact Stardust Support.

Command Tools

Sysconsole Command: Archiving with Model Deletion

Note that the following archive Sysconsole commands with model deletion should only be performed in maintenance windows without workflow, otherwise this might lead to inconsistency in the audit trail:

For details on the Sysconsole archive command, refer to section Audit Trail Archive Administration of chapter The Sysconsole Command.

Known Restrictions

Restrictions on Switching Primary Implementations for running Processes

Switching the primary implementation for a running process has the following restrictions:

Web Services Deployment on JBoss - Structured Data XPaths do not get generated in Audit Trail

When deploying a model on JBoss using Stardust Web Services, XPaths of structured data do not get generated in the STRUCTURED_DATA table. Perform the following steps so that the XPath entries are created correctly:

  1. Remove the <JBOSS_DIR</lib/endorsed folder

Transient Processes

Support for asynchronous subprocesses

Currently, asynchronous subprocesses are not supported for transient processing. Whenever the workflow of a transient or deferred process instance reaches a subprocess activity that invokes an asynchronous sub-process, the audit trail persistence is set to Immediate for both the parent as well as the sub-process.

Pull events are ignored for transient process instance execution

As long as a process instance is executed transiently, pull events, i.e. events triggered by the event daemon, are not processed. Instead a warning is logged whenever a transient process instance having a pull trigger event bound is written to the in-memory storage. This can be the case for example if its transaction is committed. The according log message looks as follows:

Event binding 'Event binding [oid = 1, type = 2, model oid = 2, object oid = 1, handler oid = 2]' applies to a transient process instance and will therefore not be processed by the event daemon.

Using JPA on EJB3 Platforms

With the default configuration as shipped, the usage of JPA is supported only on JBoss.

Making the EntityManager and EntityManagerFactories available in the JNDI scope of the Stardust Process Engine for other application servers is not impossible but will impose some restrictions when packaging and configuring your enterprise application. Please contact the Stardust Support team if you have the need to integrate JPA on these application server platforms.

In JBoss, the EntityManager and EntityManagerFactories can be bound in the global JNDI by setting the following properties in the persistence.xml file:

<property name="jboss.entity.manager.jndi.name" value="java:/DemoProject_JPA" /> 
<property name="jboss.entity.manager.factory.jndi.name" value="java:/DemoProject_JPA_factory" /> 

Deprecated Primitive Data Type Calendar

The primitive data type Calendar is deprecated. Problems might occur when using this type in queries. Please use the primitive data type Timestamp instead.

Supported XSD Types

Currently the following XSD types will be converted as in the following table for the usage in Message Transformation applications or transition conditions:

XSD TypeJava typeJavaScript type
anySimpleTypejava.lang.StringString
anyURIjava.lang.StringString
base64Binaryjava.lang.StringString
booleanjava.lang.LongNumber
bytejava.lang.ByteNumber
datejava.lang.LongNumber
dateTimejava.lang.LongNumber
decimaljava.lang.StringString
doublejava.lang.DoubleNumber
durationorg.eclipse.stardust.common.PeriodString
ENTITIESjava.lang.StringString
ENTITYjava.lang.StringString
floatjava.lang.FloatNumber
gDayjava.lang.StringString
gMonthjava.lang.StringString
gMonthDayjava.lang.StringString
gYearjava.lang.StringString
gYearMonthjava.lang.StringString
hexBinaryjava.lang.StringString
IDjava.lang.StringString
IDREFjava.lang.StringString
IDREFSjava.lang.StringString
intjava.lang.IntegerNumber
integerjava.lang.IntegerNumber
languagejava.lang.StringString
longjava.lang.LongNumber
Namejava.lang.StringString
NCNamejava.lang.StringString
negativeIntegerjava.lang.IntegerNumber
NMTOKENjava.lang.StringString
NMTOKENSjava.lang.StringString
nonNegativeIntegerjava.lang.IntegerNumber
nonPositiveIntegerjava.lang.IntegerNumber
normalizedStringjava.lang.StringString
NOTATIONjava.lang.StringString
positiveIntegerjava.lang.IntegerNumber
QNamejava.lang.StringString
shortjava.lang.ShortNumber
stringjava.lang.StringString
timejava.lang.LongNumber
tokenjava.lang.StringString
unsignedBytejava.lang.ByteNumber
unsignedIntjava.lang.IntegerNumber
unsignedLongjava.lang.LongNumber
unsignedShortjava.lang.ShortNumber

Comparing Decimal XSD Types

Please note that decimal xsd types are mapped as String values and thus are compared like Strings in transition conditions. To avoid this, use a Number typecast, e.g.:

Number(StructData1.decimal) > Number(StructData.decimal2)

Restrictions on Identifiers in Message Transformations and Transition Conditions

Some identifiers, which can be used in structured data types, are not supported in JavaScript. The following identifiers are not supported:

whereby underscores, digits or dots not used as first character are supported (e.g. first_data, data1, data.dot).

In case you use identifiers containing hyphens or dots in JavaScript, like in message transformations or transition conditions, you can set the identifier in square brackets and quotation marks as a workaround. Refer to section Restrictions on identifiers of chapter Message Transformation Application Type and section Restrictions on identifiers of chapter Working with Transitions respectively for details.

Editing Stardust XPDL Models with External Tools

In general models produced or modified by the Stardust modeler can be edited with other tools that supports XPDL 1.0 standard. However, the Stardust modeler is maintaining specific information for most of the model elements in an ExtendedAttribute with the name "CarnotExt".

In certain cases, these elements may refer to standard identifiers. For example the diagram information is stored exclusively in the extended attribute, however it has references to workflow objects defined in the standard XPDL part.

A concrete example is the carnot:Symbol (Kind="ACTIVITY"). This symbol has a live reference to the actual activity, and namely the field ModelElement contains the Id of the activity that it refers to. Similarly affected are carnot:Connection (Kind="TRANSITION") that refers a transition as well as the carnot:Symbols with the kind "DATA", "ROLE", "APPLICATION" or "PROCESS".

When modifying the Id of a workflow element or deleting the element that is referenced by such a diagram symbol, please take care to synchronize the respective reference (attribute "ModelElement") in the carnot:Symbol or carnot:Connection. If such synchronization is not performed then dangling references may result or references can point to an element of a different type. In the latter case, the Stardust modeler will no longer be able to load the model due to ClassCastExceptions.

Platform Restrictions

MySQL and MSSQL - Restrictions in Case Sensitive String Comparison

As MySQL/MSSQL always performs a case insensitive String comparison, the usage of the Boolean parameter caseSensitive in a DataFilter query will have no effect when using MySQL/MSSQL.

Using Structured Data Types as Document Types

For the time being, to use a Structured Data Type as Document Type, you need to create a Structured Data Type as well as a data object for the Structured Data Type. For details refer to chapter Document Types in the Concepts section.

Document Property Map and Document Type Concept

With the implementation of Document Type concept, the document properties map is described by a schema set as DocumentType. No automatic validation is provided of the map against the schema defined by DocumentType. Therefore, when validating the schema manually against the map of meta-data; collision may occur due to the properties set by the Stardust Portal. It is recommended to not to use them in order to avoid collision.

Following is the list of document properties that Stardust Portal attaches to a document.

Document Search - fulltext Search is restricted to String meta-data Properties

Fulltext search for document meta-data properties is only possible if they are modeled as xsd:string.

Relocation of activities

The following restrictions apply to the relocation functionality:

Aborting active activities

Active activities are aborted and only one activity can be defined to be the starting activity for the new process instance.

History of original process instance in portal

The history of the original process instance is available and identifiable only indirectly via the link feature in the Stardust portal.

Importing models with intermediate events

Intermediate events can be modelled only in Web-based modeler and are not compatible with Eclispe-based modeler. However, it is possible to open the models in Eclipse and edit model elements other than intermediate events, but no change should be done to the activities with intermediate events including transitions.