Skip Headers

Oracle® Application Server Web Services Developer’s Guide
10g (9.0.4)
Part No. B10447-01
  Go To Documentation Library
Home
Go To Product List
Solution Area
Go To Table Of Contents
Contents
Go To Index
Index

Previous Next  

10 Discovering and Publishing Web Services

Oracle Application Server Containers for J2EE (OC4J), provides a Universal Discovery Description and Integration (UDDI) Web Services registry known as the Oracle Application Server UDDI Registry, in which Web Services provider administrators in an enterprise environment can publish their Web Services for use by Web Services consumers (programmers). Web Services consumers can use the UDDI inquiry interface to discover these published Web Services by browsing, searching, and drilling down in the OracleAS UDDI Registry to select one or more Web Services from among those registered, and use those services in their applications for a particular enterprise process.

For example, a Web Services provider administrator working with programmers who have completed a Web Services implementation using the J2EE stack (either EJBs, JavaBeans, JSP, or servlets) and exposing the implementation as a Simple Object Access Protocol (SOAP)-based Web Services, can publish the Web Services by providing all the metadata and pointers to the interface specification in the OracleAS UDDI Registry. In this way, the Web Services provider administrator publishes the availability of these Web Services for the Web Services consumers to discover and select for use in their own applications.

This chapter is organized into the following main sections:

As part of the OC4J OracleAS UDDI Registry, a SOAP API as defined by the UDDI v2 specification is provided to be used primarily by Web Services application developers (see the OracleAS SOAP API Reference Javadoc on the Oracle Application Server 10g (9.0.4) Documentation CD-ROM). This API provides the inquiry and publishing functions by implementing the inquiry and publishing API defined by the UDDI v2 specification. The use of this API is described in Web Services Discovery and Web Services Publishing.

In addition, a set of management facilities and tools are provided for all management and operational requirements of the registry as described in OracleAS UDDI Registry Administration. Some of these tools are provided through Oracle Enterprise Manager as described in Web Services Publishing.

A Java-based client library is also provided to facilitate additional tool development and application development (see the Oracle Application Server UDDI Client API Reference Javadoc on the Oracle Application Server 10g (9.0.4) Documentation CD-ROM).

UDDI open database support is provided for Microsoft SQL Server, IBM DB2, and Oracle (non-infrastructure) databases as described in UDDI Open Database Support.

Finally, OracleAS UDDI Registry leveraging OracleAS Syndication Services provides a subscription service allowing publishers in the registry to monitor or obtain changes in the registry (see UDDI Subscription Service). See Subscribing to an Offer for information about using the UDDI Content Subscription Manager that allows publishers and administrators to subscribe to offers from content providers through specialized content connectors managed by OracleAS Syndication Services.

UDDI Registration describes the types of searches that can be performed in a UDDI registration, describes an overview of the data structure of a UDDI registry as specified by the UDDI v2 specification, and finally describes a subset of the Oracle implementation of the UDDI registry as support for Web Services discovery and Web Services publishing.

UDDI Registration

The information provided in a UDDI registration can be used to perform three types of searches:

  1. White pages search -- containing address, contact, and known identifiers. For example, search for a business that you already know something about, such as its name or some unique ID.

  2. Yellow pages topical search -- containing industrial categories based on standard classifications, such as NAICS, ISO-3166, and UNSPSC.

  3. Green pages service search -- containing technical information about Web Services that are exposed by a business, including references to specifications of interfaces for Web Services, as well as support for pointers to various file and URL-based discovery mechanisms.

UDDI uses standards-based technologies, such as common Internet protocols (TCP/IP and HTTP), XML, and SOAP, which is a specification for using XML in simple message-based exchanges. UDDI is a standard Web Services description format and Web Services discovery protocol; a UDDI registry can contain metadata for any type of service, with best practices already defined for those described by Web Services Description Language (WSDL).

UDDI Registry Data Structure

The UDDI registry consists of the following five data structure types that group information to facilitate rapid location and understanding of registration information:

  1. businessEntity -- the top-level, logical parent data structure; contains descriptive information about the business that publishes information about Web Services, such as business services, categories, contacts, discovery URLs, and identifier and category information that is useful for performing searches.

  2. businessService -- the logical child of a single businessEntity data structure as well as the logical parent of a bindingTemplate structure; contains descriptive business service information about a particular family of technical services including its name, brief description, technical service description, and category information that is useful for performing searches.

  3. bindingTemplate -- the logical child of a single businessService data structure; contains technical information about a Web Services entry point and references to interface specifications.

  4. tModel -- description of specifications for Web Services, or a classification that forms the basis for technical identification; represents the technical specification of Web Services, in order to facilitate Web Services consumer searching for registered Web Services that are compatible with a particular technical specification. That is, based on the descriptions of the specifications for Web Services in the tModel structure, Web Services consumers can easily identify other compatible Web Services.

  5. publisherAssertion -- information about a relationship between two parties, asserted by one or both.

Figure 10-1 shows the UDDI information model and the relationships among its five data structure types.

Figure 10-1 UDDI Information Model Showing the Relationship Among the Five Main Data Structure Types

Description of uddidstp.gif follows
Description of the illustration uddidstp.gif

Because UDDI makes use of XML and SOAP, each of these data structure types contains a number of elements and attributes that further serve to describe a business or to have a technical purpose. See UDDI Version 2.03, Data Structure Reference Published Specification, Dated 19 July 2002 and UDDI Version 2.04 API, Published Specification Dated 19 July 2002 for a complete description of the UDDI service description framework, http://www.uddi.org/specification.html. This description includes the XML schema, and the approximately 20 request messages and 10 response messages that comprise the request/response XML SOAP message interface that is used to perform publishing and inquiry functions against the UDDI business registry.

See Standard Classification Support for more information about the standard classifications that are supported in the OracleAS UDDI Registry.

OracleAS UDDI Registry for Enterprise Web Services

This section describes a subset of features that provide UDDI support for Web Services.

The OracleAS UDDI Registry support for Web Services deployed in OC4J is composed of the following parts:

  • Web Services discovery -- consumers can use the Inquiry API available for Java programmers to implement their own Web Services discovery tool to search, locate, and drill down to discover OC4J Web Services in the OracleAS UDDI Registry, as well as in any other accessible UDDI v1.0 Web Services registry. See Using the Inquiry API for more information about using the Inquiry API and locating the Javadoc documentation that describes the Inquiry API.

  • Web Services publishing -- Web services provider administrators can deploy OC4J Web Services using Oracle Enterprise Manager. As part of the deployment process, the administrator can also publish the OC4J container, and in this process, there is a step where you can publish Web Services to the Oracle UDDI Registry.

    Web Services provider administrators can also update published Web Services by searching, locating, and drilling down to OC4J Web Services using the Application Server: <Instance-name>: OC4J home: Administration: Related Links: UDDI Registry link provided through Oracle Enterprise Manager.

  • Replication management -- allows administrators to create a logical registry that comprises one or more Oracle UDDI implementations and UDDI implementations from other vendors that also implement the UDDI v2.0 Replication Specification.

  • Subscription service -- allows publishers in the registry to monitor or obtain changes in the registry through subscriptions created using OracleAS Syndication Services.

Installation and First Use

The OracleAS UDDI Registry is preinstalled with Oracle Application Server and available through the following URLs:

  • Getting started information: http://<OracleAS-host>:<OracleAS-port>/uddi/

  • UDDI inquiry SOAP endpoint: http://<OracleAS-host>:<OracleAS-port>/uddi/inquiry

  • UDDI publishing SOAP endpoint: http://<OracleAS-host>:<OracleAS-port>/uddi/publishing

  • UDDI administration endpoint: http://<OracleAS-host>:<OracleAS-port>/uddi/admin

  • UDDI replication SOAP endpoint: http://<OracleAS-host>:<OracleAS-port>/uddirepl/replication

  • UDDI replication HTTPS Wallet Password Administration endpoint: http://<OracleAS-host>:<OracleAS_port>/uddirepl/admin/wallet

  • Subscription management application: http://<OracleAS-host>:<OracleAS-port>/uddisub/subscription/ui

See User Management for the set of UDDI users and groups available to help you get started.

Automatic Postinstallation Configuration

A postinstallation configuration step is necessary to set up the following:

  • UDDI core tModels

  • A node businessEntity representing the registry node

  • The businessEntity discoveryURL prefix and the operatorName

Postinstallation configuration is done automatically when you try to access (either through the browser or SOAP invocation programmatically) the UDDI inquiry or publishing SOAP endpoints.

As a result, if you have not accessed the inquiry or publishing SOAP endpoints and try to access other UDDI features, such as subscription management, Oracle Enterprise Manager integrated Web Services deployment and publishing, and so forth, those features will not function.

Web Services Discovery

Web Services are discovered in the OracleAS UDDI Registry by browsing the registry using tools or using the Inquiry API.

Using Tools

Consumers can use Oracle9i JDeveloper release 9.0.3, create their own inquiry browse tool, or use third-party tools to browse and drill down for information about Web Services from theOracleAS UDDI Registry, as well as from any other accessible UDDI v1.0 Web Services registry. Consumers can use the Inquiry API available for Java programmers to implement their own Web Services discovery interface.

Using the Inquiry API

The Inquiry API lets consumers search for the available registered Web Services by providing find (browse and drill-down) calls and get calls for locating and getting information in each of the five data structures shown in Figure 10-1.

The Inquiry API allows consumers to discover and use Web Services using the Java language. Programs can be written in any language and can use SOAP to discover Web Services. The Java API is provided as a convenience for Java programmers. The URL for the OracleAS UDDI Registry is http://<OracleAS-http-server-host-name><OracleAS-port-number>/uddi/inquiry, where <OracleAS-http-server-host-name> is where the Oracle HTTP Server powered by Apache is installed, and <OracleAS-port-number> is the port number for the Oracle HTTP Server.

The Inquiry API is located in the Oracle Application Server installation directory, <ORACLE_HOME>/uddi/ for UNIX and <ORACLE_HOME>\uddi\ for Windows. The API documentation that describes how to use this Inquiry API can be found on the Oracle Application Server Documentation Library as UDDI Client API Reference (Javadoc) under OracleAS Web Services, which is located under the J2EE and Internet applications tab.

A set of sample demonstration (uddidemo.zip) files are located on the Oracle technology Network (OTN) Web site http://otn.oracle.com/tech/java/oc4j/demos/ .

Within the uddidemo.zip file is a Java program file, UddiInquiryExample.java, that provides Java programmers with a starting point that demonstrates the key constructs and the sequence in using the Oracle Application Server UDDI client library.

The program example does the following:

  • Gets an instance of SoapTransportLiaison. This is an implementation that handles the details of communication between the UDDI client and server using SOAP and some underlying transport protocol (in this case HTTP).

    SoapTransportLiaison transport = new OracleSoapHttpTransportLiaison();
    
    
  • Calls a helper method to set up proxy information, if necessary. You can specify HTTP proxy information for accessing the OracleAS UDDI Registry on the command line, using parameters, such as -Dhttp.proxyHost=<hostname> -Dhttp.proxyPort=<portnum>.

    setHttpProxy((SoapHttpTransportLiaison)transport);
    
    
  • Uses SoapTransportLiaison and the URL of a UDDI inquiry registry to initialize an instance of UddiClient, which connects to the specified OracleAS UDDI Registry. The UddiClient instance is the primary interface by which clients send requests to the OracleAS UDDI Registry.

    UddiClient uddiClient = new UddiClient(szInquiryUrl, null, transport);
    
    

    Note:

    The UddiClient instance, by default, operates as a UDDI v2.0 client (the latest version supported). If a specific version is needed, the version can be specified either through another constructor, or the JVM property oracle.uddi.client.defaultVersion.

    For example:

    -Doracle.uddi.client.defaultVersion=1


  • Uses the UddiClient instance to perform a find business request. Specifically, it finds all business entities that start with the letter T and prints out the response. Note that input parameters and return values are objects that precisely mimic the XML elements defined in the UDDI specification.

    // Find a business with a name that starts with "T"
    String szBizToFind = "T";
    System.out.println("\nListing businesses starting with " + szBizToFind);
    // Actual find business operation: 
    // First null means no specialized FindQualifier.
    // Second null means no max number of entries in response. 
    // (For example, maxRows attribute is absent.)
    BusinessList bl = uddiClient.findBusiness(szBizToFind, null, null);
    // Print the response.
    System.out.println("The response is: ");
    List listBusinessInfo = bl.getBusinessInfos().getUddiElementList();
    for (int i = 0; i < listBusinessInfo.size(); i++) {
         BusinessInfo businessInfo = (BusinessInfo)listBusinessInfo.get(i);
         System.out.println(businessInfo.getName());
         System.out.println(businessInfo.getFirstDescription());
         Name name = businessInfo.getFirstNameAsName();
         if (name != null) {
            System.out.println("name=" + name.getContent() + 
                               " ; xml:lang=" + name.getLang());
         }
     Description description = 
        businessInfo.getFirstDescriptionAsDescription();
     if (description != null) {
        System.out.println("description=" + description.getContent()
                       +  " ; xml:lang=" + description.getLang());
         }
    
    
  • Uses the UddiClient instance to get a UddiElementFactory instance. This factory should always be used to create any UDDI objects needed for inquiries.

    UddiElementFactory uddiEltFactory = uddiClient.getUddiElementFactory();
    
    
  • Uses the UddiElementFactory instance to create a CategoryBag instance and its KeyedReference, which will be used for searching.

    CategoryBag cb = (CategoryBag)uddiEltFactory.createCategoryBag();
    KeyedReference kr =
    (KeyedReference)uddiEltFactory.createKeyedReference();
    kr.setTModelKey(szCategoryTModelKey);
    kr.setKeyValue(szCategoryKeyValue);
    kr.setKeyName("");
    cb.addUddiElement(kr);
    
    
  • Uses the UddiClient instance to perform a find service request. Specifically, it finds a maximum of 30 services, which are classified as application service providers (code 81.11.21.06.00) under the UNSPSC classification in any business entities (no businessKey is specified).

    ServiceList serviceList =
          uddiClient.findService("", cb, null, new Integer(30));
    
    
  • Uses the UddiElementFactory instance to retrieve an XmlWriter object. To view the raw XML data represented by an object, which extends UddiElement, marshall the element content to the writer and then flush and close the writer.

    XmlWriter writerXmlWriter = uddiEltFactory.createWriterXmlWriter(
          new PrintWriter(System.out));
    serviceList.marshall(writerXmlWriter);
    writerXmlWriter.flush();
    
    
  • Finds tModel operations with multiple arguments. This is a new UDDI v2.0 feature. A find_xx request now allows multiple arguments. For example, find tModel operations that have a name pattern, such as "uddi%inquiry%" and are classified as wsdlSpec or xmlSpec in uddi-org:types taxonomy.

    System.out.println("\nListing tModels with the name pattern \"uddi%inquiry%\" ");
    System.out.println("and classified as \"wsdlSpec\" or \"xmlSpec\" ");
    System.out.println("under uddi-org:types taxonomy.");
    // Use the UddiElement factory to create UDDI-specific objects 
    // that are needed in inquiries.
    CategoryBag cbTM = (CategoryBag)uddiEltFactory.createCategoryBag();
    KeyedReference krTM1 =
     (KeyedReference)uddiEltFactory.createKeyedReference();
    krTM1.setTModelKey(CoreTModelConstants.TAXONOMY_KEY_UDDI_TYPE);
    krTM1.setKeyValue(CoreTModelConstants.UDDI_TYPE_VALUE_WSDL_SPEC);
    cbTM.addUddiElement(krTM1);
    
    KeyedReference krTM2 =
     (KeyedReference)uddiEltFactory.createKeyedReference();
    krTM2.setTModelKey(CoreTModelConstants.TAXONOMY_KEY_UDDI_TYPE);
    krTM2.setKeyValue(CoreTModelConstants.UDDI_TYPE_VALUE_XML_SPEC);
    cbTM.addUddiElement(krTM2);
    
    FindQualifiers fqTM =
     (FindQualifiers)uddiEltFactory.createFindQualifiers(); 
    List listFQTM = uddiEltFactory.createList();
    listFQTM.add(FindQualifiers.OR_ALL_KEYS);
    fqTM.setFindQualifierStringList(listFQTM);
    
    // Actual find tModel operation:
    // Integer(10) means a maximum of 10 tModel operations are
    // to be returned.
    // 
    TModelList tModelList = 
      uddiClient.findTModel("uddi%inquiry%", 
                            null, 
                            cbTM, 
                            fqTM, 
                            new Integer(10));
    
    // Print some response information.
    System.out.println("The response is: ");
    List listTModelInfo =
     tModelList.getTModelInfos().getUddiElementList();
    for (int i = 0; i < listTModelInfo.size(); i++) {
      TModelInfo tModelInfo = (TModelInfo)listTModelInfo.get(i);
      System.out.println(tModelInfo.getTModelKey());
      System.out.println("name=" + tModelInfo.getName());
      }
    
    
    
  • Closes the UddiClient instance when finished to release resources.

    uddiClient.close();
    
    
  • Provides URLs (in comments) to the OracleAS UDDI Registry and four public UDDI registries.

Web Services Publishing

Web Services are published in the OracleAS UDDI Registry by using Oracle Enterprise Manager or using the Publishing API.

Using Oracle Enterprise Manager

Using Oracle Enterprise Manager, Web Services provider administrators can publish Web Services in the OracleAS UDDI Registry in two ways:

  • Navigate to the Application Server: <Instance-name>: OC4J home: Deployed Applications: Deploy Application Wizard. The Deploy Application wizard takes you through the process of deploying a J2EE application on the OC4J container. In order to publish a J2EE Web Service, you must first assemble it as a J2EE Enterprise Archive (EAR) file. See the chapter on using the Web Services assembly tool for more information. See Oracle Application Server Containers for J2EE User's Guide for information about EAR file-based deployment of J2EE Web applications.

    The second-to-last step, the Publish Web Services step, of the Deploy Application wizard lets Web Services provider administrators publish (OC4J) Web Services (servlets) that are found in the EAR file. Any Web Services servlet in an application that you want to access must be published to the OracleAS UDDI Registry to one or more desired categories within one or more of the classifications provided. Any unpublished Web Services servlet in an application appears with the status of Not Published and when the Web Services servlet is published, the status changes to Published.

  • Navigate to the Application Server: <Instance-name>: OC4J home: UDDI Registry: Web Services Details window. The Web Services Details window lets Web Services provider administrators publish J2EE applications to the OracleAS UDDI Registry after entering all required Service Details and tModel Details information.

Web Services provider administrators can update the discovered published Web Services. They find these published Web Services through the Oracle Enterprise Manager Discovery tool using the UDDI Registry link in the Related Links column within the Administration section of the OC4J: home window from the Application Server: <Instance-name>: window.

Publishing Web Services Using Deploy Applications Wizard

Web Services provider administrators can publish J2EE Web Services, which are produced by the OracleAS Web Services assembly tool, using the Oracle Enterprise Manager Deploy Applications wizard. They can do this as follows:

  1. Invoke Oracle Enterprise Manager and navigate to the Application Server: <Instance-name> window and then to the OC4J: home window. Locate the Deployed Applications section within the OC4J: home window and click Deploy Application to invoke the Deploy Application wizard.

  2. Perform the steps in each window of the Deploy Application wizard and provide the essential information for each step.

  3. At the Publish Web Services window, select the desired Web Services to register from the list of Web Services known to the application whose status is Not Published. Do this by clicking its corresponding radio button in the Select column. Then click Publish to continue to the Web Services Details window.

  4. At the Web Services Details window, review, edit, or enter the information as needed in each of the fields in the Services Details section and in the tModel Details section.

    1. To add categories for either the Services Details or the tModel Details sections, click Browse UDDI Registry, browse to the desired classification, and drill down as needed through each desired category, noting all desired category names and values.

    2. Click Add Category to add an empty row of category information.

    3. Select the desired classification, then enter the value code and its corresponding category name for the desired category.

    4. Repeat this process (Steps b and c) as many times as it takes to add all the categories to which to register this Web Services.

    5. After entering all the required information on the Web Services Details window, publish the Web Services to the OracleAS UDDI Registry by clicking OK. You return to the Publish Web Services window.

  5. Back at the Publish Web Services window, select another Web Service to publish and repeat this entire process again as described in Steps 3 and 4.

  6. After publishing all Web Services for this application, click Next to continue to the Summary window where all the application deployment information can be reviewed.

  7. If there are no further changes, click Deploy to deploy the J2EE application on the OC4J container. Doing this returns you to the Oracle Enterprise Manager OC4J Home page. Then, to repeat the process of deploying another J2EE application on the OC4J container, click Deploy Application.

After deployment, metadata describing the Web Services that you chose to publish has been added to the OracleAS UDDI Registry.

Publishing Web Services Using Web Services Details Window

Web Services provider administrators can publish Web Services using the Oracle Enterprise Manager Web Services Details window. They do this as follows:

  1. Invoke Oracle Enterprise Manager and navigate to the Application Server: <Instance-name> window, and then, to the OC4J: home window. Locate the UDDI Registry link in the Related Links column within the Administration section of the OC4J: home window.

    Click the UDDI Registry link.

  2. The UDDI Registry window lets the administrator select one of the three standard classifications: NAICS, UNSPSC, or ISO-3166, by clicking its link, or lets you publish Web Services by selecting the Administration link.

    Click the Administration link.

  3. At the Web Services Details window, enter the required information in each of the fields in the Services Details section and in the tModel Details section.

    1. Enter the service name, service description, and service URL to the servlet in the Services Details section.

    2. Enter the tModel name, tModel description, and the URL to the WSDL document in the tModel Details section.

    3. To add categories for either the Services Details or the tModel Details sections, click Browse UDDI Registry, browse to the desired classification, and drill down as needed through each desired category, noting all desired category names and values.

    4. Click Add Category to add an empty row of category information.

    5. Select the desired classification, then enter the value code and its corresponding category name for the desired category.

    6. Repeat this process (Steps d and e) as many times as needed to add all the categories to which to register this Web Services.

    7. After entering all required information on the Web Services Details window, publish the Web Services to the OracleAS UDDI Registry by clicking Apply. This returns you to the UDDI Registry window where you can choose to publish another J2EE application to the OracleAS UDDI Registry by following the same steps again, beginning at Step 2.

Updating Published Web Services in the OracleAS UDDI Registry

Oracle Enterprise Manager provides a user interface for Web Services provider administrators to browse, drill down, and get information about Web Services published for categories in the OracleAS UDDI Registry. Web Services provider administrators can update the discovered published Web Services. They find these published Web Services through the Oracle Enterprise Manager Discovery tool using the UDDI Registry link within the Administration section of the OC4J: home window from the Application Server: <Instance-name> window.

To update published Web Services using Oracle Enterprise Manager to discover Web Services, do the following:

  1. Invoke Oracle Enterprise Manager and navigate to the Application Server: <Instance-name> window and then to the OC4J: home window. Locate the UDDI Registry link in the Related Links column within the Administration section of the OC4J: home window.

    Click the UDDI Registry link.

  2. The UDDI Registry window lets the administrator select one of the three standard classification: NAICS, UNSPSC, or ISO-3166 by clicking its link. The UDDI Registry window lets the administrator browse any of the three classifications and discover published Web Services associated with any category or subcategory.

    Click the desired classification link.

  3. The UDDI Registry: <Classification Name> window lets the administrator drill down from category to subcategory to discover published Web Services associated with any category or subcategory. Each classification is organized in a hierarchical tree. Navigate down a particular branch by clicking the category name to determine all its subcategory names, and so forth. As you navigate down a branch, also note the change in the category code value.

    Navigate to the desired category or subcategory by successively clicking the desired category links.

  4. The Web Services: <Category Name> window lets the administrator continue to drill down through the categories, or you can view all Web Services published in a particular category by selecting the corresponding radio button in the Select column for that category, and clicking View Services.

    Select the corresponding radio button in the Select column for the desired category and click View Services.

  5. The Web Services window lists all Web Services published for that category name. For Web Services listed for the selected category, the corresponding service name, service key, and business key are also listed. If the selected category or subcategory has no published Web services, none is listed.

    To view the complete details of a particular published Web Services listed for a category, either click its service name link or select its corresponding radio button in the Select column and click View Details.

    Click the desired service name link.

  6. The Web Services Details window displays detailed information for the selected Web Services published in the OracleAS UDDI Registry. This information includes:

    • Service Details

      Service details include information such as the Web Services name, Web Services description, and the URL of the Web Services access point.

      Category

      Category information includes the classification and the corresponding code value and its category name.

    • tModel Details

      tModel details include information that describes the interface that the Web Services implements, such as the tModel name, tModel description, and URL to the interface specification, typically a WSDL document.

      Category

      Category information includes the classification and the corresponding code value and its category name.

Category information can be added or deleted for both the Service Details and tModel Details sections. You can browse the OracleAS UDDI Registry (click Browse UDDI Registry) looking for categories in which to register Web Services. You can add categories (click Add Category) to which both the Web Services and tModel are to be registered. You can remove categories (click Delete) to which the Web Services and tModel are registered.

Service and tModel detail information can be modified by moving the cursor to the appropriate field and making the necessary changes.

After making all selections or completing all changes for this Web Services, click Apply to save your changes.

If you have made changes to any field and you decide you want to return to the original set of values for all selections, click Revert. The window refreshes with the original set of values for all selections as if you had just begun your current session.

Make your modifications and click Apply to save your changes.

To discover and update other published Web Services for the same category, at the top of the Web Services Details window, select the desired Web Services:<Classification Name> link to return to the desired Web Services:<Classification Name> window. At this window, select another Web Services to view in more detail, make any necessary changes, and finally click Apply to save your changes.

Alternatively, you can select the UDDI Registry link at the top of the Web Services Details window to return to the UDDI Registry window where you can navigate to another classification to discover Web Services for other categories. At each desired category, select the desired Web Services to view its details, make any necessary changes, and finally click Apply to save your changes.

Using the Publishing API

The UDDI publishing API lets programmers, following authentication, publish Web Services by providing save and delete calls for each of the five key UDDI data structures (businessEntity, businessService, bindingTemplate, tModel, and publisherAssertion).

The publishing API allows programmers to publish Web Services using the Java language. Programs can be written in any language and use SOAP to publish Web Services. The Java API is provided as a convenience for Java programmers.

The publishing API is located in the Oracle Application Server installation directory, <ORACLE_ HOME>/uddi/ for UNIX and <ORACLE_HOME>\uddi\ for Windows. The API documentation that describes how to use this publishing API can be found on the Oracle Application Server Documentation Library CD-ROM as UDDI Client API Reference (Javadoc) under OracleAS Web Services, which is located under the J2EE and Internet Applications tab.

A set of sample demonstration (uddidemo.zip) files are located on the Oracle technology Network (OTN) Web site http://otn.oracle.com/tech/java/oc4j/demos.


The UddiPublishingExample.java Example

Within the uddidemo.zip file is a Java program file, UddiPublishingExample.java, that provides Java programmers with a starting point that demonstrates the key constructs and the sequence in using the Oracle UDDI client library.

The program example does the following:

  • Gets an instance of SoapTransportLiaison. This is an implementation that handles the details of communication between the UDDI client and server using SOAP and some underlying transport protocol (in this case HTTP).

    SoapTransportLiaison transport = 
         new OracleSoapHttpTransportLiaison();
    
    
  • Sets the proxy information for the transport if the system properties http.proxyHost and http.proxyPort are set. These properties can be set on the command line. If these properties are not set, this command has no effect.

    setHttpProxy((SoapHttpTransportLiaison)transport);
    
    
  • Uses SoapTransportLiaison and the URL of a UDDI publishing registry to initialize an instance of UddiClient, which connects to the specified OracleAS UDDI Registry. The UddiClient instance is the primary interface by which clients send requests to the OracleAS UDDI Registry Authentication is done using the UDDI get_authToken message in this example.

    SimpleAuthenticationLiaison auth =   new SimpleAuthenticationLiaison(szUserName, szPassword);UddiClient uddiClient = new UddiClient(null, szPublishingUrl, transport, auth);
    
    

    Note:

    The UddiClient instance, by default, operates as a UDDI v2.0 client (the latest release supported). If a specific release is needed, the release can be specified, either through another constructor, or by the JVM property oracle.uddi.client.defaultVersion.

  • Performs authentication. You should make this call before doing any publishing.

    UddiClient.authenticate();
    
    
  • Uses UddiClient to get a UddiElementFactory instance. This factory should always be used to create any UDDI objects needed.

    UddiElementFactory uddiEltFactory = 
         uddiClient.getUddiElementFactory();
    
    
  • Performs various publishing operations that include creating and saving a tModel, a businessEntity, a businessService, and a bindingTemplate data structure for the purpose of creating a business that provides a Google-interface-compatible service.

  • Creates a tModel data structure that represents a Google-compatible service by using the UddiElementFactory instance.

    TModel tModel = (TModel)uddiEltFactory.createTModel();   tModel.setName("urn:google.com:search-interface");
    
    
    • Creates and includes the OverviewDoc data structure in the tModel data structure by using the UddiElementFactory instance.

      OverviewDoc overviewDocTm =
       (OverviewDoc)uddiEltFactory.createOverviewDoc(); 
           tModel.setOverviewDoc(overviewDocTm);
      overviewDocTm.setOverviewURL("http://api.google.com/GoogleSearch.wsdl");
      
      
    • In the tModel data structure, uses the UddiElementFactory instance to create a CategoryBag data structure and its KeyedReference, which will be used for searching. Classify the tModel data structure as a SOAP/WSDL-based interface and put it under the "applicable service providers" category.

      CategoryBag catBagTm =
       (CategoryBag)uddiEltFactory.createCategoryBag(); 
      tModel.setCategoryBag(catBagTm);
      
      KeyedReference krTm1 = (KeyedReference)uddiEltFactory.createKeyedReference();
      
      catBagTm.addUddiElement(krTm1);
      krTm1.setTModelKey(CoreTModelConstants.TAXONOMY_KEY_UDDI_TYPE);
      krTm1.setKeyName("wsdlSpec");
      krTm1.setKeyValue("wsdlSpec");
      
      KeyedReference krTm2 =
       (KeyedReference)uddiEltFactory.createKeyedReference();
      catBagTm.addUddiElement(krTm2);
      krTm2.setTModelKey(CoreTModelConstants.TAXONOMY_KEY_UDDI_TYPE);
      krTm2.setKeyName("wsdlSpec");
      krTm2.setKeyValue("wsdlSpec");
      
      KeyedReference krTm3 =
       (KeyedReference)uddiEltFactory.createKeyedReference();
      catBagTm.addUddiElement(krTm3);
      krTm3.setTModelKey(CoreTModelConstants.TAXONOMY_KEY_UNSPSC_7_3);
      krTm3.setKeyName("application service providers");
      krTm3.setKeyValue("81.11.21.06.00");
      
      
  • Publishes the Google search interface tModel business operation.

    System.out.println("\nPublish the google search interface tModel.");
    TModel tMSaved = uddiClient.saveTModel(tModel);
    String szGoogleTModelKey = tMSaved.getTModelKey();
    System.out.println("The tModel is saved with tModelKey assigned to be " + 
                          szGoogleTModelKey);
    
    
  • Creates a businessEntity data structure that represents a Google-compatible service by using the UddiElementFactory instance.

    BusinessEntity businessEntity = 
      (BusinessEntity)uddiEltFactory.createBusinessEntity();
    businessEntity.setName("ACME search Inc.", "en");
    
    

    In the businessEntity data structure, uses the UddiElementFactory instance to create a CategoryBag data structure and its KeyedReference data structure, which will be used for searching. Classify the businessEntity data structure under the "information services and data processing services" category.

    KeyedReference krBe1 = 
     (KeyedReference)uddiEltFactory.createKeyedReference();
    catBagBe.addUddiElement(krBe1);
    krBe1.setTModelKey(CoreTModelConstants.TAXONOMY_KEY_NAICS_1997);
    krBe1.setKeyName("Information Services and Data Processing Services");
    krBe1.setKeyValue("514");
    
    
  • Creates a businessService data structure that represents a Google-compatible service by using the UddiElementFactory instance.

    BusinessServices businessServices =
    (BusinessServices)uddiEltFactory.createBusinessServices();
    businessEntity.setBusinessServices(businessServices);
    BusinessService businessService = 
    (BusinessService)uddiEltFactory.createBusinessService();
    businessServices.addUddiElement(businessService);
    businessService.setName("ACME Web Search service", "en");
    
    

    In the businessService data structure, uses the UddiElementFactory instance to create a CategoryBag data structure and its KeyedReference data structure, which will be used for searching. Classify the businessService data structure under the "application service providers" category.

    CategoryBag catBagBs = 
     (CategoryBag)uddiEltFactory.createCategoryBag();
    businessService.setCategoryBag(catBagBs);
    KeyedReference krBs1 = 
     (KeyedReference)uddiEltFactory.createKeyedReference();
    catBagBs.addUddiElement(krBs1);
    krBs1.setTModelKey(CoreTModelConstants.TAXONOMY_KEY_UNSPSC_7_3);
    krBs1.setKeyName("application service providers");krBs1.setKeyValue("81.11.21.06.00");
    
    
  • Creates the bindingTemplates data structure that represents a Google-compatible service by using the UddiElementFactory instance.

    BindingTemplates bindingTemplates = 
     (BindingTemplates)uddiEltFactory.createBindingTemplates();
    businessService.setBindingTemplates(bindingTemplates);
    BindingTemplate bindingTemplate = 
     (BindingTemplate)uddiEltFactory.createBindingTemplate();
    bindingTemplates.addUddiElement(bindingTemplate);
    
    
    • Creates and includes the access point in the bindingTemplates data structure by using the UddiElementFactory instance.

      AccessPoint accessPoint =
      (AccessPoint)uddiEltFactory.createAccessPoint();
      bindingTemplate.setAccessPoint(accessPoint);
      accessPoint.setUrlType("http");
      accessPoint.setContent("http://foobar.net/search-g");
      
      
    • Creates and includes the tModel instance details in the bindingTemplates data structure by using the UddiElementFactory instance.

      TModelInstanceDetails tModelInstanceDetails =
      (TModelInstanceDetails)uddiEltFactory.createTModelInstanceDetails();
      bindingTemplate.setTModelInstanceDetails(tModelInstanceDetails);
      
      
    • Declares that the bindingTemplate data structure implements the Google search interface.

      TModelInstanceInfo tModelInstanceInfo =
       (TModelInstanceInfo)uddiEltFactory.createTModelInstanceInfo();
      tModelInstanceDetails.addUddiElement(tModelInstanceInfo);
      tModelInstanceInfo.setTModelKey(szGoogleTModelKey);
      
      
  • Publishes the businessEntity data structure and its containing businessService and bindingTemplate data structures.

    System.out.println("Publish the ACME Search Inc. businessEntity...");
    BusinessEntity bESaved = uddiClient.saveBusiness(businessEntity);
    System.out.println("The saved businessEntity (in XML) is:");
    
    bESaved.setName("The ACME search Inc.", "en");
    BusinessEntity bEUpdated = uddiClient.saveBusiness(bESaved);
    
    
  • Uses the UddiElementFactory instance to retrieve an XmlWriter object. To view the raw XML data represented by an object, which extends UddiElement, marshall the element content to the writer and then flush and close the writer.

    XmlWriter writerXmlWriter = 
     uddiEltFactory.createWriterXmlWriter(new PrintWriter(System.out));
    bESaved.marshall(writerXmlWriter);
    writerXmlWriter.flush();
    writerXmlWriter.close();
    
    
  • Closes the UddiClient instance when finished to release resources and to log out from the registry.

    uddiClient.close();
    

The UddiPublisherAssertionExample.java Example

Within the uddidemo.zip file is a Java program file, UddiPublisherAssertionExample.java. This file provides Java programmers with a starting point that demonstrates the key constructs and the sequence in using the Oracle UDDI client library for publisher assertion-related operations. A publisher assertion, which is a UDDI v2.0 feature, is an assertion made by a publisher who is expressing a particular fact about a business registration and its relationships to other business data within the OracleAS UDDI Registry. Publisher assertions are used to establish visible relationships between registered data. Once completed, a set of assertions can be seen by the general inquiry message named findRelatedBusinesses. The program example does the following:

  • Initializes instances of two UddiClients.

    UddiClient uddiClient1 =   createUddiClient(szInquiryUrl, szPublishingUrl, szUserName1, szPassword1);UddiClient uddiClient2 =   createUddiClient(szInquiryUrl, szPublishingUrl, szUserName2, szPassword2);DispositionReport dispositionReport = null;
    
    
  • Creates the business entities to be used.

    String bEKey1 =   createBusinessEntity(uddiClient1,                        "bE1 - UddiPublisherAssertionExample");String bEKey2 =   createBusinessEntity(uddiClient2,                        "bE2 - UddiPublisherAssertionExample");
    
    
  • Creates for uddiClient1 a publisher assertion that represents a peer-to-peer relationship from bE1 to bE2.

    System.out.println("");System.out.println("uddiClient1 attempts to create a peer-to-peer relationship ");System.out.println("from bE1 to bE2...");dispositionReport =   uddiClient1.addPublisherAssertion  (createPeerToPeerPublisherAssertion(uddiClient1, bEKey1, bEKey2));System.out.println("Done.");
    
    
  • Makes a query for uddiClient1 for relationships yet to be established; that is, looking for those relationships that the toKey side has not yet acknowledged.

    AssertionStatusReport assertionStatusReport1 =   uddiClient1.getAssertionStatusReport  (AssertionStatusItem.COMPLETION_STATUS_TOKEY_INCOMPLETE);printOutXml("pending relationships for uddiClient1: case toKey incomplete",    assertionStatusReport1);
    
    
  • Makes a query for uddiClient2 for relationships yet to be established; that is, looking for those relationships that the toKey side has not yet acknowledged.

    AssertionStatusReport assertionStatusReport2 =   uddiClient2.getAssertionStatusReport  (AssertionStatusItem.COMPLETION_STATUS_TOKEY_INCOMPLETE);printOutXml("pending relationships for uddiClient2: case toKey incomplete",    assertionStatusReport2);
    
    
  • Shows uddiClient2 agreeing to the peer-to-peer relationship requested by creating a publisher assertion.

    System.out.println("");System.out.println("uddiClient2 agrees to the peer-to-peer relationship ");System.out.println("from bE1 to bE2");dispositionReport =   uddiClient2.addPublisherAssertion  (createPeerToPeerPublisherAssertion(uddiClient2, bEKey1, bEKey2));System.out.println("Done.");
    
    
  • Makes another query for uddiClient2 for relationships yet to be established to see if there are other peer-to-peer relationships to be established. There are no more pending relationships to be established.

    AssertionStatusReport assertionStatusReport2After =   uddiClient2.getAssertionStatusReport  (AssertionStatusItem.COMPLETION_STATUS_TOKEY_INCOMPLETE);printOutXml("pending relationships for client2: toKey incomplete (should be
      none)", assertionStatusReport2After);
    
    
  • Finds related businesses that have established peer-to-peer relationships (that have published assertions) by calling the general inquiry message findRelatedBusinesses.

    RelatedBusinessesList rbList =  uddiClient1.findRelatedBusinesses  (bEKey1,    createPeerToPeerKeyedReference(uddiClient1),   null);printOutXml("find all businesses that are peers to " + bEKey1, rbList);
    
    
  • Deletes a publisher assertion relationship between bE1 and bE2, owned by uddiClient1.

    System.out.println("");System.out.println("Delete a publisherAssertion...");dispositionReport =  uddiClient1.deletePublisherAssertion  (createIdentityPublisherAssertion(uddiClient1, bEKey1, bEKey2));System.out.println("Done");
    
    
  • Shows another way of deleting all publisher assertion relationships owned by uddiClient1 by using the setPublisherAssertions call.

    System.out.println("");System.out.println("Delete all publisherAssertions of uddiClient1 ");System.out.println("by using setPublisherAssertions...");publisherAssertions =  uddiClient1.setPublisherAssertions(null);printOutXml("Done. The current list:", publisherAssertions);
    
    

OracleAS UDDI Registry Administration

The following sections describe new OracleAS UDDI Registry administration features.

Using the Command-Line Tool uddiadmin.jar

Many administrative operations are done using the command-line tool uddiadmin.jar described in the sections that follow.

The command-line tool uddiadmin.jar is located in the uddi/lib/uddiadmin.jar file for UNIX and in the uddi\lib\uddiadmin.jar file for Windows. Administrators can use this tool for various administrative activities. In general, the command-line tool takes the command-line parameters of the following form:

java -jar uddiadmin.jar <registry admin URL> <username> <password>
 [-verbose] <action to perform and additional parameters>

where the <username> belongs to the uddiadmin group

The default user name is ias_admin and the default password is ias_admin123.

Note that the -verbose option will cause stack trace information to be printed out when an exception is encountered.

Server Configuration

The following parameters are used for server configuration operations. See Server Configuration Properties Reference Information for more information about these configuration parameters.

getProperties

Parameters: <registry admin URL> <username> <password> [-verbose] -getProperties

Description: Lists the current registry configuration parameters.

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password>  [-verbose] -getProperties

setProperty

Parameters: <registry admin URL> <username> <password> [-verbose] -setProperty <name>=<value>

Description: Changes the value of the named configuration parameter. The OracleAS UDDI Registry J2EE application needs to be restarted for the parameters to take effect.


Warning:

Be very careful when using the -setProperty option to change server configuration property values. Making an incorrect property setting could cause severe damage to the integrity of the registry.

User Management

OracleAS UDDI Registry for 10g (9.0.4) uses the Oracle Internet Directory (OID) of the Oracle Application Server infrastructure as the default user repository. This is achieved through the use of LDAP-based provider of OC4J Java Authentication and Authorization Service (JAAS).

UDDI-specific OID groups are located under the cn=uddi_groups subtree of the group subtree of the OID default subscriber.

In other words, users are located under the user subtree of the OID default subscriber.

The types of UDDI users are summarized in Table 10-1.

Table 10-1 Default UDDI Groups

Group Description
uddipublisher Can access the publishing end point and save, update, or delete UDDI entities in the registry.
uddipublisher Can create UDDI subscriptions.
uddiadmin Can access the administration end points and perform administrative activities.

Can perform all activities specified in uddipublisher group.

uddireplicator Can perform replication activities based on the replication schedule: send replication requests such as get_changeRecords to other UDDI nodes and apply the changeRecords received.


Note:

Do not remove any of these default UDDI Groups.

In addition to these groups, there are also a set of default groups for user quota purposes. Those groups can be added, updated, or removed based on the specific user quota policy administrators need to enforce.

By default, the following users are created in an installation. Administrators can add or remove users to or from these corresponding groups as shown in Table 10-2.

Table 10-2 Default UDDI Users

Group User Names Comments
uddiadmin ias_admin Typically, Enterprise Manager administrators also login as ias_admin to publish to the UDDI registry through the Enterprise Manager integrated J2EE Web Services deployment and publishing wizard.
uddipublisher uddi_publisher, uddi_publisher1 These are sample users for demonstrating publishing and different default quota groups.
uddireplicator uddi_replicator The default user used for performing the UDDI replication activities in the background. This user should not be removed. If you do need to remove this user, make sure you add another user to the uddireplicator group. The user to start the Replication Client module must be updated as well by modifying the orion-application.xml file in the oraudrepl.ear archive file.

Generic user management, such as creation, deletion, suspension, and so forth, is handled by Oracle Internet Directory and its Delegated Administration Service. Refer to Oracle Internet Directory Administrator's Guide for more information.

User management, including operations such as creation, deletion, suspension, role management, and so forth, is handled by OC4J Java Authentication and Authorization (JAAS) service. Refer to Oracle Application Server Containers for J2EE Services Guide for more information.

In general, user management is handled by the OC4J JAAS service and OID. However, to find out the authorized name of a user, use the -getUsers option of the uddiadmin.jar command-line tool described as follows:

getUsers

Parameters: <registry admin URL> <username> <password> [-verbose] -getUsers

Description: Lists all existing users who have entities in the registry.

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password>  [-verbose] -getUsers

getUserDetail

Parameters: <registry admin URL> <username> <password> [-verbose] -getUserDetail <username_to_retrieve>

Description: Retrieves the details of the named user, currently the authorizedName of each user.

Quota Enforcement

OracleAS UDDI Registry provides a mechanism to enforce the number of entities a publisher can own. A publisher can own at most a specific number of tModels, publisherAssertions, businessEntities, businessServices per businessEnitity, and bindingTemplates per businessService depending upon the quota group associated with the publisher, which is guided by the user group to which the publisher is assigned.

OracleAS UDDI Registry uses a group-based mechanism for assigning quota limits to a publisher. When a new publisher is added, the OracleAS UDDI Registry administrator must associate the publisher with a quota group. Table 10-3 shows the predefined quota groups and quota limits for each entity that a publisher can own.

Table 10-3 Predefined Quota Groups

Quota Group Quota Limits per Entity

businessEntities businessServices per businessEntity bindingTemplates per businessService tModels publisherAssertions
Default 1 4 2 100 10
uddi_unlimited_quota_group Unlimited Unlimited Unlimited Unlimited Unlimited
uddi_lowlimits_quota_group 2 2 1 3 3
<Implicit>UDDI_Administrators Unlimited Unlimited Unlimited Unlimited Unlimited

The explicit Default quota group cannot be deleted. Users who are UDDI administrators always get unlimited quota.

The OracleAS UDDI Registry administrator can also update a quota group, add a new quota group, delete a quota group, view the lists of quota groups and their quota limits, and associate a publisher with a quota group. The following sections describe each of these administrator tasks.

Associating a Publisher with a Quota Group

When a user is added to the user store (OID or jazn-data.xml), the user should be placed in a group so that it gets the appropriate quota group. For example, with the pre-defined settings, administrators can assign a user to have the low quota limits by assigning the user to the uddi_lowlimits_quota_group group.

If a user does not belong to a particular group, the user gets the quota limits from the Default group. A UDDI administrator always has unlimited quota.

Viewing the Lists of Quota Groups and Their Limits

Use the -getRoleQuotaLimits option of the command-line tool uddiadmin.jar, described as follows:

getRoleQuotaLimits

Parameter: getRoleQuotaLimits

Description: Displays all the J2EE-role-to-quota-limits mappings that are currently set in the registry.

Parameter type/allowable values: long

Initial value: 0

Typical value: N/A

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password>
 [-verbose] -getRoleQuotaLimits

Updating the Limits of a Quota Group

Use the -setRoleQuotaLimits option of the command-line tool uddiadmin.jar, described as follows:

setRoleQuotaLimits

Parameter: setRoleQuotaLimits

Description: Sets the quota limit value for the specified quota group. This option can be used to create a new group-to-quota-limit mapping or to update an existing mapping. The parameters are defined as follows:

  • roleName -- name of the quota group to map to the specified limits

  • maxBE -- maximum number of businessEntity data structures allowed

  • maxBSperBE -- maximum number of businessService data structures per businessEntity allowed

  • maxBTperBS -- maximum number of bindingTemplate data structures per businessEntity allowed

  • maxTM -- maximum number of tModel data structures allowed

  • maxPA -- maximum number of publisherAssertion data structures allowed

The value -1 means unlimited.

Parameter type/allowable values: N/A

Initial value: N/A

Typical value: N/A

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password>
 [-verbose] -setRoleQuotaLimits <roleName> <maxBE> <maxBSperBE> <maxBTperBS> <maxTM> <maxPA>

Adding a New Quota Group (Advanced Operation)

To add a new quota group, perform the following steps:

  1. Add the group to the user store, typically OID.

  2. Define the corresponding J2EE security role partnerGroup for the new group name you want to create in the orauddi application. The settings must be added in both the application.xml file of the orauddi.ear file and the web.xml file of the orauddi.ear file.

  3. Define the J2EE security role to the user store mapping in the orion-application.xml file of the orauddi.ear file.

  4. Define the actual limits of the quota group using the -setRoleQuotaLimits option of the command-line tool uddiaddmin.jar. See the -setRoleQuotaLimits option in Updating the Limits of a Quota Group for more information.

Deleting a Quota Group (Advanced Operation)

To remove a quota group, perform the following steps:

  1. Remove the J2EE security role for the partnerGroup you want to remove from the orauddi application. The settings must be removed from both the application.xml file of the orauddi.ear file and the web.xml file of the orauddi.ear file.

  2. Remove the J2EE security role to the user store mapping in the orion-application.xml file of the orauddi.ear file.

  3. Remove the actual limits of the quota group using the -deleteRoleQuotaLimits option of the command-line tool uddiadmin.jar. See the -deleteRoleQuotaLimits option described after Step 4 for more information.

  4. Remove the group from the user store, typically OID.

deleteRoleQuotaLimits

Parameter: deleteRoleQuotaLimits

Description: Deletes the group-to-quota-limits mappings for the specified quota groups.

Parameter type/allowable values: N/A

Initial value: N/A

Typical value: N/A

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password>
 [-verbose] -deleteRoleQuotaLimits <roleName> [<roleName>...]

Administrative Entity Management

The following parameters are used for administrative entity management:

deleteEntity

Parameters: <registry admin URL> <username> <password> [-verbose] -deleteEntity [-businessKey <businessKey> | -serviceKey <serviceKey> | -bindingKey <bindingKey> | -tModelKey <tModelKey>]

Description: Deletes the named entity irrespective of the owner of the entity. Note that this operation performs a nonpermanent delete (hide) operation in the case of a tModel entity.

destroyTModel

Parameters: <registry admin URL> <username> <password> [-verbose] -destroyTModel <tModelKey>

Description: Permanently deletes the named tModel from the registry (as opposed to the UDDI-defined delete_tModel call, which is just hiding the tModel entity).

Parameters: <registry admin URL> <username> <password> [-verbose] -changeOwner <new username> [-businessKey <businessKey> | -tModelKey <tModelKey>]

Description: Changes the ownership of the named entity to the new specified user.

Import Operation

The following parameter is used for importing entities:

import

Parameters: <registry admin URL> <username> <password> [-verbose] [-s|-m] -import [-businesses <filename> | -tmodels <filename> | -publisherAssertion <filename> -fromBusinessCheck [true|false] -toBusinessCheck [true|false]]

Description: Imports all businessEntity and tModel data structures, and a publisherAssertion in the named file. For importing the businessEntity data structure, the named file (<filename>) for importing should contain a UDDI businessDetail XML document. For importing tModel data structures, the named file should contain a UDDI tModelDetail XML document. By importing them, entityKeys (such as, businessKey, serviceKey, bindingKey, tModelKey) are preserved. The operatorName and authorizedName fields, however, are not preserved. The operatorName field will be replaced by the operatorName configuration parameter of the registry. The owner of the imported entities is the administrator; hence, the authorizedName field will be the authorizedName of the administrator. Importing can be done in single mode (-s), which does not allow partial success (some entities are imported and some are not due to some error condition), or in multiple mode (-m), which does allow partial success.

The import parameter is particularly useful in importing the well-known service interface specification tModel and classification tModel data structures from some authoritative sources.

Because the entity keys are preserved, administrators should be careful in evaluating the source of the entities to ensure there will not be a collision in entity keys.

For importing a publisher assertion, two Boolean values are required. These Boolean values are used to indicate from which side (or both sides when two Boolean values are true) the publisher assertion is going to be inserted.

Set Operational Information

The -setOperationalInfo parameter is used for setting some operational information of entities, such as the modified timestamp. Note there are two options.

setOperationalInfo

Parameters: Option 1: <registry admin URL> <username> <password> [-verbose] - setOperationalInfo [[-businessKey key | -tModelKey key] [-newOperator OperatorName] [-newAuthorizedname authName] [-newTime timestamp]]

Option 2: <registry admin URL> <username> <password> [-verbose] - setOperationalInfo [[-serviceKey key | -bindingKey key] -newTime timestamp]

Description: Sets some operational information, such as the operator name, authorized name, or timestamp of a businessEntity or tModel specified by a key, for example, following an import operation. Any combination of these three options is allowed to be set using the -setOperationalInfo option.

The syntax option [[-businessKey key | -tModelKey key] [-newOperator OperatorName] [-newAuthorizedname authName] [-newTime timestamp]] lets you change either the operator name, the authorized name, or the timestamp, or all three options of a business entity or tModel specified by a key.

The syntax option [[-serviceKey key | -bindingKey key] -newTime timestamp] lets you change only the timestamp of a business service or binding template.


Note:

The format of a timestamp is defined as ’yyyy-mm-dd hh.mm:ss.fffffffff’ by java.sql.Timestamp. For example,
’2002-12-01 00:00:00’

Because there is a blank space in the timestamp value between ’yyyy-mm-dd and hh.mm:ss.fffffffff, the entire value must be placed inside a pair of quotation marks on the command line.



Warning:

This feature should not be invoked when replication is set to on. In general, the -setOperationalInfo option should not be used when replication is enabled.

UDDI Replication

The OracleAS UDDI Registry allows administrators to create a logical registry that comprises one or more Oracle UDDI implementations and UDDI implementations from other vendors that also implement the UDDI v2.0 Replication Specification. See the UDDI v2.0 Replication Specification for more information.

This section briefly describes the data replication process and the program interface required to achieve complete data replication among UDDI operator nodes that form a UDDI service. UDDI replication ensures that all operator nodes see all the changes that have originated at individual operator nodes. In addition, any inquiries made at any operator node within the UDDI service yield results consistent to those made at any other operator node within the UDDI service, hence the logical OracleAS UDDI Registry.

For detailed technical descriptions of concepts and definitions involved with UDDI replication, including replication processing, how to bring new UDDI operators online, checking and validation of replicated data, see the UDDI v2.0 Replication Specification. The sections that follow describe the Oracle implementation of UDDI replication.

Enabling UDDI Replication

To enable UDDI replication, an administrator must perform the following steps:

  1. Participate with and agree to the replication topology with UDDI administrators of other operator nodes. This involves editing the replication configuration (in the format specified in the UDDI v2.0 replication specification) accordingly, and using the -downloadReplicationConfiguration and -uploadReplicationConfiguration options of the command-line tool uddiadmin.jar.

  2. Enable replication scheduling by setting the following server property, oracle.uddi.server.scheduler.status, to the value 1.

  3. Enable update journal storage by setting the following property, oracle.uddi.server.replication.startMaintainingUpdateJournal, to true.

After UDDI replication is started, the UDDI administrator can suspend or resume replication operations by stopping or starting the oraudrepl.ear application.

If HTTPS client-certification is used, UDDI administrators must do the following:

  1. Obtain an exported Oracle wallet file using Oracle Wallet Manager and specify the exported wallet location by setting the server property oracle.uddi.server.replication.walletLocation. This option only needs to be set once.

  2. Use the -setWalletPassword option to supply the wallet password, whenever the oraudrepl.ear application is started or restarted. The password is not persistent for security reasons.

See Replication Configuration Management for a description of useful parameter options that are provided to assist OracleAS UDDI Registry administrators in the day-to-day operations during replication, using the command-line tool uddiadmin.jar.

In some cases, the administrator of the source of the error must correct an invalid changeRecord operation that caused the error. The administrator can use the -correctChangeRecord option of the command-line tool uddiadmin.jar to supply the correct changeRecord data. See Replication Exception Handling for more information.

Replication Configuration Management

The following parameters are used in replication configuration management:

uploadReplicationConfiguration

Parameters: <registry admin URL> <username> <password> [-verbose] -uploadReplicationConfiguration <xml_file_containing_replication_configuration>

Description: Uploads the specified replication configuration to a particular UDDI node within an OracleAS UDDI Registry. The application must be restarted for the new replication configuration to be used.

downloadReplicationConfiguration

Parameters: <registry admin URL> <username> <password> [-verbose] -downloadReplicationConfiguration

Description: Downloads the currently used replication configuration from a specified UDDI node within the OracleAS UDDI Registry.

Miscellaneous Operations

The following parameters are used in miscellaneous operations:

doPing

Parameters: <registry admin URL> <username> <password> [-verbose] -doPing replicationEndPointSoapUrl [-password walletPassword]

Description: Sends a UDDI replication do_ping message to the replication end-point URL specified. This is similar to the ping command in TCP/IP that is used to check if the other end point is alive. The optional walletPassword is useful when the JVM, which receives the do_ping message, does not have a valid wallet password set.

replicationEndPointSoapUrl

Parameters: <registry admin URL> <username> <password> [-verbose] -replicationEndPointSoapUrl [-password walletPassword]

Description: Gets the high-water marks vector from the specified UDDI node. The optional walletPassword is useful when the JVM, which receives the do_ping message, does not have a valid wallet password set.

getChangeRecord

Parameters: <registry admin URL> <username> <password> [-verbose] -getChangeRecord local_usn

Description: Gets the detail of a change record specified by local_usn (an integer). This API is used in conjunction with the -CorrectChangeRecord option to correct wrong or inconsistent data across different UDDI nodes with the OracleAS UDDI Registry.

HTTPS Setup

The following parameter is used in HTTPS setup operations:

setWalletPassword

Parameters: <registry replication wallet admin URL> <username> <password> [-verbose] -setWalletPassword walletPassword

Description: Sets the wallet password to be used for HTTPS communication among UDDI nodes for UDDI replication. Each time the application is restarted, this option must be invoked because the wallet password is not stored persistently, for security reasons. The registry replication wallet admin URL is http://<OracleAS-host>:<OracleAS-port>/uddirepl/admin/wallet.

Custody Transfer

The following parameter is used in replication custody transfer operations:

transferCustody

Parameters: <registry admin URL> <username> <password> [-verbose] -transferCustody oldOperatorName newOperatorName newAuthorizedName [-tModelKey tModelKey | -businessKey businessKey]

Description: Transfers the custody of a tModel or a business entity to a new operator and a new authorized name. This option is part of custody transfer as defined by the UDDI specification.

Replication Exception Handling

If any errors occur during replication operations, the OracleAS UDDI Registry logs the error in the application.log file of the oraudrepl.ear file. The administrator should investigate the cause of the error and correct each problem accordingly.

The following parameter is used in replication exception handling:

correctChangeRecords

Parameters: <registry admin URL> <username> <password> [-verbose] -correctChangeRecord <changeRecordCorrectionfile> <changeRecordNewDatafile>

Description: Applies the changeRecordCorrectionfile file contents and changeRecordNewDatafile file contents to the UDDI node. The content of these files must conform to the UDDI replication XML schema. This option is part of UDDI replication error recovery.

Advanced Configuration and Tuning

See UDDI Replication Properties for a description of a set of server properties provided for advanced tuning and configuration of the replication operations.

Registry-Based Category Validation

OracleAS UDDI Registry for 10g (9.0.4) can perform a spell-check form of category value validation. An administrator can add or remove the set of categories that will be validated by the registry. Refer to the v2.0 UDDI specification for more information.

Adding a New Category for Registry-Based Validation

To add a new category, you must load the category values into the database and register the category with the registry. Perform the following steps:

  1. Publish the category to the registry by saving a new tModel data structure. For example, look at the tModel data structure named ntis-gov:naics:1997. You can use the included sample Web applications link http://<OracleAS-host>:<OracleAS-port>/uddi/ or a third-party tool.

    If the tModel data structure has been defined in some other registry, you can also import it (instead of creating a new one, which results in different tModelKeys entities) using the uddiadmin.jar utility. See Import Operation for more information on the import operation. The tModel data structure published should be classified as "unvalidatable" in uddi-org:types taxonomy. Specifically, the following keyedReference should appear in the categoryBag element of the tModel data structure: <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="" keyValue="unvalidatable" />

  2. Load the category values into the database. To do this, all the category values should be in a file using the following format:

    • Each line of the file describes one category value in the category. It should be in the following format:

      <category value> | <description of category value>
       | <category value of the parent>
      
      
    • If a category value is a root value, for example, it has no parent, the category value of the parent should be set to itself.

    • The line in the file for a category value should occur before the lines for all of its descendants.

      Examples can be found in the uddi/taxonomy directory for UNIX and in the uddi\taxonomy directory for Windows. Excerpts from the NAICS file are as follows:

      22|Utilities|22
      221|Utilities|22
      2211|Electric Power Generation, Transmission|221
      
      

      If your files use different characters from different languages, it is recommended that you save the file with UTF-8 encoding to avoid any problems that may arise, such as character corruption.

  3. Create a SQL*Loader control file to load the category file. An example is uddi/admin/naics-97.ctl for UNIX and uddi\admin\naics-97.ctl for Windows. Copy the file and replace the category file name in the control file with the one you create. Refer to the v2.0 UDDI specification for more information about generating a unique ID for the new category tModel.

  4. Load the category file to the database using SQL*Loader. Refer to Oracle9i Database Utilities for more information about using SQL*Loader.

  5. Configure the registry so that it recognizes the category that must be validated by using the command-line administrative tool, uddiadmin.jar. For example, to add a new tModel entity with key UUID:FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFF0, issue the setProperty command for the property oracle.uddi.server.categoryValidationTModelKeys as follows:

    java -jar uddiadmin.jar <registry admin URL> <username>
     <password> -setProperty
    "oracle.uddi.server.categoryValidationTModelKeys=
    'UUID:C1ACF26D-9672-4404-9D70-39B756E62AB4',
    'UUID:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',
    'UUID:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',
    'UUID:CD153257-086A-4237-B336-6BDCBDCC6634',
    'UUID:FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFF0' "
    
    

    Notice that because the setProperty command defines all categories that need to be validated, to add a new category, you must set the property with all the existing tModelKey values plus the new tModelKey value.

  6. Allow the registry users to use the category tModel published by removing the "unvalidatable" categorization done in Step 1. Specifically, the following keyedReference element should be removed from the categoryBag element of the tModel data structure: <keyedReference tModelKey="uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="" keyValue="unvalidatable" />

Removing a Category from Registry-Based Validation

To remove a category from registry-based validation, you should unregister the category with the registry and remove the category values in the database. Perform the following steps:

  1. To unregister the category with the registry, you should remove it from the list of validated categories using the uddiadmin.jar setProperty command for the property oracle.uddi.server.categoryValidationTModelKeys.

    You do not have to (and in general should not) delete the tModel data structure from the registry.

  2. To remove the category values from the database, use the SQL*Plus script wurvcrm.sql in the uddi/admin directory for UNIX and in the uddi\admin directory for Windows. For example:

    sqlplus sys/<sys-password> @wurvcrm.sql
    
    

    When running this script, you will be prompted for the tModelKey value of the category to be removed. You should see that a set of rows has been deleted. If the result shows that 0 rows were deleted, you entered an invalid tModelKey value.

External Validation

Third parties can register new category and identifier schemes, and then control the validation process used by the OracleAS UDDI Registry to perform external validation or checking. This enables a third-party category provider to validate the UDDI entities to be saved when the entity is categorized, or identified with the category, by providing a validate_values SOAP Web service.

The operator that is calling the validate_values service will pass a businessEntity, a businessService, or a tModel element as the sole argument to this callout. This is the same data that is being passed within a save_business, save_service, or save_tModel API call. External validation is performed for any third-party category provider and identifier scheme that is classified as checked. A tModel element marked as checked asserts that it represents a categorization, identifier, or namespace tModel element that has a properly registered validation service.

If no error is found, the response is a dispositionReport message returning an errorCode value of E_success and an errno value of 0. If any error is found, or the called service needs to signal that the information being saved is not valid based on the validation algorithm chosen by the external service provider, then the service should raise a SOAP Fault and indicate either an errorCode value of E_invalidValue or E_valueNotAllowed. In either case, the error text indicates the keyedReference data that is being rejected, and the reason why.

Use the command-line tool uddiadmin.jar with the -setProperty option to:

  • Enable external validation

  • Add an externally validated category to the registry

  • Remove an externally validated category from the registry

Enabling External Category Validation

To enable external category validation, issue the -setProperty option for the following property oracle.uddi.server.externalValidation as follows:

java -jar uddiadmin.jar <registry admin URL> <username> <password> -setProperty oracle.uddi.server.externalValidation=true

Adding an Externally Validated Category to the Registry

To add an externally validated category to the registry, perform the following steps:

  1. Publish the new category as a tModel data structure to the registry. This data structure must be categorized as checked under uddi-org:types category.

  2. Register the external validation service of the category with the registry by updating the following server property: oracle.uddi.server.externalValidationTModelList using the -setProperty option as follows:

    java -jar uddiadmin.jar <registry admin URL> <username> <password> -setProperty oracle.uddi.server.externalValidationTModelList=<key-value>,<URL-validation-service>
    
    

    For example, if the category tModel published has the key "uuid:acme-taxonomy-key", and the URL of the validation service is http://acme.com/externalValidation, the command with the entry is as follows:

    java -jar uddiadmin.jar <registry admin URL> <username> <password> -setProperty oracle.uddi.server.externalValidationTModelList=uuid:acme-taxonomy-key,http://acme.com/externalValidation
    
    

    In addition, the timeout limit (in milliseconds) can be tuned for calls to the external validation service using the server property oracle.uddi.server.externalValidationTimeout as follows:

    java -jar uddiadmin.jar <registry admin URL> <username> <password> -setProperty oracle.uddi.server.externalValidationTimeout=5000
    
    

Removing an Externally Validated Category from the Registry

To remove an externally validated category from the registry, perform the following steps:

  1. Update the following server property: oracle.uddi.server.externalValidationTModelList using the -setProperty option by supplying a null value for the <URL-validation-service> as follows:

    java -jar uddiadmin.jar <registry admin URL> <username> <password> -setProperty oracle.uddi.server.externalValidationTModelList=<key-value>,""
    
    

    For example, if the category tModel published has the key "uuid:acme-taxonomy-key", and the URL of the validation service is http://acme.com/externalValidation, the command with the null entry will be as follows:

    java -jar uddiadmin.jar <registry admin URL> <username> <password> -setProperty oracle.uddi.server.externalValidationTModelList=uuid:acme-taxonomy-key,""
    
    
  2. Deprecate or update the corresponding tModel data structure. If the tModel is not updated, the registry will reject any new UDDI entries that are categorized or identified by the category that was removed in subsequent save calls to the save_business, save_service, or save_tModel API.

Performance Monitoring and Tuning

On the back end of an Oracle database, UDDI servlets, and the associated JDBC connection pools, can all be monitored using Oracle Enterprise Manager and other standard database monitoring and tuning utilities.

In an OC4J standalone environment, performance information is typically available at

http://<oc4j-host-name>:<port-number>/dmsoc4j/Spy

Data Backup and Restore Operations

Registry data backup and restore operations can be done by using the standard Oracle database backup and restore operations. See Oracle9i Backup and Recovery Concepts.

Additional Information

The following sections are some additional OracleAS UDDI Registry administration information.

UUID Generation

The UUID generation algorithm that is used generates version 4 UUID, which creates UUIDs from random numbers.

All built-in tModel data structures as specified in the UDDI v2.0 specification are included. An additional tModel data structure uddi-org:operators, defined in the UDDI v2.0 specification, is also included to classify the bootstrap node businessEntity that represents the OracleAS UDDI Registry itself.

Database Configuration

The following sections describe some database-specific configuration information.

Database Character Set Should Be UTF-8

The database character set should be UTF-8 to accommodate all possible characters. However, if a customer is absolutely certain that the data to be stored in the registry contains characters of a specific country or region (such as western Europe), the customer may use the appropriate database character set.

Functional Index Should Be Enabled

The functional index must be enabled to support index-based, case-insensitive search. The following init.ora parameter is involved: query_rewrite_enabled=true

In addition, the cost-based optimizer must be turned on for analyzing all tables or indexes in the UDDISYS schema. For example:

execute dbms_stats.gather_schema_stats(ownname=>'UDDISYS',cascade=>true);

Accuracy of Modified Timestamps of UDDI Entities

The accuracy of modified timestamps of UDDI entities is dependent on the version and compatibility of the database. If the database compatibility is release 9.0.1 or higher, the modified timestamps are of SQL type TIMESTAMP, with accuracy up to microseconds. If the database compatibility is below release 9.0.1, the modified timestamps are of SQL type DATE, with accuracy up to seconds.

Transport Security

The Inquiry API in general does not require authentication. However, if the inquiry end point needs to be protected, transport-level authentication, such as HTTP BASIC authentication and HTTPS SSL client authentication, can be enabled by configuring the web.xml file. A security role, uddiguest, is reserved for accessing the protected inquiry end point. Refer to Oracle Application Server Containers for J2EE Services Guide and Oracle Application Server Containers for J2EE User's Guide for more information about security roles and related security configuration.

For the Publishing endpoint URL, you may want to allow HTTPS access only. To disable HTTP access, edit the web.xml file of the orauddi application to enforce data confidentiality and make adjustments to HTTP servers accordingly. Refer to the chapter on security in Oracle Application Server Containers for J2EE User's Guide and to Oracle Application Server Containers for J2EE Services Guide for more information. For example, to disable HTTP access in the web.xml file, use the following code:

<user-data-constraint>
    <transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>

Similarly, you can set up HTTPS access for the Administrative endpoint and the UDDI Replication endpoint in the same way.

Standard Classification Support

The OracleAS UDDI Registry uses the following three standard classifications:

  • North American Industry Classification System (NAICS)

    This is a classification system for each industry and corresponding code. For more information about NAICS, see the Web site at

     http://www.census.gov/epcd/www/naics.html
    
    
  • Universal Standard Products and Services Codes (UNSPSC)

    This is the first coding system to classify both products and services for use throughout the global marketplace. For more information about UNSPSC, see the Web site at

     http://eccma.org/unspsc/
    
    
  • ISO-3166 Geographic classification (ISO-3166)

    This is a list of all country names and each corresponding two-character code element. For more information about ISO-3166, see the Web site at

    http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/index.html
    
    

When Web Services provider administrators publish Web Services, they can select the classification and the category to which they want to register the Web Services. They have the option of publishing their Web Services to any or all three of these classifications, and to as many categories and subcategories as they wish within each classification.

Database Character Set and Built-in ISO-3166 Classification

The UDDI specification mandates that the registry support the full UTF-8 character set. Oracle recommends, though does not require, using UTF-8 as the character set for the Oracle Application Server infrastructure database if the OracleAS UDDI Registry is used.

If the database is not configured with the UTF-8 character set or its equivalent or superset, there could be data corruption and error due to loss in character set conversion to or from UTF-8. Refer to Oracle9i Globalization Support Guide for details.

In particular, the descriptions in the UDDI built-in ISO-3166 classification contains descriptions with non-ASCII characters, such as some Western European characters and some Eastern European characters for the names of cities or regions. In order to support the non-UTF-8 database, all non-ASCII characters in the descriptions are replaced with ASCII characters as an approximation.

If you do have a UTF-8 database, you can upgrade the built-in ISO-3166 classification to the one with accurate descriptions using the following instructions:

  • Delete the existing ISO-3166 classification by running the SQL script, clrISO.sql, for example:

    cd <ORACLE_HOME>/uddi/admin
    sqlplus system/manager @clrISO.sql
    
    
  • Load the ISO-3166 classification with accurate descriptions by using SQL* Loader control file iso3166-99.ctl, for example:

    cd <ORACLE_HOME>/uddi/admin
    sqlldr userid=system/manager control=iso3166-99.ctl
    
    

Considerations in a Production Environment

The following information describes some postinstallation configuration steps that you should do immediately after the installation. These steps are not mandatory, but are highly recommended in a production environment.

  • Security for publishing the end point: By default, HTTP access is enabled. However, HTTPS access is recommended for security concerns. See Transport Security for more information about disabling HTTP access.

  • Database connection pool sizing and statement caching: Database connection pool parameters, such as maximum number of database connections and usage of statement caching, should be configured to accommodate the actual database server load.

    If you are using an Oracle database of your choice as the backend storage, the parameters can be configured by editing the data source jdbc/OracleUddi. Refer to the chapter on data sources in Oracle Application Server Containers for J2EE Services Guide for more information. If you are using the Oracle Application Server infrastructure database as the backend storage, the parameters can be configured by modifying the following UDDI server configuration parameters:

    • oracle.uddi.server.db.minConnections

    • oracle.uddi.server.db.maxConnections

    • oracle.uddi.server.db.jdbcDriverType

    • oracle.uddi.server.db.stmtCacheType

    • oracle.uddi.server.db.stmtCacheSize

    Refer to Server Configuration and Server Configuration Properties Reference Information for more information.

  • Change of the operatorName and businessEntity discoveryURL prefix: In some cases, administrators may want to change either the operatorName or businessEntity discoveryURL prefixes, or both parameter values, when moving a system from a staging environment to a production environment.

    The SQL script ${ORACLE_HOME}/uddi/admin/uddirpic.sql on UNIX or %ORACLE_HOME%\uddi\admin\uddirpic.sql on Windows can be used to change the these parameter values.

Server Configuration Properties Reference Information

This section describes reference information for some UDDI server configuration properties. It is divided into the following sections:

These server configuration parameters are referenced in Server Configuration . As each example shows, these configuration parameters can be changed only by using the command-line administration tool, uddiadmin.jar, which is described in Using the Command-Line Tool uddiadmin.jar .

Installation or First-Use Properties

The following two properties operatorName and businessEntityURLPrefix should be changed immediately after an installation, but should not be changed afterward:

operatorName

Property name: operatorName

Description: Provides the name of the operator of the OracleAS UDDI Registry. This name appears in the operator attribute of responses. Setting this parameter applies in a retroactive fashion to existing entities in the database. For example, changing the operator name results in all business and tModel data structures that currently have the old operator name to be changed to the new operator name.


Note:

Be sure to set this parameter before enabling replication.

Property type/allowable values: A non-null string.

Initial value: OracleUddiServer

Typical value: <domain of the UDDI registry>/uddi

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password>
 [-verbose] -setProperty oracle.uddi.server.operatorName=OracleUddiServer

businessEntityURLPrefix

Property name: businessEntityURLPrefix

Description: Provides the prefix of the generated discoveryURL, which is automatically generated for each businessEntity data structure saved in the registry. The prefix should be customized for your deployment environment. Setting this parameter applies in a retroactive fashion to existing entities in the database. For example, changing the discoveryURL prefix results in all discoveryURLs of usetype "businessEntity" that begin with the old URL prefix to be changed to the new URL prefix.


Note:

Be sure to set this parameter before enabling replication.

Property type/allowable values: A valid URL.

Initial value: The OracleAS UDDI Registry will prompt an administrator for an initial value upon server initialization.

Typical value: The host name and port should be the host name and port of the Web server (which may or may not be the same as the servlet container).

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password>
 [-verbose] -setProperty oracle.uddi.server.businessEntityURLPrefix=

defaultLang

Property name: defaultLang

Description: Provides the default language of the registry for the purpose of filling in UDDI v1.0 description elements, which lack a language qualification. Language defaults are not done for UDDI v2.0 requests. Valid values are the values of the xml:lang attribute.

Property type/allowable values: Values of xml:lang.

Initial value: en

Typical value: The location of the primary region the registry serves.

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password>
 [-verbose] -setProperty oracle.uddi.server.defaultLang=en

External Classification Validation Properties

The following UDDI server properties can be used with external classification validation:

externalValidation

Property name: externalValidation

Description: Determines if external validation occurs.

Property type/allowable values: Boolean (true, false)

Initial value: false

Typical value: false

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password>
 [-verbose] -setProperty oracle.uddi.server.externalValidation=true

externalValidationTModelList

Property name: externalValidationTModelList

Description: Provides the list of tModel key-URL pairs that represents the categorization and identifier tModel data structures that will be validated by an external SOAP service. The tModelKey and URL values within a pair are separated by a comma (,), and pairs of values are separated by a semicolon (;).

Property type/allowable values: N/A

Initial value: null value ""

Typical value: null value ""

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password>
 [-verbose] -setProperty oracle.uddi.server.externalValidationTModelList=uuid:acme-taxonomy-key, http://acme.com/externalValidation

externalValidationTimeout

Property name: externalValidationTimeout

Description: Defines the amount of time, in milliseconds, before timeout occurs for external validation.

Property type/allowable values: long

Initial value: 5000

Typical value: N/A

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password>
 [-verbose] -setProperty oracle.uddi.server.externalValidationTimeout=5000

UDDI Replication Properties

The following UDDI server properties can be used with replication:

taskExecutionPeriod

Property name: taskExecutionPeriod

Description: Controls the period of time during which replication task should be executed (in milliseconds).

Property type/allowable values: long

Initial value: 5000

Typical value: N/A

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password>
 [-verbose] -setProperty oracle.uddi.server.replication.taskExecutionPeriod=5000

maxChangeRecordsSentEachTime

Property name: maxChangeRecordsSentEachTime

Description: Controls the maximum number of change records sent out in response to an incoming getChangeRecords request.

Property type/allowable values: integer

Initial value: 100

Typical value: N/A

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password>
 [-verbose] -setProperty oracle.uddi.server.replication.maxChangeRecordsSentEachTime=100

pushTaskExecutionPeriod

Property name: pushTaskExecutionPeriod

Description: Controls the push task execution period (in milliseconds).

Property type/allowable values: long

Initial value: 45000

Typical value: N/A

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password>
 [-verbose] -setProperty oracle.uddi.server.replication.pushTaskExecutionPeriod=45000

pushEnabled

Property name: pushEnabled

Description: Controls whether or not push should be performed for UDDI replication.

Property type/allowable values: Boolean (true, false)

Initial value: true

Typical value: true

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password>
 [-verbose] -setProperty oracle.uddi.server.replication.pushEnabled=true

soapRequestTimeout

Property name: soapRequestTimeout

Description: Controls the timeout value for each SOAP replication request (in milliseconds).

Property type/allowable values: long

Initial value: 180000

Typical value: N/A

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password>
 [-verbose] -setProperty
 oracle.uddi.server.replication.soapRequestTimeout=180000

soapRequestAuthMethod

Property name: soapRequestAuthMethod (Authentication property)

Description: Controls the authentication method the registry node will try to use in sending replication SOAP requests to other nodes. If CLIENT-CERT is used, the administrator must set the wallet password each time the registry node gets started or restarted.

Property type/allowable values: one of {NONE, CLIENT-CERT}

Initial value: NONE

Typical value: CLIENT-CERT

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password>
 [-verbose] -setProperty oracle.uddi.server.replication.soapRequestAuthMethod=NONE

walletLocation

Property name: walletLocation (Authentication property)

Description: Defines the wallet file name. The wallet file will be located in the same place as uddiserver.config.

Property type/allowable values: N/A

Initial value: ewallet.p12

Typical value: N/A

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password>
 [-verbose] -setProperty oracle.uddi.server.replication.walletLocation=ewallet.p12

startMaintainingUpdateJournal

Property name: startMaintainingUpdateJournal (Advanced use property)

Description: Controls whether or not the update journal will be maintained for UDDI replication. This property must be set to true for replication to occur.


Note:

Be sure to upload a correct replication configuration before you set this property to true.


Note:

Once you set this property to true, you should only set it back to false if you no longer want to participate in UDDI replication. Setting this property haphazardly from true to false will result in fatal loss of change records.

Property type/allowable values: Boolean (true, false)

Initial value: false

Typical value: false

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password>
 [-verbose] -setProperty oracle.uddi.server.replication.startMaintainingUpdateJournal=false

changeRecordWantsAck

Property name: changeRecordWantsAck (Advanced use property)

Description: Controls whether or not ACK is required for the change records sent out from the local node.

Property type/allowable values: Boolean (true, false)

Initial value: false

Typical value: false

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password>
 [-verbose] -setProperty oracle.uddi.server.replication.changeRecordWantsAck=false

UDDI Replication Scheduler Properties

The following UDDI server properties can be used to set UDDI replication scheduler properties:

timer_pool_size

Property name: timer_pool_size

Description: Specifies the number of concurrently active threads used by the scheduler.

Property type/allowable values: N/A

Initial value: 1

Typical value: 1

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password>
 [-verbose] -setProperty oracle.uddi.server.scheduler.timer_pool_size=1

status

Property name: status

Description: Indicates whether or not the scheduler is enabled to send out replication requests.

Property type/allowable values: Boolean (0=off, 1=on)

Initial value: 1

Typical value: 1

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password>
 [-verbose] -setProperty oracle.uddi.server.scheduler.status=1

Registry-Based Validation Properties

The following UDDI server properties can be used for registry-based validation and quota limit checking:

categoryValidationTModelKeys

Property name: categoryValidationTModelKeys (Advanced use property)

Description: Represents the categorization and identifier tModel keys, which will be validated by the registry during an attempted save operation.

Property type/allowable values: A list in the form of '<tModelKey1>', '<tModelKey2>', '<tModelKey3>'.

Initial value: 'UUID:C1ACF26D-9672-4404-9D70-39B756E62AB4', which represents (uddi-org:types classification). The preinstalled value, however, is the UDDI types classification plus the three classifications defined in the UDDI v1.0 specification: (uddi-org:types, uddi-org:iso-ch:3166-1999, ntis-gov:naics:1997, unspsc-org:unspsc).


Note:

The uddi-org:types classification should not be removed from the list.

Typical value: The preinstalled value.

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password>
 [-verbose] -setProperty 
"oracle.uddi.server.categoryValidationTModelKeys=
'UUID:C1ACF26D-9672-4404-9D70-39B756E62AB4',
'UUID:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',
'UUID:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',
'UUID:CD153257-086A-4237-B336-6BDCBDCC6634' "

identifierValidation

Property name: identifierValidation (Advanced use property)

Description: Controls validation for all IdentifierBag entities. The following flag settings are allowed:

  • full -- all validation conditions will be checked

  • tmodel_existence -- only tModelKey existence will be validated

  • none -- no condition will be checked

Property Type/allowable values: full, tmodel_existence, none

Initial value: full

Typical value: full

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password>
 [-verbose] -setProperty oracle.uddi.server.identifierValidation=full

operatorCategory

Property name: operatorCategory (Advanced use property)

Description: Determines whether or not additional entities may be categorized as an operator node, if categoryValidation is true.

Property type/allowable values: Boolean (true, false)

Initial value: true

Typical value: true

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password> [-verbose] -setProperty
  oracle.uddi.server.categoryValidation.operatorCategory=true

categoryValidation

Property name: categoryValidation (Advanced use property)

Description: Controls validation for all CategoryBag entities. The following flag settings are allowed:

  • full -- all validation conditions will be checked

  • tmodel_existence -- only tModelKey existence will be checked

  • none -- no condition will be checked

Property type/allowable values: full, tmodel_existence, none

Initial value: full

Typical value: full

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password>
 [-verbose] -setProperty oracle.uddi.server.categoryValidation=full

assertionKeyedRefValidation

Property name: assertionKeyedRefValidation (Advanced use property)

Description: Controls validation for all publisher assertion KeyedReference entities. The following flag settings are allowed:

  • full -- all validation conditions will be checked

  • tmodel_existence -- only tModelKey existence will be validated

  • none -- no condition will be checked

Property type/allowable values: full, tmodel_existence, none

Initial value: full

Typical value: full

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password> [-verbose] -setProperty
oracle.uddi.server.assertionKeyedRefValidation=full

tModelInstanceInfoKeyValidation

Property name: tModelInstanceInfoKeyValidation (Advanced use property)

Description: Determines if tModelKey existence validation occurs within tModelInstanceInfo elements.

Property type/allowable values: Boolean (true, false)

Initial value: true

Typical value: true

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password>
 [-verbose] -setProperty oracle.uddi.server.tModelInstanceInfoKeyValidation=true

addressTModelKeyValidation

Property name: addressTModelKeyValidation (Advanced use property)

Description: Determines if tModelKey existence validation occurs within address elements.

Property type/allowable values: Boolean (true, false)

Initial value: true

Typical value: true

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password>
 [-verbose] -setProperty oracle.uddi.server.addressTModelKeyValidation=true

hostingRedirectorValidation

Property name: hostingRedirectorValidation (Advanced use property)

Description: Determines if hostingRedirector validation occurs within bindingTemplate elements. Validation ensures that the referenced bindingTemplate element exists and does not contain a hostingRedirector element.

Property type/allowable values: Boolean (true, false)

Initial value: true

Typical value: true

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password>
 [-verbose] -setProperty oracle.uddi.server.hostingRedirectorValidation=true

Miscellaneous Properties

The following UDDI server properties are miscellaneous.

quotaLimitChecking

Property name: quotaLimitChecking

Description: Determines whether or not publishing quotas, the limits on the number of entities that can be created in the registry per user, are enforced.

Property type/allowable values: Boolean (true, false)

Initial value: true

Typical value: true

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password>
 [-verbose] -setProperty oracle.uddi.server.quotaLimitChecking=true

schemaValidationUponIncomingRequests

Property name: schemaValidationUponIncomingRequests (Advanced use property)

Description: Determines whether or not the server will validate incoming requests against the UDDI XML schema.

Property type/allowable values: Boolean (true, false)

Initial value: true

Typical value: true

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password> [-verbose] -setProperty
oracle.uddi.server.schemaValidationUponIncomingRequests=true

Database Connection Properties

The following UDDI server properties can be used for configuring database connection properties:

minConnections

Property name: minConnections (Advanced use property)

Description: Determines the minimum number of database connections in the connection pool. This property is applicable only if the Oracle Application Server infrastructure database is used as the backend storage.


Note:

In a cluster environment, this property must be set for each OC4J instance.

Property type/allowable values: A nonnegative integer that is smaller than the value for maxConnections.

Initial value: 1

Typical value: 1

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password> [-verbose] -setProperty
  oracle.uddi.server.db.minConnections=1

maxConnections

Property name: maxConnections (Advanced use property)

Description: Determines the maximum number of database connections in the connection pool. This property is applicable only if the Oracle Application Server infrastructure database is used as the backend storage.


Note:

In a cluster environment, this property must be set for each OC4J instance.

Property type/allowable values: A positive integer.

Initial value: 8

Typical value: Depends on the maximum number of concurrent requests and the desired performance.

Guideline: The estimated maximum number of concurrent requests plus a percentage of the buffer.

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password> [-verbose] -setProperty
  oracle.uddi.server.db.maxConnections=12

jdbcDriverType

Property name: jdbcDriverType (Advanced use property)

Description: Defines the type of JDBC driver to be used to access the Oracle Application Server infrastructure database. This property is applicable only if the Oracle Application Server infrastructure database is used as the backend storage.


Note:

In a cluster environment, this property must be set for each OC4J instance.

Property type/allowable values: {thin, oci}

Initial value: thin

Typical value: N/A

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password> [-verbose] -setProperty
  oracle.uddi.server.db.jdbcDriverType=thin

stmtCacheType

Property name: stmtCacheType (Advanced use property)

Description: Defines the type of statement caching. This property is to be used with the Oracle Application Server infrastructure database and JDBC driver only.


Note:

In a cluster environment, this property must be set for each OC4J instance.

Property type/allowable values: {NONE, IMPLICIT, EXPLICIT}

Initial value: NONE

Typical value: EXPLICIT

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password> [-verbose] -setProperty
  oracle.uddi.server.db.stmtCacheType=NONE

stmtCacheSize

Property name: stmtCacheSize (Advanced use property)

Description: Defines the size (number of statements cached) of statement caching per connection. This property is to be used with the Oracle Application Server infrastructure database and JDBC driver only.


Note:

In a cluster environment, this property must be set for each OC4J instance.

Property type/allowable values: integer

Initial value: 50

Typical value: 50

Guideline: N/A

Example:

java -jar uddiadmin.jar <registry admin URL> <username> <password> [-verbose] -setProperty
  oracle.uddi.server.db.stmtCacheSize=50

OracleAS UDDI Server Error Message Reference Information

The error codes listed are used by UDDI administrators. In general, UDDI error code E_fatalError can represent various server-side errors that an administrator has to handle. The specific server-side error is captured in the J2EE application log file. The log file is typically located at <J2EE_HOME>/application-deployments/orauddi/application.log. The reference provides additional information for an administrator to diagnose and resolve problems.

WUR-00010: An attempt was made to update a configuration parameter that does not exist ''{0}''.
Cause: The named UDDI server configuration parameter does not exist.
Action: Correct the spelling of the name of the configuration parameter to be updated. Refer to the configuration parameter reference information for details.
WUR-00011: An attempt was made to update a configuration parameter ''{0}'' in uddiserver.config. That file cannot be found.
Cause: The UDDI server configuration file uddiserver.config could not be found.
Action: Make sure that the JVM property oracle.home of the OC4J instance is defined properly.
WUR-00012: The specified user name, ''{0}'', is not a name that is known to the registry.
Cause: The named user does not exist in the registry.
Action: Correct the spelling of the named user.
WUR-00013: The 'Default' role for publishing limits may not be deleted.
Cause: An attempt was made to remove the system-defined user quota role 'Default.'
Action: Do not delete the user quota role 'Default.' If the 'Default' user quota role is not desirable, set the quota limits to zero to disable it.
WUR-00050: Unable to retrieve subscription management configuration parameter ''{0}'': Internal database schema configuration error encountered.
Cause: An internal database configuration error occurred while retrieving the configuration parameter for the subscription management module.
Action: Identify the database error message embedded in the details of the error. Correct the database configuration according to the database error message.
WUR-00051: Unable to set subscription management configuration parameter ''{0}'': Internal database schema configuration error encountered.
Cause: An internal database configuration error occurred while setting the configuration parameter for the subscription management module.
Action: Identify the database error message embedded in the details of the error. Correct the database configuration according to the database error message.
WUR-00100: An internal error occurred while marshaling the response.
Cause: An unexpected internal error occurred in writing the response to a client.
Action: Identify and correct the internal error. The internal error is embedded in the details of the error.
WUR-00101: An internal error occurred while unmarshaling the request.
Cause: An unexpected internal error occurred in parsing the request sent by a client.
Action: Identify and correct the internal error. The internal error is embedded in the details of the error.
WUR-00104: The value of the configuration parameter named ''{0}'' is invalid.
Cause: The value of the named UDDI server configuration parameter was invalid.
Action: Refer to the configuration parameter reference information for the valid values. Use the UDDI administration tool to update the configuration parameter.
WUR-00105: A database error with SQL code ''{0}'' occurred while trying to ''{1}''.
Cause: An unexpected database error occurred in carrying out the named action.
Action: Identify and correct the database error. The database error is embedded in the details of the error.
WUR-00106: An internal error caused the request to fail to make the specified updates. While rolling back the changes, another error occurred; this leaves data in an unpredictable state.
Cause: An unexpected database error occurred in rollback phases of error processing.
Action: Identify and correct the database error. The database error is embedded in the details of the error.
WUR-00107: An internal error occurred while committing the requested changes to the registry; this leaves data in an unpredictable state.
Cause: An unexpected database error occurred in committing the requested changes.
Action: Identify and correct the database error. The database error is embedded in the details of the error.
WUR-00108: An internal error occurred while trying to get a connection to the underlying database.
Cause: An unexpected database error occurred in obtaining a database connection to serve the request.
Action: Identify and correct the database error. The database error is embedded in the details of the error.
WUR-00109: An internal error occurred while trying to close a connection to the underlying database.
Cause: An unexpected database error occurred during the release of the database connection after the request was served.
Action: Identify and correct the database error. The database error is embedded in the details of the error.
WUR-00110: An internal error occurred while trying to create and set up a data source abstraction for the underlying database.
Cause: An unexpected internal error occurred while creating the database connection pool.
Action: Identify and correct the internal error. The internal error is embedded in the details of the error.
WUR-00111: An internal error occurred while trying to perform a JNDI lookup and locate of the object ''{0}''.
Cause: An internal error occurred in obtaining the named object from the JNDI context. Examples of possible objects include database connection pools, message queues, and so forth.
Action: Identify and correct the internal error. The internal error is embedded in the details of the error.
WUR-00113: An internal error occurred while trying to access the repository API to set up a data source abstraction.
Cause: An unexpected internal error occurred while creating the database connection pool using Oracle Application Server metadata repository access API.
Action: Identify and correct the internal error. The internal error is embedded in the details of the error.
WUR-00114: An internal error occurred while trying to generate a Universal Unique Identifier (UUID).
Cause: An unexpected internal error occurred while generating a UUID.
Action: Identify and correct the internal error. The internal error is embedded in the details of the error.
WUR-00115: The registry was unable to retrieve OC4J-specific environment settings from the J2EE container; the user ''{0}'' cannot be authenticated.
Cause: An unexpected internal error occurred while authenticating the user. The error is usually due to incorrect settings in web.xml or using an unsupported version of the OC4J container.
Action: Identify and correct the internal error. The internal error is embedded in the details of the error.
WUR-00116: An internal error occurred while performing the automatic postinstallation configuration for the UDDI registry. Regular registry operations cannot proceed if the registry is not properly configured.
Cause: An unexpected internal error occurred in performing the automatic postinstallation configuration for the UDDI registry.
Action: Identify and correct the internal error. The internal error is embedded in the details of the error.
WUR-00117: Cannot close data source properly.
Cause: An unexpected internal error occurred while closing the database connection pool during shutdown of the UDDI registry.
Action: Identify and correct the internal error. The internal error is embedded in the details of the error.
WUR-00200: An internal error occurred during external validation.
Cause: An unexpected internal error occurred while making a validation call to an external validation service.
Action: Identify and correct the internal error. The internal error is embedded in the details of the error.
WUR-00201: An internal error occurred during external validation while processing the in-memory request.
Cause: An unexpected internal error occurred while processing the UDDI entities in the request before they were sent for external validation.
Action: Identify and correct the internal error. The internal error is embedded in the details of the error.
WUR-00202: An internal error occurred during external validation because the tModel list property, ''{0}'', has the wrong format.
Cause: The value of the UDDI server configuration property, oracle.uddi.server.externalValidationTModelList, was invalid.
Action: Correct the value. Refer to the configuration parameter reference information for details.
WUR-00203: An internal error occurred during external validation because the timeout property, ''{0}'', is not the right integer format.
Cause: The value of the UDDI server configuration property, oracle.uddi.server.externalValidationTimeout, was invalid.
Action: Correct the value. Refer to the configuration parameter reference information for details.
WUR-00204: An internal error occurred during external validation because the response is not a correct DispositionReport.
Cause: DispositionReport returned by the external validation service was invalid. For example, DispositionReport was empty.
Action: Contact the external validation service provider.
WUR-00205: An internal error occurred during external validation because the response is not expected. The response is of code ''{0}'' with message ''{1}''.
Cause: DispositionReport returned by the external validation service contained an unexpected DispositionReport error number.
Action: Contact the external validation service provider.
WUR-00300: DB schema version is missing. Please check DB for VERSION table.
Cause: The version of the database schema for persistent storage was missing.
Action: Contact Oracle Support Services.
WUR-00301: DB schema version ''{0}'' is incompatible with mid-tier version. DB schema must be updated to make the UDDI registry function.
Cause: The version of the database schema for persistent storage was not supported by the version of the registry being used.
Action: Upgrade the database schema to the latest version. Refer to the UDDI database schema upgrade documentation for details.
WUR-00302: An internal error occurred while trying to retrieve and load the UDDI DELTA server property file.
Cause: An internal error occurred while initializing the UDDI registry in the backward compatibility mode with an older version of the database schema.
Action: Contact Oracle Support Services.
WUR-00303: This operation is not allowed by DB schema version ''{0}''. You must upgrade DB schema to the latest version to carry out this operation.
Cause: The requested operation was not supported because the UDDI registry was running in the backward compatibility mode with an older version of the database schema.
Action: Upgrade the database schema to the latest version. Refer to the UDDI database schema upgrade documentation for details.
WUR-05001: Cannot find the UDDI entity just saved.
Cause: An unexpected internal error occurred in updating the update journal.
Action: Contact Oracle Support Services.
WUR-05002: Cannot perform custody transfer for an entity that is not businessEntity or tModel. The key of the offending entity is ''{0}''.
Cause: In the custody transfer change record, the specified UDDI entity is not businessEntity or tModel.
Action: Contact the administrator of the UDDI node where the change record originated.
WUR-05003: Warning: Received a duplicate change record originating from node ''{0}'' with usn ''{1}''.
Cause: A duplicate change record sent from the named UDDI node was detected.
Action: No action is needed. This is merely an informational message.
WUR-05004: Received an out-of-order change record originating from node ''{0}'' with usn ''{1}''. The change record with usn ''{2}'' has been processed.
Cause: The named change record was received after a change record with a larger update sequence number (USN) had been processed.
Action: Contact the administrator of the UDDI node where the change record originated.
WUR-05005: The change record originating from node ''{0}'' with usn ''{1}'' is invalid because the named node is not recognized.
Cause: The originating node of the named change record was not recognized. In other words, the node was not recorded in the replication communication graph.
Action: Contact the administrator of the UDDI node that provided the change record.

OracleAS UDDI Content Syndication UI Implementation Error Message

The following error message is associated with the UDDI content syndication UI implementation. This error is returned to the user, non administrator, as a message within the GUI.

Error Code OSS-00301:
The requested action can be only done by an administrator.
Cause: The logged in user does not have enough privileges to perform the requested action.
Action: Login as administrator and request the action again.

UDDI Open Database Support

In addition to the Oracle Application Server infrastructure database, the following databases are supported:

For Microsoft SQL Server and IBM DB2, the Oracle Application Server DataDirect Connect JDBC driver is needed.

The following installation steps for SQL Server, DB2, and Oracle assume that the relevant database server has been installed. These instructions also assume that Oracle Application Server Portal has been installed, which should copy the relevant UDDI files to ${ORACLE_HOME}/uddi/admin on UNIX or %ORACLE_HOME%\uddi\admin on Windows.

Microsoft SQL Server

The following sections describe installation and configuration information.

Script Source Directory

Installation must be performed from a Windows machine. If the %ORACLE_HOME%\uddi\admin\mssql directory is not accessible from the SQL Server machine, then copy this directory to a location that is accessible. This directory (or the original %ORACLE_HOME%\uddi\admin\mssql if no copying is necessary) will be referred to as %MSSQL_HOME_DB%.

Create the Database and User

The %MSSQL_HOME_DB%\wurcreatedb_mssql.sql script has been provided to create the uddisys database and uddisys user for a SQL Server instance in mixed-authentication mode. If you are using Windows authentication or wish to alter some of the settings in this script, you may do so as long as all the following requirements are met:

  • The collation for the uddisys database must be case-sensitive.

  • Recursive triggers must be enabled on the uddisys database.

  • The uddisys user must have the uddisys database as its default database.

  • The uddisys user must be a member of the db_owner role for the uddisys database.

To run the script with the Microsoft osql utility, use the administrator login and password (sa/sa):

osql -S <server> -U sa -P sa  -i wurcreatedb_mssql.sql

where <server> is the server hosting the SQL Server instance.

Install the Schema

Go to the %MSSQL_HOME_DB% directory. Use the osql utility to execute the SQL script wurinst_mssql.sql using the uddisys/uddisys account created in Create the Database and User.The syntax is as follows:

osql -S <server> -U <user> -P <password> -d <database> -i wurinst_mssql.sql

where <server> is the server hosting the SQL Server instance.For example:

osql -S server-machine -U uddisys -P uddisys -d uddisys -i wurinst_mssql.sql

Import BUILTIN_CHECKED_CATEGORY Table Entries

Import the iso3166-99_tModelKey.txt, naics-97_tModelKey.txt, and unspsc-73_tModelKey.txt files into the BUILTIN_CHECKED_CATEGORY table as follows:

  1. Select the Import and Export Data option from the SQL Server Start menu options. Click Next.

  2. For the Data Source, select the last option, Text File. Then, provide the name and location of the appropriate text file, %MSSQL_HOME_DB%\iso3166-99_tModelKey.txt. Click Next.

  3. The default file format should be Delimited. Accept this by clicking Next.

  4. Set the delimiter to the ("|") character. Click Next.

  5. Select the uddisys database for the destination. Provide the appropriate authentication mechanism and credentials, which are SQL Server Authentication with user uddisys and password uddisys, by default. Make sure that the selected database is uddisys. Click Next.

  6. Click the Destination and select the BUILTIN_CHECKED_CATEGORY table.

  7. Click Transform. Map TMODEL_KEY to Col001, KEY_NAME to Col003, KEY_VALUE to Col002, and PARENT_VALUE to Col004. Click OK.

  8. Click Next.

  9. Click Next to run immediately and click Finish to start.

  10. Repeat this process for the naics-97_tModelKey.txt and unspsc-73_tModelKey.txt files.


    Note:

    If the character set of your database is not UTF-8, do not use the script iso3166-99.txt to load the ISO3166 taxonomy because the taxonomy contains characters from different languages. Instead, use the script iso3166-99-ascii.txt to load an ASCII-only version of the taxonomy.

Configure OracleAS OC4J to Use SQL Server

Define a data source with the name and location set to jdbc/OracleUddi to reflect that SQL Server is the desired database, like the following:

<data-source    class="com.evermind.sql.DriverManagerDataSource"    name="jdbc/OracleUddi"    location="jdbc/OracleUddi"    connection-driver="com.oracle.ias.jdbc.sqlserver.SQLServerDriver"    username="uddisys"    password="uddisys"url="jdbc:oracle:sqlserver://<servername>:1433;SelectMethod=cursor;User=uddisys;Password=uddisys"
/>

Note that <servername> is the network name or IP address of the server hosting the SQL Server instance used for UDDI.

The data source needs to be accessible by the orauddi.ear and oraudrepl.ear files.

Refer to the Data Sources chapter in the Oracle Application Server Containers for J2EE Services Guide for more information.

Restart the UDDI server for these changes to take effect.

IBM DB2

The following sections describe installation and configuration information.

Script Source Directory

If the ${ORACLE_HOME}/uddi/admin/db2 directory is not accessible from the machine with the relevant DB2 tools, then copy this directory to a location that is accessible. This directory will be referred to as ${DB2_HOME_DB} on UNIX or %DB2_HOME_DB% on Windows.

Create the Database and User

Go to the ${DB2_HOME_DB} directory on UNIX or the %DB2_HOME_DB% directory on Windows. The wurcreatedb_db2.sql script is provided for creating the uddisys database. The user is responsible for creating a uddisys user with password uddisys based on the authentication scheme that is being used for DB2. By default, this requires creating a uddisys user at the operating system level.

If you wish to alter some of the settings in this script, you may do so as long as both the following requirements are met:

  • The default tablespace for the uddisys database must be at least 8 KB pages. This also requires providing a buffer pool that will support a page size of at least 8 KB.

  • The applheapsz parameter must be increased to approximately 12800 pages.

To run the script, start the DB2 Command Line Processor by entering db2 in UNIX or db2cmd in Windows. Then, execute the script:

db2 -t +p < wurcreatdb_db2.sql

where -t allows the use of semicolons to terminate SQL statements and +p suppresses prompting.

Install the Schema

Run the wurinst_db2.sql script. This also triggers the wurcreat.sql, wurdbsql.sql, and wurpopul.sql scripts. To run these scripts, do the following:Launch the command-line processor as previously described, then enter the following:

db2 -t +p < wurinst_db2.sql

Import BUILTIN_CHECKED_CATEGORY Table Entries

Import the iso3166-99_tModelKey.txt, naics-97_tModelKey.txt, and unspsc-73_tModelKey.txt files into the BUILTIN_CHECKED_CATEGORY table as follows:

  1. Right click the table BUILTIN_CHECKED_CATEGORY from the Control Center and select IMPORT.

  2. Specify the Import file as ${DB2_HOME_DB}/iso3166-99_tModelKey.txt for UNIX or %DB2_HOME_DB%\iso3166-99_tModelKey.txt for Windows.

  3. Select Delimited ASCII format (DEL). Click Options and select ('|') as the delimiter.

  4. Use the INSERT import mode (the default).

  5. Set the Commit records equal to 500.

  6. For the Message file, enter ${DB2_HOME_DB}/uddi/admin/db2/iso3166-99_tModelKey.log for UNIX or %DB2_HOME_DB%\uddi\admin\db2\iso3166-99_tModelKey.log for Windows.

  7. Go to the Columns tab. Select Include Columns by Position. Map TMODEL_KEY to 1, KEY_NAME to 3, KEY_VALUE to 2, and PARENT_VALUE to 4.

  8. Click OK to run the import process.

  9. Repeat this process for the naics-97_tModelKey.txt and unspsc-73_tModelKey.txt files.


    Note:

    If the character set of your database is not UTF-8, do not use the script iso3166-99.txt to load the ISO3166 taxonomy because the taxonomy contains characters from different languages. Instead, use the script iso3166-99-ascii.txt to load an ASCII-only version of the taxonomy.

Configure OracleAS OC4J to Use DB2

The following sections describe how to create the DB2 package and modify the URL for regular use.

Create a DB2 Package

Define a data source with the name and location set to jdbc/OracleUddi to reflect that DB2 is the desired database, like the following:

<data-source    class="com.evermind.sql.DriverManagerDataSource"    name="jdbc/OracleUddi"    location="jdbc/OracleUddi"    connection-driver="com.oracle.ias.jdbc.db2.DB2Driver"    username="uddisys"    password="uddisys"url="jdbc:oracle:db2://<servername>:50000;databaseName=UDDISYS;PackageName=JDBCPKG;DynamicSections=512;CreateDefaultPackage=TRUE;ReplacePackage=true"/>

Note that <servername> is the network name or IP address of the server hosting the DB2 instance used for UDDI.

The data source needs to be accessible by the orauddi.ear and oraudrepl.ear files.

Refer to the Data Sources chapter in the Oracle Application Server Containers for J2EE Services Guide for more information.

Now, launch the UDDI server so that these initial URL connection strings will be used to create the appropriate default package in DB2.

Modify the URL for Regular Use

Now that the DB2 package has been created, update the data source defined in the previous step (see Create a DB2 Package) and change the URL attribute from:

url="jdbc:oracle:db2://<servername>:50000;databaseName=uddisys;PackageName=JDBCPKG;DynamicSections=512;CreateDefaultPackage=TRUE;ReplacePackage=true"

to:

url="jdbc:oracle:db2://<servername>:50000;databaseName=uddisys;PackageName=JDBCPKG;DynamicSections=512"

Note that the last two parameters, CreateDefaultPackage and ReplacePackage, have been removed from the final URL attribute.

Once these changes have been made to both data-sources.xml files, restart the UDDI server for the changes to take effect.

Oracle (Non-OracleAS Infrastructure Database)

The following sections describe installation and configuration information.

Script Source Directory

If the ${ORACLE_HOME}/uddi/admin directory is not accessible from the server with the relevant Oracle tools, then copy this directory to a location that is accessible. This directory will be referred to as ${ORACLE_HOME_ORACLE} on UNIX or %ORACLE_HOME_ORACLE% on Windows.

Create the Database and User

The following steps describe how to create the uddisys database and the uddisys user:

  1. Go to the ${ORACLE_HOME_ORACLE} directory on UNIX or the %ORACLE_HOME_ORACLE% directory on Windows.

  2. Use SQL*Plus to execute the SQL script wurinst.sql using the sys user account. For example:

    sqlplus "sys/change_on_install as sysdba" @wurinst.sql
    
    

The schema uddisys is created with the password uddisys. A log file wurinst.log is produced.

Populate the Validated Taxonomy Codes

Populate the validated taxonomy codes using SQL*Loader with the three control scripts: naics-97.ctl, iso3166-99.ctl, and unspsc-73.ctl. For example:

sqlldr userid=uddisys/uddisys control=naics-97.ctl
sqlldr userid=uddisys/uddisys
   control=unspsc-73.ctl
sqlldr userid=uddisys/uddisys  control=iso3166-99.ctl


Note:

If the character set of your database is not UTF-8, do not use the script iso3166-99.ctl to load the ISO3166 taxonomy because the taxonomy contains characters from different languages. Instead, use the script to load an ASCII-only version of the taxonomy:
sqlldr userid=uddisys/uddisys control=iso3166-99-ascii.ctl


Configure OracleAS OC4J to Use the Non-OracleAS Infrastructure Database

Define a data source with the name and location set to jdbc/OracleUddi to reflect that non-Oracle Application Server infrastructure database is the desired database, like the following:

<data-source    class="oracle.jdbc.pool.OracleConnectionCacheImpl"    name="jdbc/OracleUddi"    location="jdbc/OracleUddi"    connection-driver="oracle.jdbc.driver.OracleDriver"    username="uddisys"    password="uddisys"url="jdbc:oracle:thin:@<servername>:1521:<oracle sid>"
/>

Note that <servername> is the network name or IP address of the server hosting the non-Oracle Application Server infrastructure database instance used for UDDI.

The data source needs to be accessible by the orauddi.ear and oraudrepl.ear files.

Refer to the Data Sources chapter in the Oracle Application Server Containers for J2EE Services Guide for more information.

Restart the UDDI server for these changes to take effect.

UDDI Subscription Service

The OracleAS UDDI Registry, leveraging OracleAS Syndication Services, provides a subscription service allowing publishers in the registry to monitor or obtain changes in the registry. By specifying a specific query or a set of entities, an administrator can define an offer that provides changes in the entities that are interesting to some users or scenarios. For example:

For example, if you want to find all changes to any businessServices entities that are classified under the topic name mining in the NAICS classification scheme, as a user of the registry, you can subscribe to such an offer and automatically receive periodic updates to the content.

Defining Offers

An administrator defines an offer using the OracleAS Syndication Services administrators tool.

  1. Determine the content connector to be used based on the type of filtering criteria.

  2. Create a content provider resource defining the specific filtering criteria.

  3. Create an offer.

    1. Define the contract (such as licensing terms, delivery rules) of the offer.

    2. Grant the offer to uddi_syndication application user, so that regular UDDI publishers can subscribe to the offer using the UDDI Content Subscription Manager.


Note:

The offer must be granted to uddi_syndication user. It is the user used in UDDI Content Subscription Manager.

See Oracle Application Server Syndication Services Developer's and Administrator's Guide for more information.

For example, to provide an offer of changes to businessService entities classified under the mining category in the NAICS classification scheme, the administrator would do the following:

  1. Determine the content connector to be used. First, the administrator determines the content connector to be used based on the type of filtering criteria. In this example, the type of filtering criteria is a finding services by categoryBag. Therefore, the content connector to be used is UddiFindServiceByCategoryBagCPAdaptor.

  2. Create a content provider resource. Secondly, the administrator creates a content provider resource using the content connector selected. The content provider resource defines the specific filtering criteria. In this example, the UDDI Subscription Service specific filtering criteria is that mining category in the NAICS classification scheme.

  3. Create an offer. Finally, the administrator creates an offer (to which regular UDDI publishers can subscribe) using the content provider resource. In addition, to the filtering criteria, the administrator does the following:

    1. Defines the contract (such as licensing terms, delivery rules) of the offer.

    2. Grants the offer to uddi_syndication application user, so that regular UDDI publishers can subscribe to the offer using the UDDI Content Subscription Manager.

OracleAS Syndication Services comes configured with the following content UDDI connectors. A description of each connector is provided along with the specified input arguments or properties each contains.

  • UddiFindBusinessByCategoryBagCPAdaptor -- find businesses by category bag; the category bag contains only one keyed reference with the following properties: tModel key, key name, and key value.

  • UddiFindServiceByCategoryBagCPAdaptor -- find services by category bag; the category bag contains only one keyed reference with the following properties: tModel key, key name, and key value.

  • UddiFindServiceByTModelBagCPAdaptor -- find services by TModel bag; the tModel bag contains only one keyed reference with the following properties: tModel key, key name, and key value.

  • UddiFindTModelByCategoryBagCPAdaptor -- find TModels by category bag; the category bag contains only one keyed reference with the following properties: tModel key, key name, and key value.

  • UddiGetBusinessDetailCPAdaptor -- get the full businessEntity information for one business identified by a BusinessKey.

  • UddiGetServiceDetailCPAdaptor -- get full details for a registered businessService identified by a ServiceKey.

  • UddiGetBindingDetailCPAdaptor -- get full bindingTemplate information suitable for making one or more service requests identified by a BindingKey.

  • UddiGetTModelDetailCPAdaptor -- get full details for a registered tModel data structure identified by a TModelKey.

  • UddiFindBusinessByNameCPAdaptor -- find one business by name; the name is the business name prefix.

The OracleAS Syndication Services administrator:

  1. May register a content provider for any of these preconfigured connectors by specifying its properties, selecting the desired UDDI content connector, and specifying settings to access the content repository and its resources.

  2. May create an offer for a content provider by selecting the content provider resource, specifying its offer properties, and choosing users or groups to which to grant access to this offer.

Once the offers are created, the UDDI Content Subscription Administrator uses the Web-based UDDI Content Subscription Manager to:

  1. Manage UDDI application subscription properties, such as configuring the UDDI Content Subscription Manager with OracleAS Syndication Services.

  2. Subscribe to available offers as well as cancel his own subscriptions and those belonging to any user.

See Subscribing to an Offer for more information about using this administrative tool to create OracleAS UDDI Registry UDDI Registry-based subscriptions. See Oracle Application Server Syndication Services Developer's and Administrator's Guide for more information about managing and registering content providers and creating offers and associated offer contracts with content providers.

Advanced Topic: Creating New UDDI Content Connectors

OracleAS UDDI Registry provides a command-line tool to facilitate the automatic generation of custom OracleAS Syndication Services content connectors for various UDDI inquiry requests. The command-line tool can be described as follows:

generateCPA

Parameter: <registry admin URL> <username> <password> [-verbose] -generateCPA <javaClassName> <uddiRequestXMLTemplate>

Description: Given the UDDI request template XML, generates an OracleAS Syndication Services content connector, in the format of a Java class file. The generated Java class file will have the name as specified by the javaClassName parameter and a fixed Java package of oracle.uddi.server.subscription.cp. In order for OracleAS Syndication Services to find it, the Java class file should be incorporated into the existing JAR file located in the following directory:

For UNIX:

<ORACLE_HOME>/syndication/lib/cp/uddicpas.jar

For Windows:

<ORACLE_HOME>\syndication\lib\cp\uddicpas.jar

For example, given the following XML file findbiz.xml as a UDDI request template, perform the following steps:

<find_business xmlns='urn:uddi-org:api_v2' generic='2.0'>   <findQualifiers>      <findQualifier>sortByNameDesc</findQualifier>      <findQualifier>sortByDateAsc</findQualifier>      <findQualifier>caseSensitiveMatch</findQualifier>    </findQualifiers>    <name>$(BusinessName,"Test")</name> </find_business> 

Note that parameter definitions are allowed in this XML template. The syntax is as follows: $(parameterName) or $(parameterName,"default_value"). For the find_business request template, a parameter with a preset value is defined. An Oracle Application Server UDDI Content Subscription Administrator can generate offers by setting different values to the BusinessName parameter after loading the content connector generated from this XML template. Note that this UDDI request XML template must have a UDDI v2 namespace.

  1. Execute the generateCPA command as follows:

    java -jar uddiadmin.jar <registry admin URL> <username> <password>
     [-verbose] -generateCPA UddiFindBizCPAdaptor findbiz.xml
    
    

    A UddiFindBizCPAdaptor.class file will be generated and must be incorporated into the uddicpas.jar file.

  2. Navigate to the directory where the uddicpas.jar file is located.

    1. Create under this current directory the subdirectory oracle/uddi/server/subscription/cp on UNIX or the subdirectory oracle\uddi\server\subscription\cp on Windows.

    2. Copy your class file, UddiFindBizCPAdaptor.class into the <ORACLE_HOME>/syndication/lib/cp/oracle/uddi/server/subscription/cp directory on UNIX or the <ORACLE_HOME>\syndication\lib\cp\oracle\uddi\server\subscription\cp directory on Windows.

    3. Execute the following JAR command:

      On UNIX:
      jar -uf uddicpas.jar oracle/uddi/server/subscription/cp/UddiFindBusinessByNameCPAdaptor.class
      
      On Windows:
      jar -uf uddicpas.jar oracle\uddi\server\subscription\cp\UddiFindBusinessByNameCPAdaptor.class
      
      
  3. Register the connector. Refer to Oracle Application Server Syndication Services Developer's and Administrator's Guide for more information.

Subscribing to an Offer

The UDDI Content Subscription Manager is a Web-based application that allows users (publishers and administrators) to subscribe to offers from content providers through specialized UDDI content connectors managed by OracleAS Syndication Services. As subscribers to the OracleAS UDDI Registry syndicated by OracleAS Syndication Services, users can create subscriptions to obtain changes in UDDI Registry content delivered to them through e-mail. Users can also cancel their own subscriptions.

The UDDI Content Subscription Manager recognizes two types of users, the regular user or publisher, who has the UDDI publisher privilege, and the administrator of the UDDI Content Subscription Manager, who logs in as a UDDI administrator, for example ias_admin.

The regular user can do the following (see Using the UDDI Content Subscription Manager as a Publisher):

The administrator (for example, ias_admin) can do the following (see Using the UDDI Content Subscription Manager as a UDDI Administrator):

Using the UDDI Content Subscription Manager as a Publisher

To use the UDDI Content Subscription Manager as a UDDI publisher, perform the following steps:

  1. Start the UDDI Content Subscription Manager by entering the following URL:

    http://<host>:<port>/uddisub/subscription/ui
    
    

    where the <host> parameter indicates the system on which the UDDI Content Subscription Manager is installed and the <port> parameter specifies the port number on which it is running.

  2. Next, log in as a UDDI publisher (for example, uddi_publisher/<publisher-password>). The UDDI Content Subscription Manager home page or Subscriptions page is displayed, as shown in Figure 10-2.

    As the UDDI publisher, you can do any of the following tasks:

    1. Create a subscription.

      Click Subscribe Wizard to launch a 5-step subscribe wizard that lets you choose an offer, accept the business terms of the offer, select the delivery rules for delivering content to you, specify the e-mail address to where content is to be delivered, and review a summary of the specified subscription information before you create the subscription.

    2. Cancel a subscription.

      Select an existing subscription by selecting its corresponding box in the Select column, then click Unsubscribe.

  3. To subscribe to an offer, click Subscribe Wizard. In the first of 5 steps of the subscribe wizard, the Offers page is displayed, as shown in Figure 10-3.

    1. At the Offers page, select one of the available offers from the list, then click Next to continue to the next step.

    2. At the Business Terms page, as shown in Figure 10-4, review the business terms of the offer. If the business terms are acceptable, click the radio button I Have Read and Accept, then click Next to continue to the next step. If the business terms are not acceptable, click Back to return to the previous Offers page and find another offer whose business terms are acceptable.

      Figure 10-4 Business Terms Page

      Description of busterms.gif follows
      Description of the illustration busterms.gif

    3. At the Delivery Rules page, as shown in Figure 10-5 and Figure 10-6, select the delivery rules to be used by the OracleAS Syndication Services to deliver content to you by clicking its box, then, click Next to continue to the next step. The expiration policy information is displayed. Only push delivery rules are available for selection.

      Figure 10-5 Delivery Rules Page (Top Half of Page)

      Description of deliveryrules.gif follows
      Description of the illustration deliveryrules.gif

      Figure 10-6 Delivery Rules Page (Bottom Half of Page)

      Description of deliveryrules1.gif follows
      Description of the illustration deliveryrules1.gif

    4. At the Email Address page as shown in Figure 10-7, enter the e-mail address to whom this offer content is to be sent, then click Next to continue to the next step.

      Figure 10-7 Email Address Page

      Description of emailaddress.gif follows
      Description of the illustration emailaddress.gif

    5. At the Subscription Summary page, as shown in Figure 10-8 and Figure 10-9, review the subscription information. The following information is displayed: offer description, expiration policy, push delivery rules, and e-mail address to where the content is to be pushed. If the information is correct, click Finish to complete the subscription process. A confirmation message is shown at the top of the Subscriptions page, indicating that your subscription was successfully created.

      If the information is not correct, click Back to return to the appropriate subscribe wizard page where you can make the necessary change, then click Next to return to this Subscription Summary page to review a summary of the subscription information again.

      Figure 10-8 Subscription Summary Page (Top Half of Page)

      Description of confirmsspt.gif follows
      Description of the illustration confirmsspt.gif

      Figure 10-9 Subscription Summary Page (Bottom Half of Page)

      Description of confirmsspt1.gif follows
      Description of the illustration confirmsspt1.gif

This completes the tasks that a UDDI publisher can perform using the UDDI Content Subscription Manager.

Canceling a Subscription

To cancel a subscription, at the Subscriptions page as shown in Figure 10-2, select the subscriptions that you want to cancel by clicking their boxes in the Select column, then click Unsubscribe. A Subscription Cancellation page is displayed, as shown in Figure 10-10. Click OK to confirm the unsubscribe action.

Figure 10-10 Subscription Cancellation Page

Description of pubssptconfirmmain.gif follows
Description of the illustration pubssptconfirmmain.gif

Using the UDDI Content Subscription Manager as a UDDI Administrator

To use the UDDI Content Subscription Manager as a UDDI administrator, perform the following steps:

  1. Start the UDDI Content Subscription Manager by entering the following URL:

    http://<host>:<port>/uddisub/subscription/ui
    
    

    where the <host> parameter indicates the system on which the UDDI Content Subscription Manager is installed and the <port> parameter specifies the port number on which it is running.

  2. Next, log in as a UDDI administrator (for example, ias_admin/<ias_admin-password>). The UDDI Content Subscription Manager home page or Subscriptions page is displayed, as shown in Figure 10-11.

    As the administrator, you can do any of the following tasks:

    1. Create a subscription.

      Click Subscribe Wizard to launch a 5-step subscribe wizard that lets you select an offer, accept the business terms of the offer, select the delivery rules for delivering content to you, specify the e-mail address to where content is to be delivered, and review a summary of the specified subscription information before you create the subscription.

    2. Cancel a subscription.

      Select an existing subscription by selecting its corresponding box in the Select column, then click Unsubscribe.

    3. Edit application properties.

      Click Edit Application Properties to edit the UDDI subscription application properties, such as configuring the UDDI Content Subscription Manager with OracleAS Syndication Services.

    4. Switch to regular view.

      Click Switch to Regular View if you have logged in as the administrator and want to just view or manage your own subscriptions as a regular user would.

  3. Click Subscription Application Properties to view or edit the UDDI subscription application properties, as shown in Figure 10-12. The UDDI content subscription administrator may need to change the default properties only if one or more settings need to be changed.

    For example, if the instance of OracleAS Syndication Services is installed on the same system as this UDDI Content Subscription Manager, then the syndication URL should be correct; if OracleAS Syndication Services is not on the same system, then the UDDI Content Subscription administrator must specify the syndication URL. You can edit any properties that may need to be changed. Usually, the default settings will be fine. If no changes are necessary, click Cancel; if changes are necessary, make your changes, then click OK. Then, restart the UDDI content subscription application in order for these changes to take effect.


    Note:

    You must enter values for all fields in order to make changes.

    Figure 10-12 Subscription Application Properties Page

    Description of editssptproperties.gif follows
    Description of the illustration editssptproperties.gif


    Note:

    If you change any subscription application properties, you must restart the UDDI application in order for these changes to take effect.

    Having checked the subscription application properties, regular users and administrators can now begin subscribing to offers and managing subscriptions.

  4. You can subscribe to an offer just like a regular publisher by following the procedure described beginning at Step 3 in Using the UDDI Content Subscription Manager as a Publisher.

Canceling a Subscription

To cancel one of your own subscriptions or a subscription belonging to any user, at the Subscriptions page as shown in Figure 10-11, select the subscriptions from that you want to cancel by clicking their boxes in the Select column, then click Unsubscribe. A Subscription Cancellation page is displayed, as shown in Figure 10-13. Click OK to confirm the unsubscribe action.

Figure 10-13 Subscription Cancellation Page

Description of ssptcancelconfirm.gif follows
Description of the illustration ssptcancelconfirm.gif