Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Warning
titleNote

SHRINE 1.25.4 is not backwards-compatible with any previous version!

PLEASE MAKE SURE THAT YOU HAVE SHRINE 1.22.8 INSTALLED BEFORE YOU FOLLOW THESE UPGRADE INSTRUCTIONS!

 


This guide makes the following assumptions of a current 1.22.8 system. Make sure all of these conditions are satisfied before proceeding:

...

Code Block
languagebash
themeRDark
$ /opt/shrine/tomcat/bin/shutdown.sh

 


Create Backups

Now that SHRINE is stopped, it is a good idea to back up the current versions of the components we will be upgrading. The exact method for making this backups may vary, but these instructions will place the backups in a folder called /opt/shrine/upgrade-backups.

...

Code Block
languagebash
themeRDark
$ rm /opt/shrine/tomcat/webapps/*.war

...


Deploy New .war Files

Deploy New SHRINE core

...

You will need to remove a primary key constraint within the pm_user_login table in the i2b2pm schema. An unneeded compound primary key limits the PM cell to only processing one authentication attempt per second. In Postgres, remove it with:


 

Code Block
languagesql
themerdark
bash-4.1$ psql
postgres=# \c i2b2pm
i2b2pm=# \d+ pm_user_login
                           Table "public.pm_user_login"
    Column     |            Type             | Modifiers | Storage  | Description
---------------+-----------------------------+-----------+----------+-------------
 user_id       | character varying(50)       | not null  | extended |
 attempt_cd    | character varying(50)       | not null  | extended |
 entry_date    | timestamp without time zone | not null  | plain    |
 changeby_char | character varying(50)       |           | extended |
 status_cd     | character varying(50)       |           | extended |
Indexes:
    "pm_user_login_pkey" PRIMARY KEY, btree (entry_date, user_id)
Has OIDs: no
 
i2b2pm=# ALTER TABLE "pm_user_login" DROP CONSTRAINT "pm_user_login_pkey" ;
ALTER TABLE
 
i2b2pm=# \d+ pm_user_login
                           Table "public.pm_user_login"
    Column     |            Type             | Modifiers | Storage  | Description
---------------+-----------------------------+-----------+----------+-------------
 user_id       | character varying(50)       | not null  | extended |
 attempt_cd    | character varying(50)       | not null  | extended |
 entry_date    | timestamp without time zone | not null  | plain    |
 changeby_char | character varying(50)       |           | extended |
 status_cd     | character varying(50)       |           | extended |
Has OIDs: no
 


Allow for More Types of Status from the i2b2 CRC

Change the shrine_query_history's QUERY_RESULT's status column's type from an enum to a text field to accommodate more types from the i2b2 CRC. This will allow some results previously interpreted as errors to be interpreted as 'QUEUED'. 


For Mysql:


 

Code Block
languagesql
themerdark
mysql> use shrine_query_history;
mysql> alter table QUERY_RESULT change status status varchar(30) not null;
 

 



For Oracle:

 


Code Block
languagesql
themerdark
-- To find the constraint name on the status column:
SELECT COLUMN_NAME,CONSTRAINT_NAME,TABLE_NAME FROM user_cons_columns WHERE TABLE_NAME = 'QUERY_RESULT';
-- To drop that constraint:
ALTER TABLE QUERY_RESULT DROP CONSTRAINT <constraint_name_for_status>;
 

 



For MS SQL Server:

 


Code Block
languagesql
themerdark
USE shrine_query_history;
  
-- To find the constraint name on the status column:
 
SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME= 'QUERY_RESULT';
 
-- To drop that constraint:
 
ALTER TABLE QUERY_RESULT DROP CONSTRAINT <constraint_name_for_status>;

 

 



Changes to the context.xml file

...

Info
titleNote

Please note that qepAuditDB is set to 512 connections, which will help in scaling issues for a larger network.

...

 



Changes to the i2b2_config_data.js file

  • You will need to make a change in the i2b2_config_data.js file, by adding this line of code:

    Code Block
    languagebash
    themerdark
    shrineUrl: 'https://your_shrine_url:6443/shrine-metadata/',

...

Code Block
languagebash
themerdark
 files: [
     “dist/shrine.bundle.js”
//   “shrine.controller.js”,
//   “i2b2_msgs.js”,
//   “shrine.plugin.js”
  ],

You'll need to add "dist/shrine.bundle.js" under the files section as well as "wrapperHtmlFile: "./js-shrine/shrine.plugin.html"" under the readApprovedURL parameter.

...

Set Java system properties to use a client-side https proxy. In /opt/shrine/tomcat/bin/setenv.sh , add values for https.proxyHost and https.proxyPort to the export CATALINA_OPTS=""  


Code Block
languagebash
themerdark
export CATALINA_OPTS="-Dhttps.proxyHost=yourProxyHost -Dhttps.proxyPort=yourProxyHostPort"
Info
titleNote

Please note, if you are not running a client-side proxy, you can skip this section!

 


Start SHRINE

The only thing left to do at this point is start SHRINE back up. Simply do the following:

Code Block
languagebash
themerdark
$ /opt/shrine/tomcat/bin/startup.sh

...


Verify SHRINE Upgrade

After starting SHRINE up, verify that the upgrade was properly deployed by checking the SHRINE Dashboard. The exact address you will need to go to depends on your configuration, but the general format looks like the following:

...