Technology
This section describes known issues that pertain to the application framework.
ECRM-701
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.
ECRM-1482
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.
ECRM-2887
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.
Workaround:
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.
ECRM-2889
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.
Workaround:
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.
ECRM-8297
If DB2 is used as the application database, text searches of the Campaigns list on the Campaigns workspace result in an unexpected error.
ECRM-8376
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.
ECRM-8457
When you override the requiredness of an attribute in a SOA type, the inheritance relationship is not exposed in WSDL.
Workaround:
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.
ECRM-8459
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.
ECRM-8579
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.
Workaround:
Developers can denormalize the attribute from the User Registry, or use other attributes that are on the UserPerson object.
ECRM-21240
Non-silent SPNEGO single sign-on will fail if the corresponding LDAP repository does not contain the "nexj-groups" property for the user.
ECRM-22215
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.
Workaround:
Ensure that all arguments in the event include typed instances.
ECRM-22671
Third party JMX operations that take arguments cannot be invoked, for example, dumpAllThreads(boolean, boolean))
. Only operations without arguments are successful.
ECRM-23347
When you launch the application, after deploying it in WebSphere 8.5.5.11 with IBM JDK 7.1.3.60, a null pointer exception is thrown. This issue is not consistently reproducible.
ECRM-23530
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.
ECRM-23753
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 fals
e for Oracle database connections to be overridden and set to true
.
ECRM-23841
HTTP requests using basic authentication only succeed when single sign-on is also in use.
ECRM-24857
With persisted sessions disabled in NexJ Server, the client state is not saved when a user session times out.
ECRM-24911
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.
ECRM-26201
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.
ECRM-26276
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.
ECRM-26300
The application fails to start if deployed in IBM WebSphere Application Server (WAS) using IBM SDK Java Technology Edition 8.0.5.7 or 8.0.5.10.
Workaround:
Use IBM SDK Java Technology Edition 8.0.5.17.
ECRM-26354
The ActionNotification unit test cases with EWS2013 (EntitySeriesException, SendSeriesInvite, NoInvitesBasic) are failing.
ECRM-27032
When the updateAudit
attribute is enabled in the environment file, attributes that are not modified are unnecessarily lazy loaded and may cause performance issues.
ECRM-27272
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.
ECRM-27399
The default initializer runs multiple times for unit tests having multiple test cases with Run Initializer Once selected.
ECRM-27413
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.
ECRM-27428
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.
ECRM-27486
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.
ECRM-27516
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.
ECRM-27560
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.
ECRM-27570
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).
Workaround
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 typeCode=’SENTITYACCOUNTROLE’]]></SQL> <SQL><![CDATA[delete from ${table:EnumDisplay} where valueCode=’ANNUITANT’ and typeCode=’SENTITYACCOUNTROLE’]]></SQL>
Important
This workaround results in any changes made through the Admin Console to the affected captions to also be overwritten.
ECRM-27576
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.
Workaround:
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.
ECRM-27597
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.
ECRM-27606
Exporting application logs through an MBean diagnostic operation is not currently supported for IBM WebSphere environments.
ECRM-27657
When running unit tests, the process may hang indefinitely if there is an error during initialization.
ECRM-27690
Exchange unit tests can fail intermittently if the unit test environment file specifies the fully qualified host name for the HTTP Server URL.
Workaround:
To prevent the failures localhost should be used as the HTTP Server URL.
ECRM-27765
Adding -verbose:gc
as a JVM argument to modeld.sh
is unsupported.
Workaround:
Add the arguments to jvm.conf
instead.
ECRM-27766
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.
ECRM-27773
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.
ECRM-27801
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.
ECRM-27821
Exceptions during query generation (such as heterogeneous joins) do not output the attempted query making it more difficult to determine the exception cause.
ECRM-27843
When formatting messages that are namespaced by colons, the Apache Avro message formatter generates errors and fails.
Workaround:
Use periods to delineate namespaces. This workaround is not applicable to third-party generated messages over which there is no control.
ECRM-27917
When setting up Kerberos authentication for a Kafka integration channel on NexJ Server, the property specifying the keytab file location is not picked up.
Workaround:
Specify the keytab file location in the default configuration file under Java/jre/lib/security/Krb5.conf
.
ECRM-27918
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.
ECRM-27960
When you run the Data Load Tool recreate command in NexJ Studio on modeld.sh
, the default Master Password Encryption password file location is not automatically used. This differs from the modeld.sh
behavior without using tools.
Workaround:
Add the -Dnexj.master.cipher.url
property to the JVM arguments.
ECRM-28023
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.