Installing and configuring the SDO repository

Service Data Objects (SDO) is an open standard for enabling applications to handle data from different data sources in a uniform way, as data graphs. Service integration bus-enabled web services use an SDO repository for storing and serving WSDL definitions. Use this task to create and configure your preferred database to store SDO data, and to install and configure an SDO repository on each server that you plan to use for bus-enabled web services.

Before you begin

Determine the servers on which to install and configure an SDO repository, then add each server as a member of a bus.

An SDO repository can work with most database products. For specific information about choosing and configuring your preferred database, consult your database administrator or database product documentation, and read the notes in this topic on database usage.

About this task

To install and configure an SDO repository, complete the following steps:
  • Install your preferred database product.
  • Create a JDBC provider and a data source for your database.
  • Run the installSdoRepository.jacl script one or more times, to install the SDO application on each server and to set the database type that the SDO repository is to use.
For more information about how to do this, first read the following notes on database usage and on the installSdoRepository.jacl script, and then complete the steps for one of these configurations:
Notes on database usage:
  • [AIX Solaris HP-UX Linux Windows][IBM i]For a single server configuration, you can use either your preferred database or the embedded Apache Derby database that is supplied with WebSphere® Application Server.
  • The SDO repository dictates the schema and table names that it uses, so different repositories must use different databases to ensure that they do not access the same data.
  • Create the database for your preferred database supplier by using the Table.ddl file from the relevant app_server_root/util/SdoRepository/database_type directory. The Table.ddl file describes the database table that is needed by the SDO repository.
  • The -editBackendId flag on the installSdoRepository.jacl script determines the database type that the repository is to use. The back-end ID determines what database-specific rules the application follows when talking to the database. See the associated note on the installSdoRepository.jacl script.
  • Some databases require a user ID that has been granted permissions to access the SDO repository database. Create a user ID for user name SDOREP before you create the tables for Oracle, Sybase, and SQL Server databases. Because of the way these databases handle user names and table names, the user name must be SDOREP to enable the SDO repository to access its table with the fully qualified name SDOREP.BYTESTORE. Make sure that you grant permission for the SDOREP user to read from, and write to, the database.
  • If you use an Informix® database, do not disable logging.
  • The SDO repository does not require XA support. In most cases you can use either an XA or a non-XA data source. However, if your database is Oracle 8 or 9, you must use the Oracle JDBC driver (non-XA) for the SDO repository data source.
  • You might also choose to complete other steps such as creating an index of the primary key to improve database performance. Do not change the schema, table and column names.
Notes on the installSdoRepository.jacl script:
  • Use the wsadmin scripting client to run the script.
  • [IBM i]Run the script from within QShell.
  • The script is provided in the app_server_root/bin directory, where app_server_root is the root directory for the installation of WebSphere Application Server. If you choose to run the wsadmin scripting client from another directory, specify the full path to the script on the command option. For example to work with a profile other than the default profile, change to the app_server_root/profiles/profile_name/bin directory then specify the following path to the script:[IBM i]
    wsadmin -f app_server_root/bin/installSdoRepository.jacl
    [AIX Solaris HP-UX Linux Windows]
    wsadmin.ext -f app_server_root/bin/installSdoRepository.jacl
    [AIX Solaris HP-UX Linux Windows]where .ext is the file extension .bat for a Windows system, or .sh for a UNIX, Linux® or z/OS® system.
  • The -editBackendId flag on the installSdoRepository.jacl script determines the database type that the repository is to use. The back-end ID determines what database-specific rules the application follows when talking to the database. To see the full list of available back-end ID values, use the -listBackendIds flag:
    wsadmin -f installSdoRepository.jacl -listBackendIds
    All the back-end ID values in the list can be used when the SDO repository is installed on one or more WebSphere Application Server Version 7.0 or later application servers. Values marked with (*) cannot be used when the SDO repository is installed on Version 6.0 servers. Values marked with (**) cannot be used when the SDO repository is installed on Version 6.0 or Version 6.1 servers.

    The back-end ID that you select must be the same as your database vendor and the version that most closely matches without exceeding your actual database software version. For instance, if you use distributed Db2 UDB V11.5, pick the latest back-end ID in the DB2UDB family up to V11.5, which is the DB2UDB_V97 back-end ID. If you use Db2 V9.5, then the DB2UDB_V95 back-end ID is the closest match. If you use Oracle V19c, then pick the ORACLE_11G back-end ID.

  • If the data source already exists, or there has been a previous broken or partial installation of the SDO repository application, the installSdoRepository.jacl script fails to complete and configuration changes are not saved. In these cases, run the SDO repository uninstall script, fix the problem, then rerun the installSdoRepository.jacl script.
[AIX Solaris HP-UX Linux Windows][IBM i]

Configure the SDO repository for a single server, and to use the embedded Derby database

About this task

If you are creating a single server configuration and you want to use embedded Derby, you run the installSdoRepository.jacl script with the -createDb switch. This action creates the Derby database and installs the SDO repository.

To configure the SDO repository for a single server and to use the embedded Derby database, complete the following steps:

Procedure

  1. Open a command prompt, then change to the app_server_root/bin directory.
  2. Enter the following command:
    [IBM i]
    wsadmin -f installSdoRepository.jacl -createDb
    [AIX Solaris HP-UX Linux Windows]
    wsadmin.ext -f installSdoRepository.jacl -createDb
    Note: The -createDb flag tells the command to create a default Derby database. If you omit this flag, the command still installs an SDO repository that is configured to use Derby, but the command does not also create the database.

Configure the SDO repository for a single server, and to use a database other than embedded Derby

About this task

If you are creating a single server configuration that uses a database other than embedded Derby, you install your preferred database product, then create a JDBC provider and a data source, then run the installSdoRepository.jacl script twice:
  1. One time to install the SDO application on the application server.
  2. One time to set the database type that the SDO repository is to use.

To configure the SDO repository for a single server and to use a database other than embedded Derby, complete the following steps:

Procedure

  1. Create the database for your preferred database supplier by using the Table.ddl file from the relevant app_server_root/util/SdoRepository/database_type directory.

    For an illustration of the process for creating tables in DB2®, see Recreating database tables from the exported table data definition language. For more information, see Deploying data access applications.

  2. Create a J2C authentication alias.

    This is for use with the data source that you create in the next step. Check that the authentication alias matches the login details for your database instance, otherwise a connection will not be made.

  3. Create and configure a JDBC provider and data source.
    Set the following data source properties:
    • Set the authentication property to use the authentication alias you created in the previous step.
    • Select the Use this Data Source in container managed persistence (CMP) check box.
    • Set the Name property to a name of your own choosing. For example, SDO Repository DataSource.
    • Set the JNDI name property to the following exact value: jdbc/com.ibm.ws.sdo.config/SdoRepository.
    • Set any other properties that are required settings for your chosen database.
  4. Optional: Test connection service.
    Note: This option does not work in all configurations. The availability of this option depends on the scope at which the data source is defined, and the scope of any WebSphere Application Server variables that are used in the JDBC provider and data source configurations.
    1. In the administrative console, navigate to Resources -> JDBC -> Data sources.
    2. Select the SDO repository data source.
    3. Click Test connection.
  5. Configure the SDO repository:
    1. Open a command prompt, then change to the app_server_root/bin directory.
    2. Install the SDO repository application on the server:
      [IBM i]
      wsadmin -f installSdoRepository.jacl
      [AIX Solaris HP-UX Linux Windows]
      wsadmin.ext -f installSdoRepository.jacl
    3. Set the database type that the SDO repository is to use:
      [IBM i]
      wsadmin -f installSdoRepository.jacl -editBackendId database_type
      [AIX Solaris HP-UX Linux Windows]
      wsadmin.ext -f installSdoRepository.jacl -editBackendId database_type
      for example:[IBM i]
      wsadmin -f installSdoRepository.jacl -editBackendId DB2UDB_V82
      [AIX Solaris HP-UX Linux Windows]
      wsadmin.ext -f installSdoRepository.jacl -editBackendId DB2UDB_V82