option for LLUDPServer. On windows .NET the default socket receive
buffer size is 8192 bytes, on recent linux systems it's about
111K. both value can be a bit small for an OpenSim instance serving
many clients. The socket receive buffer size can be configured via
an OpenSim.ini config option
- adds a general catch clause to LLUDPServer.OnReceivedData() to
prevent it submerging when an unexpected Exception occurs.
This change moves texture send processing out of the main
packet processing loop and moves it to a timer based
processing cycle.
Texture packets are sent to the client consistently over
time. The timer is discontinued whenever there are no
textures to transmit.
The behavior of the texture sending mechanism is controlled
by three variables in the LLCLient section of the config
file:
[1] TextureRequestRate (mS) determines how many times per second
texture send processing will occur. The default is 100mS.
[2] TextureSendLimit determines how many different textures
will be considered on each cycle. Textures are selected
by priority. The old mechanism specified a value of 10 for
this parameter and this is the default
[3] TextureDataLimit determines how many packets will be sent for
each of the selected textures. The old mechanism specified a
value of 5, so this is the default.
So the net effect is that TextureSendLimit*TextureDataLimit
packets will be sent every TextureRequestRate mS.
Once we have gotten a reasonable feeling for how these parameters
affect overall processing, it would be nice to autonmically manage
these values using information about the current status of the
region and network.
Note that this also resolves the pathologcal problem that
previously existed which was that a seated avatar generated very
few in-bound packets (theoretically) and would therefore be the
least able to retrieve the images being displayed by a
projector script.
Several improvements in the connectors themselves.
Several improvements in configurations.
Needed to add a hack in IUserService and UserManagerBase, to be removed when that service is refactored.
See the files: bin/config-include/GridCommon.ini.example and bin/config-include/StandaloneCommon.ini.example to configure and enable this caching method.
See the files: bin/config-include/GridCommon.ini.example and bin/config-include/StandaloneCommon.ini.example to configure and enable this caching method.
exe for each function, rather each function is a connector and the server ini
loads them. If you like your multiple processes, use -inifile with the server.
Otherwise, you get one server process that serves all configured funcions, see
example .ini. The new exe is OpenSim.Server.exe. Clean your bin, loads of names
have changed!
We've encountered problems with textures never fully downloading and
objects not moving or being deleted (from the client's point of view)
even when the bandwidth settings on the client have been set very
low. This can happen over reasonably lossy links (eg you're on the
other side of the world from the server) as the server retries 3 times
and then gives up.
Whilst its possible to set ReliableIsImportant, this forces the server
to keep retrying no matter what which potentially could lead to
problems. This patch allows for the setting of MaxReliableResends
explicitly (is set to 3 normally) in OpenSim.ini so if you know you
will have clients connecting with poor connections you can set it a
bit higher (10-15 works quite well even for very poor connections).
This may break a lot of things, but it needs to go in. It was tested in standalone and the UCI grid, but it needs a lot more testing.
Known problems:
* HG asset transfers are borked for now
* missing texture is missing
* 3 unit tests commented out for now
default but can be enabled in OpenSim.ini. If enabled, things can be sold
for $0. Other amounts will cause the buyer to see a message and the transaction
will fail.