Documentation for I2b2 version 1.4 Required Software JDK 6.0 JBOSS 4.2.2 GA Apache Ant 1.6.5 Apache Axis2 1.1 Apache Web Server 2.2.15 Php-5.2.13 Oracle 10.2.0.4 Enterprise Edition Table of Contents Documentation for I2b2 version 1.4 ....................................................................................................................................... 1 a. Java JDK .......................................................................................................................................................................... 1 b. JBoss 4.2.2 GA ................................................................................................................................................................ 2 c. Apache Ant 1.6.5 ............................................................................................................................................................ 3 d. Apache Axis2 1.1 ............................................................................................................................................................ 4 e. Apache Web Server........................................................................................................................................................ 4 f. Oracle 10g Enterprise Edition Install ............................................................................................................................ 10 g. Php-5.2.13 .................................................................................................................................................................... 40 a. Java JDK JDK 6.0 (recommended) This procedure installs the Java Development Kit (JDK) for 64-bit Linux, using an RPM binary bundle. http://java.sun.com/products/ The name of the downloaded file has the following format: jdk-6u<version>-linux-x64-rpm.bin where <version> is the particular version number, for example: jdk-6u18-linux-x64-rpm.bin To install, download this file and use the following instructions: 1. Download and check the download file size. You can download to any directory that you can write to. 2. Become root by running the su command and entering the root password. 3. Extract and install the contents of the downloaded file. Change directory to where the downloaded file is located and run these commands to first set the executable permissions and then run the binary to extract and run the RPM file: % chmod a+x jdk-6u<version>-linux-x64-rpm.bin % ./jdk-6u<version>-linux-x64-rpm.bin Note that the initial "./" is required if you do not have "." in your PATH environment variable. The script displays a binary license agreement, which you are asked to agree to before installation can proceed. Once you have agreed to the license, the install script creates and runs the file jdk-6u<version>-linuxx64.rpm in the current directory. NOTE - If instead you want to only extract the RPM file but not install it, you can run the .bin file with the -x argument. You do not need to be root to do this. 4. Delete the rpm file if you want to save disk space. 5. Exit the root shell. 6. If you want to use Java within the browser, setup the plugin using the instructions in Manual Plugin Installation for Linux. Known Problems On 64-bit Linux platforms the 32-bit JDK and 64-bit JDK cannot co-exist when installed from the RPM bundles. One must install one or the other but not both. The workaround is to use the .bin bundle and install into distinct directories. b. JBoss 4.2.2 GA Download ‘jboss-4.2.2.GA.zip’, from http://labs.jboss.com/jbossas/downloads. a)Unzip jboss-4.2.2.GA.zip into a directory of your choice (/usr/jboss-4.2.2.GA or YOUR_JBOSS_HOME_DIR) b)Set JBoss JVM to run with 1GB extended memory. Edit ‘YOUR_JBOSS_HOME_DIR/bin/run.conf’ and change the JAVA_OPTS memory settings to that shown below. (-Xms512m, -Xmx1024m) # # Specify options to pass to the Java VM. # if [ “x$JAVA_OPTS” = “x” ]; then JAVA_OPTS="-Xms512m –Xmx1024m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000" fi c) If default port 8080 is unavailable (another application is using this port), edit ‘YOUR_JBOSS_HOME_DIR/server/default/deploy/jboss-web.deployer/server.xml’ file to reconfigure the non-SSL HTTP/1.1 Connector to another port such as 9090 <!—Define a non-SSL HTTP/1.1 Connector on port 9090 <Connector port="9090" address="${jboss.bind.address}" maxThreads="250" maxHttpHeaderSize="8192" emptySessionPath="true" protocol="HTTP/1.1" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" /> <!—Define an AJP 1.3 Connector on port 9009 <Connector port="9009" address="${jboss.bind.address}" maxThreads="250" maxHttpHeaderSize="8192" protocol="AJP/1.3 emptySessionPath="true" enableLookups=”false” redirectPort=”8443”/> d)You may also need to update the run permission of the jboss startup scripts. ‘chmod 775 YOUR_JBOSS_HOME_DIR/bin/*.sh’ c. Apache Ant 1.6.5 The binary distribution of Ant consists of the following directory layout: ant +--+--| +--| +--| | | | | +--- README, LICENSE, fetch.xml, other text files. //basic information bin // contains launcher scripts lib // contains Ant jars plus necessary dependencies docs // contains documentation | +--- images // various logos for html documentation | +--- manual // Ant documentation (a must read ;-) etc // contains xsl goodies to: // - create an enhanced report from xml output of various tasks. // - migrate your build files and get rid of 'deprecated' warning // - ... and more ;-) Step 1: Download 'Apache Ant version 1.8.0' (apache-ant-1.8.0-bin.zip) from http://archive.apache.org/dist/ant/binaries/ Step 2: Login as root to your Linux box and go under /usr/local. Step 3: Copy apache-ant-1.8.0-bin.zip onto your Linux box in /usr/local directory. Step 4: Extract the zip file apache-ant-1.8.0-bin.zip) using unzip command. [root@]# unzip apache-ant-1.8.0-bin.zip above command will extract the content of the zip file and will create a new directory apache-ant-1.8.1 To test the Apache Ant installation, run the program ant -version on the command line. The output should look something like: d. Apache Axis2 1.1 Download 'Apache Axis2 version 1.1', from http://ws.apache.org/axis2/download/1_1/download.cgi and select the download type WAR (Web Archive) Distribution.(axis2.war) a)Create folder i2b2.war inside ‘YOUR_JBOSS_HOME_DIR/server/default/deploy’ b)Unzip axis2.war inside ‘YOUR_JBOSS_HOME_DIR/server/default/deploy/i2b2.war’ folder. 1. Once the WAR is successfully installed, test it by pointing the web browser to the http://<host :port>/axis2. It should produce the following page which is the Axis2 Web Application Home Page. 2. Use the link "Validate" to ensure that everything is running correctly. If the validation fails then the WAR has failed to install properly or some essential jars are missing. In such a situation, refer to the documentation of the particular servlet container to find the problem. The following page shows a successful validation. Note the statement that in http://ws.apache.org/axis2/1_1/installationguide.htmldicates the core Axis2 libraries are present http://ws.apache.org/axis2/1_1/installationguide.html e. Apache Web Server Before building apache, ensure SSL and expat development libraries are installed: # sudo zypper install libexpat-devel libopenssl-devel Download source Get the source from http://httpd.apache.org/download.cgi ( httpd-2.2.15.tar.gz. Md5: 31fa022dc3c0908c6eaafe73c81c65df) unpack, configure, compile Go to the directory with the downloaded file and enter: # tar -xzf httpd-2.2.15.tar.gz # cd httpd-2.2.15 # ./configure --prefix=/usr/local/apache2 \ --enable-so --with-included-apr \ --enable-headers --enable-rewrite –enable-auth-digest=shared --enable-vhost-alias \ --disable-autoindex --disable-status --disable-imagemap --disable-userdir \ --enable-ssl \ --with-expat=/usr/lib The configure options deserve a little bit more of detail here: The most important --prefix option specifies the location where Apache is to be installed. Another commonly used option --enable-so turns on the DSO support, i.e. available modules compiled as shared objects (e.g. mod-php and mod-jk) can be loaded or unloaded at runtime. Very handy. KUMC "Apache Security Checklist" suggests headers thru userdir and ssl The expat option is for running trac under mod_wsgi; see http://code.google.com/p/modwsgi/wiki/IssuesWithExpatLibrary For all available configuration options and their default values check the Apache documentation or type ./configure --help. SSL support To support secure connections, you need to specify --enable-ssl option when you run ./configure. In addition to that, you will also have to configure your httpd.conf file later. Note: Make sure that openssl is installed on your system before you run ./configure with --enable-ssl. If not, download the latest version from http://www.openssl.org/source/ , unpack, configure, make, make install. You will also need to generate server certificate. Place server.crt and server.key into /etc/ssl/apache2/ directory and make them readable by Apache2. configuration example For example, to compile the mod_rewrite module statically and mod_auth_digest as a DSO, and to enable secure connections, enter: # ./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite --enable-authdigest=shared --enable-ssl Tip: If you are upgrading from older Apache version, you may want to copy config.nice from the directory to which the previous version was unpacked (if available) to where you unpacked the new Apache tarball file. Run ./config.nice instead of ./configure. This way all the previously used configure options will be applied to the new installation effortlessly. Once you configured everything as you like, compile and install the software: # make # make install SSL support If you wish to enable SSL for secure connections (assuming that you have configured Apache with --enablessl option - see above), add the following in the appropriate sections inside httpd.conf (ignore "..."; replace "laffers.net" with your own, and set the actual path to your server certificate and key file): Listen 80 Listen 443 ... ServerName laffers.net:443 SSLEngine on SSLCertificateFile /etc/ssl/apache2/server.crt SSLCertificateKeyFile /etc/ssl/apache2/server.key ErrorLog /usr/local/apache2/logs/error_log_laffers.net TransferLog /usr/local/apache2/logs/access_log_laffers.net SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 Note: In some newer distributions, httpd.conf is dissected into many additional files located in conf/extra. In that case, you may want to do the SSL settings from above inside the conf/extra/httpd-ssl.conf file. Don't forget to uncomment "Include conf/extra/httpd-ssl.conf" in the httpd.conf file. start and stop apache server After everything is set up, start Apache: # /usr/local/apache2/bin/apachectl –k start Similarly, if you wish to stop Apache, type: # /usr/local/apache2/bin/apachectl –k stop Using mod_jk 1.2.x with JBoss/Tomcat bundle and Apache2 Quick Overview 1. 2. 3. 4. 5. 6. 7. 8. Download modjk 1.2.x (At least 1.2.27 suggested) Change the main Apache config to include modjk config Create the modjk config Configure the modjk workers (which JBoss/Tomcat nodes Apache uses) Configure the Apache URIs served by modjk (the applications served by JBoss/Tomcat) Restart Apache Restart JBoss Test it mod_proxy Most httpd-2.2.x actual distributions (x>=6) have a decent AJP proxying and don't require to compile an external module. See http://wiki.jboss.org/wiki/UsingMod_proxyWithJBoss for more information. Step 1: Download mod_jk 1.2.x Download the latest package available from Tomcats's 'Download Tomcat connector section' page . Always download the latest stable release if possible. Rename the lib mod_jk.so and drop it in APACHE_HOME/modules directory. NOTE: Don't use any release prior to mod_jk 1.2.15. Earlier releases are fairly buggy. Note: Darwin Ports supports the installation of mod_jk on OS X. See http://darwinports.opendarwin.org/ for more info. Step 2: Setup Apache to use modjk Add this line at the very bottom in APACHE_HOME/conf/httpd.conf : # Include mod_jk configuration file Include conf/mod-jk.conf Step 3: Create the modjk config Under APACHE_HOME/conf, create mod-jk.conf and populate it as follows: # Load mod_jk module # Specify the filename of the mod_jk lib LoadModule jk_module modules/mod_jk.so # Where to find workers.properties JkWorkersFile conf/workers.properties # Where to put jk logs JkLogFile logs/mod_jk.log # Set the jk log level [debug/error/info] JkLogLevel info # Select the log format JkLogStampFormat "[%a %b %d %H:%M:%S %Y]" # JkOptions indicates to send SSK KEY SIZE # Notes: # 1) Changed from +ForwardURICompat. # 2) For mod_rewrite compatibility, use +ForwardURIProxy (default since 1.2.24) # See http://tomcat.apache.org/security-jk.html JkOptions +ForwardKeySize +ForwardURICompatUnparsed -ForwardDirectories # JkRequestLogFormat JkRequestLogFormat "%w %V %T" # Mount your applications JkMount /i2b2 loadbalancer JkMount /i2b2/* loadbalancer # Let Apache serve the images JkUnMount /images/* loadbalancer # You can use external file for mount points. # It will be checked for updates each 60 seconds. # The format of the file is: /url=worker # /examples/*=loadbalancer JkMountFile conf/uriworkermap.properties # Add shared memory. # This directive is present with 1.2.10 and # later versions of mod_jk, and is needed for # for load balancing to work properly # Note: Replaced JkShmFile logs/jk.shm due to SELinux issues. Refer to # https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=225452 JkShmFile run/jk.shm # Add jkstatus for managing runtime data <Location /jkstatus> JkMount status Order deny,allow Deny from all Allow from 127.0.0.1 </Location> mod_jk is ready to forward requests to JBoss instances. We need now to setup the workers Note: As of mod_jk 1.2.6+ you need to include "JkMountCopy all" in globals if you intend to specify global JkMount's or JkMountFile's instead of per VirtualHost. If you do not want to copy the same JkMount/JkMountFile for each VirtualHost, you can specify "JkMountCopy On" inside the VirtualHost directive. See entry in: http://tomcat.apache.org/connectors-doc/reference/apache.html Step 4: Configuring workers Under APACHE_HOME/conf, create workers.properties and populate it as follows: # Define list of workers that will be used # for mapping requests # The configuration directives are valid # for the mod_jk version 1.2.18 and later # worker.list=loadbalancer,status # Define Node1 # modify the host as your host IP or DNS name. worker.node1.port=8009 worker.node1.host=10.22.4.34 worker.node1.type=ajp13 worker.node1.lbfactor=1 worker.node1.cachesize=10 #worker.node1.prepost_timeout=10000 #Not required if using ping_mode=A #worker.node1.connect_timeout=10000 #Not required if using ping_mode=A #worker.node1.ping_mode=A #As of mod_jk 1.2.27 # worker.node1.connection_pool_size=10 (1) # Define Node2 # modify the host as your host IP or DNS name. worker.node2.port=9009 worker.node2.host=10.22.4.34 worker.node2.type=ajp13 worker.node2.lbfactor=1 worker.node2.cachesize=10 #worker.node2.prepost_timeout=10000 #Not required if using ping_mode=A #worker.node2.connect_timeout=10000 #Not required if using ping_mode=A #worker.node2.ping_mode=A #As of mod_jk 1.2.27 # worker.node1.connection_pool_size=10 (1) # Load-balancing behaviour worker.loadbalancer.type=lb worker.loadbalancer.balance_workers=node1,node2 worker.loadbalancer.sticky_session=1 #worker.loadbalancer.local_worker_only=1 #worker.list=loadbalancer # Status worker for managing load balancer worker.status.type=status Important: Please review http://tomcat.apache.org/connectors-doc/reference/workers.html for the directive descriptions. Especially lookout for the comments on cachsize for Apache 1.3.x. (1) You should only set the connection_pool_size if the number of allowed connection to the Httpd is higher than maxThreads in server.xml If you specify worker.loadbalancer.sticky_session=Off, each request will be load balanced between node1 and node2. But when a user opens a Session on one server, it is a good idea to always forward this user's requests to the same server. Otherwise the user's session data would need to be synchronized between both servers. This is called a "sticky session", as the client is always using the same server he reached on his first request. Session stickiness is enabled by default. Step 5: Create the URI to worker map file Create a uriworkermap.properties file in the APACHE_HOME/conf directory. This file should contain the URL mappings you want Apache to forward to Tomcat. The format of the file is /url=worker_name. To get things started, paste this example into the file you created: # Simple worker configuration file # # Mount the Servlet context to the ajp13 worker /jmx-console=loadbalancer /jmx-console/*=loadbalancer /web-console=loadbalancer /web-console/*=loadbalancer /i2b2=loadbalancer /i2b2/*=loadbalancer !/i2b2/images/*=loadbalancer This will configure mod_jk to forward requests for the /jmx-console, /web-console and /myapp contexts to JBoss Web. The '!' at the beginning of the last line results in the URLs for the images dir in the myapp context not being forwarded. Instead httpd will handle them directly (which means they must be available on the httpd server). Step 6: Restart Apache Step 7: Restart JBoss AS. Step 8: Access the JBoss AS web-console through Apache by browsing to http://localhost/web-console and you should see the JBoss web console page. Note: to use mod_jk with Jboss 2 (e.g. jboss 2.4.6), you must edit jboss.jcml. Add the 'jvmRoute="myWorker"' to the Engine element under the EmbeddedCatalinaSX mbean. and also at <JBOSS_HOME>\server\node1\deploy\jboss-web.deployer\META-INF\jboss-service.xml I changed as <attribute name="UseJK">true</attribute> f. Oracle 10g Enterprise Edition Install Verifying Your Installation Required kernel version: 2.6.5-7.97 (or later) Check your kernel version by running the following command: uname -r Ex: # uname -r 2.6.5-7.97-smp Other required package versions (or later): binutils-2.15.90.0.1.1-32.5 gcc-3.3.3-43.24 gcc-c++-3.3.3-43.24 glibc-2.3.3-98.28 gnome-libs-1.4.1.7-671.1 libstdc++-3.3.3-43.24 libstdc++-devel-3.3.3-43.24 make-3.80-184.1 pdksh-5.2.14-780.1 sysstat-5.0.1-35.1 xscreensaver-4.16-2.6 libaio-0.3.98 To see which versions of these packages are installed on your system, run the following command as root: rpm -q binutils gcc gcc-c++ glibc gnome-libs libstdc++ libstdc++-devel make \ pdksh sysstat xscreensaver libaio Ex: # rpm -q binutils gcc gcc-c++ glibc gnome-libs libstdc++ libstdc++-devel make \ > pdksh sysstat xscreensaver libaio binutils-2.15.90.0.1.1-32.10 gcc-3.3.3-43.34 gcc-c++-3.3.3-43.34 glibc-2.3.3-98.47 gnome-libs-1.4.1.7-671.1 libstdc++-3.3.3-43.34 libstdc++-devel-3.3.3-43.34 make-3.80-184.1 pdksh-5.2.14-780.7 sysstat-5.0.1-35.4 xscreensaver-4.16-2.6 libaio-0.3.102-1.2 If any of the package versions on your system are missing or the versions are earlier than those specified above, you can download and install the updates from the Novell SUSE Linux Portal. Part II: Configuring Linux for Oracle Now that the Linux software is installed, you need to configure it for Oracle. This section walks through the steps required to configure Linux for Oracle Database 10g Release 2. Verifying System Requirements To verify that your system meets the minimum requirements for an Oracle Database 10g Release 2 database, log in as root and run the commands below. To check the amount of RAM and swap space available, run this: grep MemTotal /proc/meminfo grep SwapTotal /proc/meminfo Ex: # grep MemTotal /proc/meminfo MemTotal: 1034680 kB # grep SwapTotal /proc/meminfo SwapTotal: 1534196 kB The minimum RAM required is 1024MB, and the minimum required swap space is 1GB. Swap space should be twice the amount of RAM for systems with 2GB of RAM or less and between one and two times the amount of RAM for systems with more than 2GB. You also need 2.5GB of available disk space for the Oracle Database 10g Release 2 software and another 1.2GB for the database. The /tmp directory needs at least 400MB of free space. To check the available disk space on your system, run the following command: df -h Ex: # df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 6.8G 1.3G 5.2G 20% / /dev/sda1 99M 17M 77M 18% /boot The example shows that the /tmp directory does not have its own filesystem. (It's part of the root filesystem for this guide.) With 5.2 GB available, the root filesystem has just enough space for the installation (2.5 + 1.2 + 0.4 = 4.1GB) with a little room left over. Create the Oracle Groups and User Account Next, create the Linux groups and user account that will be used to install and maintain the Oracle Database 10g Release 2 software. The user account will be called oracle, and the groups will be oinstall and dba. Execute the following commands as root: /usr/sbin/groupadd oinstall /usr/sbin/groupadd dba /usr/sbin/useradd -m -g oinstall -G dba oracle id oracle Ex: # /usr/sbin/groupadd oinstall # /usr/sbin/groupadd dba # /usr/sbin/useradd -m -g oinstall -G dba oracle # id oracle uid=501(oracle) gid=502(oinstall) groups=502(oinstall),503(dba) Set the password on the oracle account: passwd oracle Ex: # passwd oracle Changing password for user oracle. New password: Retype new password: passwd: all authentication tokens updated successfully. Create Directories Now create directories to store the Oracle Database 10g Release 2 software and the database files. This guide adheres to the Optimal Flexible Architecture (OFA) for the naming conventions used in creating the directory structure. For more information on OFA standards, see Appendix C of the Oracle Database Installation Guide 10g Release 2 (10.2) for Linux x86. The following assumes that the directories are being created in the root filesystem. This is done for the sake of simplicity and is not recommended as a general practice. These directories would normally be created as separate filesystems. Issue the following commands as root: mkdir -p /u01/app/oracle chown -R oracle:oinstall /u01/app/oracle chmod -R 775 /u01/app/oracle Ex: # mkdir -p /u01/app/oracle # chown -R oracle:oinstall /u01/app/oracle # chmod -R 775 /u01/app/oracle Configuring the Linux Kernel Parameters The Linux kernel is a wonderful thing. Unlike most other *NIX systems, Linux allows modification of most kernel parameters while the system is up and running. There's no need to reboot the system after making kernel parameter changes. Oracle Database 10g Release 2 requires the kernel parameter settings shown below. The values given are minimums, so if your system uses a larger value, don't change it. kernel.shmall = 2097152 kernel.shmmax = 536870912 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default=262144 net.core.wmem_default=262144 net.core.rmem_max=262144 net.core.wmem_max=262144 If you're following along and have just installed Linux, the kernel parameters will all be at their default values and you can just cut and paste the following commands while logged in as root. cat >> /etc/sysctl.conf <<EOF kernel.shmall = 2097152 kernel.shmmax = 536870912 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default=262144 net.core.wmem_default=262144 net.core.rmem_max=262144 net.core.wmem_max=262144 EOF /sbin/sysctl -p Ex: # cat >> /etc/sysctl.conf <<EOF > kernel.shmall = 2097152 > kernel.shmmax = 536870912 > kernel.shmmni = 4096 > kernel.sem = 250 32000 100 128 > fs.file-max = 65536 > net.ipv4.ip_local_port_range = 1024 65000 > EOF # /sbin/sysctl -p net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0 kernel.core_uses_pid = 1 kernel.shmall = 2097152 kernel.shmmax = 536870912 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default = 262144 net.core.wmem_default = 262144 net.core.rmem_max = 262144 net.core.wmem_max = 262144 Run the following commands as root to verify your settings: /sbin/sysctl /sbin/sysctl /sbin/sysctl /sbin/sysctl /sbin/sysctl /sbin/sysctl /sbin/sysctl /sbin/sysctl -a -a -a -a -a -a -a -a | | | | | | | | grep grep grep grep grep grep grep grep shm sem file-max ip_local_port_range rmem_default rmem_max wmem_default wmem_max Ex: # /sbin/sysctl -a | grep shm kernel.shmmni = 4096 kernel.shmall = 2097152 kernel.shmmax = 536870912 kernel.shm-use-bigpages = 0 # /sbin/sysctl -a | grep sem kernel.sem = 250 32000 100 128 # /sbin/sysctl -a | grep file-max fs.file-max = 65536 # /sbin/sysctl -a | grep ip_local_port_range net.ipv4.ip_local_port_range = 1024 65000 # /sbin/sysctl -a | grep rmem_default net.core.rmem_default = 262144 # /sbin/sysctl -a | grep rmem_max net.core.rmem_max = 262144 # /sbin/sysctl -a | grep wmem_default net.core.wmem_default = 262144 # /sbin/sysctl -a | grep wmem_max net.core.wmem_max = 262144 For Novell SUSE Linux releases, use the following to ensure that the system reads the /etc/sysctl.conf file at boot time: /sbin/chkconfig boot.sysctl on Setting Shell Limits for the oracle User Oracle recommends setting limits on the number of processes and open files each Linux account may use. To make these changes, cut and paste the following commands as root: cat >> oracle oracle oracle oracle EOF /etc/security/limits.conf <<EOF soft nproc 2047 hard nproc 16384 soft nofile 1024 hard nofile 65536 cat >> /etc/pam.d/login <<EOF session required /lib/security/pam_limits.so EOF For SLES 9, use the following: cat >> /etc/profile.local <<EOF if [ \$USER = "oracle" ]; then if [ \$SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi umask 022 fi EOF cat >> /etc/csh.login.local <<EOF if ( \$USER == "oracle" ) then limit maxproc 16384 limit descriptors 65536 umask 022 endif EOF Installing Oracle Download Oracle Database from http://www.oracle.com/technology/software/products/database/xe/htdocs/102xelin soft.html Create a directory to contain the Oracle Database 10g Release 2 distribution: mkdir 10gR2_db Unzip and extract the file: cd 10gR2_db unzip 10201_database_xxxx.zip Install the Software and Create a Database Log in using the oracle account. Change directory to the location where you extracted the Oracle Database 10g Release 2 software. Ex: $ cd $HOME/10gR2_db Change directory to Disk1. Ex: $ cd database Start the Oracle Universal Installer. $ ./runInstaller Have to check and make checking the os and software user verified This is the password : oracle_password Continue /opt/oracle/product/10gR2/db/oraMac1.kumc.edu/sysman/log/emdctl.trc 2010-03-31 15:14:56 Thread-4125374144 WARN http: snmehl_connect: connect failed to (oraMac1.kumc.edu:3938): Connection refused (error = 111) /opt/oracle/product/10gR2/db/oraMac1.kumc.edu/sysman/log/emoms.log 2010-03-31 14:10:44,798 [Orion Launcher] ERROR app.ContextInitializer contextInitialized.271 - Integration Class not found: oracle.sysman.ias.ias.IASIntegration /opt/oracle/product/10gR2/db/oraMac1.kumc.edu/sysman/log/emoms.trc 2010-03-31 14:10:44,798 [Orion Launcher] ERROR app.ContextInitializer contextInitialized.271 - Integration Class not found: oracle.sysman.ias.ias.IASIntegration After install Run emca -deconfig dbcontrol db -repos drop and emca -config dbcontrol db -repos create listener port 1521 PATCHING Checked for oracle processes and had to kill a process that had a java file open for the install to work. oraMac1:~ # /opt/oracle/product/10gR2/db/root.sh Running Oracle10 root.sh script... The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /opt/oracle/product/10gR2/db Enter the full pathname of the local bin directory: [/usr/local/bin]: The file "dbhome" already exists in /usr/local/bin. Overwrite it? (y/n) [n]: y Copying dbhome to /usr/local/bin ... The file "oraenv" already exists in /usr/local/bin. Overwrite it? (y/n) [n]: y Copying oraenv to /usr/local/bin ... The file "coraenv" already exists in /usr/local/bin. Overwrite it? (y/n) [n]: y Copying coraenv to /usr/local/bin ... Entries will be added to the /etc/oratab file as needed by Database Configuration Assistant when a database is created Finished running generic part of root.sh script. Now product-specific root actions will be performed. Post install ; Run dbua as oracle Password for scott is : “xxxx” Test to verify if Enterprise Manager is up and running g. Php-5.2.13 Prerequisites At this point Apache web server must be installed. If you want MySQL support in PHP, MySQL server also must have been installed prior to the next steps. Download source Get the source from http://www.php.net/downloads.php . At the time of writing this tutorial the best available version was 5.1.5 ( php-5.1.5.tar.gz ). unpack, configure, compile Go to the directory whith the downloaded file and enter: tar -xzf php-5.2.1.tar.gz cd php-5.2.1 ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs –-with-curl --with-mysql=/usr/local/mysql ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --withlibxml-dir=/usr/local/xmllib2 --with-config-file-path=/usr/local/apache2/lib --withcurl=/usr/local/curl The configuration options ought to be self-explaining; --prefix specifies the location where PHP is to be installed, --with-apxs2 with correct path pointing to bin/apxs in the Apache installation directory is mandatory for the installator to work. Since PHP 5, you need to explicitly bundle PHP with MySQL by -with-mysql directive (make sure you specified path to where MySQL is installed on your system). There are many other options which turn on additional features. For all available configuration options and their default values type ./configure --help. Tip: If you are performing an upgrade, you may want to copy config.nice from the old PHP installation directory (if available) to where you unpacked the new PHP tarball file. Run ./config.nice instead of ./configure. This way all the previous configure options will be applied to the new installation effortlessly. Once you entered ./configure with all the options you need, compile and install the software: make make install edit httpd.conf All necessary changes to httpd.conf (Apache configuration file) should have already been made automatically during the installation, so usually you need not do anything. Anyways, check that following lines were added to your httpd.conf file: LoadModule php5_module modules/libphp5.so AddType application/x-httpd-php .php If not, add them manually. create php.ini file Importanly, you have to create php.ini configuration file. Choose one of the pre-made files (preferably php.ini-recommended) residing inside the php-5.2.1/ directory (it's the folder to which the downloaded archive was extracted). Copy the file to the lib/ directory in the PHP installation directory. cp php-5.2.1/php.ini-recommended /usr/local/php/lib/php.ini If you need to, edit the php.ini file: vi /usr/local/php/lib/php.ini However, the default settings should work for everyone in most cases. restart apache server After everything is set up, restart Apache: /usr/local/bin/apachectl stop /usr/local/bin/apachectl start Alternatively, simply enter: /usr/local/bin/apachectl restart Test if the Php install went fine Put the following in a php file called test.php <html> <head> <title>PHP Test&amp;lt;/title> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> </head> <body> <h1>PHP Test</h1> &amp;lt;p> <b>An Example of PHP in Action</b><br /> <?php echo "The Current Date and Time is: <br />"; echo date("g:i A l, F j Y.");?> &amp;lt;/p> <h2>PHP Information</h2> <p> <?php phpinfo(); ?> </p> </body> </html> h. Update your environment variables Be sure to set the JAVA_HOME, ANT_HOME, CATALINA_HOME and JBOSS_HOME variables to the JAVA, ANT, TOMCAT and JBOSS home directories you set up in steps a-d respectively. Open the file /etc/profile.d/oracle.sh and add the following codes: ORACLE_BASE=/opt/oracle ORACLE_HOME=$ORACLE_BASE/product/10gR2/db ORACLE_SID=bmid JAVA_HOME=/usr/java/jdk1.6.0_18 JBOSS_HOME=/usr/jboss-4.2.2.GA LAUNCH_JBOSS_IN_BACKGROUND=1 ANT_HOME=/usr/apache-ant-1.8.0 APACHE_HOME=/usr/local/apache2 PATH=$PATH:$ANT_HOME/bin:$JAVA_HOME/bin:$APACHE_HOME/bin Secure JMX Console (Authentication Only) 1.1. About the JMX Console The jmx-console is the default console that is available with the JBoss Application Server. It displays the various MBean Services that are running in a JBoss Application Server instance. A user is able to get and set attributes and invoke operations on the various services. For more information, please refer to the 'JBoss Application Server User or Administrator's Guide'. The following wiki page has a good description of the JMX Console. http://wiki.jboss.org/wiki/Wiki.jsp?page=JMXConsole 1.2. Simple Security for the JMX Console If you want to have simple secured jmx console where the user/password and user/roles come from properties files, then you can follow the following steps: 1. Locate the jmx-console.war directory in the deploy directory of your server configuration. If you are just using the default configuration, then it will be under JBOSS_DIR/server/default/deploy directory and you are using the clustered configuration, then it will be under JBOSS_DIR/server/all/deploy directory. 2. Now edit the web.xml file under jmx-console.war/WEB-INF directory and uncomment the security constraint block as shown below: 3. 4. 5. 6. 7. 8. 9. 10. <!-- A security constraint that restricts access to the HTML JMX console to users with the role JBossAdmin. Edit the roles to what you want and uncomment the WEB-INF/jboss-web.xml/security-domain element to enable secured access to the HTML JMX console. --> <security-constraint> <web-resource-collection> <web-resource-name>HtmlAdaptor</web-resource-name> <description>An example security config that only allows users with the 11. 12. 13. 14. 15. 16. 17. 18. 19. role JBossAdmin to access the HTML JMX console web application </description> <url-pattern>/*</url-pattern> <http-method>GET</http-method> <http-method>POST</http-method> </web-resource-collection> <auth-constraint> <role-name>JBossAdmin</role-name> </auth-constraint> </security-constraint> Edit the jboss-web.xml file also and uncomment the security-domain element as shown below: <jboss-web> <!-- Uncomment the security-domain to enable security. You will need to edit the htmladaptor login configuration to setup the login modules used to authentication users. --> <security-domain>java:/jaas/jmx-console</security-domain> </jboss-web> 20. Now locate the two properties files called as jmx-console-users.properties and jmx-consoleroles.properties that will be in the conf directory of your server configuration under the props subdirectory('default', 'all' or 'custom'). An example of the location will be /server/default/conf/props. 21. In the jmx-console-users.properties, you can add/change the user/password combination. 22. In the jmx-console-roles.properties, you will need to assign roles to the users you added or changed in step.4. Just remember to add JBossAdmin role to the users who will be using the jmx-console. 23. Now when you start JBoss and try to access the jmx-console, you should see a pop up appear that will ask you to enter the username and password. You can use one of the users/password combination that you configured in steps 4 and 5. Chapter 2. Secure JMX Console (Access Control) 2.1. Need for Access Control on the JMX Console The previous chapter talked about securing the jmx console. The security provided there applied to the entire console with no controls on what an user can do with reference to the various JMX operations possible on the console. 2.2. Details You will need to follow the following steps to enable access control on the jmx console. 1. Perform all the steps outlined in the earlier chapter to secure the jmx-console. Edit the web.xml file of deploy/jmx-console.war/WEB-INF in the server configuration you are using (default, all, custom etc). You will need to uncomment the filter settings as shown here: <!-- --> <filter> <filter-name>JmxOpsAccessControlFilter</filter-name> <filterclass>org.jboss.jmx.adaptor.html.JMXOpsAccessControlFilter</filter-class> <init-param> <param-name>updateAttributes</param-name> <param-value>UpdateAttributeRole</param-value> <description>Comma-delimited Roles that define the JMX Operation denoting updation of Attributes</description> </init-param> <init-param> <param-name>invokeOp</param-name> <param-value>InvokeOpRole</param-value> <description>Comma-delimited Roles that define the JMX Operation denoting Invocation of Operations</description> </init-param> </filter> <filter-mapping> <filter-name>JmxOpsAccessControlFilter</filter-name> <servlet-name>HtmlAdaptor</servlet-name> </filter-mapping> 2. Now if an user is allowed to click the 'invoke' buttons on the various MBean services in the jmx console (action will invoke operations), then the user needs to have 'InvokeOpRole'. If the user is allowed to click the 'Apply Changes' button(action will update the jmx attributes of the service), then the user needs to have 'updateAttributeRole'. For this to apply, you will need to update the jmx-console-roles.properties file in jboss_home/ server/default/conf/props folder. An example is shown below: # A sample roles.properties file for use with the UsersRolesLoginModule admin=JBossAdmin,HttpInvoker,UpdateAttributeRole admin2=JBossAdmin,HttpInvoker,InvokeOpRole 2.3. Reference http://wiki.jboss.org/wiki/Wiki.jsp?page=AccessControlForJMXConsole Testing if the Install for App and Web server worked Install Hive Cells The following order is recommended: 1. Review ‘i2b2 Database Strategy’ in preparation for Data installation. 2. Data Installation (required) (includes table creation) 3. Project Management (PM) Cell (required) 4. Ontology (ONT) Cell Installation (required) 5. Data Repository (CRC) Cell Installation (required) 6. Workplace (WORK) Cell Installation (required) 7. File Repository (FR) Cell Installation (required) 8. PFT Processing (PFT) Cell Installation (optional) 9. Any remaining optional cells Please refer to each cell’s installation guide. If you have followed the Prerequisites section in this guide, you may skip the Prerequisite sections for the individual cells. Installing the i2b2 Data Package 1. Unzip the data package into a folder: (/opt/data) You should see the project edu.harvard.i2b2.data. ‘cd edu.harvard.i2b2.data /Release_1-4/NewInstall’ This is considered your data installation working directory. Under this directory are folders for Demodata, Metadata, and Workdata. These map to schemas i2b2demodata, i2b2metadata and i2b2workdata for project Demo and i2b2demodata2, i2b2metadata2 and i2b2workdata2 for project Demo2. Folder Hivedata maps to the i2b2hive schema. 2 . Create user accounts in Oracle: Log in as system user Enter i2b2metadata user name and password. Check off Direct grant system privileges as shown below. Repeat for users i2b2demodata, i2b2workdata for project Demo, users i2b2metadata2, i2b2demodata2, i2b2workdata2 for project Demo2 and user i2b2hive and i2b2pm. 3. Create Metadata tables and load data: a) 'cd Metadata’ of your working directory. (edu.harvard.i2b2.data /Release_1-4/NewInstall) b) Edit db.properties Set database properties; be sure to set user/pswd to i2b2metadata and project to demo; Oracle: db.type=oracle db.username=i2b2metadata db.password=demouser db.server=127.0.0.1:1521:orcl db.driver=oracle.jdbc.driver.OracleDriver db.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl db.project=demo In the above script we made the change from localhost to 127.0.0.1 as linux box doesn’t map it to localhost c) To create metadata tables, indexes and sequences : Run 'ant -f data_build.xml create_metadata_tables_release_1-4’ d) To load data: If you wish to load your own metadata, do that now. Otherwise: Run 'ant -f data_build.xml db_metadata_load_data' This may take few minutes e) Edit db.properties for user/pswd i2b2metadata2 and project demo2. Repeat steps c and d. 4. Create Demodata tables and load data: a) 'cd Demodata’ of your working directory. (edu.harvard.i2b2.data /Release_1-4/NewInstall) b) Edit db.properties Set database properties; be sure to set user/pswd to i2b2demodata and project to demo. Oracle: db.type=oracle db.username=i2b2demodata db.password=demouser db.server=127.0.0.1:1521:orcl db.driver=oracle.jdbc.driver.OracleDriver db.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl db.project=demo c) To create demodata tables, indexes and sequences : Run 'ant -f data_build.xml create_demodata_tables_release_1-4’ d) To create new stored procedures: Run 'ant -f data_build.xml create_procedures_release_1-4’ e) To load data: If you wish to load your own demo data, do that now. Otherwise: Run 'ant -f data_build.xml db_demodata_load_data' This may take few minutes f) Edit db.properties for user/pswd i2b2demodata2 and project demo2. Repeat steps c, d and e. 5. Create Workdata tables and load data: a) 'cd Workdata’ of your working directory. (edu.harvard.i2b2.data /Release_1-4/NewInstall) b) Edit db.properties Set database properties; be sure to set user/pswd to i2b2workdata, and project to demo. Oracle: db.type=oracle db.username=i2b2workdata db.password=demouser db.server=127.0.0.1:1521:orcl db.driver=oracle.jdbc.driver.OracleDriver db.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl db.project=demo c) To create workdata tables, indexes and sequences : Run 'ant -f data_build.xml create_workdata_tables_release_1-4’ d) To load data: If you wish to load your own work data, do that now. Otherwise: Run 'ant -f data_build.xml db_workdata_load_data' e) Edit db.properties for user/pswd i2b2workdata2 and project demo2. Repeat steps c and d. 6. Create Hive tables and load data: a) 'cd Hivedata’ of your working directory. (edu.harvard.i2b2.data /Release_1-4/NewInstall) b) Edit db.properties Set database properties; be sure to set user/pswd to i2b2hive. Oracle: db.type=oracle db.username=i2b2hive db.password=demouser db.server=127.0.0.1:1521:orcl db.driver=oracle.jdbc.driver.OracleDriver db.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl c) To create hive tables, indexes and sequences : Run 'ant -f data_build.xml create_hivedata_tables_release_1-4’ d) To load data: If you wish to load your own hive data, do that now. Otherwise: Run 'ant -f data_build.xml db_hivedata_load_data' The data loaded into the three i2b2hive db_lookup tables presumes that the default target location pointing to the hive we are now setting up is 'i2b2demo'. This target location is also referred to as the domain of the hive and should match the domain set up in the PM setup. In the client's i2b2.properties file: I2b2.1=demo,REST,http://webservices:9090/i2b2/rest/PMService/ I2b2.2=HarvardDemo,REST,http://services.i2b2.org/PM/rest/PMService/ #I2b2.3=YourSite,REST,http://jbossHost:jbossPort/i2b2/rest/PMServ ice/ The I2b2.1 target location ('demo') points to the hive residing on the vmware image. The i2b2.2 target location, HarvardDemo points to the hive residing at Harvard. The data installed at Harvard is identical to the data provided in this package. The hive we are now setting up is I2b2.3. Please be sure to rename 'YourSite' to 'i2b2demo'. 7. Create PM tables and load data: a) 'cd Pmdata’ of your working directory. (edu.harvard.i2b2.data /Release_1-4/NewInstall) b) Edit db.properties Set database properties; be sure to set user/pswd to i2b2pm Oracle: db.type=oracle db.username=i2b2pm db.password=i2b2pm_pswd db.server=127.0.0.1:1521:orcl db.driver=oracle.jdbc.driver.OracleDriver db.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl c) To create pm tables, indexes and sequences : Run 'ant -f data_build.xml create_pmdata_tables_release_1-4’ d) To create pm triggers : Run 'ant -f data_build.xml create_triggers_release_1-4’ e) To load data: If you wish to load your own pm data, do that now. Otherwise: Run 'ant -f data_build.xml db_pmdata_load_data' 9. You are now ready to proceed with hive installation. Installing or Upgrading the Project Management application The 1.4 i2b2 Project Management cell now runs on the same JBoss platform as the Ontology and Data Repository cells. As a result, all users need to perform the following installation procedures. 1. Download and extract the core server source code to a target area. If this has been downloaded in a previous installation (e.g. ONT or CRC), there is no need to repeat this step. a) Set up a target source_directory. (/opt/i2b2/src) b) Extract the core server source code to the target source_directory 2. Ensure that JBOSS is not running a) 'cd $JBOSS_HOME/bin/' b) './shutdown.sh -S' (rcjboss Stop/start/Status) 3. Deploy edu.harvard.i2b2.common a) 'cd source_directory/edu.harvard.i2b2.common' b) Edit the build.properties file and set jboss.home and axis2.war.name properties jboss.home=/usr/jboss-4.2.2.GA axis2.war.name=i2b2.war c) ‘ant clean deploy jboss_pre_deployment_setup’ 4. Deploy edu.harvard.i2b2.pm a) 'cd source_directory/edu.harvard.i2b2.pm' b) Edit the build.properties file and set jboss.home and axis2.war.name properties jboss.home=/usr/jboss-4.2.2.GA axis2.war.name=i2b2.war c) Edit etc/jboss/pm-ds.xml and configure your data sources: PMBootStrapDS points to the location of your PM table. Data source samples for both sqlserver and oracle are provided in pmds. xml. Copy and modify the samples in pm-ds.xml as needed to create the data sources shown below. If using Oracle rename PMBootStrapDS_ORACLE to PMBootStrapDS, else if using SqlServer name PMBootStrapDS_SQLSERVER to PMBootStrapDS. <datasources> <local-tx-datasource> <jndi-name>PMBootStrapDS </jndi-name> <driver-class>oracle.jdbc.driver.OracleDriver </driver-class> <connection-url>jdbc:oracle:thin:@127.0.0.1:1521:orcl </connection-url> <user-name>i2b2pm</user-name> <password>demouser</password> </local-tx-datasource> f) ‘ant -f master_build.xml clean build-all deploy’ 5. Install the WebClient a) Copy the Webclient directory, which is in the root directory of the core server source code to your httpd directory; (/usr/local/apache2/htdocs) The webclient is pre-configured for a localhost domain of ‘i2b2demo’. If you are upgrading from a system with a different domain or want to specify a different domain, edit the file webclient/i2b2_config_data.js accordingly. { name: "oraMac1", domain: "i2b2demo", debug: true, urlCellPM: "http://oraMac1/i2b2/rest/PMService/" }, b) If your httpd server is not running, start it now. 6. Start JBoss 7. Verify webservice is running a) Check url ‘http://yourHost:9090/i2b2/services/listServices’ in a browser. Verify that PMService is listed as active. Changing Server log level By default JBOSS log will be in DEBUG mode, changing it to INFO mode will increase server performance. a) Edit $JBOSS_HOME /server/default/conf/jboss-log4j.xml file and add the ‘Threshold’ param. <appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender"> <errorHandlerclass="org.jboss.logging.util.OnlyOnceErrorHandler"/> <param name="File" value="${jboss.server.home.dir}/log/server.log"/> <param name="Append" value="false"/> <param name="Threshold" value="INFO"/> <!-- Rollover at midnight each day --> <param name="DatePattern" value="'.'yyyy-MM-dd"/> <layout class="org.apache.log4j.PatternLayout"> <!-- The default pattern: Date Priority [Category] Message\n -> <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/> ..... </layout> </appender> To switch back to DEBUG mode, comment out the ‘Threshold’ param and wait a minute. THERE IS NO NEED TO RESTART JBOSS. Administration of the i2b2 Project Management application Go to the site http://oraMac1/webclient 1. You will see a login screen. Log in with a user you know has ADMIN role. For those installing for the first time, use the default ADMIN user of ‘i2b2’ and password of ‘demouser’. 2. Once logged on you will be presented with a default setup, select ‘Admin’ from the primary navigation. You should see the following: 3. Click the ‘Hive’ in the PM Navigation. This is where you can modify the Domains, Cells and Global Params. Click on the Domain to see the Domain Information. User creation in the i2b2 Project (Group) Management application 1. Continuing with the web client, select ‘Manage User’ from the primary navigation. You should see the following: 2. Click on the ‘Add New’ link, and fill in the required fields for the user you wish to add, such as the username, password, email address. Click the ‘Save Update’ button once you are complete. Repeat the process for as many users you wish to 3. To remove a user from the system, click on the row associated with that user, and click on the ‘Delete’ button. 4. To add a parameter to the user, select the row that contains the user you wish to add the parameter to and a new table will appear below. Follow the same procedure by select ‘Add New’ to add a parameter to that user. Registered Cell 1. Continuing with the web client, select ‘Hive’ from the primary navigation, than ‘Cells’ from the secondary navigation. You should see the following: 2. Click on the URL column on the row that has the CRC on it. Change the 192.168.242.130 to the IP or domain name that the CRC is installed on. Click the ‘Save Update’ button once you are complete. Repeat the process for the rest of the cells. 3. To add a new cell, click on the ‘Add New’ button and fill out the new information for that cell. Click the ‘Save Update’ button when complete. 4. To add a parameter to the cell, select the row that contains the cell you wish to add the parameter to and a new table will appear below. Follow the same procedure by select ‘Add New’ to add a parameter to that cell. Existing Projects 1. Continuing with the web client, select ‘Projects from the primary navigation, than ‘i2b2demodata’ from the secondary navigation. This is where you can update the information associated with the project. You should see the following: 2. You can have cells that are associated with only this specific project, by selecting the cells in the third level in the tree. And likewise, there will be parameters associated with that cell. 3. Parameters for this project can be added or deleted by selecting the Params from the tree. 4. The last item in the tree is Users, This item allows you to associate Users to a project. In the table, enter the username that you want to grant permission to and than select the roles. You need to select an Administration Role which is the first three roles and a Data Track which is the remaining roles. In the example below, User and Data_Agg was selected. The user mem61 will inherit Data_Obfsc automatically. PM Cell Sanity Test via the i2b2Workbench 1. Configure the i2b2Workbench to communicate with your PM cell. The i2b2Workbench may be configured via the i2b2Workbench.properties file. This file is found in the top level directory of the binary package (see file /i2b2Workbench/i2b2Workbench.properties). Sample contents of this file are shown below: writeTimelineFile=yes applicationName=i2b2 messageversion=1.1 I2b2.2=i2b2demo,REST,http://oraMac1/i2b2/rest/PMService/ The last lines in this file provide the location of the target PM cells. Its structure is as follows: Identifier Label Protocol URL I2b2.1 HarvardDemo REST http://webservices.i2b2.org/i2b2/rest/PMService/ #I2b2.2 YourSite REST http://host:port/i2b2/rest/PMService/ To set up the system to point to your target PM cell, remove the comment tag (‘#’) in the I2b2.2 identifier, provide a meaningful label and configure the URL for the location of your PM cell. 2. Launch the i2b2Workbench (double-click on i2b2Workbench.exe) Login to i2b2: a. Select your target location (YourSite) b. Enter a valid username and password that you set up in gridsphere (demo/demouser) Installing the Ontology Management Application 1. Download and extract the core server source code to a target area. If this has been downloaded in a previous installation (e.g. PM or CRC), there is no need to repeat this step. a) Set up a target source_directory. (/opt/i2b2/src) b) Extract the core server source code to the target source_directory 2. Ensure that JBOSS is not running a) 'cd $JBOSS_HOME/bin/' b) './shutdown.sh -S' 3. Deploy edu.harvard.i2b2.common If this has been deployed in a previous installation (e.g. CRC), there is no need to repeat this step. a) 'cd source_directory/edu.harvard.i2b2.common' b) Edit the build.properties file and set jboss.home and axis2.war.name properties jboss.home=/usr/jboss-4.2.2.GA axis2.war.name=i2b2.war c) ‘ant clean deploy jboss_pre_deployment_setup’ 4. Deploy edu.harvard.i2b2.ontology a) 'cd source_directory/edu.harvard.i2b2.ontology' b) Edit the build.properties file and set jboss.home and axis2.war.name properties jboss.home=/usr/jboss-4.2.2.GA axis2.war.name=i2b2.war c) Edit the etc/spring/ontology_application_directory.properties file and specify a location for the application properties directory. This location can be anything you desire but must be a directory path that your linux user has access permission for. edu.harvard.i2b2.ontology.applicationdir= /usr/jboss-4.2.2.GA /server/default/conf/ontologyapp d) Edit the etc/spring/ontology.properties file and set database and project management properties Set metadata bootstrap database schema name to the location of the ONT_DB_LOOKUP table ####################################### # METADATA schema name ####################################### ontology.bootstrapdb.metadataschema=i2b2hive Set the Project Management property settings Note the new address for the jboss-based PMService. ontology.ws.pm.url=http://oraMac1/i2b2/rest/PMService/getServices # Flag to bypass project management cell ontology.ws.pm.bypass=false ontology.ws.pm.bypass.role=ADMIN ontology.ws.pm.bypass.project=Demo Set the METADATA delimiter (backslash) setting ontology.terminal.delimiter=true If set to ‘true’, this parameter adds a backslash automatically to the metadata fullpath name if it does not already exist. This was added to fix a bug related to leaf-level metadata concepts with similar names: such as //i2b2/i2b2/metadata/pul and //i2b2/i2b2/metadata/pulm Set this to ‘false’ if you want true Release 1.3 backward compatibility. e) Edit etc/jboss/ont-ds..xml and configure your data sources: OntologyBootStrapDS points to the location of your ONT_DB_LOOKUP table. Any additional data source specified in the lookup table must be specified here as well (shown below as "OntologyDemoDS" for project Demo and "OntologyDemo2DS" for project Demo2). Data source samples for both sqlserver and oracle are provided in ontds.xml. Copy and modify the samples in ont-ds.xml as needed to create the three data sources shown below. Comment out or remove any unused samples. <datasources> <local-tx-datasource> <jndi-name>OntologyBootStrapDS</jndi-name> <driver-class>oracle.jdbc.driver.OracleDriver </driver-class> <connection-url>jdbc:oracle:thin:@127.0.0.1:1521:orcl </connection-url> <user-name>i2b2hive</user-name> <password>demouser</password> </local-tx-datasource> <local-tx-datasource> <jndi-name>OntologyDemoDS</jndi-name> <driver-class>oracle.jdbc.driver.OracleDriver </driver-class> <connection-url>jdbc:oracle:thin:@127.0.0.1:1521:orcl </connection-url> <user-name>i2b2metadata</user-name> <password>demouser</password> </local-tx-datasource> <local-tx-datasource> <jndi-name>OntologyDemo2DS</jndi-name> <driver-class>oracle.jdbc.driver.OracleDriver </driver-class> <connection-url>jdbc:oracle:thin:@127.0.0.1:1521:orcl </connection-url> <user-name>i2b2metadata2</user-name> <password>demouser</password> </local-tx-datasource> </datasources> f) ‘ant -f master_build.xml clean build-all deploy’ 5. Start JBOSS 6. Verify webservice is running a) Check url ‘http://oraMac1/i2b2/services/listServices’ in a browser. Verify that OntologyService is listed as active. Verify Installation Ontology (ONT) Cell Sanity Test via the i2b2Workbench 1. Configure the i2b2Workbench to communicate with your ONT cell. Cell configuration is addressed in the Project Management (PM) Cell installation and set up. Please refer to this document if the Ontology Cell has not yet been configured. To verify this data, go to the web client site http://oraMac1/webclient. Once logged on, select ‘Cells’ under the ‘Hive primary navigation tab. If the Ontology Cell has been configured it will be listed as an existing, registered cell: 2. Launch the i2b2Workbench (double-click on i2b2Workbench.exe) Login to i2b2: a. Select your target location (YourSite) b. Enter a valid username and password (demo/demouser) c. The URL at the bottom of the login screen should be the address of your PM cell. If not, edit the i2b2workbench.properties file to point to the location of your PM cell. I2b2.1=oraMac1,REST,http://oraMac1/i2b2/rest/PMService/ 3. Open the Navigate Terms view in the workbench. If all is configured properly, you will be greeted with a top level folder called “Ontology”. Double click on this folder to expand. 4. Open the Find Terms view in the workbench Enter a diagnostic term to search on such as “asthma”. Click on the Find button. If all is configured properly, you will see a list of entries each containing the work ‘asthma’. Installing the Clinical Research Chart Application 1. Download and extract the core server source code to a target area. If this has been downloaded in a previous installation (e.g. PM or ONT), there is no need to repeat this step. a) Set up a target source_directory. (/opt/i2b2/src) b) Extract core server source code to the target source_directory. 2. Ensure that JBOSS is not running a) ./$JBOSS_HOME/bin/shutdown.sh –S 3. Deploy edu.harvard.i2b2.common If this has been deployed in a previous installation (eg. ONT), there is no need to repeat this step. a) 'cd source_directory/edu.harvard.i2b2.common' b) Edit the build.properties file and set jboss.home and axis2.war.name properties jboss.home=/usr/jboss-4.2.2.GA axis2.war.name=i2b2.war c) ‘ant clean dist deploy jboss_pre_deployment_setup’ 4. Deploy edu.harvard.i2b2.crc and edu.harvard.i2b2.crc.loader 4.1. Build edu.harvard.i2b2.crc.loader The Uploader service is added to the CRC as part of the Release 1.3. The source for the Uploader resides in edu.harvard.i2b2.crc.loader project and it uses the CRC’s datasource setup. a) 'cd source_directory/edu.harvard.i2b2.crc.loader' b) Edit the build.properties file and set jboss.home and axis2.war.name properties jboss.home=/usr/jboss-4.2.2.GA axis2.war.name=i2b2.war c) Edit the etc/spring/crc_loader_application_directory.properties file and specify a location for the application properties directory. This location can be anything you desire but must be a directory path that your linux user has access permission for. edu.harvard.i2b2.crc.applicationdir= /usr/jboss-4.2.2.GA/server/default/conf/crcloaderapp d)Edit the etc/spring/edu.harvard.i2b2.crc.loader.properties file and set project management properties Set Project Management property settings: Note the new location of the PM URL. edu.harvard.i2b2.crc.loader.ws.pm.url=http://oraMac1/i2b2/rest/PMService/getServices # Flag to bypass project management cell edu.harvard.i2b2.crc.loader.ws.pm.bypass=false edu.harvard.i2b2.crc.loader.ws.pm.bypass.role=ADMIN edu.harvard.i2b2.crc.loader.ws.pm.bypass.project=Demo If you are using file repository cell and want to connect the CRC loader to it, then set the FileRepository cell property setting ####################################### # File Management Cell ####################################### edu.harvard.i2b2.crc.loader.ws.fr.url=http://oraMac1/i2b2/services/FRService/ e) Edit the etc/spring/CRCLoaderApplicationContext.xml Specify the jdbc properties to locate the ‘CRC_DB_LOOKUP’ table. <bean id="LoaderLookupDS" class="org.apache.commons.dbcp.BasicDataSource" destroymethod=" close"> <property name="driverClassName" value=" oracle.jdbc.driver.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/> <property name="username" value="i2b2hive"/> <property name="password" value="demouser"/> </bean> Update entry in edu.harvard.i2b2.crc.loader.properties to reflect the above change. ####################################### # Datasource Lookup properties ####################################### edu.harvard.i2b2.crc.loader.ds.lookup.datasource=LoaderLookupDS edu.harvard.i2b2.crc.loader.ds.lookup.servertype=ORACLE edu.harvard.i2b2.crc.loader.ds.lookup.schemaname=i2b2hive f) ‘ant -f build.xml clean dist’ Note : No ‘deploy’ target is used. The loader will be deployed as part of edu.harvard.i2b2.crc project. 4.2 Setup edu.harvard.i2b2.crc a) 'cd source_directory/edu.harvard.i2b2.crc' b) Edit the build.properties file and set jboss.home and axis2.war.name properties jboss.home=/usr/jboss-4.2.2.GA axis2.war.name=i2b2.war #jms persistance could be either oracle or mssql jboss.jms.persistance=oracle c) Edit the etc/spring/crc_application_directory.properties file and specify a location for the application properties directory. This location can be anything you desire but must be a directory path that your linux user has access permission for. edu.harvard.i2b2.crc.applicationdir= /usr/jboss-4.2.2.GA/server/default/conf/crcapp d)Edit the etc/spring/crc.properties file and set project management properties Set Project Management property settings Note the new location of the PM Service. ####################################### # Project Management Cell ####################################### queryprocessor.ws.pm.url=http://localhost:9090/i2b2/rest/PMService/getServices # Flag to bypass project management cell queryprocessor.ws.pm.bypass=false queryprocessor.ws.pm.bypass.role=ADMIN queryprocessor.ws.pm.bypass.project=Demo e)Set Ontology property settings, change the hostname and port ####################################### # Ontology Cell ####################################### queryprocessor.ws.ontology.url=http://localhost:9090/i2b2/rest/OntologyService/getTermInfo f)Create the CRC service user account in the Project Management cell and assign the ‘User’ and ‘Data_Obfsc’ role to the user. CRC uses this PM user in the Ontology and PM cell calls. ##################################################### # CRC service account properties ##################################################### edu.harvard.i2b2.crc.pm.serviceaccount.user=OBFSC_SERVICE_ACCOUNT edu.harvard.i2b2.crc.pm.serviceaccount.password=demouser g) Update QT_BREAKDOWN_PATH table: Based on your Ontology mapping, update the parent item key values used in the analysis break down calculation. Name Value PATIENT_GENDER_COUNT_XML \\i2b2\i2b2\Demographics\Gender\ PATIENT_RACE_COUNT_XML \\i2b2\i2b2\Demographics\Race\ PATIENT_VITALSTATUS_COUNT_XML \\i2b2\i2b2\Demographics\Vital Status\ PATIENT_AGE_COUNT_XML \\i2b2\i2b2\Demographics\Age\ h) The following steps tells CRC, where the “CRC_DB_LOOKUP” table is located. code_lookup PK c_domain_id varchar(255) PK c_project_path varchar(255) PK c_owner_id varchar(255) c_db_fullschema varchar(255) c_db_datasource varchar(255) c_db_servertype varchar(255) c_db_nicename varchar(255) c_db_tooltip varchar(255) c_comment text c_entry_date datetime c_change_date datetime c_status_cd char(1) Edit etc/spring/CRCApplicationContext.xml: <bean id="CRCDataSourceLookup" class="org.apache.commons.dbcp.BasicDataSource" destroymethod="close"> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/> <property name="username" value="i2b2hive"/> <property name="password" value="demouser"/> </bean> Update entry in etc/spring/crc.properties to reflect the above change. ####################################### # Datasource Lookup properties ####################################### queryprocessor.ds.lookup.datasource=CRCDataSourceLookup queryprocessor.ds.lookup.servertype=ORACLE queryprocessor.ds.lookup.schemaname=i2b2hive Continuing in file etc/spring/crc.properties: i)The PDO paging size can be adjusted based on the runtime jvm setting. ####################################### # PDO Paging properties ####################################### edu.harvard.i2b2.crc.pdo.paging.observation.size=75000 j)You can tune the default max job count for the Analysis job queue ####################################### # Analysis Queue properties ####################################### edu.harvard.i2b2.crc.analysis.queue.medium.timeoutmills=1800000 edu.harvard.i2b2.crc.analysis.queue.medium.maxjobcount=4 edu.harvard.i2b2.crc.analysis.queue.large.timeoutmills=3600000 9 edu.harvard.i2b2.crc.analysis.queue.large.maxjobcount=4 edu.harvard.i2b2.crc.analysis.queue.medium.jobcheck.timemills=120000 edu.harvard.i2b2.crc.analysis.queue.large.jobcheck.timemills=120000 k)If required adjust the default query queues timeout in second. ##################################################### # Setfinder JMS Queue transaction timeout properties ##################################################### edu.harvard.i2b2.crc.jms.small.timeoutsec=180 edu.harvard.i2b2.crc.jms.medium.timeoutsec=14400 edu.harvard.i2b2.crc.jms.large.timeoutsec=43200 l)If required change the default user’s setfinder lockout parameter ##################################################### # CRC setfinder query lockout parameter ##################################################### edu.harvard.i2b2.crc.lockout.setfinderquery.count=7 edu.harvard.i2b2.crc.lockout.setfinderquery.day=30 m)Configure JBoss Datasource: CRC supports both Oracle and SqlServer. Edit etc/jboss/crc-ds.xml and set the database connection properties. For SqlServer data source, please use the sample provided in the crc-ds.xml. The following steps show the configuring Oracle data source for two projects. If your setup has multiple projects pointing to different data sources, then copy <local-tx-datasource> in ds-xml for each project data source. <jndi-name>QueryToolDemoDS</jndi-name> <connectionurl> jdbc:oracle:thin:@127.0.0.1:1521:orcl</connection-url> <driver-class>oracle.jdbc.driver.OracleDriver</driver-class> <user-name>i2b2demodata</user-name> <password>demouser</password> For example, project Demo2 would have this entry: <jndi-name>QueryToolDemo2DS</jndi-name> with connection-url: <connectionurl> jdbc:oracle:thin:@127.0.0.1:1521:orcl</connection-url> <driver-class>oracle.jdbc.driver.OracleDriver</driver-class> <user-name>i2b2demodata2</user-name> <password>demouser</password> n)Edit etc/jboss/crc-jms-ds.xml and set ‘DefaultDS’ JMS database connection properties If the data source is Sqlserver, then comment the oracle section and uncomment sqlserver datasource section. <local-tx-datasource> <jndi-name>DefaultDS</jndi-name> <connectionurl> jdbc:oracle:thin:@127.0.0.1:1521:orcl</connection-url> <driver-class>oracle.jdbc.driver.OracleDriver</driverclass> <user-name>i2b2hive_uname</user-name> <password>demouser</password> ... </local-tx-datasource> 4.3 Build and deploy edu.harvard.i2b2.crc and edu.harvard.i2b2.crc.loader ‘ant -f master_build.xml clean build-all deploy’ Note: If you are deploying on an existing JBoss instance with CRC 1.3, then please remove the QueryProcessor-EJB.jar from the $JBOSS_HOME/server/default/deploy directory. 5. Start JBOSS 6. Verify webservice is running a) Check url ‘http://yourHost:9090/i2b2/services/listServices’ in a browser. Verify that QueryToolService is listed as active. Verify Installation CRC Cell Sanity Test via the i2b2Workbench 1. Configure the i2b2Workbench to communicate with your CRC cell. Cell configuration is addressed in the Project Management (PM) Cell installation and set up. Please refer to this document if the CRC Cell has not yet been configured. To verify this data, go to the web client site http://oraMac1/webclient. Once logged on, select ‘Cells’ under the ‘Hive primary navigation tab. If the CRC Cell has been configured it will be listed as an existing, registered cell: To verify cell data, select cell name(CRC) and click on Edit Cell Info. 2. Launch the i2b2Workbench (double-click on i2b2Workbench.exe) Login to i2b2: a. Select your target location (YourSite) b. Enter a valid username and password (demo/demouser) 3. Open the Query Tool, Previous Queries and Timeline views in the workbench If all is configured properly, you will be greeted with the following Installing the Workplace Application 1. Download and extract the core server source code to a target area. If this has been downloaded in a previous installation (e.g. PM or CRC), there is no need to repeat this step. a) Set up a target source_directory. (/opt/i2b2/src) b) Extract the core server source code to the target source_directory 2. Ensure that JBOSS is not running 3. Deploy edu.harvard.i2b2.common If this has been deployed in a previous installation (e.g. CRC, ONT), there is no need to repeat this step. a) 'cd source_directory/edu.harvard.i2b2.common' b) Edit the build.properties file and set jboss.home and axis2.war.name properties jboss.home=/usr/jboss-4.2.2.GA axis2.war.name=i2b2.war c) ‘ant clean deploy jboss_pre_deployment_setup’ 4. Deploy edu.harvard.i2b2.workplace a) 'cd source_directory/edu.harvard.i2b2.workplace' b) Edit the build.properties file and set jboss.home and axis2.war.name properties jboss.home=/usr/jboss-4.2.2.GA axis2.war.name=i2b2.war c) Edit the etc/jboss/work-ds.xml file and configure your data sources: WorkplaceBootStrapDS points to the location of your WORK_DB_LOOKUP table. Any additional data source specified in the lookup table must be specified here as well (shown below as "WorkplaceDemoDS" and "WorkplaceDemo2DS"). Data source samples for both sqlserver and oracle are provided in workds.xml. Copy and modify the samples in workds.xml as needed to create the three data sources shown below. Comment out or remove any unused samples. <datasource> <local-tx-datasource> <jndi-name>WorkplaceBootStrapDS</jndi-name> <driver-class>oracle.jdbc.driver.OracleDriver</driverclass> <connectionurl> jdbc:oracle:thin:@127.0.0.1:1521:orcl</connection-url> <user-name>i2b2hive</user-name> <password>demouser</password> </local-tx-datasource> <local-tx-datasource> <jndi-name>WorkplaceDemoDS</jndi-name> <driver-class>oracle.jdbc.driver.OracleDriver</driverclass> <connection-url>jdbc:oracle:thin:@127.0.0.1:1521:orcl</connection-url> <user-name>i2b2workdata</user-name> <password>demouser</password> </local-tx-datasource> <local-tx-datasource> <jndi-name>WorkplaceDemo2DS</jndi-name> <driver-class>oracle.jdbc.driver.OracleDriver</driverclass> <connection-url>jdbc:oracle:thin:@yourHost:1521:orcl </connection-url> <user-name>i2b2workdata2</user-name> <password>demouser</password> </local-tx-datasource> </datasources> d) Edit the etc/spring/workplace_application_directory.properties file and specify a location for the application properties directory. This location can be anything you desire but must be a directory path that your linux user has access permission for. edu.harvard.i2b2.workplace.applicationdir=/usr/jboss-4.2.2.GA/server/default/conf/workplaceapp e) Edit the etc/spring/workplace.properties file and set database and project management properties Set WORK_DB_LOOKUP schema name ####################################### # METADATA schema name ####################################### workplace.bootstrapdb.metadataschema=i2b2hive Set the Project Management property settings workplace.ws.pm.url=http://oraMac1/i2b2/rest/PMService/getServices workplace.ws.pm.webServiceMethod=REST # Flag to bypass project management cell workplace.ws.pm.bypass=false workplace.ws.pm.bypass.role=ADMIN workplace.ws.pm.bypass.project=Demo f) ant -f master_build.xml clean build-all deploy’ 5. Start JBOSS 6. Verify webservice is running a) Check url ‘http://oraMac1/i2b2/services/listServices’ in a browser. Verify that WorkplaceService is listed as active. Verify Installation Workplace (WORK) Cell Sanity Test via the i2b2Workbench 1. Configure the i2b2Workbench to communicate with your WORK cell. Cell configuration is addressed the Project Management (PM) Cell installation and setup. Please refer to this document if the Workplace Cell has not yet been configured. To verify this data, go to the web client site http://oraMac1/webclient. Once logged on, select ‘Cells’ under the ‘Hive primary navigation tab. If the Workplace Cell has been configured it will be listed as an existing, registered cell: To verify cell data, select cell name and click on Edit Cell Info. If the Workplace has not been configured yet, select Add New. Properties for the Workplace cell are as follows: ID WORK Name Base URL Workplace Cell http://host:port/i2b2/rest/WorkplaceService/ Method REST 2. Launch the i2b2Workbench (double-click on i2b2Workbench.exe) Login to i2b2: a. Select your target location (YourSite) b. Enter a valid username and password (demo/demouser) 3. Open the Workplace view in the workbench If all is configured properly, you will be greeted with two top level workplace containers: ‘SHARED’ and ‘yourUserId’. Double click on either container to expand. Installing the File Repository cell 1. Download and extract the core server source code to a target area. If this has been downloaded in a previous installation (e.g. PM or ONT), there is no need to repeat this step. a) Set up a target source_directory. (/opt/i2b2/src) b) Extract core server source code to the target source_directory. 2. Ensure that JBOSS is not running 3. Deploy edu.harvard.i2b2.common If this has been deployed in a previous installation (eg. ONT), there is no need to repeat this step. a) 'cd source_directory/edu.harvard.i2b2.common' b) Edit the build.properties file and set jboss.home and axis2.war.name properties jboss.home=/usr/jboss-4.2.2.GA axis2.war.name=i2b2.war c) ‘ant clean deploy jboss_pre_deployment_setup’ 4. Deploy edu.harvard.i2b2.fr a) 'cd source_directory/edu.harvard.i2b2.fr' b) Edit the build.properties file and set jboss.home, axis2.war.name jboss.home=/usr/jboss-4.2.2.GA axis2.war.name=i2b2.war c) Edit the etc/spring/fr_application_directory.properties file and specify a location for the application properties directory. This location can be anything you desire but must be a directory path that your linux user has access permission for. edu.harvard.i2b2.fr.applicationdir= /usr/jboss-4.2.2.GA/server/default/conf/frapp d) Edit the etc/spring/edu.harvard.i2b2.fr.properties file and set project management properties Set Project Management property settings Note the new location of the PM Service: edu.harvard.i2b2.fr.ws.pm.url=http://oraMac1/i2b2/rest/PMService/getServices # Flag to bypass project management cell edu.harvard.i2b2.fr.ws.pm.bypass=false edu.harvard.i2b2.fr.ws.pm.bypass.role=ADMIN edu.harvard.i2b2.fr.ws.pm.bypass.project=Demo e) ‘ant -f master_build.xml clean build-all deploy’ 5. Update Project Management a) Logon to Project Manager Web Interface Once logged on, select ‘Hive’ from the primary navigation tab and ‘Cell’ from the secondary navigation menu. If the Data Importer Cell (FR Cell) has not been configured, select ‘Add New’ and fill in the required cell information in step 1. Please note that the correct ID for this cell is ‘FRC’. b) Enter the parameters by selecting the row that has the ‘FRC’ as the ID. PathSeperator is the default path separator for the host machine running the cell, on Mac OS and Linux is it /, while on Windows it is \ DestDir is the destination where the files will be hosted. c) (optional) To allow admin users to transfer files directly via SFTP, create a Group Variable called FRMethod with the value of SFTP and FRHost with the name of the machine. FRPort is an optional field, usually set at 22. To allow the CRC loader to retrieve the files locally when it is on the same JBoss as FR, set the FRMethod to 'local'. This will prevent the CRC Loader from accessing the FR via a web service call, resulting in faster responses. d) To create a directory on the server to host the files, logon as the same user that will be running jBoss. 1. ‘mkdir /opt/FRC’ 6. Start JBOSS 7. Verify webservice is running a) Check url ‘http://oraMac1/i2b2/services/listServices’ in a browser. Verify that FRService is listed as active. FR Cell Sanity Test via the i2b2Workbench 1. Launch the i2b2Workbench (double-click on i2b2Workbench.exe) Login to i2b2: a. Select your target location (YourSite) b. Enter a valid username and password (demo/demouser) 2. Open the Import Data view in the workbench If all is configured properly, you will be greeted with the following