My initial thoughts are that the application router in your backup
server is not configured properly or the application is not deployed
there. Can you check these as well? Note that the application routing
configuration must be done on each server manually.
And we also have a bug that causes these requests to be routed back to
the server in a loop eventually leading the error response.
<Connector port="5080"
ipAddress = "${jboss.bind.address}"
...
staticServerAddress="122.122.122.122" staticServerPort="44"
useStaticAddress="true"/>
But in the failover case when the hold invite comes in the dialog is not found:
13:24:28,388 DEBUG [Mobicents-SIP-Servlets]
gov.nist.javax.sip.DialogFilter.processRequest(DialogFilter.java:235) [dialog = null]
...
13:24:28,416 DEBUG [SipApplicationDispatcherImpl]
Routing State INITIAL
...
org.mobicents.servlet.sip.core.dispatchers.DispatcherException: the Request-URI does not point to another domain, and there is no Route header,the container should not send the request as it will cause a loop. Instead, the container must reject the request with 404 Not Found final response with no Retry-After header. You may want to check your dar configuration file to see if the request can be handled or make sure you use the correct Application Router jar.
I have attached the full logs. I will look into dynamically adding the sip connector on the "floating ip" after a failover occurs. I am hoping that once the listeningpoint and everything is setup on the correct ip then the replicated dialog and application session will be located correctly after the failover when the hold invite comes in.
Thanks
anthony
From: "u1 u1" <sip:u...@a.com>;tag=29-1750-1a88-ffffffff
To: "u2 u2" <sip:u...@a.com>;tag=10815605_50f32d32_8677217557009562
Call-ID: 734159f34a8358d6...@47.105.84.64
CSeq: 2 ACK
Via: SIP/2.0/UDP
47.102.244.232:5065;rport=5065;branch=z9hG4bK-7107d-1b986af9-3342c778;received=47.102.244.232
Contact: <sip:u...@47.102.244.232:5065;nt_end_pt=YM0+~Kud~Q!.v1SW.uWUqtA0~Ku031~UHdFFm~NAf4imazaS~LXaxTc7devoMa~WbErty5fC6Nj76~Xn7ZQzN~LPcdcU1.qwoTDmp3-15ccr8z8t6Q0E114!BPr~J4S4T.5AJqtT-.f32;nt_server_host=47.102.244.232:5065>
User-Agent: Nortel PCC 7.0.76
Max-Forwards: 20
Content-Length: 0
20:29:45,530 DEBUG [SubsequentRequestDispatcher] Trying to find the
corresponding sip session with key
(sip:u...@a.com,29-1750-1a88-ffffffff,sip:u...@a.com,734159f34a8358d6...@47.105.84.64,8677217557009562,TpccSipServlet)
to this subsequent request ACK sip:47.105.84.64:5080;transport=udp
SIP/2.0
From: "u1 u1" <sip:u...@a.com>;tag=29-1750-1a88-ffffffff
To: "u2 u2" <sip:u...@a.com>;tag=10815605_50f32d32_8677217557009562
Call-ID: 734159f34a8358d6...@47.105.84.64
CSeq: 2 ACK
Via: SIP/2.0/UDP
47.102.244.232:5065;rport=5065;branch=z9hG4bK-7107d-1b986af9-3342c778;received=47.102.244.232
Contact: <sip:u...@47.102.244.232:5065;nt_end_pt=YM0+~Kud~Q!.v1SW.uWUqtA0~Ku031~UHdFFm~NAf4imazaS~LXaxTc7devoMa~WbErty5fC6Nj76~Xn7ZQzN~LPcdcU1.qwoTDmp3-15ccr8z8t6Q0E114!BPr~J4S4T.5AJqtT-.f32;nt_server_host=47.102.244.232:5065>
User-Agent: Nortel PCC 7.0.76
Max-Forwards: 20
Content-Length: 0
with the following popped route header null
20:29:45,530 DEBUG [JBossCacheSipManager] sip session
(sip:u...@a.com,29-1750-1a88-ffffffff,sip:u...@a.com,734159f34a8358d6...@47.105.84.64,8677217557009562,TpccSipServlet)
found in the local store SessionBasedClusteredSipSession[key:
(sip:u...@a.com,29-1750-1a88-ffffffff,sip:u...@a.com,734159f34a8358d6...@47.105.84.64,8677217557009562,TpccSipServlet)
lastAccessedTime: 1249954185230 version: 0 lastOutdated: 0]
20:29:45,530 DEBUG [JBossCacheSipManager] sip session
(sip:u...@a.com,29-1750-1a88-ffffffff,sip:u...@a.com,734159f34a8358d6...@47.105.84.64,8677217557009562,TpccSipServlet)
bound and expired ? false
20:29:45,530 DEBUG [SubsequentRequestDispatcher] Inverted try worked.
sip session found :
(sip:u...@a.com,29-1750-1a88-ffffffff,sip:u...@a.com,734159f34a8358d6...@47.105.84.64,8677217557009562,TpccSipServlet)
20:29:45,530 DEBUG [Mobicents-SIP-Servlets]
gov.nist.javax.sip.EventScanner.deliverEvent(EventScanner.java:226)
[Done processing Message ACK sip:47.105.84.64:5080;transport=udp
SIP/2.0
]
20:29:45,531 DEBUG [Mobicents-SIP-Servlets]
gov.nist.javax.sip.stack.SIPDialog.requestConsumed(SIPDialog.java:786)
[Request Consumed -- next consumable Request Seqno = 3]
20:29:45,531 DEBUG [Mobicents-SIP-Servlets]
gov.nist.javax.sip.EventScanner.deliverEvent(EventScanner.java:246)
[Done processing Message ACK sip:47.105.84.64:5080;transport=udp
SIP/2.0
]
20:29:45,531 DEBUG [Mobicents-SIP-Servlets]
gov.nist.javax.sip.stack.SIPTransaction.semRelease(SIPTransaction.java:1197)
[semRelease ]]]]gov.nist.javax.sip.stack.SIPServerTransaction@3287f27a]
20:29:45,531 DEBUG [SipSessionImpl] transaction
gov.nist.javax.sip.stack.SIPServerTransaction@3287f27a has been added
to sip session's ongoingTransactions
20:29:45,532 DEBUG [Mobicents-SIP-Servlets]
[LogWriter.java:111][SIPTransaction.java:1198][SIPTransaction.java:1184][SIPServerTransaction.java:1647][EventScanner.java:254][SipProviderImpl.java:184][DialogFilter.java:944][SIPServerTransaction.java:809][UDPMessageChannel.java:455][UDPMessageChannel.java:414][UDPMessageChannel.java:258][null:-1]
20:29:45,532 INFO [SipStandardContext] We are now after the servlet
invocation, We replicate no matter what
20:29:45,533 DEBUG [Mobicents-SIP-Servlets]
gov.nist.javax.sip.stack.SIPTransactionStack.removePendingTransaction(SIPTransactionStack.java:922)
[removePendingTx: z9hg4bk-7107d-1b986af9-3342c778]
20:29:45,533 INFO [SipStandardContext] Snapshot Manager
org.jboss.web.tomcat.service.session.InstantConvergedSnapshotManager@15afd61
20:29:45,535 DEBUG [JBossCacheSipManager] check to see if needs to
store and replicate session with id
(sip:u...@a.com,29-1750-1a88-ffffffff,sip:u...@a.com,734159f34a8358d6...@47.105.84.64,8677217557009562,TpccSipServlet)
20:29:45,533 DEBUG [Mobicents-SIP-Servlets]
gov.nist.javax.sip.stack.SIPTransaction.setState(SIPTransaction.java:562)
[Transaction:setState Terminated Transaction
gov.nist.javax.sip.stack.SIPServerTransaction@3287f27a branchID =
z9hG4bK-7107d-1b986af9-3342c778 isClient = false]
20:29:45,535 INFO [JBossCacheSipManager] replicating following sip
session (sip:u...@a.com,29-1750-1a88-ffffffff,sip:u...@a.com,734159f34a8358d6...@47.105.84.64,8677217557009562,TpccSipServlet)
20:29:45,535 DEBUG [JBossCacheClusteredSipSession]
processSessionRepl(): session is dirty. Will increment version from: 0
and replicate.
20:29:45,535 DEBUG [Mobicents-SIP-Servlets]
[LogWriter.java:111][SIPTransaction.java:565][SIPServerTransaction.java:1430][EventScanner.java:267][SipProviderImpl.java:184][DialogFilter.java:944][SIPServerTransaction.java:809][UDPMessageChannel.java:455][UDPMessageChannel.java:414][UDPMessageChannel.java:258][null:-1]
20:29:45,535 DEBUG [ClusteredSipSession] writing handlerServlet null
20:29:45,535 DEBUG [Mobicents-SIP-Servlets]
gov.nist.javax.sip.stack.SIPTransaction.semRelease(SIPTransaction.java:1197)
[semRelease ]]]]gov.nist.javax.sip.stack.SIPServerTransaction@3287f27a]
20:29:45,536 DEBUG [Mobicents-SIP-Servlets]
[LogWriter.java:111][SIPTransaction.java:1198][SIPTransaction.java:1184][SIPServerTransaction.java:1647][UDPMessageChannel.java:460][UDPMessageChannel.java:414][UDPMessageChannel.java:258][null:-1]
20:29:45,536 ERROR [ConvergedJBossCacheService] externalizeSession():
exception occurred externalizing session
SessionBasedClusteredSipSession[key:
(sip:u...@a.com,29-1750-1a88-ffffffff,sip:u...@a.com,734159f34a8358d6...@47.105.84.64,8677217557009562,TpccSipServlet)
lastAccessedTime: 1249954185230 version: 1 lastOutdated: 0]
java.lang.NullPointerException
at java.io.ObjectOutputStream$BlockDataOutputStream.getUTFLength(Unknown Source)
at java.io.ObjectOutputStream$BlockDataOutputStream.writeUTF(Unknown Source)
at java.io.ObjectOutputStream.writeUTF(Unknown Source)
at org.jboss.web.tomcat.service.session.ClusteredSipSession.writeExternal(ClusteredSipSession.java:1168)
at org.jboss.web.tomcat.service.session.SessionBasedClusteredSipSession.writeExternal(SessionBasedClusteredSipSession.java:167)
at org.jboss.web.tomcat.service.session.ConvergedJBossCacheService.externalizeSipSession(ConvergedJBossCacheService.java:1927)
at org.jboss.web.tomcat.service.session.ConvergedJBossCacheService.putSipSession(ConvergedJBossCacheService.java:550)
at org.jboss.web.tomcat.service.session.JBossCacheClusteredSipSession.processSessionRepl(JBossCacheClusteredSipSession.java:158)
at org.jboss.web.tomcat.service.session.JBossCacheSipManager.processSipSessionRepl(JBossCacheSipManager.java:1681)
at org.jboss.web.tomcat.service.session.JBossCacheSipManager.storeSipSession(JBossCacheSipManager.java:750)
at org.jboss.web.tomcat.service.session.InstantConvergedSnapshotManager.snapshot(InstantConvergedSnapshotManager.java:39)
at org.mobicents.servlet.sip.startup.SipStandardContext.exitSipApp(SipStandardContext.java:1086)
at org.mobicents.servlet.sip.core.dispatchers.SubsequentRequestDispatcher$1.dispatch(SubsequentRequestDispatcher.java:319)
at org.mobicents.servlet.sip.core.dispatchers.DispatchTask.dispatchAndHandleExceptions(DispatchTask.java:55)
at org.mobicents.servlet.sip.core.dispatchers.DispatchTask.run(DispatchTask.java:50)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
I think I was able to reproduce this particular problem and I am
looking into it. It is possible that there is another replication
problem that causes your case to fail though.
On Tue, Aug 11, 2009 at 5:30 AM, BrownSound777