![]() ![]() ![]() ![]() ![]() ![]() |
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.0 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.0.sipserver.xml, diameter.xml
) and resources to use the new WebLogic SIP Server 3.0 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.0 software into a new BEA home directory on your Administration Server machine. You will need to access the version 3.0 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.0 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.0 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.0, 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.0 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.0.
![]() ![]() ![]() |