|
The following sections provide instructions for upgrading WebLogic SIP Server from a previous release:
Upgrading a WebLogic SIP Server 2.2 domain to version 3.1 involves these basic steps:
config.xml file and startup scripts) to comply with WebLogic Server 9.2, upon which WebLogic SIP Server is based.config.xml file to specify the custom resources required by WebLogic SIP Server 3.1.sipserver.xml, diameter.xml) and resources to use the new WebLogic SIP Server 3.1 schemas.The sections that follow describe these steps in more detail, and reference the WebLogic Server 9.2 documentation where appropriate.
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:
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.config.xml file contains no application deployments (no app-deployment stanzas) before continuing the upgrade.
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.
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:
config subdirectory of the upgraded domain directory:cd ~/bea/user_projects/mydomain/config
config.xml file with a text editor.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. ...
<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>
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.
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).
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:
configuration elements in diameter.xml.target element.application stanzas, which configure the Diameter applications that run on the host.
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.
<?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><p>The name of the WLSS bean.</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>
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.
|