Migration
This section provides information about migrating from earlier SDX Application Library releases to Release 6.4.0.
Migrating Quota VTA Configurations
- If your configuration includes a Quota VTA from a release before SDX Application Library 6.1.0, migrate the Quota VTA to the format available in Release 6.1.0 or later.
The VTA configuration in the directory contains sample data that you can use as a guide to update your configuration. The sample data includes the event handler, action, and processor configurations that you need to migrate your configuration.
To configure the VTA in the directory:
l=Quota, l=Applications, l=VTA, ou=staticConfiguration, ou=Configuration, o=Management, o=umc
- Use the sample configuration as a starting point for your new configuration, and make changes based on the properties in your old configuration as follows:
- For account definitions, change the Account properties to the processor format, which is:
Processor.DBEngine.<propertyName>.<attribute>=<value>You need to rename the property Account to Processor.DBEngine and change the order of the account name and account attribute (InitialBalance or InitialStatus) in the property. For example:
- Rename Account.BoughtQuota.InitialBalance to Processor.DBEngine.InitialBalance.BoughtQuota
- Rename Account.BoughtQuota.InitialStatus to Processor.DBEngine.InitialStatus.BoughtQuota
- Rename Account.PeriodicQuota.InitialBalance to Processor.DBEngine.InitialBalance.PeriodicQuota
- Rename Account.PeriodicQuota.InitialStatus to Processor.DBEngine.InitialStatus.PeriodicQuota
You need to rename the property Services to Processor.DBEngine and change the order of the service name and the service attribute (UsageMetric and InterimInterval) in the property. For example:
- Rename Service.QuotaLocal.UsageMetric to Processor.DBEngine.UsageMetric.QuotaLocal
- Rename Service.QuotaLocal.InterimInterval to Processor.DBEngine.InterimInterval.QuotaLocal
- Define event handlers and start actions for the services you are tracking. The sample configuration contains appropriate event handlers equivalent to those in releases of Quota VTA earlier than Release 6.1 configured with the following services:
- Update the following event properties to reference start, interim, and stop events for the services you want to track:
- EventHandler.GetQuota.Events
- EventHandler.RecordUsage.Events
- EventHandler.SetInterim.Events
- EventHandler.NoQuota.Events
- Define actions to start the services you want to track, and reference these actions in the EventHandler.QuotaRefilled.Actions property.
- Prepend Processor.DBEngine in front of the SessionHistoryDepth property. For example:
- If you use the NegativeBalanceChange option, update the JavaScript program in the Processor.DBEngine.AccountUpdateScript.DebitQuotaUsage property to leave a negative balance change in the desired account.
- To leave a negative balance in the Periodic account, add a final else clause to the new balance cases as follows:
else { \<newPeriodicBalance> = \<balance_PeriodicQuota>+<balance_BoughtQuota> - <currentUsage> \} \To leave a negative balance in the bought quota account, change <newPeriodicBalance> to <newBoughtBalance> in the above else clause. Note that the RecordBalanceChange=false option that was in Release 6.0 of the VTA is no longer supported. Release 6.1 of the VTA always records balance change records.
- The VTA load script provides data-source deployment descriptors for JBoss 3.2.6. Previous releases of the VTA load script provided data-source deployment descriptors for JBoss 3.0.6. The names and formats of these files changed between the two releases. Table 1 lists the names of the descriptor files for the two versions of JBoss.
If you want to upgrade VTAs to the 6.1.0 version but do not want to change the version of JBoss that you are using, you must use the JBoss 3.0.6 deployment descriptors. This version of the deployment descriptors is provided by previous releases of the VTA load script.
See the JBoss documentation for more information about data-source deployment descriptors.
Migrating Dynamic Service Activator Clients
If you developed clients for Dynamic Service Activator in releases 6.1.0 and earlier, you must update the configuration for Dynamic Service Activator to:
To update the configuration for Dynamic Service Activator:
- In SDX Admin, go the configuration for Dynamic Service Activation: l=Dynamic ServiceActivation, l=WebApplication, ou = staticConfiguration, ou=Configuration, o=Management, o=umc.
- Edit the configuration to reference subscriber types and to update the paths for NIC proxies and for methods.
Use the following sample as a guide. Boldface text identifies changes from Release 6.1.0 to Release 6.2.0 for Dynamic Service Activator clients.
# This subtree contains the SDX Gateway's# Dynamic Service Activation web application configuration# for pre-6.2.0 releases# Namespace for logging/Dsa.loggingNamespace = /WebApplication#Enable/Disable Access Control mechanism for DynamicServiceActivator/Dsa.disableAccessControls = false# =======================================# Namespaces for various subscriber types# =======================================/subscriberTypes/address/nicProxyNamespace = /nicProxies/nicProxyIp/subscriberTypes/address/sidType = SIT_ADDRESS/subscriberTypes/dn/nicProxyNamespace = /nicProxies/nicProxyDn/subscriberTypes/dn/sidType = SIT_DN/subscriberTypes/loginName/nicProxyNamespace = /nicProxies/nicProxyLogin/subscriberTypes/loginName/sidType = SIT_LOGIN_NAME/subscriberTypes/addressInterfaceName/nicProxyNamespace = /nicProxies/nicProxyAssignedIp/subscriberTypes/addressInterfaceName/sidType = SIT_ADDR_IF_NAME## This entry contains configuration data needed by the# NIC Proxy that the Dynamic Service Activation web app uses# to may from a SOAP argument (such as a subscriber IP address)# to an SAE server (such as the SAE server managing that# subscriber's virtual router).# =======================================#nicProxy configuration for ip resolution# =======================================/nicProxies/nicProxyIp/nic.keytype = Ip/nicProxies/nicProxyIp/nic.server = /realms/ip/A1/nicProxies/nicProxyIp/nic.valuetype = SaeId/nicProxies/nicProxyIp/nic.expectmultiple = false# ===========================================# nicProxy configuration for login resolution# ===========================================/nicProxies/nicProxyLogin/nic.server = /realms/login/A1/nicProxies/nicProxyLogin/nic.keytype = LoginName/nicProxies/nicProxyLogin/nic.valuetype = SaeId/nicProxies/nicProxyLogin/nic.expectmultiple = false# ========================================# nicProxy configuration for Dn resolution# ========================================/nicProxies/nicProxyDn/nic.server = /realms/dn/A1/nicProxies/nicProxyDn/nic.keytype = Dn/nicProxies/nicProxyDn/nic.valuetype = SaeId/nicProxies/nicProxyDn/nic.expectmultiple = false# =================================================# nicProxy configuration for assigned IP resolution# =================================================/nicProxies/nicProxyAssignedIp/nic.server = /realms/assignedIp/A1/nicProxies/nicProxyAssignedIp/nic.keytype = Ip/nicProxies/nicProxyAssignedIp/nic.valuetype = SaeId/nicProxies/nicProxyAssignedIp/nic.expectmultiple = false# ==================================# Subscriber_readSubscription Method# ===================================/permissions/method1/methodName = Subscriber_readSubscription/permissions/method1/saeLocatorArg = 0# ID of client (as authenticated by web app server) to access the readSubscription Method./permissions/method1/client1/clientId = Fred# ID of client (as authenticated by web app server) to access the readSubscription Method./permissions/method1/client2/clientId = Joe# =================================# Subscriber_activateService Method# =================================/permissions/method2/methodName = Subscriber_activateService/permissions/method2/saeLocatorArg = 0# ID of client (as authenticated by web app server) to access the activateService Method./permissions/method2/client1/clientId = Fred# Customers of Fred are allowed to activate just Audio services/permissions/method2/client1/argRE.1 = Audio-[a-zA-Z]*# ID of client (as authenticated by web app server) to access the activateService Method.# Customers of Joe are allowed to activate all services./permissions/method2/client2/clientId = Joe# ===================================# Subscriber_deactivateService Method# ===================================/permissions/method3/methodName = Subscriber_deactivateService/permissions/method3/saeLocatorArg = 0# ID of client (as authenticated by web app server) to access the deactivateService Method./permissions/method3/client1/clientId = Fred# Customers of Fred are allowed to deactivate just Audio services/permissions/method3/client1/argRE.1 = Audio-[a-zA-Z]*# ID of client (as authenticated by web app server) to access the deactivateService Method.# Customers of Joe are allowed to deactivate all services./permissions/method3/client2/clientId = Joe# ===============================# Subscriber_modifyService Method# ===============================/permissions/method4/methodName = Subscriber_modifyService/permissions/method4/saeLocatorArg = 0# ID of client (as authenticated by web app server) to access the modifyService Method./permissions/method4/client1/clientId = Fred# Customers of Fred are allowed to modify just Audio services/permissions/method4/client1/argRE.1 = Audio-[a-zA-Z]*# =======================# Subscriber_login Method# =======================/permissions/method5/methodName = Subscriber_login/permissions/method5/saeLocatorArg = 0# ID of client (as authenticated by web app server) to access the login Method.# Customers of Joe are allowed to login./permissions/method5/client1/clientId = Joe# =========================# Subscriber_logout Method# =========================/permissions/method6/methodName = Subscriber_logout/permissions/method6/saeLocatorArg = 0# ID of client (as authenticated by web app server) to access the logout Method.# Customers of Joe are allowed to logout./permissions/method6/client1/clientId = Joe# =============================================================# Name of the script to be invoked for the invokeScript Method# =============================================================/permissions/script1/methodName = Echo# ID of client (as authenticated by web app server) to invoke script Echo./permissions/script1/client3/clientId = Bob# A regular expression that requires the 4th SOAP argument# to be an IP address starting with "10."./permissions/script1/client3/argRE.3 = 10.\\d+.\\d+.\\d+# The index of the SOAP argument that uniquely identifies# on which SAE server to invoke the script.# (e.g. the 4th argument may be a subscriber IP address)/permissions/script1/saeLocatorArg = 3