Von Entwicklern von SIP-Anwendungen zu beachtende Laufzeitfaktoren

Sie müssen bestimmte Laufzeitverhalten des Produkts berücksichtigen, wenn Sie SIP-Anwendungen (Session Initiation Protocol) schreiben.

Container akzeptiert möglicherweise keine SIP-URI-Schemata

Der SIP-Container weist eine Nachricht nicht zurück, wenn er das Schema im Anforderungs-URI nicht erkennt, weil der Container nicht wissen kann, welche URI-Schemata von den Anwendungen unterstützt werden. SIP-Elemente können einen Anforderungs-URI mit einem anderen Schema als sip oder sips unterstützen. Das Schema pres: hat beispielsweise eine besondere Bedeutung für Presence-Server, aber der Container erkennt dieses Schema nicht. Die Anwenddung muss entscheiden, ob ein bestimmtes Schema akzeptiert oder zurückgewiesen wird. SIP-Elemente können SIP-fremde URIs mit jedem verfügbaren Mechanismus in SIP-URIs, SIPS-URIs oder andere Schemata wie das in RFC 2806 [9] beschriebene URI-Schema tel umsetzen.

Hinweis zur Umstellung Hinweis zur Umstellung: Wenn eine SIP-Anwendung in version 6.1 eine Anforderung über TLS (Transport Layer Security) an einen SIP-URI sendet, ändert sich das Anforderungs-URI-Schema von "sip" in "sips". In der aktuellen Version 7.0 ändert sich das Schema nicht. Sie können das neue Verhalten durch Ändern des Anwendungscodes zurücksetzen. Mit einem "sips"-URI bleibt das Verhalten nach einem Upgrade von Version 6.1 auf 7.0 oder höher gleich. Weitere Informationen finden Sie im Artikel "Hinweise zur Vormigration" im Information Center.trns

Anforderungen in einer Mehrcontainerumgebung weiterleiten

Wenn Ihre Anwendung in einer Mehrcontainerumgebung (SIP-Proxy plus SIP-Container) eine Anforderung sendet, die ursprünglich extern gesendet, aber später empfangen werden soll, muss sie Host und Ports des vorgelagerten Lastausgleichselement (IP-Sprayer für mehrere SIP-Proxys oder SIP-Proxy, falls nur einer vorhanden ist) verwenden. Wenn die Anwendung den Hostnamen eines Containers anstelle des vorgelagerten Elements verwendet, kann die Anforderung beim Auftreten eines Fehlers verloren gehen.

Beispiel: Eine Anwendung sendet eine INVITE-Anforderung an sich selbst, aber die Anforderung muss über ein externes Abrechnungssystem über einen vorgeschriebenen Routenheader übergeben werden. Die Anwendung muss den URI der INVITE-Anforderung auf den Host und den Port des vorgelagerten Elements setzen, um sicherzustellen, dass der Failover stattfindet. Die Anforderung wird über die vorgeschriebene Route an das Abrechnungssystem weitergeleitet und anschließend zur Verarbeitung an das vorgelagerte Lastausgleichelemente zurückgesendet.

Ereignisse im Sitzungsslistener aufrufen

Die Ereignisse SipSessionListener und SipApplicationSessionListener werden nur aufgerufen, wenn eine Anforderung das entsprechende Sitzungsobjekt anfordert. Hierfür verwenden Sie in Ihrer Anwendung die in Tabelle 1 gezeigte Methode.
Tabelle 1. Methoden, die Ereignisse des Sitzungslisteners aufrufen.

In dieser Tabelle sind die Methoden, die Ereignisse des Sitzungslisteners aufrufen, aufgeführt.

Ereignis Methode
SipSessionListener getSession()
SipApplicationSessionListener getApplicationSession()

Aktivierung und Inaktivierung von Sitzungen

Während des normalen Betriebs migriert das Produkt keine Sitzungen zwischen Servern. Eine Sitzungsmigration findet nur beim Ausfall eines Servers statt. Deshalb wird der Inaktivierungs-Callback der Methode SipSessionActivationListener nicht aufgerufen. Der Aktivierungs-Callback wird jedoch aufgerufen, wenn ein Fehler ein Sitzungs-Failover auf einen anderen Server erzwingt.

Externe Ressourcen

Wenn eine SIP-Anwendung intensive Eingaben/Ausgaben ausführt oder auf eine externe Datenbank zugreift, kann sie für mehrere Millisekunden blockiert werden. Verwenden Sie, sofern möglich, asynchrone APIs für diese Ressourcen. Unter Belastung kann eine blockierte SIP-Anwendung eine Zeitlimitüberschreitung oder erneute Übertragung der Anforderung auslösen.

Attribut für SIP-Anwendungen

Vermeiden Sie das Anfügen großer Objekte oder BLOBs als SIP-Sitzungsattribute (über die API "SIPSession.setAttribute"), da dies in Kombination mit hoher Verfügbarkeit die Gesamtleistung beeinträchtigen kann. Dieselbe Empfehlung gilt für "SIPApplicationSession.setAttribute". In den meisten Fällen kann das große Objekt durch mehrere einfache oder zusammengesetzte Zeichenfolgen ersetzt werden.

Symbol, das den Typ des Artikels anzeigt. Referenzartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rsip_refwrite
Dateiname:rsip_refwrite.html