*** BIG CHANGES : REGION STORAGE MOVED : UPDATE YOUR OpenSim.ini FROM OpenSim.ini.example **
* Now moved region storage from region to application, so we have one storage per application, instead of one per region. * Changed so that the region store providers use connectionstrings, not filenames * Removed various unfit fields and properties (call me Darwin)afrisby
							parent
							
								
									886f8b5548
								
							
						
					
					
						commit
						3aed77bd2c
					
				|  | @ -36,7 +36,7 @@ namespace OpenSim.Framework.Data.MySQL | ||||||
|          * |          * | ||||||
|          **********************************************************************/ |          **********************************************************************/ | ||||||
| 
 | 
 | ||||||
|         public void Initialise(string connectionstring, string dbname) |         public void Initialise(string connectionstring) | ||||||
|         { |         { | ||||||
|             m_dataSet = new DataSet(); |             m_dataSet = new DataSet(); | ||||||
| 
 | 
 | ||||||
|  | @ -307,23 +307,6 @@ namespace OpenSim.Framework.Data.MySQL | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         //private void DisplayTableMappings( MySqlDataAdapter adapter ) |  | ||||||
|         //{ |  | ||||||
|         //    DataTableMappingCollection mappings = adapter.TableMappings; |  | ||||||
| 
 |  | ||||||
|         //    foreach( DataTableMapping mapping in mappings ) |  | ||||||
|         //    { |  | ||||||
|         //        Debug.WriteLine( String.Format( "Source Table: ", mapping.SourceTable )); |  | ||||||
| 
 |  | ||||||
|         //        DataColumnMappingCollection columnMappings = mapping.ColumnMappings; |  | ||||||
| 
 |  | ||||||
|         //        foreach (DataColumnMapping columnMapping in columnMappings) |  | ||||||
|         //        { |  | ||||||
|         //            Debug.WriteLine( String.Format( "DataSet [{0}] <-> Source [{1}]", columnMapping.DataSetColumn, columnMapping.SourceColumn ));                  |  | ||||||
|         //        } |  | ||||||
|         //    } |  | ||||||
|         //} |  | ||||||
| 
 |  | ||||||
|         public void Commit() |         public void Commit() | ||||||
|         { |         { | ||||||
|             if (m_connection.State != ConnectionState.Open) |             if (m_connection.State != ConnectionState.Open) | ||||||
|  | @ -333,10 +316,7 @@ namespace OpenSim.Framework.Data.MySQL | ||||||
| 
 | 
 | ||||||
|             lock (m_dataSet) |             lock (m_dataSet) | ||||||
|             { |             { | ||||||
|                 DisplayDataSet(m_dataSet, "Region DataSet"); |                 // DisplayDataSet(m_dataSet, "Region DataSet"); | ||||||
|                 //DisplayTableMappings(m_primDataAdapter); |  | ||||||
| 
 |  | ||||||
|                 // m_primDataAdapter.MissingMappingAction = MissingMappingAction.Error; |  | ||||||
| 
 | 
 | ||||||
|                 m_primDataAdapter.Update(m_primTable); |                 m_primDataAdapter.Update(m_primTable); | ||||||
|                 m_shapeDataAdapter.Update(m_shapeTable); |                 m_shapeDataAdapter.Update(m_shapeTable); | ||||||
|  |  | ||||||
|  | @ -249,7 +249,7 @@ namespace OpenSim.Framework | ||||||
|             this.RegionName = source.Configs[sectionName].GetString("sim_name", "OpenSim Test"); |             this.RegionName = source.Configs[sectionName].GetString("sim_name", "OpenSim Test"); | ||||||
|             this.m_regionLocX = Convert.ToUInt32(source.Configs[sectionName].GetString("sim_location_x", "1000")); |             this.m_regionLocX = Convert.ToUInt32(source.Configs[sectionName].GetString("sim_location_x", "1000")); | ||||||
|             this.m_regionLocY = Convert.ToUInt32(source.Configs[sectionName].GetString("sim_location_y", "1000")); |             this.m_regionLocY = Convert.ToUInt32(source.Configs[sectionName].GetString("sim_location_y", "1000")); | ||||||
|             this.DataStore = source.Configs[sectionName].GetString("datastore", "OpenSim.db"); |             // this.DataStore = source.Configs[sectionName].GetString("datastore", "OpenSim.db"); | ||||||
| 
 | 
 | ||||||
|             string ipAddress = source.Configs[sectionName].GetString("internal_ip_address", "0.0.0.0"); |             string ipAddress = source.Configs[sectionName].GetString("internal_ip_address", "0.0.0.0"); | ||||||
|             IPAddress ipAddressResult; |             IPAddress ipAddressResult; | ||||||
|  | @ -289,7 +289,7 @@ namespace OpenSim.Framework | ||||||
|             configMember.addConfigurationOption("sim_name", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "Region Name", "OpenSim Test", false); |             configMember.addConfigurationOption("sim_name", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "Region Name", "OpenSim Test", false); | ||||||
|             configMember.addConfigurationOption("sim_location_x", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, "Grid Location (X Axis)", "1000", false); |             configMember.addConfigurationOption("sim_location_x", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, "Grid Location (X Axis)", "1000", false); | ||||||
|             configMember.addConfigurationOption("sim_location_y", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, "Grid Location (Y Axis)", "1000", false); |             configMember.addConfigurationOption("sim_location_y", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, "Grid Location (Y Axis)", "1000", false); | ||||||
|             configMember.addConfigurationOption("datastore", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "Filename for local storage", "OpenSim.db", false); |             //configMember.addConfigurationOption("datastore", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "Filename for local storage", "OpenSim.db", false); | ||||||
|             configMember.addConfigurationOption("internal_ip_address", ConfigurationOption.ConfigurationTypes.TYPE_IP_ADDRESS, "Internal IP Address for incoming UDP client connections", "0.0.0.0", false); |             configMember.addConfigurationOption("internal_ip_address", ConfigurationOption.ConfigurationTypes.TYPE_IP_ADDRESS, "Internal IP Address for incoming UDP client connections", "0.0.0.0", false); | ||||||
|             configMember.addConfigurationOption("internal_ip_port", ConfigurationOption.ConfigurationTypes.TYPE_INT32, "Internal IP Port for incoming UDP client connections", NetworkServersInfo.DefaultHttpListenerPort.ToString(), false); |             configMember.addConfigurationOption("internal_ip_port", ConfigurationOption.ConfigurationTypes.TYPE_INT32, "Internal IP Port for incoming UDP client connections", NetworkServersInfo.DefaultHttpListenerPort.ToString(), false); | ||||||
|             configMember.addConfigurationOption("external_host_name", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "External Host Name", "127.0.0.1", false); |             configMember.addConfigurationOption("external_host_name", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "External Host Name", "127.0.0.1", false); | ||||||
|  |  | ||||||
|  | @ -64,24 +64,24 @@ namespace OpenSim | ||||||
| 
 | 
 | ||||||
|         protected LocalLoginService m_loginService; |         protected LocalLoginService m_loginService; | ||||||
| 
 | 
 | ||||||
|         protected string m_storageDll = "OpenSim.DataStore.NullStorage.dll"; |         protected string m_storageDll; | ||||||
| 
 | 
 | ||||||
|         protected string m_startupCommandsFile = ""; |         protected string m_startupCommandsFile; | ||||||
|         protected string m_shutdownCommandsFile = ""; |         protected string m_shutdownCommandsFile; | ||||||
| 
 | 
 | ||||||
|         protected List<UDPServer> m_udpServers = new List<UDPServer>(); |         protected List<UDPServer> m_udpServers = new List<UDPServer>(); | ||||||
|         protected List<RegionInfo> m_regionData = new List<RegionInfo>(); |         protected List<RegionInfo> m_regionData = new List<RegionInfo>(); | ||||||
| 
 | 
 | ||||||
|         private bool m_verbose; |         private bool m_verbose; | ||||||
|         private bool m_physicalPrim; |         private bool m_physicalPrim; | ||||||
|         private readonly string m_logFilename = ("region-console.log"); |         private readonly string m_logFilename = "region-console.log"; | ||||||
|         private bool m_permissions = false; |         private bool m_permissions = false; | ||||||
| 
 | 
 | ||||||
|         private bool m_standaloneAuthenticate = false; |         private bool m_standaloneAuthenticate = false; | ||||||
|         private string m_standaloneWelcomeMessage = null; |         private string m_standaloneWelcomeMessage = null; | ||||||
|         private string m_standaloneInventoryPlugin = "OpenSim.Framework.Data.SQLite.dll"; |         private string m_standaloneInventoryPlugin; | ||||||
|         private string m_standaloneAssetPlugin = "OpenSim.Framework.Data.SQLite.dll"; |         private string m_standaloneAssetPlugin; | ||||||
|         private string m_standaloneUserPlugin = "OpenSim.Framework.Data.SQLite.dll"; |         private string m_standaloneUserPlugin; | ||||||
| 
 | 
 | ||||||
|         private string m_assetStorage = "sqlite"; |         private string m_assetStorage = "sqlite"; | ||||||
| 
 | 
 | ||||||
|  | @ -219,6 +219,7 @@ namespace OpenSim | ||||||
|                 m_permissions = startupConfig.GetBoolean("serverside_object_permissions", false); |                 m_permissions = startupConfig.GetBoolean("serverside_object_permissions", false); | ||||||
| 
 | 
 | ||||||
|                 m_storageDll = startupConfig.GetString("storage_plugin", "OpenSim.DataStore.NullStorage.dll"); |                 m_storageDll = startupConfig.GetString("storage_plugin", "OpenSim.DataStore.NullStorage.dll"); | ||||||
|  |                 m_storageConnectionString = startupConfig.GetString("storage_connection_string",""); | ||||||
| 
 | 
 | ||||||
|                 m_startupCommandsFile = startupConfig.GetString("startup_console_commands_file", ""); |                 m_startupCommandsFile = startupConfig.GetString("startup_console_commands_file", ""); | ||||||
|                 m_shutdownCommandsFile = startupConfig.GetString("shutdown_console_commands_file", ""); |                 m_shutdownCommandsFile = startupConfig.GetString("shutdown_console_commands_file", ""); | ||||||
|  | @ -357,9 +358,9 @@ namespace OpenSim | ||||||
|             new RegionInfo("DEFAULT REGION CONFIG", fileName); |             new RegionInfo("DEFAULT REGION CONFIG", fileName); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         protected override StorageManager CreateStorageManager(RegionInfo regionInfo) |         protected override StorageManager CreateStorageManager(string connectionstring) | ||||||
|         { |         { | ||||||
|             return new StorageManager(m_storageDll, regionInfo.DataStore, regionInfo.RegionName); |             return new StorageManager(m_storageDll, connectionstring); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         protected override Scene CreateScene(RegionInfo regionInfo, StorageManager storageManager, |         protected override Scene CreateScene(RegionInfo regionInfo, StorageManager storageManager, | ||||||
|  |  | ||||||
|  | @ -55,6 +55,9 @@ namespace OpenSim.Region.ClientStack | ||||||
|         protected CommunicationsManager m_commsManager; |         protected CommunicationsManager m_commsManager; | ||||||
| 
 | 
 | ||||||
|         protected SceneManager m_sceneManager = new SceneManager(); |         protected SceneManager m_sceneManager = new SceneManager(); | ||||||
|  |          | ||||||
|  |         protected StorageManager m_storageManager; | ||||||
|  |         protected string m_storageConnectionString; | ||||||
| 
 | 
 | ||||||
|         public SceneManager SceneManager |         public SceneManager SceneManager | ||||||
|         { |         { | ||||||
|  | @ -70,6 +73,8 @@ namespace OpenSim.Region.ClientStack | ||||||
|         { |         { | ||||||
|             ClientView.TerrainManager = new TerrainManager(new SecondLife()); |             ClientView.TerrainManager = new TerrainManager(new SecondLife()); | ||||||
| 
 | 
 | ||||||
|  |             m_storageManager = CreateStorageManager(m_storageConnectionString ); | ||||||
|  | 
 | ||||||
|             Initialize(); |             Initialize(); | ||||||
| 
 | 
 | ||||||
|             m_httpServer = new BaseHttpServer(m_httpServerPort); |             m_httpServer = new BaseHttpServer(m_httpServerPort); | ||||||
|  | @ -88,7 +93,7 @@ namespace OpenSim.Region.ClientStack | ||||||
| 
 | 
 | ||||||
|         protected abstract LogBase CreateLog(); |         protected abstract LogBase CreateLog(); | ||||||
|         protected abstract PhysicsScene GetPhysicsScene(); |         protected abstract PhysicsScene GetPhysicsScene(); | ||||||
|         protected abstract StorageManager CreateStorageManager(RegionInfo regionInfo); |         protected abstract StorageManager CreateStorageManager(string connectionstring); | ||||||
| 
 | 
 | ||||||
|         protected PhysicsScene GetPhysicsScene(string engine, string meshEngine) |         protected PhysicsScene GetPhysicsScene(string engine, string meshEngine) | ||||||
|         { |         { | ||||||
|  | @ -103,8 +108,7 @@ namespace OpenSim.Region.ClientStack | ||||||
|             AgentCircuitManager circuitManager = new AgentCircuitManager(); |             AgentCircuitManager circuitManager = new AgentCircuitManager(); | ||||||
|             udpServer = new UDPServer(regionInfo.InternalEndPoint.Port, m_assetCache, m_log, circuitManager); |             udpServer = new UDPServer(regionInfo.InternalEndPoint.Port, m_assetCache, m_log, circuitManager); | ||||||
| 
 | 
 | ||||||
|             StorageManager storageManager = CreateStorageManager(regionInfo); |             Scene scene = CreateScene(regionInfo, m_storageManager, circuitManager); | ||||||
|             Scene scene = CreateScene(regionInfo, storageManager, circuitManager); |  | ||||||
| 
 | 
 | ||||||
|             udpServer.LocalScene = scene; |             udpServer.LocalScene = scene; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -40,7 +40,7 @@ namespace OpenSim.Region.Environment.Interfaces | ||||||
|         /// </summary> |         /// </summary> | ||||||
|         /// <param name="filename">The file to save the database to (may not be applicable)</param> |         /// <param name="filename">The file to save the database to (may not be applicable)</param> | ||||||
|         /// <param name="dbname">The name of the database to store to (may not be applicable)</param> |         /// <param name="dbname">The name of the database to store to (may not be applicable)</param> | ||||||
|         void Initialise(string filename, string dbname); |         void Initialise(string filename); | ||||||
| 
 | 
 | ||||||
|         void StoreObject(SceneObjectGroup obj, LLUUID regionUUID); |         void StoreObject(SceneObjectGroup obj, LLUUID regionUUID); | ||||||
|         void RemoveObject(LLUUID uuid, LLUUID regionUUID); |         void RemoveObject(LLUUID uuid, LLUUID regionUUID); | ||||||
|  |  | ||||||
|  | @ -47,7 +47,7 @@ namespace OpenSim.Region.Environment | ||||||
|             m_dataStore = storage; |             m_dataStore = storage; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         public StorageManager(string dllName, string dataStoreFile, string dataStoreDB) |         public StorageManager(string dllName, string connectionstring) | ||||||
|         { |         { | ||||||
|             MainLog.Instance.Verbose("DATASTORE", "Attempting to load " + dllName); |             MainLog.Instance.Verbose("DATASTORE", "Attempting to load " + dllName); | ||||||
|             Assembly pluginAssembly = Assembly.LoadFrom(dllName); |             Assembly pluginAssembly = Assembly.LoadFrom(dllName); | ||||||
|  | @ -62,19 +62,15 @@ namespace OpenSim.Region.Environment | ||||||
|                     { |                     { | ||||||
|                         IRegionDataStore plug = |                         IRegionDataStore plug = | ||||||
|                             (IRegionDataStore) Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); |                             (IRegionDataStore) Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); | ||||||
|                         plug.Initialise(dataStoreFile, dataStoreDB); |                         plug.Initialise(connectionstring); | ||||||
| 
 | 
 | ||||||
|                         m_dataStore = plug; |                         m_dataStore = plug; | ||||||
| 
 | 
 | ||||||
|                         MainLog.Instance.Verbose("DATASTORE", "Added IRegionDataStore Interface"); |                         MainLog.Instance.Verbose("DATASTORE", "Added IRegionDataStore Interface"); | ||||||
|                     } |                     } | ||||||
| 
 |  | ||||||
|                     typeInterface = null; |  | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             pluginAssembly = null; |  | ||||||
| 
 |  | ||||||
|             //TODO: Add checking and warning to make sure it initialised. |             //TODO: Add checking and warning to make sure it initialised. | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -175,9 +175,9 @@ namespace SimpleApp | ||||||
|                             new ModuleLoader(m_log, m_config), true); |                             new ModuleLoader(m_log, m_config), true); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         protected override StorageManager CreateStorageManager(RegionInfo regionInfo) |         protected override StorageManager CreateStorageManager(string connectionstring) | ||||||
|         { |         { | ||||||
|             return new StorageManager("OpenSim.DataStore.NullStorage.dll", "simpleapp.yap", "simpleapp"); |             return new StorageManager("OpenSim.DataStore.NullStorage.dll", "simpleapp.yap"); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         protected override PhysicsScene GetPhysicsScene() |         protected override PhysicsScene GetPhysicsScene() | ||||||
|  |  | ||||||
|  | @ -50,7 +50,7 @@ namespace OpenSim.DataStore.MonoSqlite | ||||||
|         private SqliteDataAdapter primDa; |         private SqliteDataAdapter primDa; | ||||||
|         private SqliteDataAdapter shapeDa; |         private SqliteDataAdapter shapeDa; | ||||||
|         private SqliteDataAdapter terrainDa; |         private SqliteDataAdapter terrainDa; | ||||||
|         private String connectionString; |         private String m_connectionString; | ||||||
| 
 | 
 | ||||||
|         /*********************************************************************** |         /*********************************************************************** | ||||||
|          * |          * | ||||||
|  | @ -58,14 +58,14 @@ namespace OpenSim.DataStore.MonoSqlite | ||||||
|          * |          * | ||||||
|          **********************************************************************/ |          **********************************************************************/ | ||||||
| 
 | 
 | ||||||
|         public void Initialise(string dbfile, string dbname) |         public void Initialise(string connectionString) | ||||||
|         { |         { | ||||||
|             connectionString = "URI=file:" + dbfile + ",version=3"; |             m_connectionString = connectionString; | ||||||
| 
 | 
 | ||||||
|             ds = new DataSet(); |             ds = new DataSet(); | ||||||
| 
 | 
 | ||||||
|             MainLog.Instance.Verbose("DATASTORE", "Sqlite - connecting: " + dbfile); |             MainLog.Instance.Verbose("DATASTORE", "Sqlite - connecting: " + connectionString); | ||||||
|             SqliteConnection conn = new SqliteConnection(connectionString); |             SqliteConnection conn = new SqliteConnection(m_connectionString); | ||||||
| 
 | 
 | ||||||
|             SqliteCommand primSelectCmd = new SqliteCommand(primSelect, conn); |             SqliteCommand primSelectCmd = new SqliteCommand(primSelect, conn); | ||||||
|             primDa = new SqliteDataAdapter(primSelectCmd); |             primDa = new SqliteDataAdapter(primSelectCmd); | ||||||
|  | @ -266,7 +266,7 @@ namespace OpenSim.DataStore.MonoSqlite | ||||||
| 
 | 
 | ||||||
|             // the following is an work around for .NET.  The perf |             // the following is an work around for .NET.  The perf | ||||||
|             // issues associated with it aren't as bad as you think. |             // issues associated with it aren't as bad as you think. | ||||||
|             SqliteConnection conn = new SqliteConnection(connectionString); |             SqliteConnection conn = new SqliteConnection(m_connectionString); | ||||||
|             conn.Open(); |             conn.Open(); | ||||||
|             MainLog.Instance.Verbose("DATASTORE", "Storing terrain revision r" + revision.ToString()); |             MainLog.Instance.Verbose("DATASTORE", "Storing terrain revision r" + revision.ToString()); | ||||||
|             String sql = "insert into terrain(RegionUUID, Revision, Heightfield)" + |             String sql = "insert into terrain(RegionUUID, Revision, Heightfield)" + | ||||||
|  | @ -288,7 +288,7 @@ namespace OpenSim.DataStore.MonoSqlite | ||||||
|             terret.Initialize(); |             terret.Initialize(); | ||||||
|             // the following is an work around for .NET.  The perf |             // the following is an work around for .NET.  The perf | ||||||
|             // issues associated with it aren't as bad as you think. |             // issues associated with it aren't as bad as you think. | ||||||
|             SqliteConnection conn = new SqliteConnection(connectionString); |             SqliteConnection conn = new SqliteConnection(m_connectionString); | ||||||
|             conn.Open(); |             conn.Open(); | ||||||
|             String sql = "select RegionUUID, Revision, Heightfield from terrain" +  |             String sql = "select RegionUUID, Revision, Heightfield from terrain" +  | ||||||
|               " where RegionUUID=:RegionUUID order by Revision desc"; |               " where RegionUUID=:RegionUUID order by Revision desc"; | ||||||
|  |  | ||||||
|  | @ -36,7 +36,7 @@ namespace OpenSim.DataStore.NullStorage | ||||||
| { | { | ||||||
|     public class NullDataStore : IRegionDataStore |     public class NullDataStore : IRegionDataStore | ||||||
|     { |     { | ||||||
|         public void Initialise(string dbfile, string dbname) |         public void Initialise(string dbfile) | ||||||
|         { |         { | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  | @ -16,16 +16,16 @@ physics = basicphysics | ||||||
| ;physics = modified_BulletX | ;physics = modified_BulletX | ||||||
| 
 | 
 | ||||||
| ; *** Prim Storage - only leave one storage_plugin uncommented *** | ; *** Prim Storage - only leave one storage_plugin uncommented *** | ||||||
| ; --- The NullStorage stores nothing - effectively disabling persistence. | ; --- The NullStorage stores nothing - effectively disabling persistence: | ||||||
| ; storage_plugin = "OpenSim.DataStore.NullStorage.dll" | ; storage_plugin = "OpenSim.DataStore.NullStorage.dll" | ||||||
| 
 | 
 | ||||||
| ; --- To use sqlite as region storage - don't forget to add datastore="MonoSqliteFilename.db" | ; --- To use sqlite as region storage: | ||||||
| ; to region config xml (ie /Regions/default.xml) as the storages are (currently supposed to be) per region. |  | ||||||
| storage_plugin = "OpenSim.DataStore.MonoSqlite.dll" | storage_plugin = "OpenSim.DataStore.MonoSqlite.dll" | ||||||
|  | storage_connection_string="URI=file:OpenSim.db,version=3"; | ||||||
| 
 | 
 | ||||||
| ; --- This is to use MySQL storage - don't forget to add datastore="<MySql Connection String>" | ; --- To use MySQL storage, supply your own connectionstring: | ||||||
| ; to region config xml (ie /Regions/default.xml) as the storages are (currently supposed to be) per region. |  | ||||||
| ; storage_plugin="OpenSim.Framework.Data.MySQL.dll" | ; storage_plugin="OpenSim.Framework.Data.MySQL.dll" | ||||||
|  | ; storage_connection_string="<MySql Connection String>"; | ||||||
| 
 | 
 | ||||||
| startup_console_commands_file = "startup_commands.txt" | startup_console_commands_file = "startup_commands.txt" | ||||||
| shutdown_console_commands_file = "shutdown_commands.txt" | shutdown_console_commands_file = "shutdown_commands.txt" | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 lbsa71
						lbsa71