No-call scope refers to the context where call state data is modified outside the scope of a normal doxxx method. However, applications may also attempt to modify session data in "no-call" scope. The SIP Servlet container automatically locks the associated call state when invoking the doxxx method of a SIP Servlet. "Use setAttribute() to Modify Session Data in âNo-Callâ Scope" describes a potential deadlock situation.Ĥ.6 Use setAttribute() to Modify Session Data in âNo-Callâ Scope Similarly, main threads that use doAction() to access a different wlssSipApplicationSession can lead to deadlocks, because the container automatically locks main threads when processing incoming SIP messages. Any threads created within doAction() can execute another doAction() on the same WlssSipApplicationSession. The WlssSipApplicationSession.doAction() method, described in "Use setAttribute() to Modify Session Data in âNo-Callâ Scope", does not provide synchronization for spawned Java threads. Interactions between application-generated threads and WebLogic Server threads are especially difficult to anticipate and analyze. Multithreaded modules are complex and difficult to debug. Problems such as deadlocks and thread starvation may not appear until the application is under a heavy load. Your applications may break or cause poor Oracle WebLogic Server SIP Container performance when the server load increases. Threads in the JVM are a limited resource that must be allocated thoughtfully. If the doxxx method spawns additional threads or accesses a different call state before returning control, deadlock scenarios and lost updates to session data can occur.Īpplications that create their own threads do not scale well. The SIP Servlet container automatically locks the associated call state when invoking the do xxx method of a SIP Servlet. To obtain the greatest advantage from the Oracle WebLogic Server SIP Container architecture, construct your application modules according to the SIP Servlet and Java EE API specifications.Īvoid application designs that require creating new threads in server-side modules such as SIP Servlets: Oracle WebLogic Server SIP Container is a multi-threaded application server that carefully manages resource allocation, concurrency, and thread synchronization for the modules it hosts. Thoroughly test and profile your ported applications to discover problems and ensure adequate performance in the new environment. If you are porting an application from a previous version of Oracle WebLogic Server SIP Container, the conventions and restrictions described below may be new to you, because the 2.0 and 2.1 versions of WebLogic SIP Server implementations did not support clustering. In order for applications to function reliably in this environment, you must observe the programming practices and conventions described in the sections that follow to ensure that multiple deployed copies of your application perform as expected in the clustered environment. A separate cluster of servers in the SIP data tier provides a replicated, in-memory database of the call states for active calls. In a typical production environment, SIP applications are deployed to a cluster of Oracle WebLogic Server SIP Container instances that form the engine tier cluster. 4.1 Overview of Developing Distributed Applications
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |