One frequently overlooked component of Oracle Designer is its Web Interface: the Repository Object Browser. Added in 2003 to Designer 6i and 9i as well as in 2004 to 10g, the Repository Object Browser (or ROB for short, apparently after Rob Gauf, Oracle Expert in Edmonton, Canada) offers a read-only interface to anyone with a web browser – Internet Explorer 5.0+ or Netscape 4.7+/Mozilla, FireFox – on the contents of the Oracle Designer repository.
This means that without installing a Designer Client – and paying licenses for the Designer product – and without lengthy and expensive training, project leaders, analists and even end-users can browse through whatever is in Designer. Even for Developers and other experienced Designer users does the ROB offer neat functionality, such as a very powerful search tool. More detailed overview of the ROB can be found in a white paper I wrote for ODTUG several years ago: Soul Searching – Browsing and Extending Oracle Designer, Repository Object Browser and Oracle SCM.
Through this post I hope to entice all of you Designer users that have not yet configured the ROB to do that shortly. Getting the ROB up and running takes about 10 minutes, and there are few ten-minute-periods better spent.
Configuring the Repository Object Browser
The ROB makes use of the Web PL/SQL Toolkit for rendering its HTML. That means it requires the Oracle MOD_PLSQL module for Apache, the same one that is used by for example Oracle Portal and HTMLDB. Any Oracle 9i database is automatically installed with the Oracle HttpServer that includes the MOD_PLSQL module. For an Oracle 10g database, it is shipped on the Companion CD that also contains HTMLDB. The server (database) side of the ROB is automatically installed when you setup your 6i, 9i or 10g Designer and/or SCM Repository – it consists of some tables and several dozens of packages.
Configure ROB on an Oracle 9i Database Oracle HttpServer
This takes no more than three steps: creating a database access descriptor, copying a directory with images and configuring the image-path. About 10 minutes!
Every Oracle 9i database is automatically installed with the Oracle HttpServer including the MOD_PLSQL module. Usually it can be reached at http://host:7777/pls
. Host is the logical name or IP address of the machine that is running the database, for example localhost, 123.12.12.32 or amisnt20.amis.nl. The port – here 7779 – may vary. To find out what the port number is in your case, you have to take a look on the file system of the database server.
Go to ORACLE_HOME/apache/apache/conf. Open the file httpd.conf. Lookup the Port entry:
# # Port: The port to which the standalone server listens. Certain firewall # products must be configured before Apache can listen to a specific port. # Other running httpd servers will also interfere with this port. Disable # all firewall, security, and other services if you encounter problems. # To help diagnose problems use the Windows NT command NETSTAT -a # Port 7777
When you know the port-number, open a browser and surf to: http://host:7777/pls
. Choose via Mod_plsql Configuration Menu –>
Gateway Database Access Descriptor Settings –> Add Default (blank configuration).
Note: a DAD (database access descriptor) is a record used by MOD_PLSQL to translate a URL into a call to a database package. We are going to create a DAD that tells MOD_PLSQL to send any requests that start with http://host:7777/pls
followed by /rob
to the ROB database packages in the Repository Owner’s Schema.
In the Edit Database Access Descriptor page, enter the following fields:
a. Database Access Descriptor Name: rob b. Oracle User Name: c: Oracle Password: d. Oracle Connect String: pago.amis.nl e. Default (Home) Page: repos10g.cdwp.startup
a. specifies the segment of the URL after /pls/ that is used to reach the ROB.
b. and c. indicate the database account into which MOD_PLSQL should connect when it handles rob-requests. If you do not fill in these two fields, the user will be prompted by the browser to provide username and password; this should be a valid username and password combination for Oracle Designer. Alternatively, you can set values in the DAD; MOD_PLSQL will then automatically connect to the database. While this is more convenient, it also means that anyone with the URL can see all the information in Oracle Designer that the user specified in the DAD can see. This may not be desirable from a security point of view. .
d. the Oracle Connect String – as known on the server on which the Http Server is running – in the tnsnames.ora. If you start SQL*Plus on that server and connect to scott/tiger@connectstring, that is the connectstring to provide here, not necessarily the one you use in the client to login to Designer!
e. is optional; it sets the database package to invoke whenever a browser requests the url: http://host:7777/pls/rob
, without additional details. Usually the URL requests look like http://host:7777/pls/rob/cdwp.startup
, where cdwp is a database package and startup a procedure in that package.
Save the changes. The DAD is now created and you can already reach the ROB from your browser. However, none of the images used in the ROB can be found by the webserver at this point.
On your Oracle Designer client, there is a directory
Open the file ApacheApachehttpd.conf. At the end of this file, add the line:
alias /rob_images/ "D:Oracle9205ApacheApacheiconsrob_image_directory/"
or whatever the physical path of the images directory on the server is. This line instructs Apache to interpret a URL like http://host:7777/pls/rob_images/image.gif
as a static file request in the directory defined behind de /rob_images/ alias.
This concludes the configuration of the ROB. However, you need to restart the HttpServer in order for Apache to pick up the /rob_images/ specification.
Note: you can set up the ROB in any Apache + Oracle MOD_PLSQL environment, not necessarily the one associated with the database containing the Oracle Designer Repository against which the ROB is used. As long as the database connectstring in the DAD can be used on the machine where MOD_PLSQL is running to connect to the database that has the Repository in it, everything will work just fine!
Configure ROB on an Oracle 10g Database HttpServer
This takes no more than three steps: editing a configuration file and copying a directory with images. About 10 minutes!
With the Oracle 10g database, you do not get the HttpServer and MOD_PLSQL installed automatically. You have to set it up from the 10g Companion CD, which also contains HTMLDB. Note: you can still use the HttpServer installed with any Oracle 9i instances in your environment, as long as they can reach the database that contains your Designer repository.
If you do use the 10g HttpServer and MOD_PLSQL, go to ORACLE_HOME/apache/mod_plsql/conf.
Open the file dads.conf.
Note: a DAD (database access descriptor) is a record used by MOD_PLSQL to translate a URL into a call to a database package. We are going to create a DAD that tells MOD_PLSQL to send any requests that start with http://host:7777/pls
followed by /rob
to the ROB database packages in the Repository Owner’s Schema.
Add a DAD entry like this:
<Location /rob> SetHandler pls_handler Order deny,allow Allow from all AllowOverride None PlsqlDatabaseUsername PlsqlDatabasePassword PlsqlDatabaseConnectString pago.amis.nl PlsqlAuthenticationMode Basic PlsqlDefaultPage repos10g.cdwp.startup </Location>
Location /rob specifies the segment of the URL after /pls/ that is used to reach the ROB.
PlsqlDatabaseUsername and PlsqlDatabasePassword indicate the database account into which MOD_PLSQL should connect when it handles rob-requests. If you do not fill in these two fields, the user will be prompted by the browser to provide username and password; this should be a valid username and password combination for Oracle Designer. Alternatively, you can set values in the DAD; MOD_PLSQL will then automatically connect to the database. While this is more convenient, it also means that anyone with the URL can see all the information in Oracle Designer that the user specified in the DAD can see. This may not be desirable from a security point of view.
PlsqlDatabaseConnectString the Oracle Connect String – as known on the server on which the Http Server is running – in the tnsnames.ora. If you start SQL*Plus on that server and connect to scott/tiger@connectstring, that is the connectstring to provide here, not necessarily the one you use in the client to login to Designer!
PlsqlDefaultPage is optional; it sets the database package to invoke whenever a browser requests the url: http://host:7777/pls/rob
, without additional details. Usually the URL requests look like http://host:7777/pls/rob/cdwp.startup
, where cdwp is a database package and startup a procedure in that package.
Keep the file open a little longer, we are going to add one more line to it, after copying a file directory with images.
On your Oracle Designer client, there is a directory
Add this line to dads.conf.
alias /rob_images/ "D:Oracle9205ApacheApacheiconsrob_image_directory/"
or whatever the physical path of the images directory on the server is. This line instructs Apache to interpret a URL like http://host:7777/pls/rob_images/image.gif
as a static file request in the directory defined behind de /rob_images/ alias.
Save the file. This concludes the configuration of the ROB. However, you need to restart the HttpServer in order for Apache to pick up the /rob_images/ specification.
Note: you can set up the ROB in any Apache + Oracle MOD_PLSQL environment, not necessarily the one associated with the database containing the Oracle Designer Repository against which the ROB is used. As long as the database connectstring in the DAD can be used on the machine where MOD_PLSQL is running to connect to the database that has the Repository in it, everything will work just fine!
Also note that you can create multiple DADs for the ROB, each with a different url-segment; for example http://host:7777/pls/rob_analysis
and http://host:7777/pls/rob_design
for URLs that connect to users that have read access to respectively a workarea with Analysis stuff and one with Design data.
You can set it up using any Servlet Container. That means: Apache JServ, Apache Tomcat, stand-alone OC4J and many others will do.
The main thing is to set up the Servlet – both in the Servlet Container and in the ROB Preferences. Which
We are installing the ROB with a 10g installation of Httpserver. We also want to configure the file upload feature. The installation instructions only cover cases where OAS or WEBDB is installed and we have neither of those. Do you know if there is a way to set up the file upload feature without OAS?