Configuration Guide

     Previous  Next    Open TOC in new window    View as PDF - New Window  Get Adobe Reader - New Window
Content starts here

Upgrading a WebLogic SIP Server 2.2 Configuration to Version 3.1

The following sections provide instructions for upgrading WebLogic SIP Server from a previous release:

 


About the Upgrade Process

Upgrading a WebLogic SIP Server 2.2 domain to version 3.1 involves these basic steps:

The sections that follow describe these steps in more detail, and reference the WebLogic Server 9.2 documentation where appropriate.

 


Step 1: Install Software and Prepare Domain

Begin by installing the WebLogic SIP Server 3.1 software into a new BEA home directory on your Administration Server machine. You will need to access the version 3.1 software as well as the domain directory for your existing WebLogic SIP Server 2.2 installation.

In the next section, you will use the WebLogic Server 9.2 upgrade procedure and utility to upgrade the underlying WebLogic Server configuration to version 9.2. Before doing so, prepare your running WebLogic SIP Server 2.2 domain by doing the following:

  1. Shut down all Managed Servers in your domain (engine and data tier servers), leaving only the Administration Server running.
  2. Undeploy the WebLogic SIP Server 2.2 sipserver implementation application (EAR file) from all servers. WebLogic SIP Server uses custom resources to implement SIP Servlet container functionality, and the older sipserver application is no longer used. Only the configuration files (sipserver.xml and datatier.xml) are required in the upgraded domain.
  3. Undeploy all Diameter applications and other user applications. The WebLogic Server 9.2 upgrade process requires that you first undeploy all applications from the domain.
  4. Shut down the Administration Server.
  5. Verify that your config.xml file contains no application deployments (no app-deployment stanzas) before continuing the upgrade.

 


Step 2: Use the WebLogic Server 9.2 Upgrade Wizard

Follow the instructions in Upgrading a WebLogic Domain in the WebLogic Server 9.2 documentation to upgrade the underlying WebLogic Server configuration to 9.2. This process updates the config.xml file, supporting files (such as startup scripts) and domain structure to comply with WebLogic Server 9.2.

For more information about the WebLogic Server 9.2 procedure, see Upgrading WebLogic Application Environments.

 


Step 3: Edit the config.xml File to Specify WebLogic SIP Server Resources

WebLogic SIP Server 3.1 implements SIP Servlet container functionality, Diameter functionality, and Administration Console support using custom resources. After upgrading your domain’s config.xml file to be compliant with WebLogic Server 9.2, manually edit the file to specify the required WebLogic SIP Server custom resources:

  1. Move to the config subdirectory of the upgraded domain directory:
  2. cd ~/bea/user_projects/mydomain/config
  3. Open the config.xml file with a text editor.
  4. Add the WebLogic SIP Server custom resource definitions to the end of the config.xml file, before the final <admin-server-name> definition. Listing 7-1 shows the required entries. Substitute italicized entries with the names of actual engine and data tier clusters configured in your upgraded domain.
  5. Listing 7-1 WebLogic SIP Server Custom Resource Definitions
    ...
      <custom-resource>
        <name>sipserver</name>
        <target>BEA_DATA_TIER_CLUST,BEA_ENGINE_TIER_CLUST</target>
        <descriptor-file-name>custom/sipserver.xml</descriptor-file-name>
        <resource-class>com.bea.wcp.sip.management.descriptor.resource.SipServerResource</resource-class>
        <descriptor-bean-class>com.bea.wcp.sip.management.descriptor.beans.SipServerBean</descriptor-bean-class>
      </custom-resource>
      <custom-resource>
        <name>datatier</name>
        <target>BEA_DATA_TIER_CLUST,BEA_ENGINE_TIER_CLUST</target>
        <descriptor-file-name>custom/datatier.xml</descriptor-file-name>
        <resource-class>com.bea.wcp.sip.management.descriptor.resource.DataTierResource</resource-class>
        <descriptor-bean-class>com.bea.wcp.sip.management.descriptor.beans.DataTierBean</descriptor-bean-class>
      </custom-resource>
      <custom-resource>
        <name>diameter</name>
        <target>BEA_ENGINE_TIER_CLUST</target>
        <deployment-order>200</deployment-order>
        <descriptor-file-name>custom/diameter.xml</descriptor-file-name>
        <resource-class>com.bea.wcp.diameter.DiameterResource</resource-class>
        <descriptor-bean-class>com.bea.wcp.diameter.management.descriptor.beans.DiameterBean</descriptor-bean-class>
      </custom-resource>
      <custom-resource>
        <name>ProfileService</name>
        <target>BEA_ENGINE_TIER_CLUST</target>
        <deployment-order>300</deployment-order>
        <descriptor-file-name>custom/profile.xml</descriptor-file-name>
        <resource-class>com.bea.wcp.profile.descriptor.resource.ProfileServiceResource</resource-class>
        <descriptor-bean-class>com.bea.wcp.profile.descriptor.beans.ProfileServiceBean</descriptor-bean-class>
      </custom-resource>
      <admin-server-name>AdminServer</admin-server-name>
    </domain>
  6. Save your changes and exit the text editor.

 


Step 4: Relocate and Edit WebLogic SIP Server Configuration Files

The existing WebLogic SIP Server configuration files (sipserver.xml, datatier.xml, and diameter.xml) must be placed in the config/custom subdirectory of the upgraded domain directory. Additionally, sipserver.xml and diameter.xml must be manually edited to conform to the updated WebLogic SIP Server schema.

Upgrade sipserver.xml and datatier.xml Files

In WebLogic SIP Server 2.2, sipserver.xml and datatier.xml are stored in the config subdirectory of the sipserver implementation application. Copy them to the new location using a command similar to:

cp ~/bea/user_projects/domains/mydomain/sipserver/config/*.xml  ~/bea/user_projects/domains/mydomain/custom/config

Next, use a text editor to modify sipserver.xml to use the new WebLogic SIP Server 3.1 schema. Table A-1 summarizes important schema changes. See also the Engine Tier Configuration Reference (sipserver.xml).

Table A-1 sipserver.xml Schema Updates
Version 2.2 Element
Version 3.1 Equivalent
Notes
targetNamespace=
"http://www.bea.com/ns/wlcp/wlss/220"
targetNamespace=
"http://www.bea.com/ns/
wlcp/wlss/300"
Change the targetNamespace attribute to the new URL for version 3.1.
overload
overload
Ensure that the order of elements in the overload stanza is: threshold-policy, threshold-value, release-value.
Also ensure that the previously-deprecated regulation-policy element is renamed to threshold-policy.
timerB-timeout-interval
timer-b-timeout-interval
Rename the element.
timerF-timeout-interval
timer-f-timeout-interval
Rename the element.

Upgrade diameter.xml Files

In WebLogic SIP Server 2.2, each Diameter application uses a distinct diameter.xml file. In WebLogic SIP Server 3.1, multiple Diameter node configurations are stored in a single diameter.xml file in the config/custom directory. Begin by copying all existing diameter.xml files to distinct names in the config/custom directory, as in:

cp ~/bea/user_projects/domains/replicated/diameter_relay1/WEB-INF/config/diameter.xml ~/bea/user_projects/domains/replicated/config/custom/diameter_relay.xml
cp ~/bea/user_projects/domains/replicated/diameter_hssclient/WEB-INF/config/diameter.xml ~/bea/user_projects/domains/replicated/config/custom/diameter_client.xml

Next, merge the contents of the multiple diameter.xml files from your version 2.2 directory into a single, new diameter.xml file. Key version 3.1 schema changes to consider are:

Table A-1 summarizes important schema changes. See also the Diameter Configuration Reference (diameter.xml). Listing 7-2 provides a sample diameter.xml file that you can use as a template when merging the older files.

Table A-2 diameter.xml Schema Updates
Version 2.2 Element
Version 3.1 Equivalent
Notes
node
configuration
Multiple configuration stanzas are used to configure multiple Diameter nodes. Change each node stanza to be a configuration stanza in the configuration file.
n/a
target
Add a target element to each configuration stanza to target the node configuration to a particular engine tier server. The server(s) listed in the target must also be defined as servers in the domain config.xml file.
debug
debug-enabled
Rename the element.
message-debug
message-debug-enabled
Rename the element.
applications
n/a
There is no high-level applications stanza in 3.1. Configure multiple Diameter applications using multiple application stanzas.
auth-application-id
n/a
This ID is defined within the application code itself.
acct-application-id
n/a
This ID is defined within the application code itself.
vendor-id
n/a
This ID is defined within the application code itself.
peers
n/a
There is no high-level peers stanza in 3.1. Configure multiple Diameter applications using multiple peer stanzas.
retry-delay
peer-retry-delay
Rename the element.

Listing 7-2 Sample diameter.xml File
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://www.bea.com/ns/wlcp/diameter/300" elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:complexType name="diameter-descriptorType">
    <xs:annotation>
      <xs:documentation>Corresponds to DiameterDescriptorBean
 (Interface=com.bea.wcp.diameter.management.descriptor.beans.DiameterDescriptorBean)</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="xs:string" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>&lt;p>The name of the WLSS bean.&lt;/p>
 (Interface=com.bea.wcp.diameter.management.descriptor.beans.DiameterDescriptorBean Attribute=getName)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="paramType">
    <xs:annotation>
      <xs:documentation>Corresponds to ParamBean
 (Interface=com.bea.wcp.diameter.management.descriptor.beans.ParamBean)</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="ns:diameter-descriptorType" xmlns:ns="http://www.bea.com/ns/wlcp/diameter/300">
        <xs:sequence>
          <xs:element name="value" type="xs:string" minOccurs="0" nillable="true">
            <xs:annotation>
              <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.ParamBean Attribute=getValue)</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="applicationType">
    <xs:annotation>
      <xs:documentation>Corresponds to ApplicationBean
 (Interface=com.bea.wcp.diameter.management.descriptor.beans.ApplicationBean)</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="ns:diameter-descriptorType" xmlns:ns="http://www.bea.com/ns/wlcp/diameter/300">
        <xs:sequence>
          <xs:element name="class-name" type="xs:string" minOccurs="0" nillable="true">
            <xs:annotation>
              <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.ApplicationBean Attribute=getClassName)</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="param" maxOccurs="unbounded" type="ns:paramType" minOccurs="0" nillable="true">
            <xs:annotation>
              <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.ApplicationBean Attribute=getParams)</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="peerType">
    <xs:annotation>
      <xs:documentation>Corresponds to PeerBean
 (Interface=com.bea.wcp.diameter.management.descriptor.beans.PeerBean)</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="host" type="xs:string" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.PeerBean Attribute=getHost)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="address" type="xs:string" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.PeerBean Attribute=getAddress)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="port" type="xs:int" minOccurs="0" nillable="false" default="3588">
        <xs:annotation>
          <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.PeerBean Attribute=getPort)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="protocol" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.PeerBean Attribute=getProtocol)</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="tcp"/>
            <xs:enumeration value="sctp"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="watchdog-enabled" type="xs:boolean" minOccurs="0" nillable="false" default="true">
        <xs:annotation>
          <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.PeerBean Attribute=getWatchdogEnabled)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="diameterType">
    <xs:annotation>
      <xs:documentation>Corresponds to DiameterBean
 (Interface=com.bea.wcp.diameter.management.descriptor.beans.DiameterBean)</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="ns:diameter-descriptorType" xmlns:ns="http://www.bea.com/ns/wlcp/diameter/300">
        <xs:sequence>
          <xs:element name="configuration" maxOccurs="unbounded" type="ns:configurationType" minOccurs="0" nillable="true">
            <xs:annotation>
              <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.DiameterBean Attribute=getConfigurations)</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="configurationType">
    <xs:annotation>
      <xs:documentation>Corresponds to ConfigurationBean
 (Interface=com.bea.wcp.diameter.management.descriptor.beans.ConfigurationBean)</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="ns:diameter-descriptorType" xmlns:ns="http://www.bea.com/ns/wlcp/diameter/300">
        <xs:sequence>
          <xs:element name="target" maxOccurs="unbounded" type="xs:string" minOccurs="0" nillable="true">
            <xs:annotation>
              <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.ConfigurationBean Attribute=getTargets)</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="host" type="xs:string" minOccurs="0" nillable="true">
            <xs:annotation>
              <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.ConfigurationBean Attribute=getHost)</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="realm" type="xs:string" minOccurs="0" nillable="true">
            <xs:annotation>
              <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.ConfigurationBean Attribute=getRealm)</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="address" type="xs:string" minOccurs="0" nillable="true">
            <xs:annotation>
              <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.ConfigurationBean Attribute=getAddress)</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="port" type="xs:int" minOccurs="0" nillable="false">
            <xs:annotation>
              <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.ConfigurationBean Attribute=getPort)</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="tls-enabled" type="xs:boolean" minOccurs="0" nillable="false">
            <xs:annotation>
              <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.ConfigurationBean Attribute=getTlsEnabled)</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="sctp-enabled" type="xs:boolean" minOccurs="0" nillable="false">
            <xs:annotation>
              <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.ConfigurationBean Attribute=getSctpEnabled)</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="debug-enabled" type="xs:boolean" minOccurs="0" nillable="false">
            <xs:annotation>
              <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.ConfigurationBean Attribute=getDebugEnabled)</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="message-debug-enabled" type="xs:boolean" minOccurs="0" nillable="false">
            <xs:annotation>
              <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.ConfigurationBean Attribute=getMessageDebugEnabled)</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="application" maxOccurs="unbounded" type="ns:applicationType" minOccurs="0" nillable="true">
            <xs:annotation>
              <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.ConfigurationBean Attribute=getApplications)</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="peer-retry-delay" type="xs:int" minOccurs="0" nillable="false" default="30">
            <xs:annotation>
              <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.ConfigurationBean Attribute=getPeerRetryDelay)</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="allow-dynamic-peers" type="xs:boolean" minOccurs="0" nillable="false">
            <xs:annotation>
              <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.ConfigurationBean Attribute=getAllowDynamicPeers)</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="request-timeout" type="xs:long" minOccurs="0" nillable="false" default="30000">
            <xs:annotation>
              <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.ConfigurationBean Attribute=getRequestTimeout)</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="watchdog-timeout" type="xs:int" minOccurs="0" nillable="false" default="30">
            <xs:annotation>
              <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.ConfigurationBean Attribute=getWatchdogTimeout)</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="include-origin-state-id" type="xs:boolean" minOccurs="0" nillable="false">
            <xs:annotation>
              <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.ConfigurationBean Attribute=getIncludeOriginStateId)</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="peer" maxOccurs="unbounded" type="ns:peerType" minOccurs="0" nillable="true">
            <xs:annotation>
              <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.ConfigurationBean Attribute=getPeers)</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="route" maxOccurs="unbounded" type="ns:routeType" minOccurs="0" nillable="true">
            <xs:annotation>
              <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.ConfigurationBean Attribute=getRoutes)</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="default-route" type="ns:default-routeType" minOccurs="0" nillable="true">
            <xs:annotation>
              <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.ConfigurationBean Attribute=getDefaultRoute)</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="routeType">
    <xs:annotation>
      <xs:documentation>Corresponds to RouteBean
 (Interface=com.bea.wcp.diameter.management.descriptor.beans.RouteBean)</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="ns:diameter-descriptorType" xmlns:ns="http://www.bea.com/ns/wlcp/diameter/300">
        <xs:sequence>
          <xs:element name="realm" type="xs:string" minOccurs="0" nillable="true">
            <xs:annotation>
              <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.RouteBean Attribute=getRealm)</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="application-id" type="xs:int" minOccurs="0" nillable="false">
            <xs:annotation>
              <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.RouteBean Attribute=getApplicationId)</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="action" minOccurs="0" nillable="true">
            <xs:annotation>
              <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.RouteBean Attribute=getAction)</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="xs:string">
                <xs:enumeration value="none"/>
                <xs:enumeration value="local"/>
                <xs:enumeration value="relay"/>
                <xs:enumeration value="proxy"/>
                <xs:enumeration value="redirect"/>
              </xs:restriction>
            </xs:simpleType>
          </xs:element>
          <xs:element name="server" maxOccurs="unbounded" type="xs:string" minOccurs="0" nillable="true">
            <xs:annotation>
              <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.RouteBean Attribute=getServers)</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="default-routeType">
    <xs:annotation>
      <xs:documentation>Corresponds to DefaultRouteBean
 (Interface=com.bea.wcp.diameter.management.descriptor.beans.DefaultRouteBean)</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="ns:diameter-descriptorType" xmlns:ns="http://www.bea.com/ns/wlcp/diameter/300">
        <xs:sequence>
          <xs:element name="action" type="xs:string" minOccurs="0" nillable="true">
            <xs:annotation>
              <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.DefaultRouteBean Attribute=getAction)</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="server" maxOccurs="unbounded" type="xs:string" minOccurs="0" nillable="true">
            <xs:annotation>
              <xs:documentation>(Interface=com.bea.wcp.diameter.management.descriptor.beans.DefaultRouteBean Attribute=getServers)</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="diameter" type="ns:diameterType" xmlns:ns="http://www.bea.com/ns/wlcp/diameter/300"/>
</xs:schema>

 


Step 5: Perform Optional Upgrade Tasks

After upgrading the WebLogic SIP Server configuration files, you can remove the older, version 2.2 sipserver application directory, as well as any application directories created for Diameter nodes in version 2.2.

Also, if you continue to use the version 2.2 example applications, note that some of the example build.xml files reference the files wlss.jar and sipserver.jar. These libraries are now located in WLSS_HOME/server/lib/wlss. Either update the older build.xml files or use the examples installed with WebLogic SIP Server 3.1.


  Back to Top       Previous  Next