A Container Configuration

The following section explains how to configure a SIP container to use E4SS. We include instructions for SailFin and OCCAS. This instructions include information on what JVM options need to be set for the container, how to deploy the DFC application router (included with the E4SS development kit), and how to configure logging.

A.0.4 JVM Options Summary

The following JVM options can be set for a container. The only necessary option is the transitionTimerManager, the rest are optional.




org.echarts.system.transitionTimerManager.class = \
         org.echarts.servlet.sip.TransitionTimerManager
org.echarts.debugging = true             # ECharts debug info
org.echarts.servlet.sip.debugging=true   # E4SS debug info
org.echarts.machine.debugging.globalStateOutput=false # more ECharts debug info
org.echarts.servlet.sip.messagelog=true  # E4SS log (equivalent) SIP messages
java.util.logging.config.file=mylogging.properties # E4SS logging config file
org.echarts.servlet.sip.logdir=e4sslogs  # E4SS log files directory

For more information on ECharts debugging options, see the ECharts user manual [2].

A.1 Configuring SailFin

The following configuration instructions have been tested with E4SS on SailFin build 60g.

A.1.1 Container Configuration

First change your working directory to your SailFin home directory and start SailFin:


cd [SAILFIN_HOME]
bin/asadmin start-domain domain1

Then you can use SailFin’s administration console, edit the file [SAILFIN_HOME]/domains/domain1/config/domain.xml, or use the bin/asadmin command to set container JVM options. Here’s how to use the command line (where \ indicates the command is continued on the next line):


bin/asadmin create-jvm-options \
'-Dorg.echarts.system.transitionTimerManager.class=\
org.echarts.servlet.sip.TransitionTimerManager:\
-Dorg.echarts.debugging=true:\
-Dorg.echarts.servlet.sip.debugging=true:\
-Dorg.echarts.machine.debugging.globalStateOutput=false:\
-Dorg.echarts.servlet.sip.messagelog=true:\
-Dorg.echarts.servlet.sip.logdir=${com.sun.aas.instanceRoot}/e4sslogs:\
-Djava.util.logging.config.file=logging.properties'

Note that ${com.sun.aas.instanceRoot} resolves to [SAILFIN_HOME]/domains/domain1.

Create the directory referred to by org.echarts.servlet.sip.logdir:


mkdir domains/domain1/e4sslogs

Create the logging properties file referred to by java.util.logging.config.file (for more information see Section  A.3):


cat > domains/domain1/config/logging.properties << EOF
java.util.logging.FileHandler.limit = 500000
java.util.logging.FileHandler.count = 100
java.util.logging.FileHandler.append = false
EOF

Lastly, re-start SailFin for all the changes to take effect:


bin/asadmin stop-domain domain1
bin/asadmin start-domain domain1

A.1.2 Application Deployment

To deploy an (E4SS) application on SailFin, use:


bin/asadmin deploy [pathToWarFile]/myapp.war

To list currently deployed applications, use:


bin/asadmin list *module*

To undeploy an application, use:


bin/asadmin deploy myapp

A.1.3 Application Router Deployment

To deploy the DFC application router included with the E4SS development kit (see Section  4), use:


bin/asadmin deploy [EDK_HOME]/lib/dfcar.jar

The DFC application router requires its own configuration file approuter.xml. Once you have edited this file to suit your needs, it should be placed in the [SAILFIN_HOME]/domains/domain1/config directory. This file will be re-read by the DFC approuter whenever there is an application deployment change (deploy or undeploy).

A.2 Configuring OCCAS

The following configuration instructions have been tested with E4SS on Oracle Communications Converged Application Server (OCCAS) 4.0. In the following we’ll denote the root directory of an OCCAS domain as [OCCAS_DOMAIN].

A.2.1 Container Configuration

To set the OCCAS JVM container options you can edit the file [OCCAS_DOMAIN]/bin/setDomainEnv.sh so that the script variable JAVA_OPTIONS includes the following (where \ indicates the command is continued on the next line):


-Dorg.echarts.system.transitionTimerManager.class=\
org.echarts.servlet.sip.TransitionTimerManager:\
-Dorg.echarts.debugging=true:\
-Dorg.echarts.servlet.sip.debugging=true:\
-Dorg.echarts.machine.debugging.globalStateOutput=false:\
-Dorg.echarts.servlet.sip.messagelog=true:\
-Dorg.echarts.servlet.sip.logdir=$com.sun.aas.instanceRoot/e4sslogs:\
-Djava.util.logging.config.file=logging.properties

Create the directory referred to by org.echarts.servlet.sip.logdir:


mkdir [OCCAS_DOMAIN]/e4sslogs

Create the logging properties file referred to by java.util.logging.config.file (for more information see Section  A.3):


cat > [OCCAS_DOMAIN]/logging.properties << EOF
java.util.logging.FileHandler.limit = 500000
java.util.logging.FileHandler.count = 100
java.util.logging.FileHandler.append = false
EOF

A.2.2 Disable Persistence

BEA WLSS 3.1 MP1 introduced a new change, and this change is also in OCCAS 4.0. From the release notes:

CR367390: This release improves server performance on Intel Quad Core processors when running in a non-replicated configuration. The code was modified to enable the database persistence flag by default, which in turn enables local serialization of call state data. This setting is ignored for replicated configurations.

This means that by default, call state data is serialized and stored to database. Because E4SS stores non-serializable objects in the SipApplicationSession (e.g. OpaqueFeatureBox), this default behavior causes a runtime exception.

To disable this behavior so E4SS applications can run on OCCAS 4.0, [OCCAS_DOMAIN]/config/custom/sipserver.xml needs to be modified as follows:


 <persistence>
   <default-handling>none</default-handling>
   <db-enabled>false</db-enabled>
   <geo-enabled>false</geo-enabled>
 </persistence>

Alternatively, this can be configured on the web administrative interface.

A.2.3 Application Router Deployment

To deploy the DFC application router included with the E4SS development kit (see Section  4), first create an approuter directory and copy the application router jar file to the directory:


mkdir [OCCAS_DOMAIN]/approuter
cp [EDK_HOME]/lib/dfcar.jar [OCCAS_DOMAIN]/approuter

Then, from the OCCAS administrative interface, go to:

    - Sip Server  
      - Configuration pane  
        - Application Router pane  
          - check 'Use custom AR'  
          - enter dfcar.jar for 'Custom AR filename'

To confirm that the preceding configuration step was successful, check that the file [OCCAS_DOMAIN]/config/custom/sipserver.xml has the following lines:


  <app-router>
    <use-custom-app-router>true</use-custom-app-router>
    <app-router-config-data></app-router-config-data>
    <custom-app-router-jar-file-name>
        dfcar.jar
    </custom-app-router-jar-file-name>
    <default-application-name></default-application-name>
  </app-router>

The DFC application router requires its own configuration file approuter.xml. Once you have edited this file to suit your needs, it should be placed in the OCCAS_DOMAIN directory. This file will be re-read by the DFC approuter whenever there is an application deployment change (deploy or undeploy).

A.3 Logging

The default E4SS logger utilizes the java.util.logging package. Monitor logfiles will be created in the specified location. It is advisable to set up a custom set of logging properties in order to get the desired behavior for rotation of monitor logfiles. All messages are logged at the INFO level. The following settings would specify that logfiles be rotated after 500,000 bytes, that 100 files be preserved, and that new files should be created upon application initialization:



java.util.logging.FileHandler.limit = 500000
java.util.logging.FileHandler.count = 100
java.util.logging.FileHandler.append = false

For more information about ECharts monitoring and logging see the ECharts User Manual [2].