Versions Compared

Key

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

...

Code Block
languagebash
themeRDark
titleshrine.conf
collapsetrue
shrine {
  pmEndpoint {
    url = "http://i2b2_node_url:9090/i2b2/services/PMService/getServices"
  }
  ontEndpoint {
    url = "http://i2b2_node_url:9090/i2b2/services/OntologyService"
  }
  
  hiveCredentials {
    domain = "i2b2demo"
    username = "demo"
    password = "demouser"
    crcProjectId = "Demo"
    ontProjectId = "SHRINE"
  }

  messagequeue {
    blockingq {
        serverUrl = "https://shrine-act-test.hms.harvard.edu:6443/shrine-metadata/mom"
    }
  }
  
  breakdownResultOutputTypes {
    PATIENT_AGE_COUNT_XML {
      description = "Age patient breakdown"
    }
    PATIENT_RACE_COUNT_XML {
      description = "Race patient breakdown"
    }
    PATIENT_VITALSTATUS_COUNT_XML {
      description = "Vital Status patient breakdown"
    } 
    PATIENT_GENDER_COUNT_XML {
      description = "Gender patient breakdown"
    }
  }

  queryEntryPoint {
    create = true
    audit {
      collectQepAudit = false
      database {
        dataSourceFrom = "JNDI"
        jndiDataSourceName = "java:comp/env/jdbc/qepAuditDB"
        slickProfileClassName = "slick.jdbc.MySQLProfile$"
      }
    }
      
    trustModelIsHub = true
    attachSigningCert = true
    authenticationType = "pm" //slick.jdbc.H2Profile$
    authorizationType = "shrine-steward"
 
    queuedQueryPollUrl = "https://your_shrine_url:6443/shrine/rest/i2b2/request" //Change to your url and port number

    shrineSteward {
      qepUserName = "qep"
 //slick.jdbc.PostgresProfile$
       qepPassword = "trustme"
      stewardBaseUrl = "https://localhost:6443"
    }

      includeAggregateResults = false
      
      maxQueryWaitTime {
//slick.jdbc.SQLServerProfile$
         minutes = 5
      }

    broadcasterServiceEndpoint {
        url = "https://shrine-act-test.hms.harvard.edu:6443/shrine/rest/broadcaster/broadcast"slick.jdbc.JdbcProfile$
    }
  } //end queryEntryPoint

  adapter {
    create = true
    audit {
      collectAdapterAudit = false   //slick.jdbc.OracleProfile$
      database {}
    }
    dataSourceFrom = "JNDI"
    trustModelIsHub = true
    jndiDataSourceNameattachSigningCert = "java:comp/env/jdbc/adapterAuditDB"true
        slickProfileClassNameauthenticationType = "slick.jdbc.MySQLProfile$pm" 
    authorizationType = }
    }
"shrine-steward"
 
    crcEndpoint {
      url queuedQueryPollUrl = "httphttps://i2b2your_nodeshrine_url:90906443/shrine/rest/i2b2/services/QueryToolService"request" //Change to your url and port number

    shrineSteward }{

      adapterLockoutAttemptsThresholdqepUserName = 0"qep"
      setSizeObfuscationqepPassword = true"trustme"
      adapterMappingsFileNamestewardBaseUrl = "AdapterMappings.csv"
https://localhost:6443"
    maxSignatureAge {}

      minutesincludeAggregateResults = 5false
      }


      maxQueryWaitTime {
       immediatelyRunIncomingQueries minutes = true5

   } // end adapter}

    networkStatusQuery = "\\\\SHRINE\\SHRINE\\Demographics\\Gender\\Male\\"
    humanReadableNodeName = "Harvard Test Node"
    shrineDatabaseType = "mysql"

    keystore {
      file = "/opt/shrine/shrine.keystore"broadcasterServiceEndpoint {
        url = "https://shrine-act-test.hms.harvard.edu:6443/shrine/rest/broadcaster/broadcast"
    }
  } //end queryEntryPoint

  adapter {
    create = true
    audit {
      collectAdapterAudit = false
      database {
        dataSourceFrom = "JNDI"
        jndiDataSourceName = "java:comp/env/jdbc/adapterAuditDB"
        slickProfileClassName = "slick.jdbc.MySQLProfile$" 
                                //slick.jdbc.H2Profile$
                                //slick.jdbc.PostgresProfile$
                                //slick.jdbc.SQLServerProfile$
                                //slick.jdbc.JdbcProfile$
                                //slick.jdbc.OracleProfile$
      }
    }

    crcEndpoint {
      url = "http://i2b2_node_url:9090/i2b2/services/QueryToolService"
    }

    adapterLockoutAttemptsThreshold = 0
    setSizeObfuscation = true
    adapterMappingsFileName = "AdapterMappings.csv"

    maxSignatureAge {
      minutes = 5
    }

    immediatelyRunIncomingQueries = true

  } // end adapter

    networkStatusQuery = "\\\\SHRINE\\SHRINE\\Demographics\\Gender\\Male\\"
    humanReadableNodeName = "Harvard Test Node"
    shrineDatabaseType = "mysql"

    keystore {
      file = "/opt/shrine/shrine.keystore"
      password = "password"
      privateKeyAlias = "privateKeyAlias"
      keyStoreType = "JKS"
      caCertAliases = ["shrine-hub-ca"]
    }

    problem {
      problemHandler = "net.shrine.problem.LogAndDatabaseProblemHandler$"
      database {
    	dataSourceFrom = "JNDI"
    	jndiDataSourceName = "java:comp/env/jdbc/problemDB"
    	slickProfileClassName = "slick.jdbc.MySQLProfile$"
      }
    }

  dashboard {
    happyBaseUrl = "https://localhost:6443/shrine/rest/happy"
    statusBaseUrl = "https://localhost:6443/shrine/rest/internalstatus"

    database {
      dataSourceFrom = "JNDI"
      jndiDataSourceName = "java:comp/env/jdbc/problemDB"
      slickProfileClassName = "slick.jdbc.MySQLProfile$"
                                //slick.jdbc.H2Profile$
                                //slick.jdbc.PostgresProfile$
                                //slick.jdbc.SQLServerProfile$
                                //slick.jdbc.JdbcProfile$
      password = "password"
      privateKeyAlias = "privateKeyAlias"
      keyStoreType = "JKS"
      caCertAliases = ["shrine-hub-ca"] //slick.jdbc.OracleProfile$
    }
  } //end dashboard

    problemstatus {
      problemHandlerpermittedHostOfOrigin = "net.shrine.problem.LogAndDatabaseProblemHandler$""localhost"
    }

    squerylDataSource {
      database {
        	dataSourceFrom = "JNDI"
        	jndiDataSourceName = "java:comp/env/jdbc/problemDBshrineDB"
    	slickProfileClassName = "slick.jdbc.MySQLProfile$"
  }
    }

    authenticate }{
    }

  dashboardusersource {
    happyBaseUrl    domain = "https://localhost:6443/shrine/rest/happyi2b2demo"
       statusBaseUrl = "https://localhost:6443/shrine/rest/internalstatus"}
    }

  steward {
    createTopicsMode = Approved

    databaseemailDataSteward {
      dataSourceFromsendAuditEmails = "JNDI"
      jndiDataSourceName = "java:comp/env/jdbc/problemDB"
 false  //false to turn off the whole works of emailing the data steward      slickProfileClassName//interval = "slick.jdbc.MySQLProfile$"
 1 day" //Audit researchers daily
   }
  } //endtimeAfterMidnight dashboard

= "6   status {
      permittedHostOfOrigin = "localhost"
    }

    squerylDataSource {hours" //Audit researchers at 6 am. If the interval is less than 1 day then this delay is ignored.
      database {
        dataSourceFrom = "JNDI"
        jndiDataSourceName = "java:comp/env/jdbc/shrineDB"//maxQueryCountBetweenAudits = 30 //If a researcher runs more than this many queries since the last audit audit her
      }
//minTimeBetweenAudits = "30  }

    authenticate {
      usersource {
        domain = "i2b2demo"
      }
    }

  steward {
    createTopicsMode = Approved

    emailDataSteward {
      sendAuditEmails = false  //false to turn off the whole works of emailingdays" //If a researcher runs at least one query, audit those queries if this much time has passed
 
      //You must provide the email address of the shrine node system admin, to handle bounces and invalid addresses
      //from = "shrine-admin@example.com"
      //You must provide the email address of the data steward
      //intervalto = "1 day""shrine-steward@example.com"
 
      //subject = "Audit SHRINE researchers daily"
      //timeAfterMidnight = "6 hours" //Audit researchers at 6 am. If the interval is less than 1 day then this delay is ignored.The baseUrl for the data steward to be substituted in to email text. Must be supplied if it is used in the email text.
      //stewardBaseUrl = "https://example.com:6443/steward/"
      //maxQueryCountBetweenAuditsexternalStewardBaseUrl = 30 //If a researcher runs more than this many queries since the last audit audit her"https://example.com:6443/steward/"
 
      //Text to use for the email audit.
      //minTimeBetweenAuditsAUDIT_LINES =will "30be days" //Ifreplaced by a researcherLine for each researcher runs at least one query, audit those queries if this much time has passed
  to audit.
      //STEWARD_BASE_URL will be replaced by the value in stewardBaseUrl if available.
      //You must provide the email address of the shrine node system admin, to handle bounces and invalid addresses
      //from = "shrine-admin@example.com"emailBody = """Please audit the following users at STEWARD_BASE_URL at your earliest convenience: AUDIT_LINES"""
      //note that this can be a multiline message
 
      //YouText mustto provideuse theper emailresearcher address of the data stewardto audit.
      //toFULLNAME, = "shrine-steward@example.com"
 
      //subject = "Audit SHRINE researchers"
      //The baseUrl for the data steward to be substituted in to email text. Must be supplied if it is used in the email text.USERNAME, COUNT and LAST_AUDIT_DATE will be replaced with appropriate text.
      //researcherLine = "FULLNAME (USERNAME) has run COUNT queries since LAST_AUDIT_DATE."
    }

    database {
      dataSourceFrom = "JNDI"
      //stewardBaseUrljndiDataSourceName = "httpsjava:comp/env/example.com:6443/steward/jdbc/stewardDB"
      //externalStewardBaseUrlslickProfileClassName = "https://example.com:6443/steward/"
 
slick.jdbc.MySQLProfile$"
                    //Text to use for the email audit.
      //AUDIT_LINES will be replaced by a researcherLine for each researcher to audit.
slick.jdbc.H2Profile$
                //STEWARD_BASE_URL will be replaced by the value in stewardBaseUrl if available.
      //emailBody = """Please audit the following users at STEWARD_BASE_URL at your earliest convinience: AUDIT_LINES"""
slick.jdbc.PostgresProfile$
                   //note that this can be a multiline message
 
      //Text to use per researcher to audit.
slick.jdbc.SQLServerProfile$
       //FULLNAME, USERNAME, COUNT and LAST_AUDIT_DATE will be replaced with appropriate text.
      //researcherLine = "FULLNAME (USERNAME) has run COUNT queries since LAST_AUDIT_DATE." //slick.jdbc.JdbcProfile$
    }

    database {
      dataSourceFrom = "JNDI"
      jndiDataSourceName = "java:comp/env/jdbc/stewardDB"
      slickProfileClassName = "//slick.jdbc.MySQLProfile$"OracleProfile$
    }
  } // end steward

  email {
  }
} // end shrine section

...

You will now use the new parameters:

  • maxTotal
  • maxWaitMillis

Notewarning
titleOracle Users

If you are using Oracle, please change the driverClassName to "oracle.jdbc.driver.OracleDriver".


As part of the changes, here's a sample context.xml file, with the values that you should have (assuming MySQL used):

Code Block
langaugexml
languagexml
themeRDark
titlecontext.xml
collapsetrue
<?xml version='1.0' encoding='utf-8'?>
<!-- The contents of this file will be loaded for each web application -->

<Context>
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <Resource name="jdbc/problemDB" auth="Container" type="javax.sql.DataSource"
              maxTotal="128" maxIdle="32" maxWaitMillis="10000"
              username="shrine" password="demouser" driverClassName="com.mysql.jdbc.Driver"
              url="jdbc:mysql://localhost:3306/shrine_query_history"
              testOnBorrow="true" validationQuery="SELECT 1" />

    <Resource name="jdbc/shrineDB" auth="Container" type="javax.sql.DataSource"
              maxTotal="128" maxIdle="32" maxWaitMillis="10000"
              username="shrine" password="demouser" driverClassName="com.mysql.jdbc.Driver"
              url="jdbc:mysql://localhost:3306/shrine_query_history"
              testOnBorrow="true" validationQuery="SELECT 1" />

    <Resource name="jdbc/adapterAuditDB" auth="Container" type="javax.sql.DataSource"
              maxTotal="128" maxIdle="32" maxWaitMillis="10000"
              username="shrine" password="demouser" driverClassName="com.mysql.jdbc.Driver"
              url="jdbc:mysql://localhost:3306/adapterAuditDB"
              testOnBorrow="true" validationQuery="SELECT 1" />

    <Resource name="jdbc/qepAuditDB" auth="Container" type="javax.sql.DataSource"
              maxTotal="512" maxIdle="32" maxWaitMillis="10000"
              username="shrine" password="demouser" driverClassName="com.mysql.jdbc.Driver"
              url="jdbc:mysql://localhost:3306/qepAuditDB"
              testOnBorrow="true" validationQuery="SELECT 1" />

    <Resource name="jdbc/stewardDB" auth="Container" type="javax.sql.DataSource"
              maxTotal="128" maxIdle="32" maxWaitMillis="10000"
              username="shrine" password="demouser" driverClassName="com.mysql.jdbc.Driver"
              url="jdbc:mysql://localhost:3306/stewardDB"
              testOnBorrow="true" validationQuery="SELECT 1" />
</Context>

...