I've created an attachment that uses XML-RPC and am having intermittent issues with it when teleporting.
My test system works like this:
1. The attachment calls llOpenRemoteDataChannel() and gets a UUID channel
2. The UUID is plugged into an external app that makes an XML-RPC call to the attachment every 4 seconds. The attachment returns the value of a global variable.
3. I have a changed() event listener to detect CHANGED_REGION and CHANGED_TELEPORT events. On either of those events, the attachment calls llOpenRemoteDataChannel().
4. Because I had some issues with the changed() event not always being called, I also have a timer that checks the current region every 6 seconds and compares it with a stored value. If the current region and the stored value are out of sync, I call llOpenRemoteDataChannel(). I also updated the stored region in steps #1 and #3.
So I follow steps 1 & 2 and my external application starts dumping the global variable.
If I move my avatar with attachment attached into an adjacent sim, the external application's XML-RPC will time-out once or twice -- then it will start returning the value from the attachment. I expect this, and it's okay. These calls are likely happening after the object has left the old sim, but the llOpenRemoteDataChannel() call in the new sim hasn't transfered over the channel.
If I just fly from sim to sim to sim, I'm testing this in the far south east continent. Everything is just fine and dandy. Works as expected.
But if I teleport, to a sim that I haven't flown through yet -- my call to llOpenRemoteDataChannel() returns the same channel, but the external application continues to get "script not reponding" time-out errors. If I reset the script in the attachment, in the sim I TPed to. It does not fix the problem. calling LLCloseRemoteDataChannel() and reopenning it, does not fix the problem.
I have only found two ways to get the attachment to work again:
1. Detach the attachment (back into inventory) and then re-attach. At which point, calling llOpenRemoteDataChannel() returns a new UUID that's different from the one it had before.
2. Flying or TPing back into a sim where it was previously working, sometimes resurects the XML-RPC channel and it starts working.
Is anyone else experiencing this?
Thanks