NexJ Logo

Deployment and developer upgrade tasks

Upgrade steps can be performed by deployment specialists, developers, or deployment specialists and developers working together. The table below lists the deployment and developers tasks for each topic in the upgrade section. Developer tasks are also noted in individual topics.

Upgrade topicDeployment taskDeveloper task
Installing the Arial font in Linux environmentsYesNo
Updating the KYC seederNoYes
Updating State enumerations for integrations and custom UIsNoYes
Updating ETL methods for bulk deletionNoYes
Converting dump files to Scheme dump scriptsNoYes
Running the updateReportsbyDateRange batch process for SLM periodsYesNo
Updating schedule report class namesNoYes
Setting the wchar attribute for data source connectionsYesYes
Removing obsolete connections for version 8.9YesYes
Adding new connections for version 8.9YesYes
Updating server information for version 8.9YesNo
Creating new required data sources for
version 8.9
YesNo
Adding the NJStatVersion table to the StatDatabase data source for version 8.9NoYes
Upgrading data sources for version 8.9YesNo
Upgrading the WebSphere application server for version 8.9YesNo
Synchronizing BI dataYesNo
Upgrading notifications using a Scheme scriptNo

Yes

Enabling rich text for document notes in Document ManagerYesNo


Installing the Arial font in Linux environments

If the application server runs in a Linux environment, you must install the Arial font, which is required by predefined reports. You must install the Arial.ttf font file for each JVM on the application server machine and then restart each JVM. For example, copy the font to the following location:
<JAVA_HOME>/jre/lib/fonts.

Alternatively, install the font system-wide. Consult your Linux documentation for the appropriate install location.

Updating the KYC seeder

If you are upgrading from NexJ Contact version 6.X, you must update the KYC seeder.

Info

This is a developer task and must be performed in NexJ Studio by a person with access to the application model.

NexJ Contact version 6.1 introduced a KYC seeder that adds a business process into the system at runtime. In certain circumstances, broken references may be left behind by the seeder. You must make the changes below to remove broken references before you upgrade.

Info

To update the KYC seeder you require the package.zip file, which is provided by your NexJ representative.

To update the KYC seeder:

  1. If the KYC class has not been customized, then you must use NexJ Studio to customize the class to make it editable. Commit your changes.
  2. Copy the ClientKYC.meta file from the /meta/classes/ folder in the package.zip file and paste it into the /meta/classes/ folder in your project.

The KYC seeder will be updated during the upgrade process.

Updating State enumerations for integrations and custom UIs

If you are upgrading from NexJ Contact version 7.2 or earlier, you must update enumeration values used in integrations or transformations with external sources and in custom UIs.

Info

This is a developer task and must be performed in NexJ Studio by a person with access to the model.

State enumeration values have been updated to support all countries. State enumeration values now associate administrative divisions, such as states or provinces, with the country to which they belong. Now enumeration values are prefixed with the country code. For example, the State enumeration value for New York state is now USA_NY. Prior to this release, the enumeration value was NY. Values have been updated in both the value and behaveAsValue properties for enumerations.

For backwards compatibility, the value of the value property for enumerations has been moved to the shortCaption property. For example, the value of the shortCaption property for New York state is now NY.

Info

Upgrade options vary depending on how you reference enumeration values in your project.

To update State enumerations for integrations and custom UIs:

  1. To update State enumerations used in integrations or transformations, if your project references the value property for State enumerations, replace the value property with the shortCaption for each enumeration referenced in the integration or transformation.
  2. If the collectionValue property in a UI bind for a control references the value property, replace the value property with the shortCaption property.

State enumeration values have been updated for your project.

Alternatively, consider writing upgrade steps, for example SQL upgrade steps, to amend affected records with the country code prefix in the database. If you write your own upgrade steps, then you do not need to update State enumerations used in integrations or transformations.

Updating ETL methods for bulk deletion

If you are upgrading from NexJ Contact version 7.2 or earlier, you must update ETL methods for bulk deletion.

Info

This is a developer task and must be performed in NexJ Studio by a person with access to the model.

In version 8.2, the ETL method for bulk deletion was changed to support only a list of object IDs passed in through NexJ Model Engine. API support for using a WHERE clause to perform bulk deletion has been deprecated. The invoke-bi-sync method is used instead.

To update ETL methods for bulk deletion:

Make the appropriate changes in your project. Change the method call from:

(BISyncTargetClassHelper.invokeETL syncClass where
 event isBulkSync)

To:

(invoke-bi-sync syncClass where
 event . <preloadAttributes>)

Where <preloadAttributes> is a list of attributes to preload to prevent lazy loads during instance deletion. Specify attributes to load before deletion to prevent multiple calls to the database for each item that is deleted.

In the following example, the city attribute is loaded during the read of BI_1_BILead before bulk deletion.

(invoke-bi-sync BI_1_BISyncClass_BILead `(= (@
 address1) "test address" ) "delete" '(city)

In the following example, the exchangeRatesFrom, exchangeRatesTo, and symbol attributes are loaded during the read of the BI_1_BICurrency and APDimCurrency classes.

(invoke-bi-sync BI_1_BISyncClass_BICurrency `(=
 (@) ,currencyOID) "delete" '(exchangeRatesFrom
 exchangeRatesTo symbol))


ETL methods for bulk deletion are updated.

You must also change any project level customizations that invoke the delete event on this helper class so that they use the new method signature, passing in the appropriate arguments as before.

Converting dump files to Scheme dump scripts

In NexJ CRM version 8.2, .dump files were deprecated. Scheme dump scripts replace .dump files. Scheme dump scripts are more flexible than .dump files and increase developer velocity.

Note: This is a developer task and must be performed in NexJ Studio by a person with access to the model.

As part of the upgrade process, it is strongly recommended that you convert any existing project .dump files to Scheme dump scripts. A converter is provided in the package.zip file to assist with this process.

Info

To convert .dump files to Scheme dump scripts you require the package.zip file, which is provided by your NexJ representative.

To convert .dump files to Scheme dump scripts:

  1. Extract the package.zip file to a temporary folder.
  2. Copy the dump_exclusions.txt file from the /meta/libraries folder into the /meta/libraries/dumps folder in your project repository. If necessary, create the /meta/libraries/dumps destination folder.
  3. Copy the etc folder into your project root directory. Confirm that the unittestdump.scm file was copied into the /etc/scratchpads folder in your project repository.
  4. In your project repository, move the current UnitTest.dump file from the /meta/dumps/ folder to the /meta/libraries/dumps folder.
  5. Inspect the dump_exclusions.scm file that was added to the project in the /meta/libraries/dump folder. Each line in the file represents an item or class to reject from the Scheme dump script.
    Remove items that you want to keep in the extracted Scheme dump script or add items to you want to remove.

    Info

    You may perform this step again later to fine-tune the exported Scheme dump script.

    The file contains three space-separated columns.
    class
    The class that the rule applies to. Rules do not apply to subclasses.
    The column may contain simple wildcards, such as *<class> or <class>*, to apply a rule globally, provided the selected classes do not already have rules defined in the file. Add wildcard rules to the bottom of the file.
    condition
    A condition that is run against the matching class instances in the dump file to determine whether they should be excluded.
    cascades
    For all items matching the above condition, cascades are a list of associations to remove with the instances.

  6. Modify the first code line in unittestdump.scm. Set the value of the dump:project-name variable to your project name.
  7. In NexJ Studio, open the Minimal Console.

    Info

    You can open the console in any stable project. If you use the current project, you may need to recreate using the UnitTest.dump to have a stable server for starting the Minimal Console.

  8. Execute the unittestdump.scm file in the /etc/scratchpads/ folder.
  9. Start the extract by running the (dump:CONVERT-DUMP-TOSCRIPT) command in the Minimal Console.
    A new file generates in the /meta/libraries/dumps folder. The file name format is seed_<dump:project-name>_data.scm, where dump:project-name is the project name that you provided in step 6. The generated file contains a serialized copy of all the extracted items from the UnitTest.dump file
  10. Edit the SysUpgrade.meta file, and in event getSeedData, change (seed-data) to the renamed function from step 9, which is named in the following format (seed_<dump:projectname>_ data.
    Recreate commands will now use the new Scheme dump script.
  11. Move the UnitTest.dump and SampleData.dump files from the project meta folder into the /etc/dumps/ folder. If necessary, create the /etc/dumps/ destination folder.
  12. Test your changes by performing a recreate on the current project.
    The Dump URL field should be left empty.
    When the recreate is successful, the dump upgrade is complete.
  13. Execute all unit tests and ensure a full passage rate.

You have converted .dump files to Scheme dump scripts.

Updating schedule report class names

In NexJ CRM version 8.3, classes and attribute names for certain predefined schedule reports were renamed.

Info

This is a developer task and must be performed in NexJ Studio by a  person with access to the model.

The following metaclasses were renamed in NexJ CRM version 8.3. If you are upgrading from NexJ CRM version 8.2 or earlier, and have customized or extended any of the classes in the following table, you will need to reflect the name changes in your customization:

Old class nameNew class name
ScheduleDayReportDataScheduleDayReportDataAct
ScheduleDayReportTimeSlotScheduleDayReportData

In addition, the following attributes of those classes have also been updated:

Old attribute nameNew attribute name
ScheduleDayReportData.scheduleReportDataScheduleDayReportDataAct.acts
ScheduleDayReportTimeSlot.scheduleItemScheduleDayReportData.act
ScheduleDayReportTimeSlot.timeSlotScheduleDayReportData.reportData

Info

This change also affects any JasperReport files (JRXML) that reference these classes.


Setting the wchar attribute for data source connections

In NexJ CRM version 8.4, the unicode attribute for data source connections was replaced with the wchar attribute. Previously, you could use the Unicode property to define character encoding for a data source connection by specifying the property in the connections or environment file.

Info

This is typically a developer task that is performed in NexJ Studio by a person with access to the model. A deployment specialist may also modify the wchar attribute.

If you are upgrading from NexJ CRM version 8.3 or earlier and have specified the unicode property, you must set the wchar attribute to the same value. For example, if you have explicitly set unicode="true" then you must now set wchar="true".

If you have not previously specified a unicode property, then you do not need to define the wchar attribute. The default values provide optimal performance settings for each database type.

Info

You can specify a new value for the wchar attribute by adding the attribute to the environment file. However, do not add the attribute unless it is required. Note that MySQL and PostgresSQL do not support wide characters.

The following table lists the default wchar attribute values by database type.

Database typeDefault wchar value
MSSQL, DB2, and SybaseTrue
OracleFalse
MySql and PostgreSQLNull


Running the updateReportsbyDateRange batch process for SLM periods

If you use SLM data, you must run the updateReportsByDateRange batch process in NexJ Admin Console for the first batch process. This enables SLM data to correctly shift reporting periods. The subsequent batch proceses will run automatically as scheduled.

To run the updateReportsByDateRange batch process:

  1. Log into NexJ Admin Console.
  2. In the toolbar, click the Batch Broker button .
    The Execute Batch Broker Process dialog opens.
  3. In the Batch Process drop-down, select ActDateReportCommand - updateReportsByDateRange.
  4. Add the arguments to the batch process.
    1. Click Add.
    2. In the first line of the arguments list, click Actions and select Add.
    3. In the Name field, enter startDate.
    4. In the Value field, enter the first day of the current month.
    5. In the second line of the arguments list, click Actions and select Add.
    6. In the Name field, enter endDate.
    7. In the Value field, enter the current date.
  5. Click OK.

You ran the updateReportsByDateRange batch process.

Removing obsolete connections for version 8.9

When you upgrade to NexJ CRM version 8.9, you must update the environment file to remove the connections that do not exist in the current version.

Consult with your development team to confirm that obsolete channels are not customized for another purpose in your project.

Note

If you do not remove obsolete connections, the deployment will fail.

To remove obsolete connections:

  1. In NexJ Studio, open the Deployment layer.
  2. In the Environments tab, open the environment or connections file for your deployment.
  3. In the Channel Connections tab, remove the obsolete connections.
    Remove the following channel connections:
    • BatchProcessQueue
    • ErrorQueue
    • LDAPSyncQueue
    • ReportSystemQueue
    • RetryQueue
    • SyncQueue
  4. In the SOA Connections tab, remove the obsolete connections.
    Remove the following SOA connections:
    • nexj:crm:Contact:1.0
    • nexj:crm:RelatedObjectWorkQueue:1.0
  5. Save the updated environment or connections file.

The obsolete connections are removed from the environment or connections file.

Adding new connections for version 8.9

When you upgrade to NexJ CRM version 8.9, you must update the environment file or the connection file for your deployment to reflect new structures and support new functionality.

Consult with your development team to confirm whether customized channels have been added to your project.

To update the environment or connection file for your deployment:

  1. In NexJ Studio, open the Deployment layer.
  2. In the Environments tab, open the environment or connection file for your deployment.
  3. Make the following changes:
    1. In the Data Source Connections tab, in the Advanced subtab, ensure that the Path field displays the correct version of the JDBC driver. For example, jtds-1.2.2-7.jar.
    2. [Optional] In the Channel Connections tab, verify that a MailConnection channel connection exists.
      Users can choose to receive two types of new message notifications in their conversations: email notifications and toast popup notifications. To enable users to receive email notifications for new messages, ensure that a MailConnection channel has been added to the environment file.
      Email notification functionality does not require an additional mail channel to be created. An existing mail connection channel is sufficient, for example:

      <MailConnection channel="Mail"
       from="outmail@example.com" inFolder="INBOX"
       inHost="mailserver.example.com"
       inProtocol="pop3"
       outHost="outmailserver.example.com"
       outProtocol="smtp" password="Email_Password"
       user="user.name@example.com"/>
    3. [Optional] In the Channel Connections tab, if you are deploying Client Insights functionality, add a HTTP connection that specifies the Grapevine6 URL and client-specific token using the following format.

      <HTTPConnection
       channel="insights:ArticleSearch"
       url="https://hostname/api/v1/
      searchinterests?token=tokenvalue"/>
    4. In the Data Source Connections tab, select the FileStorageConnection that you want to configure. In the General subtab, click the Select Data Sources button , remove the CSVExport data source, and add the FileExport data source.

      You can make the same change by modifying the FileStorageConnection element in the Source tab in your environment file:

      1. In NexJ Studio, navigate to the in the Deployment layer.

      2. In the Environments tab, open the environment file for your NexJ application.

      3. In the Source tab, and in the <FileStorageConnection ...> element, locate the <DataSource name="CSVExport"/> property.

      4. Change the <DataSource name="CSVExport"/> property to <DataSource name="FileExport"/>.

      5. Click Save in the toolbar to save the change to the environment file.

    5. In the SOA Connections tab, add the required SOA connections.
      The following SOA connections were introduced after NexJ Contact version 6.1 and are required for NexJ CRM version 8.9:
      • nexj:crm:Household:1.0
      • nexj:crm:Interaction:1.0
      • nexj:crm:Note:1.0
      • nexj:crm:Person:1.0
      • nexj:crm:ScheduleItem:1.0
      • nexj:crm:Task:1.0
      • nexj:crm:User:1.0
      • nexj:portal:PortalNotification:1.0
      • nexj:rules:ActionCommandClient:1.0
      • nexj:rules:RuleContainer:1.0
      • nexj:soa:AuthenticationAction:1.0
      • nexj:soa:BaseSOATypeLibrary:1.0
      • nexj:soa:DataMatchServiceUnitTestObjectTypes:1.0
      • nexj:soa:Message:1.0
      • nexj:soa:NotificationService:1.0
      • nexj:soa:PersonMatch:1.0
      • nexj:soa:PortalConfiguration:1.0
      • nexj:soa:PortalIntegration:1.0
      • nexj:sso:Authentication:1.0
      • nexj:ui:AddressComponentClient:1.0
      • nexj:ui:CompanyComponentClient:1.0
      • nexj:ui:EntityComponentClient:1.0
      • nexj:ui:EntityCoverageComponentClient:1.0
      • nexj:ui:OpportunityComponentClient:1.0
      • nexj:ui:OpportunityCoverageComponentClient:1.0
      • nexj:ui:ProgressedOpportunityComponentClient:1.0
      • nexj:ui:RoadshowComponentClient:1.0
      • nexj:ui:RoadshowCoverageComponentClient:1.0
      • nexj:ui:RoadshowLegComponentClient:1.0
      • nexj:ui:RoadshowMeetingRequestComponentClient:1.0
      • nexj:ui:RoadshowScheduleItemComponentClient:1.0
      • nexj:ui:RoadshowTemplateComponentClient:1.0
      • nexj:ui:ScheduleItemComponentClient:1.0
      • nexj:ui:TaxonomyComponentClient:1.0
      • nexj:ui:UserComponentClient:1.0
      • nexj:ui:WorkQueueItemRelatedObject:1.0

        For example

        <SOAConnection auth="basic"
         service="nexj:crm:Household:1.0"/>
        <SOAConnection auth="basic"
         service="nexj:crm:Interaction:1.0"/>
        <SOAConnection auth="basic"
         service="nexj:crm:Note:1.0"/>
        <SOAConnection auth="basic"
         service="nexj:crm:Person:1.0"/>
        <SOAConnection auth="basic"
         service="nexj:crm:ScheduleItem:1.0"/>
        <SOAConnection auth="basic"
         service="nexj:crm:Task:1.0"/>
        <SOAConnection auth="basic"
         service="nexj:crm:User:1.0"/>
        <SOAConnection auth="basic"
         service="nexj:portal:PortalNotification:1.0"/
        >
        <SOAConnection auth="basic"
         service="nexj:rules:ActionCommandClient:1.0"/
        >
        <SOAConnection auth="basic"
        service="nexj:rules:RuleContainer:1.0"/>
        <SOAConnection auth="basic"
        service="nexj:soa:AuthenticationAction:1.0"/
        >
        <SOAConnection auth="basic"
         service="nexj:soa:BaseSOATypeLibrary:1.0"/>
        <SOAConnection auth="basic"
         service="nexj:soa:DataMatchServiceUnitTestObjectTypes:1.0"/>
        <SOAConnection auth="basic"
         service="nexj:soa:Message:1.0"/>
        <SOAConnection auth="basic"
        service="nexj:soa:NotificationService:1.0"/>
        <SOAConnection auth="basic"
        service="nexj:soa:PersonMatch:1.0"/>
        <SOAConnection auth="basic"
        service="nexj:soa:PortalConfiguration:1.0"/>
        <SOAConnection auth="basic"
        service="nexj:soa:PortalIntegration:1.0"/>
        <SOAConnection auth="basic"
         service="nexj:sso:Authentication:1.0"/>
        <SOAConnection auth="basic"
         service="nexj:ui:AddressComponentClient:1.0"/
        >
        <SOAConnection auth="basic"
         service="nexj:ui:CompanyComponentClient:1.0"/
        >
        <SOAConnection auth="basic"
         service="nexj:ui:EntityComponentClient:1.0"/
        >
        <SOAConnection auth="basic"
         service="nexj:ui:EntityCoverageComponentClient:1.0"/
        >
        <SOAConnection auth="basic"
         service="nexj:ui:OpportunityComponentClient:1.0"/
        >
        <SOAConnection auth="basic"
         service="nexj:ui:OpportunityCoverageComponentClient:1.0"/
        >
        <SOAConnection auth="basic"
         service="nexj:ui:ProgressedOpportunityComponentClient:1.0"/
        >
        <SOAConnection auth="basic"
         service="nexj:ui:RoadshowComponentClient:1.0"/
        >
        <SOAConnection auth="basic"
         service="nexj:ui:RoadshowCoverageComponentClient:1.0"/
        >
        <SOAConnection auth="basic"
         service="nexj:ui:RoadshowLegComponentClient:1.0"/
        >
        <SOAConnection auth="basic"
         service="nexj:ui:RoadshowMeetingRequestComponentClient:1.0"/
        >
        <SOAConnection auth="basic"
         service="nexj:ui:RoadshowScheduleItemComponentClient:1.0"/
        >
        <SOAConnection auth="basic"
         service="nexj:ui:RoadshowTemplateComponentClient:1.0"/
        >
        <SOAConnection auth="basic"
         service="nexj:ui:ScheduleItemComponentClient:1.0"/
        >
        <SOAConnection auth="basic"
         service="nexj:ui:TaxonomyComponentClient:1.0"/
        >
        <SOAConnection auth="basic"
         service="nexj:ui:UserComponentClient:1.0"/
        >
        <SOAConnection auth="basic"
         service="nexj:ui:WorkQueueItemRelatedObject:1.0"/
        >
  4. Save and close the environment or connection file.

The connections are updated.

After updating the environment file, use the Database Schema Tool in NexJ Studio to issue the create command for your data sources. This generates the appropriate SQL scripts that should be provided to your database administrator.

In a test or development environment, you can use the Data Load Tool in NexJ Studio to issue the recreate command for your data sources. To execute this command, you must have the appropriate security and permissions configured on the database.

Configuring a relational database connection
Creating SOA connections 
Recreating databases 
Creating database tables 
Upgrading databases 

Updating server information for version 8.9

When you upgrade to NexJ CRM version 8.9, you must update the environment file or the server file for your deployment to reflect new structures and support new functionality.

To update the environment or server file for your deployment:

  1. In NexJ Studio, open the Deployment layer.
  2. In the Environments tab, open the environment or server file for your deployment.
  3. To enable Ad Hoc Reports, you must provide the path to the JasperReports Server:
    1. In the Overview tab, open the Communication subtab.
    2. In the AdHoc Reports URL field, specify the path to the JasperReports Server using the following format: https://<hostname>:<port>/jasperserver-pro.
  4. Specify any of the following new auditing properties:
    eventAudit
    Specifies whether to log create, update, and delete actions that users perform on objects. This mode logs actions for all auditable objects in NexJ CRM.

    readAudit
    Specifies whether to log read actions by users in NexJ CRM based on attributes selected for read audit in the NexJ model. You can audit read actions at the object, attribute, or attribute-value level.

    updateAudit
    Specifies whether to log update actions by users in NexJ CRM based on attributes selected for read audit in the NexJ model.

    For more information, see Configuring audit trails.
  5. Save the updated environment or server file.

The server information for your deployment is updated.

Creating new required data sources for version 8.9

If you are upgrading from NexJ Contact version 6.X, you must create three new data sources.

The new required data sources are:

  • AuditLogDatabase
  • LockDatabase
  • ObjectQueueDatabase

Info

While deployment specialists create the databases, developers must be aware of the new data sources before deploy time to avoid issues when testing the system in a local environment.

Before beginning this task, follow the instructions in Adding new connections for version 8.9 to define the new data source connections and new related SOA connections for your deployment.

After you define the data source connections for your deployment, you need to create the tables to store the information in the default relational database. In a production environment, use the Database Schema Tool in NexJ Studio to generate the SQL scripts to create the tables, then provide the scripts to database administrators who have appropriate database access.

In test or development environments, if you have the appropriate access, you might be able to use the Data Load Tool to issue the recreate command directly to the database.

To create new data sources for supporting new NexJ CRM functionality:

  1. In NexJ Studio, click the down arrow beside the Run Tool button and select Database Schema Tool.
  2. Complete the Database Schema Tool dialog as required.
    Ensure you specify the following information:
    • In the Command field, select create - generate an SQL script for creating the schema.
    • In the Data Source field, select AuditLogDatabase.
  3. Click Run.
  4. After the dialog closes and the script file is generated, click the down arrow next to the Run Tool button and select Database Schema Tool.
  5. Repeat steps 2 and 3 for the remaining data sources.
    Issue the create command for the following data sources:
    • AuditLogDatabase
    • LockDatabase
    • ObjectQueueDatabase
  6. Provide the scripts to a database administrator who has appropriate permissions to modify the databases.
    The administrator should run the scripts for the applicable databases.

The new data sources are created. After NexJ CRM is deployed, data related to the new functionality is stored in the tables in the default relational database.

Related links

Recreating databases 
Creating database tables 

Adding the NJStatVersion table to the StatDatabase data source for version 8.9

If you are upgrading from NexJ Contact version 7.1 or earlier, you must add the NJStatVersion table for the StatDatabase data source.

Info

This is a developer task and must be performed in NexJ Studio by a person with access to the model.

You can add the version table in one of the following ways:

  • If you do not want to retain the persisted statistics in the StatDatabase data source, you can use the recreate command to drop and recreate all tables in the data source. Unless you have a good reason for doing so, we recommend recreating the StatDatabase data source.
  • If you want to retain the persisted statistics in the StatDatabase data source, you must use the create command to generate an SQL script for creating the database tables. Then, you must extract and execute the portion of the script that defines and populates the version table.

To create the NJStatVersion table for the StatDatabase data source:

  1. Open NexJ Studio.
  2. If you do not need to retain persisted statistics in the StatDatabase data source:
    1. Click the down arrow beside the Run Tool button and select Data Load Tool.
    2. Complete the Database Schema Tool dialog as required.
      Ensure you specify the following information:
      1. In the Command field, select recreate - drops and recreate all tables, then imports the data.
      2. In the Data Source field, select StatDatabase.
        The Data Load Tool dialog closes and the tables recreate.
  3. If you must retain persisted statistics in the StatDatabase data source:
    1. Click the down arrow beside the Run Tool button and select Database Schema Tool.
    2. Complete the Database Schema Tool dialog as required.
      Ensure you specify the following information:
      1. In the Command field, select create - generate an SQL script for creating the schema.
      2. In the Data Source field, select StatDatabase.
        The Database Schema Tool dialog closes and the script file is generated.
    3. From the generated SQL script, extract and execute the portion of the script that defines and populates the NJStatVersion table.
  4. Manually update the value in the version column of the NJStatVersion table to match the version in the NJVersion table that you are upgrading from.

The NJStatVersion table has been added to the StatDatabase data source.

You can now upgrade your data sources.

Upgrading data sources for version 8.9

You must upgrade existing databases to support NexJ CRM version 8.9.

In a production environment, use the Database Schema Tool in NexJ Studio to generate the SQL scripts to upgrade the tables, then provide the scripts to database administrators who have appropriate database access.

In test or development environments, if you have the appropriate access, you might be able to use the Data Load Tool to issue the upgrade directly to the database.

To upgrade the existing data sources for NexJ CRM version 8.9:

  1. In NexJ Studio, click the down arrow beside the Run Tool button and select Database Schema Tool.
  2. Complete the Database Schema Tool dialog as required.
    Ensure you specify the following information:
    • In the Command field, select upgrade - generate an SQL script for upgrading the schema.
    • Select a required data sources in the Data Source field.
  3. Click Run.
  4. Repeat for each required data source.
  5. Provide the scripts to a database administrator who has appropriate permissions to modify the databases.

The administrator should run the scripts for the applicable databases.

The data sources are upgraded.

Related links

Creating data source connections
Required data source connections 

Upgrading the WebSphere application server for version 8.9

Ensure that you have the version of the application server, Java, and JDBC driver, as indicated in the Release Notes document for your product. Then include the latest version of the NexJ-specific files on the server.

Note

Before starting this task, back up your application server.

To upgrade the WebSphere application server for NexJ CRM version 8.9:

  1. [Optional] If the current JDK installed on your application server is not supported by NexJ, or if you are running additional NexJ applications, such as push redirector or the Eclipse information center, then you need to install a supported version of the JDK. Update the <JAVA_HOME> system variable to reflect the location of the JDK.
    Note: A standard WebSphere environment only running NexJ CRM can use the pre-installed JDK and the <JAVA_HOME> system variable does not need to be set.
  2. Install the correct version of the WebSphere application server.
  3. Copy the correct version of the JDBC driver to the following directories. You must specify the path in your environment file, for example, as path="jtds-1.2.2-7.jar".

    File to copyCopy to directory
    jtds-1.2.2-7.jar or ojdbc6-11.2.0.3.jar%JAVA_HOME%\jre\lib\ext
    jtds-1.2.2-7.jar or ojdbc6-11.2.0.3.jar%WAS_ROOT%\lib\ext
    jtds-1.2.2-7.jar or ojdbc6-11.2.0.3.jar%WAS_ROOT%\nexj\lib

    Info

    When you update the server or environment file for your deployment using NexJ Studio, update the location settings to reflect the correct driver path.

    For each node in the cluster, copy the following files from the %NEXJ_PLUGIN% directory to the %WAS_ROOT% directory.

    File to copyCopy to directory
    %NEXJ_PLUGIN%\nexjwebsphere.jar%WAS_ROOT%\lib\ext
    %NEXJ_PLUGIN%\nexjboot.jar%WAS_ROOT%\nexj\lib

If you are configuring nexj-websphere.jar in WebSphere as a shared library instead of copying it to the WAS_ROOT\lib\ext folder, you should configure WebSphere as follows:

  1. In WebSphere, configure the shared library settings by expanding Environment and selecting Shared Libraries.
  2. Associate the shared library with the server by expanding Servers and selecting Application Servers. Select Server Infrastructure → Java and Process Management → Class loader. If a class loader does not exist, create one and under Additional Properties click on Shared library references.
  3. Configure the Resource Adapter settings by selecting Applications → All applications → NexJ Dynamic Resource Adapter → Additional Properties → Resource Adapter. Configure the jar files in Shared Libraries under Class path.
  4. Clean all of the transaction logs for the server used to run your application.
  5. Start the server.

The WebSphere application server is updated for NexJ CRM version 8.9.

Related links

Setting up the WebSphere Application Server environment