This document contains instructions for installation of the file "bdpjm.war" on an already installed BoKS Reporting Manager 6.7 (BRM).

Description

The HFBRM-0005 hotfix corrects the following issues:

 

# 11952


BRM DATABASE CAN BECOME INCONSISTENT FOR MULTIPLE DOMAINS
Running parallel ondemand updates for multiple domains at the same time
can cause data from one domain to refer to data in other domains.
This issue results in some data not being visible in the
reports. Also, this results in an error when deleting the domain.

 

# 7234, TFS140318-014686, TFS130521-014231


LOCK WAIT TIMEOUT ON TABLE DOMAIN
If multiple ondemand or live feed jobs are running in parallel,
an error "lock wait timeout" and/or
"LockAcquisitionException" sometimes occurs for table DOMAIN.
If this issue should occur, wait until any current AC or AU job
has finished before starting another AC ondemand job.


Resolution / Workaround

 

Install Hotfix HFBRM-0005, available from the HelpSystems Community Portal.
Installation is done in two steps:

  1. Install the hotfix (Oracle or MySQL).
  2. Check and repair BRM database consistency.

Note: Before you begin, it is important to verify the integrity of the new bdpjm.war file.

bdpjm.war:
SHA1 10b2d2ea46d4075c2791f98d03e23fdf0398411a


Installation for Oracle database:
1. Log in as the user running BRM (e.g. brmadmin).

2. Extract the package under e.g. /tmp:

$ cd /tmp
$ gunzip -c HFBRM-0005-1.tar.gz | tar xf -

3. Stop BRM (and wait for it to stop):

$ /etc/init.d/boksbrm stop
$ /etc/init.d/boksbrm status

If it has not stopped after a minute, kill the process (process id is shown with the status argument).

 

4. Go to the BRM installation directory (e.g. /opt/boksbrm) and then further into the brm/jakarta directory. E.g.:

$ cd /opt/boksbrm/brm/jakarta

5. Remove the old bdpjm.war file:

$ rm webapps/bdpjm.war

6. Remove the webapps/bdpjm directory:

$ rm -rf webapps/bdpjm

7. Remove the work/Catalina/localhost/bdpjm directory:

$ rm -rf work/Catalina/localhost/bdpjm

8. Copy the new bdpjm.war to the webapps/ directory:

$ cp -p /tmp/HFBRM-0005/bdpjm.war webapps/
$ chmod 644 webapps/bdpjm.war

9. Start BRM:

$ /etc/init.d/boksbrm start
$ tail -f /opt/boksbrm/bdpjm/log/boksbrm.log

10. Verify that BRM has started correctly by logging in to the BRM web interface

http://:8080/brm

Run the report BRM Status -> BRM Domain Status or use the "domainstatus" command line utility:

$ /opt/boksbrm/bdpjm/bin/domainstatus -v -a

If the status for AC and AU (if applicable) shows as OK and the time for the last update is newer than the time of the upgrade, the upgrade has been successful. Otherwise you may have to perform a manual synchronization by running the "ondemanddomain" command. See the FoxT Reporting Manager 6.7 Administrator's Guide.

 

11. Proceed with "Check and repair BRM database consistency" below.

 


Installation for MySQL database:

1. Log in as the user running BRM (e.g. brmadmin).

2. Extract the package under e.g. /tmp:

$ cd /tmp
$ gunzip -c HFBRM-0005-1.tar.gz | tar xf -

3. Stop BRM (and confirm that it has stopped):

$ /etc/init.d/boksbrm stop
$ /etc/init.d/boksbrm status

If it has not stopped after a minute, kill the process (process id is shown with the status argument).

 

4. Go to the BRM installation directory (e.g. /opt/boksbrm) and then further into the brm/jakarta directory. E.g.:

$ cd /opt/boksbrm/brm/jakarta

5. Make a backup of the mysql-connector.jar from the webapps/bdpjm/WEB-INF/lib/ directory. (It will be restored later in this procedure):

$ cp -ip webapps/bdpjm/WEB-INF/lib/mysql-connector-*.jar .

Note that the actual name of the "mysql-connector.jar" file may vary in that it typically has the version embedded in its name.

 

6. Remove the old bdpjm.war file:

$ rm webapps/bdpjm.war

7. Remove the webapps/bdpjm directory:

$ rm -rf webapps/bdpjm

8. Remove the work/Catalina/localhost/bdpjm directory:

$ rm -rf work/Catalina/localhost/bdpjm

9. Copy the new bdpjm.war to the webapps/ directory:

$ cp -p /tmp/HFBRM-0005/bdpjm.war webapps/
$ chmod 644 webapps/bdpjm.war

10. Start BRM. Wait for the start-up to complete. (You may ignore the log file errors):

$ /etc/init.d/boksbrm start
$ tail -f /opt/boksbrm/bdpjm/log/boksbrm.log

11. Stop BRM and confirm that it has stopped:

$ /etc/init.d/boksbrm stop
$ /etc/init.d/boksbrm status

12. Restore the mysql-connector.jar file:

$ cp -p mysql-connector-*.jar webapps/bdpjm/WEB-INF/lib/

13. Start BRM:

$ /etc/init.d/boksbrm start
$ tail -f /opt/boksbrm/bdpjm/log/boksbrm.log

14. Verify that BRM has started correctly by logging in to the BRM web interface

http://:8080/brm

Run the report BRM Status -> BRM Domain Status

or use the "domainstatus" command line utility:

$ /opt/boksbrm/bdpjm/bin/domainstatus -v -a

If the status for AC and AU (if applicable) shows as OK and the time for the last update is newer than the time of the upgrade, the upgrade has been successful. Otherwise you may have to perform a manual synchronization by running the "ondemanddomain" command. See the FoxT Reporting Manager 6.7 Administrator's Guide.

 

15. Proceed with "Check and repair BRM database consistency" below.

 

 

 

Check and repair BRM database consistency

After installing the hotfix, if you have imported data in multiple domains, you should check that the data in the database is consistent over those domains.

 

1. Check consistency by running the check-cross-domain-ac-data.sql and
check-cross-domain-au-data.sql scripts.

 

For example:
Oracle:

$ cat check-cross-domain-ac-data.sql | \
sqlplus brmuser/@/
$ cat check-cross-domain-au-data.sql | \
sqlplus brmuser/@/


MySQL:

$ mysql -u brmuser -p boksbrmdb < check-cross-domain-ac-data.sql
$ mysql -u brmuser -p boksbrmdb < check-cross-domain-au-data.sql

 

If any of the scripts returns one or more rows, the data is not consistent and the database must be repaired by proceeding to step 2.
If no rows are returned the database is ok. No new ondemand sync is then necessary.

 

2. To repair the database we will first remove the inconsistencies by running the delete-cross-domain-data.sql script.

 

For example:
Oracle:

$ cat delete-cross-domain-data.sql | \
sqlplus brmuser/@/


MySQL:

$ mysql -u brmuser -p boksbrmdb < delete-cross-domain-data.sql

 

3. Proceed with running an ondemand update for AC data.

Move to /opt/boksbrm/bdpjm/bin:

$ cd /opt/boksbrm/bdpjm/bin

 

For each domain, run ondemanddomain:

$ ./ondemanddomain -AC

 

Check the BRM log:

$ tail -f /opt/boksbrm/bdpjm/log/boksbrm.log

 

 


Still have questions? We can help. Submit a case to Technical Support.

Last Modified On: May 30, 2018