Updating configuration to deploy NexJ Reporting on a dedicated server
Follow the steps documented on this page if the following applies:
- You previously deployed NexJ Reporting directly on your CRM server (are using "integrated Reporting"), and
- You want to deploy NexJ Reporting on a dedicated infrastructure that consists of a Reporting server and a replicated CRM database
Throughout this topic, NexJ CRM database refers to the database used by the DefaultRelationalDatabase data source on the NexJ CRM database server, and Reporting database refers to the database used by the DefaultRelationalDatabase data source on the Reporting database server.
In order to update the deployment configuration to use a dedicated Reporting server:
- Back up the NexJ CRM database.
Restore the NexJ CRM database backup onto the Reporting database.
- When performing the restore, ensure that Overwrite the existing database (WITH REPLACE) is selected for MSSQL servers under Options.
- Truncate the NJNode table.
- Run
bireport/meta/scripts/ReportingUninstallScript.sql
against the NexJ CRM database. Configure the NexJ CRM server by making the following modifications to the NexJ CRM environment file:
Ensure the Hosts tag exists, and the URL is linked to the Reporting database server as shown in the following example:
XML<Hosts> <Host name="dai" trusted="true" url="<report.httpURL>"/> </Hosts>
The
Hosts
tag must be immediately after the environment's root tag, mixins tag, or PKIKeyPairs tag, whichever comes last.Hosts
tags are case sensitive.If you need to modify the URL for the
Hosts
tag after the initial server startup (for example, to change http to https), change the URL value in theHosts
tag, and reseed the portal for the change to be persistent, or make the update using an SQL query directly, and then restart the server nodes.The
Hosts
tag should be used instead of thehttpReportURL : string
tag that does not apply to ad hoc reports.Set the
meta.bireport.isStandAlone
property tofalse
, as follows. This, together with value set for this attribute in the Reporting database server, ensures batch jobs run as usual with the reporting metadata mixed in.CODEmeta.bireport.isStandAlone="false"
Set the
meta.bireport.enabled
property tofalse
, as follows:CODEmeta.bireport.enabled="false"
Add the reportadapter mixin. The following example shows how the mixin displays in the source:
XML<Mixins> ... <Mixin namespace="nexj:model:dai:reportadapter" version="0.10.0+"/> ... </Mixins>
Add the
rptadapter:ReportingInstanceSender
channel to the environment file for NexJ CRM; for example:TEXT<HTTPConnection channel="rptadapter:ReportingInstanceSender" connectionTimeout="100" password="${crm.reporting.http.receiver.passwd:}" url="${URL to Reporting Server/channel/bireport:ReportingInstanceSync/NexJ}" user="${crm.reporting.http.receiver.user:nexjsa}"/>
- Configure the Reporting server by making the following modifications to the Reporting environment file:
- Modify all the data sources to refer to the correct database names on the Reporting database server.
- Ensure the bireport:DefaultRelational data source exists in the data source connections list. The bireport:DefaultRelational and ObjectQueueDatabase data sources must be set to use a different database than other data sources.
Add the
meta.bireport.enabled
property, in the following format:
CODEmeta.bireport.enabled="true"
Ensure the Hosts tag exists, and the URL links to the NexJ CRM database server as shown in the following example:
XML<Hosts> <Host name="crm" trusted="true" url="<crm.httpURL>"/> </Hosts>
The Hosts tag must be immediately after the environment's root tag, mixins tag, or PKIKeyPairs tag, whichever comes last.
Add the following channel:
CODE<HTTPConnection channel="report:RPCHTTPSender" password="${reportcrm.http.instanceSync.passwd:}" url="${crm.httpURL}/text" user="${reportcrm.http.instanceSync.user:nexjsa}"/>
Add the following channel:
TEXT<HTTPConnection channel="bireport:ReportingAttributeRecalculationReceiver"/>
Remove the BI_1_BI_Database data source from the data source connections list.
Set the
meta.bireport.isStandAlone
property totrue
, as follows:CODEmeta.bireport.isStandAlone="true"
Add the following channel:
TEXT<HTTPConnection channel="bireport:ReportingInstanceSync" connectionTimeout="100" password="${reportcrm.http.instanceSync.passwd:}" url="${URL to Reporting Server/channel/rptadapter:ReportingSyncRequestReciever/NexJ}" user="${reportcrm.http.instanceSync.user:nexjsa}"/>
If both the Reporting and CRM servers are deployed on the same VM or physical machine, ensure there are no port conflicts for the
httpURL
,ajp.port
, andpushRedirectorURL
properties. For example, if you are using the default ports 7080 forhttpURL
, 8009 forajp.port
, and 5080 forpushRedirectorURL
for the NexJ CRM database server, avoid using the same ports for the Reporting database server.
- For the Reporting database server, recreate the ObjectQueueDatabase only.
- Run
update NJVersion set loaded=0
for the Reporting database. - Upgrade against * for the Reporting database.
- Run
update NJVersion set loaded=0
for the NexJ CRM database. - Upgrade against * for the NexJ CRM database.
- Start the NexJ CRM server.
- Start the Reporting server.
NexJ Reporting is set up as a dedicated server. When NexJ CRM is refreshed, the Reports workspace displays, and users with appropriate privileges can view and create ad hoc reports. You can use the NexJ Report Adapter to synchronize the servers for both Reporting and CRM for real-time updates. For more information, see Synchronizing the dedicated server by using NexJ Report Adapter.