NexJ Logo


This section describes known issues that pertain to the application framework.


Persistent sessions must be enabled to use node type functionality. Node type functionality assigns types to nodes to allow individual nodes to process only certain type of work, such as web requests, batch processes, and Exchange synchronization.


Persistence mapping behavior differs between the datasource and upgrade files. The NexJ framework does not automatically correct conflicts in the upgrade file as it does in the datasource file. For example, if you set Allow Null to true for a required attribute in the datasource file, the NexJ framework automatically sets Allow Null to false. This behavior does not occur in the upgrade file and can result in a situation where framework validation fails.


When upgrading to version 7.1 from a previous release, upgrade or seed logic is not restricted to the node that is executing SysUpgrade'upgrade events.

Before upgrading, ensure all SOA connections are configured with context binding. After configuring context binding, any SOA invocations during the upgrading or seeding process will run on the same node that is executing the upgrade or seed.


If an error occurs when the SysUpgrade'upgrade event calls a nested transaction such as begin-transaction, the database is not restored to its original state.

To help avoid this issue, ensure that SOA invocations during seeding are in the same transaction as SysUpgrade'upgrade events or remove all nested transactions from SysUpgrade'upgrade events and persistence initializers. Also ensure that you perform a full database backup before upgrading the database.


If DB2 is used as the application database, text searches of the Campaigns list on the Campaigns workspace result in an unexpected error.


Sessions may be persisted to the database two to three minutes later than would normally be expected based on the session timeout specified in the environment file.


When you override the requiredness of an attribute in a SOA type, the inheritance relationship is not exposed in WSDL.

Design the type hierarchy so that overriding attributes is not required. For example, declare a common base type that does not include the attribute, then declare the attribute uniquely in each subtype.


When using the performance banner to test your system, some scenarios in which the server-side metrics are not available result in the banner displaying a Total Time value that may be incorrect.


Because of the User Registry and the current limitations of the heterogeneous framework, CRM-based metadata that previously used associations to the User class as part of predicates or Order By will throw exceptions.

Developers can denormalize the attribute from the User Registry, or use other attributes that are on the UserPerson object.


Non-silent SPNEGO single sign-on will fail if the corresponding LDAP repository does not contain the "nexj-groups" property for the user.


If a metaclass has a public event which has arguments that expect an instance of an unspecified type, a RESTful request invocation for the event will fail.

Ensure that all arguments in the event include typed instances.


Third party JMX operations that take arguments cannot be invoked, for example, dumpAllThreads(boolean, boolean)). Only operations without arguments are successful.


When you launch the application, after deploying it in WebSphere with IBM JDK, a null pointer exception is thrown. This issue is not consistently reproducible.


You cannot select text in Mozilla Firefox by clicking, holding, and dragging the mouse. To select text that is not in a text box using Firefox, you must double click the text you want to select, and it will be highlighted for you.


A backwards compatibility issue occurs when running metadata with a core plugin version that is less than 13.0.92 and a plugin version that is greater than or equal to 13.0.92. This issue causes the unicode property that is set to false for Oracle database connections to be overridden and set to true.


HTTP requests using basic authentication only succeed when single sign-on is also in use.


With persisted sessions disabled in NexJ Server, the client state is not saved when a user session times out.


When the customDialogMode attribute is set to false in the SysPortletServer.application file, if a user opens a nested dialog from an alarm dialog in NexJ CRM, other application actions are not allowed until the alarm dialog is closed.


If you set the log level of the nexj.core.rpc.cluster.SettingManager class to WARN or ERROR, a portion of logic to load and persist settings is disabled.


When you create a class with database persistence mapping and attributes that update audit functionality, and you make a change to an instance of the class through the Scheme Console in NexJ Studio and commit the change, or make a change to an instance of the class through REST, the changes are not recorded in the audit log.


The application fails to start if deployed in IBM WebSphere Application Server (WAS) using IBM SDK Java Technology Edition or

Use IBM SDK Java Technology Edition


The ActionNotification unit test cases with EWS2013 (EntitySeriesException, SendSeriesInvite, NoInvitesBasic) are failing.


When the updateAudit attribute is enabled in the environment file, attributes that are not modified are unnecessarily lazy loaded and may cause performance issues.


When you are using the three-way merge tools during an upgrade and are reviewing an element that has a large number (25+) of conflicting changes, the Copy All Non-Conflicting Changes button can sometimes misidentify and overwrite customization in the current model with information from the upgrade model. At this time, this behavior has only been reported in the context of unit tests, but caution should be used in other parts of the model when using this functionality.


The default initializer runs multiple times for unit tests having multiple test cases with Run Initializer Once selected.


In some cases, value nodes and their related information might be omitted when importing complex attribute types into NexJ Studio using the XML schema/WSDL functionality.


Simultaneous changes to multiple context variables, for example, EntityId and ObjectId, that relate to the same item can trigger duplicate queries and increase total query execution time.


When using SPNEGO with LDAP, if an LDAP query fails following a successful Kerberos authentication, the logged error message does not contain enough useful information (such as the Kerberos principal along with the LDAP query) to aid in troubleshooting.


In some cases, failed messages sent by a broadcast-enabled multi-node system using JMS are not being properly moved to the error queue. However, the failure is still recorded in the logs on each node.


A new JMX statistic has been added, which tracks queue depth (the number of messages on the queue waiting to process). In some cases, following a metadata re-deployment, the depth becomes incorrectly and permanently inflated by a small amount (in the tens), and will never reach zero.


If you update the external value of an existing enumeration and use a Load step in your upgrade file in order to reload the enumeration, the externalCode column in the NJEnumCode table record will be updated, but externalCode column in the NJEnumDisplay table does not. The result is that when you then try to retrieving the external value using Scheme script, you will receive the original value (from NJEnumDisplay) while the Enumerations pane in the Admin application will display the new, correct value (from NJEnumCode).

When updating non-system enumeration values in Studio, delete them from the EnumCode and EnumDisplay tables, as shown in the following example code:

<SQL><![CDATA[delete from ${table:EnumCode} where 
valueCode=’ANNUITANT’ and 

<SQL><![CDATA[delete from ${table:EnumDisplay} where 
valueCode=’ANNUITANT’ and 


This workaround results in any changes made through the Admin Console to the affected captions to also be overwritten.


Any request sent to the server that exceeds the size specified in the maxRequestSize environment variable value (for example, meetings with large attachments), results in an HTTP Server error from Apache Tomcat instead of receiving a request size error message.

Configure the Tomcat maxSwallowSize to 10 times (or another multiple) of the maxPostSize so that if the attachment exceeds the maxPostSize limit but is lower that the maxSwallowSize, the request size error displays.


When message processing fails for a queue configured to retry, and the queue is on a different provider than that of the retry queue (which is an internal NexJ queue), the retry logic fails. The application will incorrectly try to send the message to the retry queue using the connection associated to the external provider.


Exporting application logs through an MBean diagnostic operation is not currently supported for IBM WebSphere environments.


When running unit tests, the process may hang indefinitely if there is an error during initialization.


Exchange unit tests can fail intermittently if the unit test environment file specifies the fully qualified host name for the HTTP Server URL.

To prevent the failures localhost should be used as the HTTP Server URL.


Adding -verbose:gc as a JVM argument to is unsupported.

Add the arguments to jvm.conf instead.


NexJ Studio does not validate the names of test cases. If you have a unit test case with an invalid name, it will be reported as not found when you run your unit tests.


When running an application server with multiple nodes (in a cluster), if some metadata is edited and dynamic metadata deployment is triggered without bringing down any of the nodes, the nodes will get removed from the cluster once the metadata switching is complete.


Changing the read-only flag on attributes from #t to #f does not result in the generation of a new API version for NexJ's versioned APIs.


Exceptions during query generation (such as heterogeneous joins) do not output the attempted query making it more difficult to determine the exception cause.


When formatting messages that are namespaced by colons, the Apache Avro message formatter generates errors and fails.

Use periods to delineate namespaces. This workaround is not applicable to third-party generated messages over which there is no control.


When setting up Kerberos authentication for a Kafka integration channel on NexJ Server, the property specifying the keytab file location is not picked up.

Specify the keytab file location in the default configuration file under Java/jre/lib/security/Krb5.conf.


If you are using NexJ CRM on WebSphere Application Server (WAS), and running with Kafka integration, WAS may throw FFDC exceptions. These exceptions have not been found to have functional effect on any of the systems, but do create noise in the logs.


When you run the Data Load Tool recreate command in NexJ Studio on, the default Master Password Encryption password file location is not automatically used. This differs from the behavior without using tools.

Add the -Dnexj.master.cipher.url property to the JVM arguments.


An issue with the processing of database index names has surfaced where it is possible for the application to interpret two different databases index names as the same value and trigger an exception.