+1 Melanie! Functions are way too overloaded in OpenSim in general.
On Mon, Mar 31, 2014 at 8:50 AM, Melanie <mela...@t-data.com> wrote: > Hi Oren, > > the correct way is to create an additional post handler that is reachable > at a different URL, e,g, /AssetQuery/ > > Servers that don't implement it would return 404. Don't try to shoehorn > this functionality into the existing post handler. > > Melanie > > On 31 Mar 2014, at 13:55, Oren Hurvitz <or...@kitely.com> wrote: > > I have implemented this method. I found that the Assets Service already > had a > method to check for assets' existence, so I just had to extend it to check > multiple asset ID's at once, and make it available remotely. But now I'm > not > sure what to do about backwards compatibility. > > I'm sending the request using POST, because sending a lot of data is better > done using POST than GET. But as it turns out, AssetServerPostHandler > doesn't handle unknown requests well. First, it assumes that all requests > will contain an AssetBase, but this request doesn't. Second, its try/catch > clause doesn't catch the exception that is generated, because it's an > InvalidOperationException and not an XmlException (which is what's > currently > caught). The unfortunate result is that the server doesn't send back *any* > reply, which means that the caller must wait for the full timeout (100 > seconds!) before giving up. [BTW, I'm going to investigate this further > because it may explain the 100-second timeouts users occasionally > experience.] > > I've already fixed this problem in the current patch (not yet submitted), > so > that in the future AssetServerPostHandler will return an error code > immediately for unknown requests (HTTP 400). But that won't help when > connecting to old grids. > > I see two ways to fix this: > > 1. Send the request using GET instead of POST. AssetServerGetHandler > handles > unknown requests a little better than POST: it tries to find the parameter > as an Asset ID, but if not found then it just returns HTTP 404 immediately. > > 2. Add a way to query the server for its capabilities, to find out if it > supports this request. > > I prefer approach #2 because it can be used in the future for many other > new > features. How about adding a method to IGatekeeperService, something like > this: > > Dictionary<string,string> GetServerCapabilities(); > > In this example, the capability will be: "SupportsAssetsExist"="true" > > > > > -- > View this message in context: > http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579100.html > Sent from the opensim-dev mailing list archive at Nabble.com. > _______________________________________________ > Opensim-dev mailing list > Opensim-dev@lists.berlios.de > https://lists.berlios.de/mailman/listinfo/opensim-dev > > > _______________________________________________ > Opensim-dev mailing list > Opensim-dev@lists.berlios.de > https://lists.berlios.de/mailman/listinfo/opensim-dev > -- No essence. No permanence. No perfection. Only action.
_______________________________________________ Opensim-dev mailing list Opensim-dev@lists.berlios.de https://lists.berlios.de/mailman/listinfo/opensim-dev