SlideShare a Scribd company logo
1 of 21
Download to read offline
Migration to
Mobicents SIP Servlets


       Mobicents Summit 2012
        Rio de Janeiro, Brazil
● Founded in 2003
● Privately held
● Operations in 150 countries
● Corporate headquarters in Miami, Florida
● Technical facilities in Virginia, Brazil, Argentina
● Four primary lines of business
    ● InPhonex Business including
    ● InPhonex Resale
    ● InPhonex Personal
    ● InPhonex Platform Solutions
Reasons to Migrate
● Currently using the old BEA's WebLogic 3.1
  ○ JSR116
  ○ Old version of JRockit
  ○ Bugs, etc.

Looking for alternatives, we wanted a more dynamic solution.

●   Open Source
●   Active Maintainers
●   Active Community
●   Support
●   Response time for reported issues
●   Range of products
    ○ Mobicents SIP Servlets
    ○ RestComm
    ○ Media Server
Now to the details of the migration...
Descriptor Changes
BEA is older and sip.xml doctype is from previous spec

<!DOCTYPE sip-app
     PUBLIC "-//Java Community Process//DTD SIP
Application 1.0//EN"
     "sip-app_1_0.dtd">
● Moved from servlet-mapping to servlet-selection to
    allow further configuration from the management
    console
●   Overall refactoring to avoid having to rely on the BEA
    JNDI.
Descriptor Changes
web.xml doctype is from previous spec

<!DOCTYPE web-app
  PUBLIC "-//Sun Microsystems, Inc.//DTD
Web Application 2.3//EN"
  "http://java.sun.com/dtd/web-app_2_3.dtd">

● Everything else is the same
Application code changes
● In BEA HTTP sessions are eagerly created
  so request.getSession().invalidate() is
  required, but in JBoss it throws exception
  because it is lazy-created
● Derived sessions are invalidated together in
  BEA, in Mobicents they continue separately
● Change the datasource JNDI lookup code
● MAX_LISTENER_RESPONSE_TIME
  because of long 183s
● Can not bind object to session that has been
  invalidated!!
Database configuration
● Add the mysql driver in the server/default/lib directory
● JBoss has completely different datasource deployment
  descriptors and configuration (see route-ds.xml)
● BEA connection pooling vs DBCP (overall 90% the
  same options with different names)
● BEA connection load balancing vs mysql JDBC driver
  built-in load balancing vs JBoss load balancing (large
  topic)
● In the end the mysql driver can do equivalent load
  balancing of the writes with jdbc:mysql:loadbalance:
  //host1,host2/database
JBoss 7 datasources
● Completely different from JBoss 5
  datasource descriptors
● Still uses DBCP, but the configuration file
  syntax is different
BEA IDE project
The original inphonex project was Eclipse WTP
project with self-contained dependencies and
some BEA dependencies.
Moving to Maven

● By far the most difficult task.
● Swap the bea sip servlet api jar with the
  mobicents sip servlet api jar
● Hunting down the required dependencies
  with google
● Must use mvn clean war:inplace war:war
  install to be sure the build is refreshed
  ○ simply doing war:war caches an older copy
    sometimes
Logging
● Three completely different logging
  configurations
  ○ JBoss AS 5 (log4j xml)
  ○ JBoss AS 7 (jboss logging + log4j behind it)
  ○ Tomcat (log4j propeties)
Logging in JBoss 5
● In Mobicents STDOUT logging is rendered
  only as much as log4j allows, so application
  logging was moved to log4j
● Log4j configuration entries may need to be
  added to jboss-log4j.xml for the app
● Of course the logging output is completely
  different than BEA and log4j must be
  mastered
JBoss AS 7 Logging
● Different from the JBoss 5 logging
● Centralized configuration
● https://community.jboss.
  org/wiki/JBossAS7Logging
● Use admin console at http://127.0.0.1:9990 to
  make quick edits that take effect immediately
  ○   Output handlers
  ○   Categories
  ○   Levels
  ○   Somewhat like Oracle/BEA
How to isolate only the inphonex
logging into separate file
Know your category and level
<category name="com.inphonex">
      <priority value="DEBUG"/>
      <appender-ref ref="MY_OWN_APPENDER"/>
</category>


Make sure the appender and root thresholds
allow your level of logging
<appender name="MY_OWN_APPENDER" class="org.jboss.logging.appender.
DailyRollingFileAppender">
     <param name="File" value="/log/inphonex.log"/>
     <param name="Threshold" value="DEBUG"/>
JRockit vs Hotspot
● Most settings are portable between the
  JVMs, but JRockit management
  configuration is different and it lacks some
  diagnostic options
● The hotspot parallel garbage collection with
  incremental CMS seems just as capable as
  jrockits for the current load
● The garbage collection patterns are different
JVM options
Hotspot 1.6 any
JAVA_OPTS="-Xms2g -Xmx2g -Dcom.sun.management.jmxremote -Dcom.sun.management.
jmxremote.port=7091 -Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false -XX:+HeapDumpOnOutOfMemoryError -XX:
PermSize=128M -XX:MaxPermSize=256M -XX:+UseConcMarkSweepGC -XX:
+CMSIncrementalMode -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -
Dsun.rmi.dgc.server.gcInterval=3600000"




JRockit R27.4.0-jdk1.5.0_12
-server -Xms2048m -Xmx2048m -Xgc:gencon -XXnosystemgc -XXtlasize:min=3k -XXkeeparearatio=0
-Xns:40m -Xmanagement:ssl=false,authenticate=false,port=7091 -XXdisableFatSpin -XX:
+HeapDumpOnOutOfMemoryError -XX:-UseFatSpin -XX:+HeapDiagnosticsOnOutOfMemoryError

(only available in R28, so no luck with those)
Management and Monitoring for
Mobicents
● jconsole - JMX monitoring and management and JVM
  stats
● http://127.0.0.1:8080/jmx-console - same with Web UI
● http://127.0.0.1:8080/sip-servlets-management - Sip
  Servlets specific administration
● http://127.0.0.1:8080/admin-console - JBoss global
  administration Web console
● twiddle - command line tool for JMX management
● http://127.0.0.1:9990 - JBoss 7 is much more like
  BEA, can configure the datasources in similar way
● JBoss 7 suffers from https://issues.jboss.
  org/browse/JBAS-7427
   ○ many hacks are needed to have a working JMX!
Management and Monitoring for
JRockit and BEA
● JRockit Mission Control - glorified jconsole
● http://127.0.0.1:7001/console/console.portal
  ○ Unified Web UI for the BEA server, including SIP
● Command line
  ○ Mission control from the command line (jrmc)
  ○ Application server administration from the command
    line
  ○ jrcmd - replaces the Hotspot JDK tools such as jps,
    jstack and so on
Questions?
Thank you!

More Related Content

What's hot

Better Living Through Messaging - Leveraging the HornetQ Message Broker at Sh...
Better Living Through Messaging - Leveraging the HornetQ Message Broker at Sh...Better Living Through Messaging - Leveraging the HornetQ Message Broker at Sh...
Better Living Through Messaging - Leveraging the HornetQ Message Broker at Sh...Joshua Long
 
MySQL Parallel Replication by Booking.com
MySQL Parallel Replication by Booking.comMySQL Parallel Replication by Booking.com
MySQL Parallel Replication by Booking.comJean-François Gagné
 
Riding the Binlog: an in Deep Dissection of the Replication Stream
Riding the Binlog: an in Deep Dissection of the Replication StreamRiding the Binlog: an in Deep Dissection of the Replication Stream
Riding the Binlog: an in Deep Dissection of the Replication StreamJean-François Gagné
 
The Full MySQL and MariaDB Parallel Replication Tutorial
The Full MySQL and MariaDB Parallel Replication TutorialThe Full MySQL and MariaDB Parallel Replication Tutorial
The Full MySQL and MariaDB Parallel Replication TutorialJean-François Gagné
 
Has MySQL grown up?
Has MySQL grown up?Has MySQL grown up?
Has MySQL grown up?Mark Stanton
 
MySQL Server Backup, Restoration, and Disaster Recovery Planning
MySQL Server Backup, Restoration, and Disaster Recovery PlanningMySQL Server Backup, Restoration, and Disaster Recovery Planning
MySQL Server Backup, Restoration, and Disaster Recovery PlanningLenz Grimmer
 
MySQL Parallel Replication: inventory, use-case and limitations
MySQL Parallel Replication: inventory, use-case and limitationsMySQL Parallel Replication: inventory, use-case and limitations
MySQL Parallel Replication: inventory, use-case and limitationsJean-François Gagné
 
Highly efficient backups with percona xtrabackup
Highly efficient backups with percona xtrabackupHighly efficient backups with percona xtrabackup
Highly efficient backups with percona xtrabackupNilnandan Joshi
 
MySQL/MariaDB Parallel Replication: inventory, use-case and limitations
MySQL/MariaDB Parallel Replication: inventory, use-case and limitationsMySQL/MariaDB Parallel Replication: inventory, use-case and limitations
MySQL/MariaDB Parallel Replication: inventory, use-case and limitationsJean-François Gagné
 
OpenCms Days 2014 - Enhancing OpenCms front end development with Sass and Grunt
OpenCms Days 2014 - Enhancing OpenCms front end development with Sass and GruntOpenCms Days 2014 - Enhancing OpenCms front end development with Sass and Grunt
OpenCms Days 2014 - Enhancing OpenCms front end development with Sass and GruntAlkacon Software GmbH & Co. KG
 
13 deploying cloud applications
13   deploying cloud applications13   deploying cloud applications
13 deploying cloud applicationsdarwinodb
 
MySQL Parallel Replication (LOGICAL_CLOCK): all the 5.7 (and some of the 8.0)...
MySQL Parallel Replication (LOGICAL_CLOCK): all the 5.7 (and some of the 8.0)...MySQL Parallel Replication (LOGICAL_CLOCK): all the 5.7 (and some of the 8.0)...
MySQL Parallel Replication (LOGICAL_CLOCK): all the 5.7 (and some of the 8.0)...Jean-François Gagné
 
PERFORMANCE_SCHEMA and sys schema
PERFORMANCE_SCHEMA and sys schemaPERFORMANCE_SCHEMA and sys schema
PERFORMANCE_SCHEMA and sys schemaFromDual GmbH
 
Online MySQL Backups with Percona XtraBackup
Online MySQL Backups with Percona XtraBackupOnline MySQL Backups with Percona XtraBackup
Online MySQL Backups with Percona XtraBackupKenny Gryp
 
Administration and Management with UltraESB
Administration and Management with UltraESBAdministration and Management with UltraESB
Administration and Management with UltraESBAdroitLogic
 
IBM DB2 LUW/UDB DBA Training by www.etraining.guru
IBM DB2 LUW/UDB DBA Training by www.etraining.guruIBM DB2 LUW/UDB DBA Training by www.etraining.guru
IBM DB2 LUW/UDB DBA Training by www.etraining.guruRavikumar Nandigam
 

What's hot (19)

Better Living Through Messaging - Leveraging the HornetQ Message Broker at Sh...
Better Living Through Messaging - Leveraging the HornetQ Message Broker at Sh...Better Living Through Messaging - Leveraging the HornetQ Message Broker at Sh...
Better Living Through Messaging - Leveraging the HornetQ Message Broker at Sh...
 
NoSQL with MySQL
NoSQL with MySQLNoSQL with MySQL
NoSQL with MySQL
 
MySQL Parallel Replication by Booking.com
MySQL Parallel Replication by Booking.comMySQL Parallel Replication by Booking.com
MySQL Parallel Replication by Booking.com
 
Riding the Binlog: an in Deep Dissection of the Replication Stream
Riding the Binlog: an in Deep Dissection of the Replication StreamRiding the Binlog: an in Deep Dissection of the Replication Stream
Riding the Binlog: an in Deep Dissection of the Replication Stream
 
The Full MySQL and MariaDB Parallel Replication Tutorial
The Full MySQL and MariaDB Parallel Replication TutorialThe Full MySQL and MariaDB Parallel Replication Tutorial
The Full MySQL and MariaDB Parallel Replication Tutorial
 
Has MySQL grown up?
Has MySQL grown up?Has MySQL grown up?
Has MySQL grown up?
 
MySQL Server Backup, Restoration, and Disaster Recovery Planning
MySQL Server Backup, Restoration, and Disaster Recovery PlanningMySQL Server Backup, Restoration, and Disaster Recovery Planning
MySQL Server Backup, Restoration, and Disaster Recovery Planning
 
MySQL Parallel Replication: inventory, use-case and limitations
MySQL Parallel Replication: inventory, use-case and limitationsMySQL Parallel Replication: inventory, use-case and limitations
MySQL Parallel Replication: inventory, use-case and limitations
 
Highly efficient backups with percona xtrabackup
Highly efficient backups with percona xtrabackupHighly efficient backups with percona xtrabackup
Highly efficient backups with percona xtrabackup
 
MySQL/MariaDB Parallel Replication: inventory, use-case and limitations
MySQL/MariaDB Parallel Replication: inventory, use-case and limitationsMySQL/MariaDB Parallel Replication: inventory, use-case and limitations
MySQL/MariaDB Parallel Replication: inventory, use-case and limitations
 
Docker ppt
Docker pptDocker ppt
Docker ppt
 
OpenCms Days 2014 - Enhancing OpenCms front end development with Sass and Grunt
OpenCms Days 2014 - Enhancing OpenCms front end development with Sass and GruntOpenCms Days 2014 - Enhancing OpenCms front end development with Sass and Grunt
OpenCms Days 2014 - Enhancing OpenCms front end development with Sass and Grunt
 
MySQL DBA
MySQL DBAMySQL DBA
MySQL DBA
 
13 deploying cloud applications
13   deploying cloud applications13   deploying cloud applications
13 deploying cloud applications
 
MySQL Parallel Replication (LOGICAL_CLOCK): all the 5.7 (and some of the 8.0)...
MySQL Parallel Replication (LOGICAL_CLOCK): all the 5.7 (and some of the 8.0)...MySQL Parallel Replication (LOGICAL_CLOCK): all the 5.7 (and some of the 8.0)...
MySQL Parallel Replication (LOGICAL_CLOCK): all the 5.7 (and some of the 8.0)...
 
PERFORMANCE_SCHEMA and sys schema
PERFORMANCE_SCHEMA and sys schemaPERFORMANCE_SCHEMA and sys schema
PERFORMANCE_SCHEMA and sys schema
 
Online MySQL Backups with Percona XtraBackup
Online MySQL Backups with Percona XtraBackupOnline MySQL Backups with Percona XtraBackup
Online MySQL Backups with Percona XtraBackup
 
Administration and Management with UltraESB
Administration and Management with UltraESBAdministration and Management with UltraESB
Administration and Management with UltraESB
 
IBM DB2 LUW/UDB DBA Training by www.etraining.guru
IBM DB2 LUW/UDB DBA Training by www.etraining.guruIBM DB2 LUW/UDB DBA Training by www.etraining.guru
IBM DB2 LUW/UDB DBA Training by www.etraining.guru
 

Similar to Mobicents Summit 2012 - Silvano Girardi - InPhonex's migration to Mobicents Sip Servlets

WildFly AppServer - State of the Union
WildFly AppServer - State of the UnionWildFly AppServer - State of the Union
WildFly AppServer - State of the UnionDimitris Andreadis
 
What’s new for Developers in IBM Domino & Domino Designer 9.0.1
What’s new for Developers in IBM Domino & Domino Designer 9.0.1What’s new for Developers in IBM Domino & Domino Designer 9.0.1
What’s new for Developers in IBM Domino & Domino Designer 9.0.1IBM Connections Developers
 
What You Should Know About WebLogic Server 12c (12.2.1.2) #oow2015 #otntour2...
What You Should Know About WebLogic Server 12c (12.2.1.2)  #oow2015 #otntour2...What You Should Know About WebLogic Server 12c (12.2.1.2)  #oow2015 #otntour2...
What You Should Know About WebLogic Server 12c (12.2.1.2) #oow2015 #otntour2...Frank Munz
 
Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)Per Henrik Lausten
 
We4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshell
We4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshellWe4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshell
We4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshellWe4IT Group
 
Grabbing the PostgreSQL Elephant by the Trunk
Grabbing the PostgreSQL Elephant by the TrunkGrabbing the PostgreSQL Elephant by the Trunk
Grabbing the PostgreSQL Elephant by the TrunkHarold Giménez
 
Meet Magento Spain 2019 - Our Experience with Magento Cloud
Meet Magento Spain 2019 - Our Experience with Magento CloudMeet Magento Spain 2019 - Our Experience with Magento Cloud
Meet Magento Spain 2019 - Our Experience with Magento CloudLyzun Oleksandr
 
How to upgrade to MongoDB 4.0 - Percona Europe 2018
How to upgrade to MongoDB 4.0 - Percona Europe 2018How to upgrade to MongoDB 4.0 - Percona Europe 2018
How to upgrade to MongoDB 4.0 - Percona Europe 2018Antonios Giannopoulos
 
Java one 2015 [con3339]
Java one 2015 [con3339]Java one 2015 [con3339]
Java one 2015 [con3339]Arshal Ameen
 
AD111 -- Harnessing the Power of Server-Side JavaScript and Other Advanced XP...
AD111 -- Harnessing the Power of Server-Side JavaScript and Other Advanced XP...AD111 -- Harnessing the Power of Server-Side JavaScript and Other Advanced XP...
AD111 -- Harnessing the Power of Server-Side JavaScript and Other Advanced XP...ddrschiw
 
ILOG BRMS Mainframe Options
ILOG BRMS Mainframe OptionsILOG BRMS Mainframe Options
ILOG BRMS Mainframe Optionsilog
 
Data Serialization Using Google Protocol Buffers
Data Serialization Using Google Protocol BuffersData Serialization Using Google Protocol Buffers
Data Serialization Using Google Protocol BuffersWilliam Kibira
 
Bp307 Practical Solutions for Connections Administrators, tips and scrips for...
Bp307 Practical Solutions for Connections Administrators, tips and scrips for...Bp307 Practical Solutions for Connections Administrators, tips and scrips for...
Bp307 Practical Solutions for Connections Administrators, tips and scrips for...Sharon James
 
Developing XPages Applications
Developing XPages ApplicationsDeveloping XPages Applications
Developing XPages ApplicationsNiklas Heidloff
 
JavascriptMVC: Another choice of web framework
JavascriptMVC: Another choice of web frameworkJavascriptMVC: Another choice of web framework
JavascriptMVC: Another choice of web frameworkAlive Kuo
 
SaaSy maps - using django-tenants and geodjango to provide web-gis software-a...
SaaSy maps - using django-tenants and geodjango to provide web-gis software-a...SaaSy maps - using django-tenants and geodjango to provide web-gis software-a...
SaaSy maps - using django-tenants and geodjango to provide web-gis software-a...Anusha Chickermane
 
JSFest 2019: Technology agnostic microservices at SPA frontend
JSFest 2019: Technology agnostic microservices at SPA frontendJSFest 2019: Technology agnostic microservices at SPA frontend
JSFest 2019: Technology agnostic microservices at SPA frontendVlad Fedosov
 

Similar to Mobicents Summit 2012 - Silvano Girardi - InPhonex's migration to Mobicents Sip Servlets (20)

WildFly AppServer - State of the Union
WildFly AppServer - State of the UnionWildFly AppServer - State of the Union
WildFly AppServer - State of the Union
 
What’s new for Developers in IBM Domino & Domino Designer 9.0.1
What’s new for Developers in IBM Domino & Domino Designer 9.0.1What’s new for Developers in IBM Domino & Domino Designer 9.0.1
What’s new for Developers in IBM Domino & Domino Designer 9.0.1
 
What You Should Know About WebLogic Server 12c (12.2.1.2) #oow2015 #otntour2...
What You Should Know About WebLogic Server 12c (12.2.1.2)  #oow2015 #otntour2...What You Should Know About WebLogic Server 12c (12.2.1.2)  #oow2015 #otntour2...
What You Should Know About WebLogic Server 12c (12.2.1.2) #oow2015 #otntour2...
 
Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)
 
OpenCms Days 2015 Workflow using Docker and Jenkins
OpenCms Days 2015 Workflow using Docker and JenkinsOpenCms Days 2015 Workflow using Docker and Jenkins
OpenCms Days 2015 Workflow using Docker and Jenkins
 
We4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshell
We4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshellWe4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshell
We4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshell
 
Grabbing the PostgreSQL Elephant by the Trunk
Grabbing the PostgreSQL Elephant by the TrunkGrabbing the PostgreSQL Elephant by the Trunk
Grabbing the PostgreSQL Elephant by the Trunk
 
Meet Magento Spain 2019 - Our Experience with Magento Cloud
Meet Magento Spain 2019 - Our Experience with Magento CloudMeet Magento Spain 2019 - Our Experience with Magento Cloud
Meet Magento Spain 2019 - Our Experience with Magento Cloud
 
How to upgrade to MongoDB 4.0 - Percona Europe 2018
How to upgrade to MongoDB 4.0 - Percona Europe 2018How to upgrade to MongoDB 4.0 - Percona Europe 2018
How to upgrade to MongoDB 4.0 - Percona Europe 2018
 
Java one 2015 [con3339]
Java one 2015 [con3339]Java one 2015 [con3339]
Java one 2015 [con3339]
 
AS7
AS7AS7
AS7
 
Ad111
Ad111Ad111
Ad111
 
AD111 -- Harnessing the Power of Server-Side JavaScript and Other Advanced XP...
AD111 -- Harnessing the Power of Server-Side JavaScript and Other Advanced XP...AD111 -- Harnessing the Power of Server-Side JavaScript and Other Advanced XP...
AD111 -- Harnessing the Power of Server-Side JavaScript and Other Advanced XP...
 
ILOG BRMS Mainframe Options
ILOG BRMS Mainframe OptionsILOG BRMS Mainframe Options
ILOG BRMS Mainframe Options
 
Data Serialization Using Google Protocol Buffers
Data Serialization Using Google Protocol BuffersData Serialization Using Google Protocol Buffers
Data Serialization Using Google Protocol Buffers
 
Bp307 Practical Solutions for Connections Administrators, tips and scrips for...
Bp307 Practical Solutions for Connections Administrators, tips and scrips for...Bp307 Practical Solutions for Connections Administrators, tips and scrips for...
Bp307 Practical Solutions for Connections Administrators, tips and scrips for...
 
Developing XPages Applications
Developing XPages ApplicationsDeveloping XPages Applications
Developing XPages Applications
 
JavascriptMVC: Another choice of web framework
JavascriptMVC: Another choice of web frameworkJavascriptMVC: Another choice of web framework
JavascriptMVC: Another choice of web framework
 
SaaSy maps - using django-tenants and geodjango to provide web-gis software-a...
SaaSy maps - using django-tenants and geodjango to provide web-gis software-a...SaaSy maps - using django-tenants and geodjango to provide web-gis software-a...
SaaSy maps - using django-tenants and geodjango to provide web-gis software-a...
 
JSFest 2019: Technology agnostic microservices at SPA frontend
JSFest 2019: Technology agnostic microservices at SPA frontendJSFest 2019: Technology agnostic microservices at SPA frontend
JSFest 2019: Technology agnostic microservices at SPA frontend
 

More from telestax

Api and fly! CPaaS Enablement: Combining Apps, Networks, and APIs
Api and fly! CPaaS Enablement:  Combining Apps, Networks, and APIsApi and fly! CPaaS Enablement:  Combining Apps, Networks, and APIs
Api and fly! CPaaS Enablement: Combining Apps, Networks, and APIstelestax
 
RestComm Architecture Design
RestComm Architecture DesignRestComm Architecture Design
RestComm Architecture Designtelestax
 
RestComm Mobile Client SDKs
RestComm Mobile Client SDKsRestComm Mobile Client SDKs
RestComm Mobile Client SDKstelestax
 
Location Based Services at Heterogeneous Networks
Location Based Services at Heterogeneous NetworksLocation Based Services at Heterogeneous Networks
Location Based Services at Heterogeneous Networkstelestax
 
Restcomm past and future
Restcomm past and futureRestcomm past and future
Restcomm past and futuretelestax
 
Restcomm in an oauth environment
Restcomm in an oauth environmentRestcomm in an oauth environment
Restcomm in an oauth environmenttelestax
 
Restconn 2015 products
Restconn 2015 productsRestconn 2015 products
Restconn 2015 productstelestax
 
Restconn 2015 products
Restconn 2015 productsRestconn 2015 products
Restconn 2015 productstelestax
 
New Opportunities for Real Time Communications - WebRTC Conference Japan - Fe...
New Opportunities for Real Time Communications - WebRTC Conference Japan - Fe...New Opportunities for Real Time Communications - WebRTC Conference Japan - Fe...
New Opportunities for Real Time Communications - WebRTC Conference Japan - Fe...telestax
 
TeleStax - Convergence - uFone - AWCC - TADS 2014
TeleStax - Convergence - uFone - AWCC - TADS 2014TeleStax - Convergence - uFone - AWCC - TADS 2014
TeleStax - Convergence - uFone - AWCC - TADS 2014telestax
 
New Business Opportunities created by the IoT Explosion - WebRTCSummit - San...
New Business Opportunities created by the IoT Explosion - WebRTCSummit  - San...New Business Opportunities created by the IoT Explosion - WebRTCSummit  - San...
New Business Opportunities created by the IoT Explosion - WebRTCSummit - San...telestax
 
Boost JBoss AS7 with HTML5 WebRTC for Real Time Communications
Boost JBoss AS7 with HTML5 WebRTC for Real Time CommunicationsBoost JBoss AS7 with HTML5 WebRTC for Real Time Communications
Boost JBoss AS7 with HTML5 WebRTC for Real Time Communicationstelestax
 
Restcomm in Telehealth - Web RTC Summit - November 2013 - Santa Clara, CA
Restcomm in Telehealth - Web RTC Summit - November 2013 - Santa Clara, CARestcomm in Telehealth - Web RTC Summit - November 2013 - Santa Clara, CA
Restcomm in Telehealth - Web RTC Summit - November 2013 - Santa Clara, CAtelestax
 
Tel scale ussd_gateway-vuc
Tel scale ussd_gateway-vucTel scale ussd_gateway-vuc
Tel scale ussd_gateway-vuctelestax
 
Open Source Hangouts on WebRTC - WebRTC Workshop IMS World Forum
Open Source Hangouts on WebRTC - WebRTC Workshop IMS World ForumOpen Source Hangouts on WebRTC - WebRTC Workshop IMS World Forum
Open Source Hangouts on WebRTC - WebRTC Workshop IMS World Forumtelestax
 
Boost JBoss AS7 with HTML5 WebRTC for Real Time Communications
Boost JBoss AS7 with HTML5 WebRTC for Real Time CommunicationsBoost JBoss AS7 with HTML5 WebRTC for Real Time Communications
Boost JBoss AS7 with HTML5 WebRTC for Real Time Communicationstelestax
 
Mobicents Summit 2012 - CTBC/Algar TeleCom - Simplifying CTBC's IVR System an...
Mobicents Summit 2012 - CTBC/Algar TeleCom - Simplifying CTBC's IVR System an...Mobicents Summit 2012 - CTBC/Algar TeleCom - Simplifying CTBC's IVR System an...
Mobicents Summit 2012 - CTBC/Algar TeleCom - Simplifying CTBC's IVR System an...telestax
 
Mobicents Summit 2012 - Twilio Expanding internationally Challenges Solutions
Mobicents Summit 2012 - Twilio Expanding internationally Challenges SolutionsMobicents Summit 2012 - Twilio Expanding internationally Challenges Solutions
Mobicents Summit 2012 - Twilio Expanding internationally Challenges Solutionstelestax
 
Mobicents Summit 2012 - Jonas Borjesson - Introduction to Twilio
Mobicents Summit 2012 - Jonas Borjesson - Introduction to TwilioMobicents Summit 2012 - Jonas Borjesson - Introduction to Twilio
Mobicents Summit 2012 - Jonas Borjesson - Introduction to Twiliotelestax
 
Mobicents Summit 2012 - TeleStax Keynote
Mobicents Summit 2012 - TeleStax KeynoteMobicents Summit 2012 - TeleStax Keynote
Mobicents Summit 2012 - TeleStax Keynotetelestax
 

More from telestax (20)

Api and fly! CPaaS Enablement: Combining Apps, Networks, and APIs
Api and fly! CPaaS Enablement:  Combining Apps, Networks, and APIsApi and fly! CPaaS Enablement:  Combining Apps, Networks, and APIs
Api and fly! CPaaS Enablement: Combining Apps, Networks, and APIs
 
RestComm Architecture Design
RestComm Architecture DesignRestComm Architecture Design
RestComm Architecture Design
 
RestComm Mobile Client SDKs
RestComm Mobile Client SDKsRestComm Mobile Client SDKs
RestComm Mobile Client SDKs
 
Location Based Services at Heterogeneous Networks
Location Based Services at Heterogeneous NetworksLocation Based Services at Heterogeneous Networks
Location Based Services at Heterogeneous Networks
 
Restcomm past and future
Restcomm past and futureRestcomm past and future
Restcomm past and future
 
Restcomm in an oauth environment
Restcomm in an oauth environmentRestcomm in an oauth environment
Restcomm in an oauth environment
 
Restconn 2015 products
Restconn 2015 productsRestconn 2015 products
Restconn 2015 products
 
Restconn 2015 products
Restconn 2015 productsRestconn 2015 products
Restconn 2015 products
 
New Opportunities for Real Time Communications - WebRTC Conference Japan - Fe...
New Opportunities for Real Time Communications - WebRTC Conference Japan - Fe...New Opportunities for Real Time Communications - WebRTC Conference Japan - Fe...
New Opportunities for Real Time Communications - WebRTC Conference Japan - Fe...
 
TeleStax - Convergence - uFone - AWCC - TADS 2014
TeleStax - Convergence - uFone - AWCC - TADS 2014TeleStax - Convergence - uFone - AWCC - TADS 2014
TeleStax - Convergence - uFone - AWCC - TADS 2014
 
New Business Opportunities created by the IoT Explosion - WebRTCSummit - San...
New Business Opportunities created by the IoT Explosion - WebRTCSummit  - San...New Business Opportunities created by the IoT Explosion - WebRTCSummit  - San...
New Business Opportunities created by the IoT Explosion - WebRTCSummit - San...
 
Boost JBoss AS7 with HTML5 WebRTC for Real Time Communications
Boost JBoss AS7 with HTML5 WebRTC for Real Time CommunicationsBoost JBoss AS7 with HTML5 WebRTC for Real Time Communications
Boost JBoss AS7 with HTML5 WebRTC for Real Time Communications
 
Restcomm in Telehealth - Web RTC Summit - November 2013 - Santa Clara, CA
Restcomm in Telehealth - Web RTC Summit - November 2013 - Santa Clara, CARestcomm in Telehealth - Web RTC Summit - November 2013 - Santa Clara, CA
Restcomm in Telehealth - Web RTC Summit - November 2013 - Santa Clara, CA
 
Tel scale ussd_gateway-vuc
Tel scale ussd_gateway-vucTel scale ussd_gateway-vuc
Tel scale ussd_gateway-vuc
 
Open Source Hangouts on WebRTC - WebRTC Workshop IMS World Forum
Open Source Hangouts on WebRTC - WebRTC Workshop IMS World ForumOpen Source Hangouts on WebRTC - WebRTC Workshop IMS World Forum
Open Source Hangouts on WebRTC - WebRTC Workshop IMS World Forum
 
Boost JBoss AS7 with HTML5 WebRTC for Real Time Communications
Boost JBoss AS7 with HTML5 WebRTC for Real Time CommunicationsBoost JBoss AS7 with HTML5 WebRTC for Real Time Communications
Boost JBoss AS7 with HTML5 WebRTC for Real Time Communications
 
Mobicents Summit 2012 - CTBC/Algar TeleCom - Simplifying CTBC's IVR System an...
Mobicents Summit 2012 - CTBC/Algar TeleCom - Simplifying CTBC's IVR System an...Mobicents Summit 2012 - CTBC/Algar TeleCom - Simplifying CTBC's IVR System an...
Mobicents Summit 2012 - CTBC/Algar TeleCom - Simplifying CTBC's IVR System an...
 
Mobicents Summit 2012 - Twilio Expanding internationally Challenges Solutions
Mobicents Summit 2012 - Twilio Expanding internationally Challenges SolutionsMobicents Summit 2012 - Twilio Expanding internationally Challenges Solutions
Mobicents Summit 2012 - Twilio Expanding internationally Challenges Solutions
 
Mobicents Summit 2012 - Jonas Borjesson - Introduction to Twilio
Mobicents Summit 2012 - Jonas Borjesson - Introduction to TwilioMobicents Summit 2012 - Jonas Borjesson - Introduction to Twilio
Mobicents Summit 2012 - Jonas Borjesson - Introduction to Twilio
 
Mobicents Summit 2012 - TeleStax Keynote
Mobicents Summit 2012 - TeleStax KeynoteMobicents Summit 2012 - TeleStax Keynote
Mobicents Summit 2012 - TeleStax Keynote
 

Mobicents Summit 2012 - Silvano Girardi - InPhonex's migration to Mobicents Sip Servlets

  • 1. Migration to Mobicents SIP Servlets Mobicents Summit 2012 Rio de Janeiro, Brazil
  • 2. ● Founded in 2003 ● Privately held ● Operations in 150 countries ● Corporate headquarters in Miami, Florida ● Technical facilities in Virginia, Brazil, Argentina ● Four primary lines of business ● InPhonex Business including ● InPhonex Resale ● InPhonex Personal ● InPhonex Platform Solutions
  • 3. Reasons to Migrate ● Currently using the old BEA's WebLogic 3.1 ○ JSR116 ○ Old version of JRockit ○ Bugs, etc. Looking for alternatives, we wanted a more dynamic solution. ● Open Source ● Active Maintainers ● Active Community ● Support ● Response time for reported issues ● Range of products ○ Mobicents SIP Servlets ○ RestComm ○ Media Server
  • 4. Now to the details of the migration...
  • 5. Descriptor Changes BEA is older and sip.xml doctype is from previous spec <!DOCTYPE sip-app PUBLIC "-//Java Community Process//DTD SIP Application 1.0//EN" "sip-app_1_0.dtd"> ● Moved from servlet-mapping to servlet-selection to allow further configuration from the management console ● Overall refactoring to avoid having to rely on the BEA JNDI.
  • 6. Descriptor Changes web.xml doctype is from previous spec <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> ● Everything else is the same
  • 7. Application code changes ● In BEA HTTP sessions are eagerly created so request.getSession().invalidate() is required, but in JBoss it throws exception because it is lazy-created ● Derived sessions are invalidated together in BEA, in Mobicents they continue separately ● Change the datasource JNDI lookup code ● MAX_LISTENER_RESPONSE_TIME because of long 183s ● Can not bind object to session that has been invalidated!!
  • 8. Database configuration ● Add the mysql driver in the server/default/lib directory ● JBoss has completely different datasource deployment descriptors and configuration (see route-ds.xml) ● BEA connection pooling vs DBCP (overall 90% the same options with different names) ● BEA connection load balancing vs mysql JDBC driver built-in load balancing vs JBoss load balancing (large topic) ● In the end the mysql driver can do equivalent load balancing of the writes with jdbc:mysql:loadbalance: //host1,host2/database
  • 9. JBoss 7 datasources ● Completely different from JBoss 5 datasource descriptors ● Still uses DBCP, but the configuration file syntax is different
  • 10. BEA IDE project The original inphonex project was Eclipse WTP project with self-contained dependencies and some BEA dependencies.
  • 11. Moving to Maven ● By far the most difficult task. ● Swap the bea sip servlet api jar with the mobicents sip servlet api jar ● Hunting down the required dependencies with google ● Must use mvn clean war:inplace war:war install to be sure the build is refreshed ○ simply doing war:war caches an older copy sometimes
  • 12. Logging ● Three completely different logging configurations ○ JBoss AS 5 (log4j xml) ○ JBoss AS 7 (jboss logging + log4j behind it) ○ Tomcat (log4j propeties)
  • 13. Logging in JBoss 5 ● In Mobicents STDOUT logging is rendered only as much as log4j allows, so application logging was moved to log4j ● Log4j configuration entries may need to be added to jboss-log4j.xml for the app ● Of course the logging output is completely different than BEA and log4j must be mastered
  • 14. JBoss AS 7 Logging ● Different from the JBoss 5 logging ● Centralized configuration ● https://community.jboss. org/wiki/JBossAS7Logging ● Use admin console at http://127.0.0.1:9990 to make quick edits that take effect immediately ○ Output handlers ○ Categories ○ Levels ○ Somewhat like Oracle/BEA
  • 15. How to isolate only the inphonex logging into separate file Know your category and level <category name="com.inphonex"> <priority value="DEBUG"/> <appender-ref ref="MY_OWN_APPENDER"/> </category> Make sure the appender and root thresholds allow your level of logging <appender name="MY_OWN_APPENDER" class="org.jboss.logging.appender. DailyRollingFileAppender"> <param name="File" value="/log/inphonex.log"/> <param name="Threshold" value="DEBUG"/>
  • 16. JRockit vs Hotspot ● Most settings are portable between the JVMs, but JRockit management configuration is different and it lacks some diagnostic options ● The hotspot parallel garbage collection with incremental CMS seems just as capable as jrockits for the current load ● The garbage collection patterns are different
  • 17. JVM options Hotspot 1.6 any JAVA_OPTS="-Xms2g -Xmx2g -Dcom.sun.management.jmxremote -Dcom.sun.management. jmxremote.port=7091 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -XX:+HeapDumpOnOutOfMemoryError -XX: PermSize=128M -XX:MaxPermSize=256M -XX:+UseConcMarkSweepGC -XX: +CMSIncrementalMode -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 - Dsun.rmi.dgc.server.gcInterval=3600000" JRockit R27.4.0-jdk1.5.0_12 -server -Xms2048m -Xmx2048m -Xgc:gencon -XXnosystemgc -XXtlasize:min=3k -XXkeeparearatio=0 -Xns:40m -Xmanagement:ssl=false,authenticate=false,port=7091 -XXdisableFatSpin -XX: +HeapDumpOnOutOfMemoryError -XX:-UseFatSpin -XX:+HeapDiagnosticsOnOutOfMemoryError (only available in R28, so no luck with those)
  • 18. Management and Monitoring for Mobicents ● jconsole - JMX monitoring and management and JVM stats ● http://127.0.0.1:8080/jmx-console - same with Web UI ● http://127.0.0.1:8080/sip-servlets-management - Sip Servlets specific administration ● http://127.0.0.1:8080/admin-console - JBoss global administration Web console ● twiddle - command line tool for JMX management ● http://127.0.0.1:9990 - JBoss 7 is much more like BEA, can configure the datasources in similar way ● JBoss 7 suffers from https://issues.jboss. org/browse/JBAS-7427 ○ many hacks are needed to have a working JMX!
  • 19. Management and Monitoring for JRockit and BEA ● JRockit Mission Control - glorified jconsole ● http://127.0.0.1:7001/console/console.portal ○ Unified Web UI for the BEA server, including SIP ● Command line ○ Mission control from the command line (jrmc) ○ Application server administration from the command line ○ jrcmd - replaces the Hotspot JDK tools such as jps, jstack and so on