1 Setting Up Services
The Oracle Life Sciences Data Hub (Oracle LSH) system administrator role is required to define services and service locations.
This chapter describes how to set up the distributed processing server and define service locations and services. It contains the following topics:
- About Services
Oracle Life Sciences Data Hub includes adapters that allow users to define and run objects in external systems for manipulating and reporting Oracle LSH data. - About the Distributed Processing Server
Oracle Life Sciences Data Hub uses its Distributed Processing Server (DP Server) to pass jobs to processing engines of different technologies to execute user-defined Programs, Load Sets, and Data Marts. The DP Server also passes jobs to XML Publisher to produce predefined reports and to handle Report Set post-processing. - Setting Up the Distributed Processing Server
You must install the Oracle Life Sciences Data Hub Distributed Processing (DP) Server on each computer where you installed an external processing engine and also on the computer where you have installed XML Publisher. - Defining Service Locations
A service location is a computer where one or more external processing engines or IDEs used by are installed. You must register each service location by defining it. - Defining Services
This section includes the topics on service types, priorities, and instances.
About Services
Oracle Life Sciences Data Hub includes adapters that allow users to define and run objects in external systems for manipulating and reporting Oracle LSH data.
Oracle LSH includes adapters that allow users to define and run objects in external systems for manipulating and reporting data.
To integrate Oracle LSH with these external systems in your company, you must define a service location for each computer where an external system you are using is installed. Within the service location definition you must define a service for each service type required by each external system installed there.
Some external systems have more than one predefined service type; for example, one service type to integrate the system for use as an integrated development environment (IDE) and another service type to integrate the external system for use as a processing engine. See Service Types for further information.
For each service, you must define one or more service instances. The number of service instances required, and their exact function, depends on the external technology and the service type. See Service Instances for further information.
Parent topic: Setting Up Services
About the Distributed Processing Server
Oracle Life Sciences Data Hub uses its Distributed Processing Server (DP Server) to pass jobs to processing engines of different technologies to execute user-defined Programs, Load Sets, and Data Marts. The DP Server also passes jobs to XML Publisher to produce predefined reports and to handle Report Set post-processing.
The DP Server is designed to make the Oracle LSH execution platform engine scalable. You can install one or more instances of the DP Server on one or more computers. A single DP Server instance can handle jobs for one or more processing engines. You can install the DP Server on the same computer as the Oracle LSH database or application server or on another network node.
The DP Server requires access to XML Publisher for the purpose of producing coversheets for outputs and for merging outputs into single- or multi-volume PDF report sets. The DP Server also requires access to each processing engine that you install to use with Oracle LSH.
Conversely, each processing engine you install for use with Oracle LSH requires access to its DP Server instance.
You must also define one service location in the Oracle LSH user interface for each instance of the DP Server (usually one instance per computer) and define one or more services for each processing engine on that computer. For each service, you specify the number of service instances that can run simultaneously. A service instance handles one job at a time.
Oracle LSH tracks the availability of each service on each location and assigns new jobs according to their priority and the availability of appropriate service instances in different locations; see Job Allocation Algorithm.
The DP Server runs as a standalone Java program. It includes two dedicated threads:
- Listener. At each location, the listener listens on a predefined Advanced Queue message queue called the DP Server job queue for jobs that have been assigned to local services. When the listener detects an XML job message request for a local service on the job queue, it dequeues the message. The message contains all the necessary details of one or more jobs.
- Job Processor. The job processor thread uses the information in the XML message to connect back to the Oracle LSH database. Once connected, it downloads all the necessary data, including the executable program script, into a target directory identified in the XML message. The job processor then executes the job-specific script by spawning a new O/S-level process. This spawned process runs the processing engine, which in turn carries out the actual job execution using the downloaded job input data. After the spawned external process completes, the job processor connects back to Oracle LSH and uploads any output results into Oracle LSH.
This section contains the following topics:
- Log Files
The log directory in your DP Server Home directory holds DP Server log files. - Job Allocation Algorithm
The description of the algorithm for job allocation
Parent topic: Setting Up Services
Log Files
The log directory in your DP Server Home directory holds DP Server log files.
Each time you start the DP Server it creates one log file. The DP Server adds log information to that log file each time it runs a job.
Parent topic: About the Distributed Processing Server
Job Allocation Algorithm
The description of the algorithm for job allocation
If more than one service of the same technology type and priority exists, including in different locations, Oracle Life Sciences Data Hub allocates each job using the following algorithm:
- Oracle LSH allocates the job to the service of the correct type and priority that has been least recently used, if the least-recently-used location has an available service instance.
- If there are no available service instances, Oracle LSH checks jobs currently using the appropriate service instances on the least-recently-used service and determines whether the jobs are active. If a job is not active, Oracle LSH sets its status to Failed and allocates the new job to the service instance. If all the jobs are active, Oracle LSH checks the next-least-recently-used service, and so on until all services of the correct technology type and priority have been checked. If all services are unavailable, Oracle LSH waits for a configurable interval and then checks the job activity again.
Oracle LSH uses the following algorithm to determine which available service instance to use if a service instance of the priority requested for a particular job is not available:
- If a high-priority service is requested but not available, run a normal-priority service; if a normal-priority service is not available, run a low-priority service.
- If a normal-priority service is requested but not available, run a low-priority service; if a low-priority service is not available, run a high-priority service.
- If a low-priority service is requested but not available, run a normal-priority service; if a normal-priority service is not available, run a high-priority service.
Parent topic: About the Distributed Processing Server
Setting Up the Distributed Processing Server
You must install the Oracle Life Sciences Data Hub Distributed Processing (DP) Server on each computer where you installed an external processing engine and also on the computer where you have installed XML Publisher.
The following steps are required:
- Install the Distributed Processing Server. See "Install the Distributed Processing Server" in the Oracle Life Sciences Data Hub Installation Guide.
- Copy files. See "Copy and Edit Files" in the Oracle Life Sciences Data Hub Installation Guide.
- Define Service Locations and Services; see Defining Service Locations and Defining Services
- Edit the files. See "Copy and Edit Files" in the Oracle Life Sciences Data Hub Installation Guide.
- Start the DP Server. See Starting the Distributed Processing Server Service.
When you start the DP Server code you must specify a location for DP server log files. You may need to read and analyze these log files if problems occur with jobs run on external servers. Instructions for creating appropriate directories for this purpose are included in the Oracle Life Sciences Data Hub Installation Guide.
Parent topic: Setting Up Services
Defining Service Locations
A service location is a computer where one or more external processing engines or IDEs used by are installed. You must register each service location by defining it.
Note:
- Before defining a service location or services for use with Oracle Business Intelligence visualizations, read Setting Up Oracle Business Intelligence Visualizations.
- The Oracle Life Sciences Data Hub installation process automatically creates one service location with one normal-priority PL/SQL service with three instances allowed, for internal use. This enables batch processing and many functions in Oracle LSH Definition.
To define a Service Location:
Parent topic: Setting Up Services
Defining Services
This section includes the topics on service types, priorities, and instances.
For each service location, define services as follows:
- One or more services for each XML Publisher, SAS, Oracle Reports, Oracle Business Intelligence Presentation Services instance, and Oracle Business Intelligence Publisher (BIP) engine installed on that computer
- One and only one service for PL/SQL as a processing engine
- One and only one service for each IDE service type
For the service location you specify the maximum number of jobs (across all services) that can run simultaneously.
For non-PL/SQL processing engine service types, you may want to define more than one service in order to allow jobs with different priorities to run on the same computer. For example, if you have both SAS and Oracle Reports installed on the same computer, you might define the following services for that service location:
- One high-priority SAS service with two instances allowed
- One normal-priority SAS service with seven instances allowed
- One normal-priority Oracle Reports service with five instances allowed
- Service Types
Some service types use the Distirbuted Processing (DP) Server and others do not. It depends on their definition requirements. - Service Prioritization
You must specify a priority for each service: High, Normal, or Low. - Service Instances
When you create a service, you must specify how many instances of the service are allowed to run at the same time.
Parent topic: Setting Up Services
Service Types
Some service types use the Distirbuted Processing (DP) Server and others do not. It depends on their definition requirements.
See the following topics for details:
- Service Types that Do Not Use the DP Server
Development (IDE) service types do not use the DP Server. The PL/SQL processing engine also does not use the DP Server. - Service Types that Use the DP Server
Processing engines integrated with Oracle Life Sciences Data Hub use the DP Server.
Parent topic: Defining Services
Service Types that Do Not Use the DP Server
Development (IDE) service types do not use the DP Server. The PL/SQL processing engine also does not use the DP Server.
For each of the technologies you plan to use, you must define a single service of the corresponding service type. You cannot control where these services are used. The system does not use the service location you define to determine where to run them. However, you must define them within a service location. You can define them on the service location where they are actually installed, or you may want to define a service location specifically for the purpose of defining these services, that include:
- Oracle Reports for Development. Oracle Life Sciences Data Hub uses these services to support the Oracle Reports integrated development environment (IDE).
- PLSQL for Development. Oracle LSH uses this service to support the SQL*Plus integrated development environment (IDE) for PL/SQL Programs.
- SAS for Development. Oracle LSH uses this service to support the SAS integrated development environment (IDE).
- PLSQL. Oracle LSH uses PLSQL services to run internal jobs and user-defined PL/SQL Programs and Text Data Marts.
- OBIEE Business Area IDE Service. This is the service that takes the OBIEE Presentation Server's URL as input for the Execution Command field. Oracle LSH uses additional OBIEE service types to support running visualizations through the OBIEE Presentation Server. For more details, see Setting Up Oracle Business Intelligence Visualizations. The other OBIEE Services are listed under Service Types that Use the DP Server.
- BI Publisher Development. Oracle LSH uses this service to support the BI Publisher integrated development environment (IDE).
- View for Development Oracle LSH uses this service to support the SQL*Developer integrated development environment (IDE) for View Programs.
Parent topic: Service Types
Service Types that Use the DP Server
Processing engines integrated with Oracle Life Sciences Data Hub use the DP Server.
You can control the number of service locations and services for service types that use the DP Server. Service locations correspond to physical locations, and each one can have any number of services defined. Each service can have any number of service instances defined. For more details, see Service Instances.
For each technology you plan to use, define at least one service of the following service types:
- Oracle Export. Oracle LSH uses Oracle Export services for creating Oracle Export-type Data Marts.
- Oracle Reports. Oracle LSH uses these services to execute Oracle Reports Programs.
- SAS. Oracle LSH uses SAS services to execute SAS Load Sets, SAS Programs, and SAS Data Marts on a SAS server.
- Text for SQLLoader. Oracle LSH uses Oracle SQL Loader to execute Text Load Sets.
- Workflow. Oracle LSH uses Workflow services to execute user-defined and internal Workflows.
- XML Publisher. Oracle LSH uses XML Publisher services to generate PDF-format Report Sets.
- XML Reports. Oracle LSH uses these services to produce predefined reports and the coversheets for reports and report sets.
- Zip Utility. Oracle LSH uses Zip Utility services to produce zipped Text and SAS Data Marts. You can zip the text files if you want to.
- Unzip Utility. Oracle LSH uses Unzip Utility services to unzip uploaded zip files while creating Tables and Text Load Sets.
- OBIEE Business Area Install Service. This service is required to support running visualizations through the OBIEE Presentation Server, and using the OBIEE Admin Tool. For more details, see Setting Up Oracle Business Intelligence Visualizations
-
OBIEE Business Area Deploy Service. This service is required to support running visualizations through the OBIEE Presentation Server. For more details, see Setting Up Oracle Business Intelligence Visualizations.
-
BI Publisher. Oracle LSH uses this service to execute BI Publisher Programs.
Note:
The following service types are inactive: Oracle Warehouse Builder and SQL*Plus. Do not define services of these types.Parent topic: Service Types
Service Prioritization
You must specify a priority for each service: High, Normal, or Low.
To ensure that services are given the appropriate priority, you should also do the following:
- Specify an Oracle Database Resource Group to set the Oracle database priority for jobs using this service. For more information, see the Oracle® Database Administrator's Guide at https://docs.oracle.com/cd/E11882_01/server.112/e25494/toc.htm.
- In the Execution Command, set the operating system priority for jobs using this service.
Parent topic: Defining Services
Service Instances
When you create a service, you must specify how many instances of the service are allowed to run at the same time.
Since each instance can service one job (or Program or Business Area definition) at a time, this effectively defines the number of jobs that can run on a particular service at a particular time.
For processing engine service types, service instances serve as the interface between the requested job and the Oracle Life Sciences Data Hub execution system. They track the association of a particular job to a particular service and manage many aspects of the job's execution.
IDE service instances control the association between the use of a particular IDE for a particular Program or Business Area (which are used for visualizations) and the security and data access needed by the particular IDE. When a user launches an IDE from the Program or Business Area user interface, the system assigns a service instance to the Program or Business Area. After a service instance is allocated, it remains assigned to that Program or Business Area until it is explicitly released by a Checkin or Undo Checkout.
You can modify the number of service instances for each service.
Note:
For the OBIEE IDE Service, specify a number of Service Instances equal to the maximum number of users you expect to query the repository at the same time, plus a buffer.
If you do not create enough service instances, users may lose access to the database in the middle of a task. For example, if you define 10 service instances and 11 people log in to the same OBIEE URL, when the last person logs in, the system looks for a session that has been running longer than the defined Reuse Wait time for the service. If there is such a session, the system recycles it even if the user is active, and the original user loses his or her connection to the database.
It is better to solve this problem by defining a large number of service instances than a high reuse wait time because the same user cannot open a new session—for example, if he or she wants to select different launch settings—until his or her original session reaches the reuse wait time.
Parent topic: Defining Services