Please consider my opensim configuration files as follows.

These were updated for 0.9.2


If you running a stand alone jump over the robust section as it will not apply to you .The robust server provide for the grid service including assets inventory and the like. Its possible to run multiple instance of robust.exe if you want to address multiple service with different service server .

You can do that on same machine as different instance or on different machine . After the video presentation made by diva about splitting INTERNAL and EXTERNAL service I have update my robust setup to the same principle in addition to previous split made for 091 . Ref :

If you do on same machine the advantage is that robust is a single tread application serving one request after next . Obviously splitting here should increase performance to an extend that people might require different service concurrently. The way to do that is to specify to the robust instance the configuration file (ini and log ) to use for the service split you want. You need to change the log file configuration for clarity as it append the date log to robust.log and become hard to read and decipher with time.This is done by configuring the Robust.exe.config file. I am providing the one I with the following configurations files.

Command line Example: Robust.exe - inifile=Robust.NoAsset,IN.ini
Command line Example: Robust.exe - inifile=Robust.NoAsset,OUT.ini
Command line Example: Robust.exe - inifile=Robust.Asset.ini

I have decided to split my grid service between asset service on one machine and remaining service on an other machine. Following Diva video I have further felt smart to splitted the NoAsset robust into two robust.exe instance one as Robust.NoAsset.External and one Robust.NoAsset.Internal both running in same machine on port 9000 and 7000 respectively.

The splitting from internal to external is rather straigth forward by simply commenting out the PRIVATE services of the NoAsset.External robust ini and identifiying the public port 9000 for the service. That is because the two sets of services are on the same machine. She does talk about that in the little diagram she shows in the presentation. Where she could move the direct connection of inventory request to database in logging as exemple but she finaly decide to leave the structure as is. Which mean that inventory access when you loggin is done from the RobustOUT instance. There is no security issue per say since the database communication is done within the firewall. While reversly commenting out the PUBLIC services from the NoAsset.Internal services and configuring [NETWORK] to internal port in my case 7000.

I Leave the asset split functionnal as is. The main reason here is reliability rather then performance having a machine dedicated to asset service behind the firewall with its own database server.

The difficulty in doing so is how to integrate the Hypergrid service. These service must remain accessible from outside the lan . In the case of asset service , Hypergrid asset service is also accessing the asset service so splitting the local asset service without including the hypergrid service in the same instance is failing. One have to include both the Asset Service and on same instance the HG Asset Service also requires User Account service one have to add that service to the instance running asset service . So the final split is Asset service, HG asset service and User acount service in one instance and the remaining service in the other . You will find the appropriate configuration in the following configuration file section with in robust.asset.ini. And the remaining service in the Robust.noAsset.ini .


For the simulator , except for the opensim.ini file , the files chain created with the include statement for the simulator are all located in opensim/bin/config-includes . The file set of my grid are in order of call OpenSim.ini, GridHypergrid.ini , GridCommon.ini. located in config-includes directory.

My idea is to leave the opensim.ini the way it is release . Changing only the last portion to hypergrid achitecture. In time of upgrade I am using a file compare program call meld difference viewer to compare the release changes for opensim.ini and gridcommun.ini.exemple to spot the difference and act on it include additional configuration information into simX.ini and gridcommun.ini file located in a specific directory for each simulator.

The intent is to have only simX.ini customise for the simulator , while grid common and oslscript.ini are made identical for ALL the simulator connecting to same grid. This way of doing things leaves update a simple task to do updates on ONE config file and to duplicate it in configX directory of opensim for each machine ONLY regardless on the number simulators run on each machine.

This is possible because I use the same file set ( opensim/bin) to run different simulator. The idea is that instead of copying the opensim folder with its set of files in different directories and run them separatly for exemple SIMA SIMB and SIMC . I instead run opensim configuration instruction as follow:

    OpenSim.exe -inidirectory="./configA"

    OpenSim.exe -inidirectory="./configB"

    OpenSim.exe -inidirectory="./configC" l

These instructions tell opensim to gets its configuration in corresponding directory ./configX superseding any other configuration settings included in other configuration files. Understanding again that whatever is in ./configX will overwrite what is stated in opensim.ini or config-includes. Each simulator in configX/simX.ini get the specific simulator port and data while the same copy of gridcommon.ini and oslscript.ini are use for ALL simulators connecting to same grid..

Typical content of ./configA is simA.ini while generic grid config is in config-include/GridCommon.ini applicable to all grid simulator running on this computer.


Log file name and location can be define by setting an environment variable in bash file ( linux ) .  


export logName

mono OpenSim.exe -inidirectory="./configA" 

The following is the change made to OpenSim.exe.config for environment variable to define file name. I am also using a rolling appender.  That configuration append dates to the daily log name so it makes smaller files easier to be searched backup and maintained. ( see OpenSim.exe.config and Robust.exe.config for details.

<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="log/OpenSim.${logName}" />
<rollingStyle value="Date" />
<datePattern value="'.'yyyy-MM-dd"/>

The resulting log files located in bin/log are

opensim.simA ( current log  for the day )

opensim.simA.2019-11-07  ( yesterday )

opensim.simA.2019-11-06  ( and so on )

Similarly for each Robust.exe.config using same appender and same export function .


I also have a money server that is enable for statistic gathering purpose. The money server comes from .
My moneyServer.ini is presented in the following
exemple files . I have direct access to database of my server which makes it simple to gather statistics using sql language.


Right clic to download the exemple files.





I use a typical gridcommun.ini as follow applicable to all grid while the opensim.ini is untouched.


Following is a typical file of the sim.ini. This file is typical for defining the particularities of one simulator. . This file is in a config-sim directory so that it superseed any setting .


Please dont hesitate to contact me if I can be of help to you .