Configuring setup user ID for SQL DI

The installation and configuration of SQL Data Insights (SQL DI) requires that you have sufficient privileges to access your z/OS® system, allocate system resources, and customize system environment variables. Consider creating a multipurpose SQL DI setup user ID, grant it required permissions, and customize your z/OS environment for it.

Procedure

  1. If you have not done so, create a multipurpose <sqldi_setup_userid>, which you will use to install, configure, and run your SQL DI.

    You can create the required <sqldi_setup_userid> in different ways. For example, you can customize and run the following sample JCL job to create the ID:

    //CREATE JOB (0),SQLDI RACF',CLASS=A,REGION=0M,
    //MSGCLASS=H,NOTIFY=&SYSUID
    //*------------------------------------------------------------*/
    //RACF     EXEC PGM=IKJEFT01,REGION=0M
    //SYSTSPRT DD SYSOUT=*
    //SYSTSIN  DD *
    ADDGROUP SQLDIGRP OMVS(GID(<group-identifier>)) OWNER(SYS1)
    ADDUSER <sqldi_setup_userid> DFLTGRP(SQLDIGRP) OMVS(UID(<user-identifier>) -
    HOME(/u/<sqldi_setup_userid>) -
    PROGRAM($SQLDI_INSTALL_DIR/tools/bin/bash)) -
    NAME('SQLDI ID') PASSWORD(<password>) NOOIDCARD
    /*
    

    where

    • <sqldi_setup_userid> is the user ID that you will use to configure and run your SQL DI.
    • SQLDIGRP is a RACF® group that you use to authorize users for your SQL DI login. Users that are not defined in the group are denied access when they attempt to sign in. If necessary, you can modify the default group name. See Modifying the default name of your SQL DI login group for instructions.
      Note: When you run the sample JCL to create <sqldi_setup_userid>, the ID is automatically assigned to the SQLDIGRP group . You can remove the ID from the group if you do not plan to use it for SQL DI login.
    • <group-identifier> is the identifier for SQLDIGRP.
    • <user-identifier> is the identifier for <sqldi_setup_userid>. Do not use UID 0 for <sqldi_setup_userid>.
    • $SQLDI_INSTALL_DIR is the directory where SQL DI is installed. The default is /usr/lpp/IBM/db2sqldi/.
  2. Allocate a minimum of 500 MB disk space to the home directory for <sqldi_setup_userid>.
  3. Create a SQLDI_HOME directory where SQL DI will store all the configuration, customization, and log files as well as runtime data.
    1. Create the SQLDI_HOME directory. Make sure that SQLDI_HOME is mounted to a zFS file system with at least 100 GB storage available.
      Tip: Avoid creating or configuring the SQLDI_HOME directory with automount management. Automount might unmount a directory if it is not referenced for a period of time. Any unplanned unmount of the SQLDI_HOME directory will cause SQL DI to fail.
    2. If you use another user ID to create the SQLDI_HOME directory, make sure to change the directory owner to <sqldi_setup_userid> by issuing the following command:
      chown –R sqldi_setup_userid:SQLDIGRP SQLDI_HOME/
    3. To allocate zFS data sets for SQLDI_HOME that are larger than 100 GB, make sure that you specify the DFSMS data class with extended format and extended addressability.
  4. Configure your z/OS UNIX shell environment for <sqldi_setup_userid>
    1. Copy the $SQLDI_INSTALL_DIR/templates/profile.template directory into $HOME/.profile for <sqldi_setup_userid>.
    2. Customize the following environment variables in the profile template:
      • Set $JAVA_HOME to the directory of your IBM® Java™ 8 SR7 installation.
      • Set $SQLDI_INSTALL_DIR to the directory where your SQL DI is installed. The default is /usr/lpp/IBM/db2sqldi/.
      • Set $BLAS_INSTALL_DIR to the directory where the IBM OpenBLAS is located on your z/OS system. The default is /usr/lpp/cbclib.
    3. Verify that the PATH environment variable is correctly set in the profile template as shown in the following example:
      PATH=/bin:
      PATH=$SQLDI_INSTALL_DIR/sql-data-insights/bin:$PATH
      PATH=$SQLDI_INSTALL_DIR/tools/bin:$PATH
      PATH=$PATH:$JAVA_HOME/bin
      export PATH=$PATH

      Where /tools/bin is home to bash, OpenSSL, and other tools.

  5. Configure <sqldi_setup_userid> access to your z/OS UNIX shell environment.

    <sqldi_setup_userid> must have the following permissions to install, configure, and run your SQL DI:

    • Permission to read and write to the SQLDI_HOME directory.
    • Permission to read and execute to the $SQLDI_INSTALL_DIR directory used by the SMP/E installation.
    • $JAVA_HOME/bin defined in the $PATH environment variable in the user's profile.
    • IBM_JAVA_OPTIONS environment variable set to -Dfile.encoding=UTF-8 in the user's profile.
    • _BPXK_AUTOCVT environment variable set to ON in the user's profile.
    • READ access to the RACF BPX.JOBNAME facility class so that SQL DI default address space names can take effect and that you can assign default job names with the SQLDI prefix to SQL DI started services.
    • READ access to resources CSFDSG, CSFDSV, CSFEDH, CSFIQA, CSFIQF, CSFOWH, CSFPKG, CSFPKI, CSFPKX, CSFRNG, and CSFRNGL for ICSF services in the CSFSERV class if your system is CryptoCard-enabled.
  6. Update system resource settings, including CPUTIMEMAX, MEMLIMIT, and ASSIZEMAX values in the OMVS segment of the RACF profile for <sqldi_setup_userid>.

    If needed, issue the ALTUSER command to update the CPUTIMEMAX, MEMLIMIT, and ASSIZEMAX settings as shown in the following example:

    ALTUSER <sqldi_setup_userid> OMVS(ASSIZEMAX(address-space-size)
         MEMLIMIT(nonshared-memory-size) CPUTIMEMAX(cpu-time))

    SQL DI requires sufficient system memory to function properly. You can use the MEMLIMIT and ASSIZEMAX parameters to control the amount of memory for the address space started by <sqldi_setup_userid>. At the minimum, set MEMLIMIT initially to 32 GB or greater and ASSIZEMAX to 1 GB.

    SQL DI also requires sufficient system CPU to run unimpeded. Consider setting the CPUTIMEMAX parameter to unlimited to ensure uninterrupted operations.

    You can issue the ulimit command in a z/OS UNIX shell session to verify CPUTIMEMAX, MEMLIMIT, and ASSIZEMAX settings. The command returns a message that is similar to the following example:

    /bin/ulimit -a 
    core file         8192b
    cpu time          unlimited 
    data size         unlimited 
    file size         unlimited 
    stack size        unlimited 
    file descriptors  520000
    address space     1048576k
    memory above bar  24576m

    Where

    • "cpu time" is the value of the CPUTIMEMAX parameter.
    • "address space" is the value of the ASSIZEMAX parameter.
    • "memory above bar" is the value of the MEMLIMIT parameter.

    See ALTUSER (Alter user profile) and ulimit for more information.

  7. Verify that the required Java is installed on the z/OS system where you will install the SQL DI and available to <sqldi_setup_userid>.