aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMelanie Thielker2008-07-18 20:50:47 +0000
committerMelanie Thielker2008-07-18 20:50:47 +0000
commita73d87ef1651ac1e935e0cfebed99282a69c3941 (patch)
tree5d3428e079e5f720670215b7071da0f331648709
parentPatch to fix saving of estate managers list loaded during migration. (diff)
downloadopensim-SC-a73d87ef1651ac1e935e0cfebed99282a69c3941.zip
opensim-SC-a73d87ef1651ac1e935e0cfebed99282a69c3941.tar.gz
opensim-SC-a73d87ef1651ac1e935e0cfebed99282a69c3941.tar.bz2
opensim-SC-a73d87ef1651ac1e935e0cfebed99282a69c3941.tar.xz
Introduce a separate connection string for estates, which defaults to the one gi
ven for the region datastore. Removes the flag to store prim inventories, which are now always stored.
Diffstat (limited to '')
-rw-r--r--OpenSim/Data/MSSQL/MSSQLDataStore.cs22
-rw-r--r--OpenSim/Data/MySQL/MySQLDataStore.cs23
-rw-r--r--OpenSim/Data/NHibernate/NHibernateRegionData.cs2
-rw-r--r--OpenSim/Data/Null/NullDataStore.cs2
-rw-r--r--OpenSim/Data/SQLite/SQLiteRegionData.cs25
-rw-r--r--OpenSim/Region/Application/OpenSimBase.cs9
-rw-r--r--OpenSim/Region/ClientStack/RegionApplicationBase.cs9
-rw-r--r--OpenSim/Region/Environment/Interfaces/IRegionDataStore.cs3
-rw-r--r--OpenSim/Region/Environment/StorageManager.cs6
-rw-r--r--OpenSim/Tools/Export/OpenSimExport.cs2
-rw-r--r--bin/OpenSim.ini.example13
11 files changed, 20 insertions, 96 deletions
diff --git a/OpenSim/Data/MSSQL/MSSQLDataStore.cs b/OpenSim/Data/MSSQL/MSSQLDataStore.cs
index c7d034f..569268e 100644
--- a/OpenSim/Data/MSSQL/MSSQLDataStore.cs
+++ b/OpenSim/Data/MSSQL/MSSQLDataStore.cs
@@ -71,7 +71,6 @@ namespace OpenSim.Data.MSSQL
71 private DataTable m_landAccessListTable; 71 private DataTable m_landAccessListTable;
72 72
73 /// <summary>Temporary attribute while this is experimental</summary> 73 /// <summary>Temporary attribute while this is experimental</summary>
74 private bool persistPrimInventories;
75 74
76 /*********************************************************************** 75 /***********************************************************************
77 * 76 *
@@ -83,13 +82,11 @@ namespace OpenSim.Data.MSSQL
83 /// see IRegionDataStore 82 /// see IRegionDataStore
84 /// </summary> 83 /// </summary>
85 /// <param name="connectionString"></param> 84 /// <param name="connectionString"></param>
86 /// <param name="persistPrimInventories"></param> 85 public void Initialise(string connectionString)
87 public void Initialise(string connectionString, bool persistPrimInventories)
88 { 86 {
89 // Instance.Initialise("", true); 87 // Instance.Initialise("", true);
90 88
91 m_dataSet = new DataSet(); 89 m_dataSet = new DataSet();
92 this.persistPrimInventories = persistPrimInventories;
93 90
94 m_log.Info("[REGION DB]: MSSql - connecting: " + connectionString); 91 m_log.Info("[REGION DB]: MSSql - connecting: " + connectionString);
95 m_connection = new SqlConnection(connectionString); 92 m_connection = new SqlConnection(connectionString);
@@ -126,13 +123,10 @@ namespace OpenSim.Data.MSSQL
126 setupShapeCommands(m_shapeDataAdapter, m_connection); 123 setupShapeCommands(m_shapeDataAdapter, m_connection);
127 m_shapeDataAdapter.Fill(m_shapeTable); 124 m_shapeDataAdapter.Fill(m_shapeTable);
128 125
129 if (persistPrimInventories)
130 {
131 m_itemsTable = createItemsTable(); 126 m_itemsTable = createItemsTable();
132 m_dataSet.Tables.Add(m_itemsTable); 127 m_dataSet.Tables.Add(m_itemsTable);
133 SetupItemsCommands(m_itemsDataAdapter, m_connection); 128 SetupItemsCommands(m_itemsDataAdapter, m_connection);
134 m_itemsDataAdapter.Fill(m_itemsTable); 129 m_itemsDataAdapter.Fill(m_itemsTable);
135 }
136 130
137 m_terrainTable = createTerrainTable(); 131 m_terrainTable = createTerrainTable();
138 m_dataSet.Tables.Add(m_terrainTable); 132 m_dataSet.Tables.Add(m_terrainTable);
@@ -218,10 +212,7 @@ namespace OpenSim.Data.MSSQL
218 shapeRow.Delete(); 212 shapeRow.Delete();
219 } 213 }
220 214
221 if (persistPrimInventories)
222 {
223 RemoveItems(new LLUUID((string)row["UUID"])); 215 RemoveItems(new LLUUID((string)row["UUID"]));
224 }
225 216
226 // Remove prim row 217 // Remove prim row
227 row.Delete(); 218 row.Delete();
@@ -317,11 +308,8 @@ namespace OpenSim.Data.MSSQL
317 createdObjects[new LLUUID(objID)].AddPart(prim); 308 createdObjects[new LLUUID(objID)].AddPart(prim);
318 } 309 }
319 310
320 if (persistPrimInventories)
321 {
322 LoadItems(prim); 311 LoadItems(prim);
323 } 312 }
324 }
325 catch (Exception e) 313 catch (Exception e)
326 { 314 {
327 m_log.Error("[DATASTORE]: Failed create prim object, exception and data follows"); 315 m_log.Error("[DATASTORE]: Failed create prim object, exception and data follows");
@@ -589,10 +577,7 @@ namespace OpenSim.Data.MSSQL
589 m_primDataAdapter.Update(m_primTable); 577 m_primDataAdapter.Update(m_primTable);
590 m_shapeDataAdapter.Update(m_shapeTable); 578 m_shapeDataAdapter.Update(m_shapeTable);
591 579
592 if (persistPrimInventories)
593 {
594 m_itemsDataAdapter.Update(m_itemsTable); 580 m_itemsDataAdapter.Update(m_itemsTable);
595 }
596 581
597 m_terrainDataAdapter.Update(m_terrainTable); 582 m_terrainDataAdapter.Update(m_terrainTable);
598 m_landDataAdapter.Update(m_landTable); 583 m_landDataAdapter.Update(m_landTable);
@@ -1378,9 +1363,6 @@ namespace OpenSim.Data.MSSQL
1378 /// <param name="items"></param> 1363 /// <param name="items"></param>
1379 public void StorePrimInventory(LLUUID primID, ICollection<TaskInventoryItem> items) 1364 public void StorePrimInventory(LLUUID primID, ICollection<TaskInventoryItem> items)
1380 { 1365 {
1381 if (!persistPrimInventories)
1382 return;
1383
1384 m_log.InfoFormat("[REGION DB]: Persisting Prim Inventory with prim ID {0}", primID); 1366 m_log.InfoFormat("[REGION DB]: Persisting Prim Inventory with prim ID {0}", primID);
1385 1367
1386 // For now, we're just going to crudely remove all the previous inventory items 1368 // For now, we're just going to crudely remove all the previous inventory items
@@ -1749,7 +1731,6 @@ namespace OpenSim.Data.MSSQL
1749 pDa.Fill(tmpDS, "prims"); 1731 pDa.Fill(tmpDS, "prims");
1750 sDa.Fill(tmpDS, "primshapes"); 1732 sDa.Fill(tmpDS, "primshapes");
1751 1733
1752 if (persistPrimInventories)
1753 iDa.Fill(tmpDS, "primitems"); 1734 iDa.Fill(tmpDS, "primitems");
1754 1735
1755 tDa.Fill(tmpDS, "terrain"); 1736 tDa.Fill(tmpDS, "terrain");
@@ -1765,7 +1746,6 @@ namespace OpenSim.Data.MSSQL
1765 pDa.Fill(tmpDS, "prims"); 1746 pDa.Fill(tmpDS, "prims");
1766 sDa.Fill(tmpDS, "primshapes"); 1747 sDa.Fill(tmpDS, "primshapes");
1767 1748
1768 if (persistPrimInventories)
1769 iDa.Fill(tmpDS, "primitems"); 1749 iDa.Fill(tmpDS, "primitems");
1770 1750
1771 tDa.Fill(tmpDS, "terrain"); 1751 tDa.Fill(tmpDS, "terrain");
diff --git a/OpenSim/Data/MySQL/MySQLDataStore.cs b/OpenSim/Data/MySQL/MySQLDataStore.cs
index d1db064..74f15cb 100644
--- a/OpenSim/Data/MySQL/MySQLDataStore.cs
+++ b/OpenSim/Data/MySQL/MySQLDataStore.cs
@@ -92,9 +92,6 @@ namespace OpenSim.Data.MySQL
92 private DataTable m_landAccessListTable; 92 private DataTable m_landAccessListTable;
93 private DataTable m_regionSettingsTable; 93 private DataTable m_regionSettingsTable;
94 94
95 /// <value>Temporary attribute while this is experimental</value>
96 private bool persistPrimInventories;
97
98 /*********************************************************************** 95 /***********************************************************************
99 * 96 *
100 * Public Interface Functions 97 * Public Interface Functions
@@ -105,13 +102,11 @@ namespace OpenSim.Data.MySQL
105 /// see IRegionDataStore 102 /// see IRegionDataStore
106 /// </summary> 103 /// </summary>
107 /// <param name="connectionstring"></param> 104 /// <param name="connectionstring"></param>
108 /// <param name="persistPrimInventories"></param> 105 public void Initialise(string connectionString)
109 public void Initialise(string connectionString, bool persistPrimInventories)
110 { 106 {
111 m_connectionString = connectionString; 107 m_connectionString = connectionString;
112 108
113 m_dataSet = new DataSet(); 109 m_dataSet = new DataSet();
114 this.persistPrimInventories = persistPrimInventories;
115 110
116 int passPosition = 0; 111 int passPosition = 0;
117 int passEndPosition = 0; 112 int passEndPosition = 0;
@@ -184,13 +179,10 @@ namespace OpenSim.Data.MySQL
184 m_shapeDataAdapter.Fill(m_shapeTable); 179 m_shapeDataAdapter.Fill(m_shapeTable);
185 180
186 181
187 if (persistPrimInventories)
188 {
189 m_itemsTable = createItemsTable(); 182 m_itemsTable = createItemsTable();
190 m_dataSet.Tables.Add(m_itemsTable); 183 m_dataSet.Tables.Add(m_itemsTable);
191 SetupItemsCommands(m_itemsDataAdapter, m_connection); 184 SetupItemsCommands(m_itemsDataAdapter, m_connection);
192 m_itemsDataAdapter.Fill(m_itemsTable); 185 m_itemsDataAdapter.Fill(m_itemsTable);
193 }
194 186
195 m_terrainTable = createTerrainTable(); 187 m_terrainTable = createTerrainTable();
196 m_dataSet.Tables.Add(m_terrainTable); 188 m_dataSet.Tables.Add(m_terrainTable);
@@ -429,10 +421,7 @@ namespace OpenSim.Data.MySQL
429 shapeRow.Delete(); 421 shapeRow.Delete();
430 } 422 }
431 423
432 if (persistPrimInventories)
433 {
434 RemoveItems(uuid); 424 RemoveItems(uuid);
435 }
436 425
437 // Remove prim row 426 // Remove prim row
438 row.Delete(); 427 row.Delete();
@@ -527,11 +516,8 @@ namespace OpenSim.Data.MySQL
527 createdObjects[new LLUUID(objID)].AddPart(prim); 516 createdObjects[new LLUUID(objID)].AddPart(prim);
528 } 517 }
529 518
530 if (persistPrimInventories)
531 {
532 LoadItems(prim); 519 LoadItems(prim);
533 } 520 }
534 }
535 catch (Exception e) 521 catch (Exception e)
536 { 522 {
537 m_log.Error("[REGION DB]: Failed create prim object, exception and data follows"); 523 m_log.Error("[REGION DB]: Failed create prim object, exception and data follows");
@@ -827,10 +813,7 @@ namespace OpenSim.Data.MySQL
827 m_primDataAdapter.Update(m_primTable); 813 m_primDataAdapter.Update(m_primTable);
828 m_shapeDataAdapter.Update(m_shapeTable); 814 m_shapeDataAdapter.Update(m_shapeTable);
829 815
830 if (persistPrimInventories)
831 {
832 m_itemsDataAdapter.Update(m_itemsTable); 816 m_itemsDataAdapter.Update(m_itemsTable);
833 }
834 817
835 m_terrainDataAdapter.Update(m_terrainTable); 818 m_terrainDataAdapter.Update(m_terrainTable);
836 m_landDataAdapter.Update(m_landTable); 819 m_landDataAdapter.Update(m_landTable);
@@ -1812,9 +1795,6 @@ namespace OpenSim.Data.MySQL
1812 /// <param name="items"></param> 1795 /// <param name="items"></param>
1813 public void StorePrimInventory(LLUUID primID, ICollection<TaskInventoryItem> items) 1796 public void StorePrimInventory(LLUUID primID, ICollection<TaskInventoryItem> items)
1814 { 1797 {
1815 if (!persistPrimInventories)
1816 return;
1817
1818 m_log.InfoFormat("[REGION DB]: Persisting Prim Inventory with prim ID {0}", primID); 1798 m_log.InfoFormat("[REGION DB]: Persisting Prim Inventory with prim ID {0}", primID);
1819 1799
1820 // For now, we're just going to crudely remove all the previous inventory items 1800 // For now, we're just going to crudely remove all the previous inventory items
@@ -2241,7 +2221,6 @@ namespace OpenSim.Data.MySQL
2241 // pDa.Fill(tmpDS, "prims"); 2221 // pDa.Fill(tmpDS, "prims");
2242 // sDa.Fill(tmpDS, "primshapes"); 2222 // sDa.Fill(tmpDS, "primshapes");
2243 2223
2244 // if (persistPrimInventories)
2245 // iDa.Fill(tmpDS, "primitems"); 2224 // iDa.Fill(tmpDS, "primitems");
2246 2225
2247 // tDa.Fill(tmpDS, "terrain"); 2226 // tDa.Fill(tmpDS, "terrain");
diff --git a/OpenSim/Data/NHibernate/NHibernateRegionData.cs b/OpenSim/Data/NHibernate/NHibernateRegionData.cs
index 40861ae..55331d5 100644
--- a/OpenSim/Data/NHibernate/NHibernateRegionData.cs
+++ b/OpenSim/Data/NHibernate/NHibernateRegionData.cs
@@ -61,7 +61,7 @@ namespace OpenSim.Data.NHibernate
61 // Initialise("SQLiteDialect;SqliteClientDriver;URI=file:OpenSim.db,version=3", true); 61 // Initialise("SQLiteDialect;SqliteClientDriver;URI=file:OpenSim.db,version=3", true);
62 // } 62 // }
63 63
64 public void Initialise(string connect, bool persistpriminventories) 64 public void Initialise(string connect)
65 { 65 {
66 // Split out the dialect, driver, and connect string 66 // Split out the dialect, driver, and connect string
67 char[] split = {';'}; 67 char[] split = {';'};
diff --git a/OpenSim/Data/Null/NullDataStore.cs b/OpenSim/Data/Null/NullDataStore.cs
index e244a5e..76369bd 100644
--- a/OpenSim/Data/Null/NullDataStore.cs
+++ b/OpenSim/Data/Null/NullDataStore.cs
@@ -38,7 +38,7 @@ namespace OpenSim.Data.Null
38 /// </summary> 38 /// </summary>
39 public class NullDataStore : IRegionDataStore 39 public class NullDataStore : IRegionDataStore
40 { 40 {
41 public void Initialise(string dbfile, bool persistPrimInventories) 41 public void Initialise(string dbfile)
42 { 42 {
43 return; 43 return;
44 } 44 }
diff --git a/OpenSim/Data/SQLite/SQLiteRegionData.cs b/OpenSim/Data/SQLite/SQLiteRegionData.cs
index 4e87e0d..6e30060 100644
--- a/OpenSim/Data/SQLite/SQLiteRegionData.cs
+++ b/OpenSim/Data/SQLite/SQLiteRegionData.cs
@@ -68,7 +68,6 @@ namespace OpenSim.Data.SQLite
68 private String m_connectionString; 68 private String m_connectionString;
69 69
70 // Temporary attribute while this is experimental 70 // Temporary attribute while this is experimental
71 private bool persistPrimInventories;
72 71
73 /*********************************************************************** 72 /***********************************************************************
74 * 73 *
@@ -84,11 +83,9 @@ namespace OpenSim.Data.SQLite
84 /// </list> 83 /// </list>
85 /// </summary> 84 /// </summary>
86 /// <param name="connectionString">the connection string</param> 85 /// <param name="connectionString">the connection string</param>
87 /// <param name="persistPrimInventories">?</param> 86 public void Initialise(string connectionString)
88 public void Initialise(string connectionString, bool persistPrimInventories)
89 { 87 {
90 m_connectionString = connectionString; 88 m_connectionString = connectionString;
91 this.persistPrimInventories = persistPrimInventories;
92 89
93 ds = new DataSet(); 90 ds = new DataSet();
94 91
@@ -137,12 +134,9 @@ namespace OpenSim.Data.SQLite
137 ds.Tables.Add(createShapeTable()); 134 ds.Tables.Add(createShapeTable());
138 setupShapeCommands(shapeDa, m_conn); 135 setupShapeCommands(shapeDa, m_conn);
139 136
140 if (persistPrimInventories)
141 {
142 ds.Tables.Add(createItemsTable()); 137 ds.Tables.Add(createItemsTable());
143 setupItemsCommands(itemsDa, m_conn); 138 setupItemsCommands(itemsDa, m_conn);
144 itemsDa.Fill(ds.Tables["primitems"]); 139 itemsDa.Fill(ds.Tables["primitems"]);
145 }
146 140
147 ds.Tables.Add(createTerrainTable()); 141 ds.Tables.Add(createTerrainTable());
148 setupTerrainCommands(terrainDa, m_conn); 142 setupTerrainCommands(terrainDa, m_conn);
@@ -267,10 +261,7 @@ namespace OpenSim.Data.SQLite
267 shapeRow.Delete(); 261 shapeRow.Delete();
268 } 262 }
269 263
270 if (persistPrimInventories)
271 {
272 RemoveItems(uuid); 264 RemoveItems(uuid);
273 }
274 265
275 // Remove prim row 266 // Remove prim row
276 row.Delete(); 267 row.Delete();
@@ -367,11 +358,8 @@ namespace OpenSim.Data.SQLite
367 createdObjects[new LLUUID(objID)].AddPart(prim); 358 createdObjects[new LLUUID(objID)].AddPart(prim);
368 } 359 }
369 360
370 if (persistPrimInventories)
371 {
372 LoadItems(prim); 361 LoadItems(prim);
373 } 362 }
374 }
375 catch (Exception e) 363 catch (Exception e)
376 { 364 {
377 m_log.Error("[REGION DB]: Failed create prim object, exception and data follows"); 365 m_log.Error("[REGION DB]: Failed create prim object, exception and data follows");
@@ -615,10 +603,7 @@ namespace OpenSim.Data.SQLite
615 primDa.Update(ds, "prims"); 603 primDa.Update(ds, "prims");
616 shapeDa.Update(ds, "primshapes"); 604 shapeDa.Update(ds, "primshapes");
617 605
618 if (persistPrimInventories)
619 {
620 itemsDa.Update(ds, "primitems"); 606 itemsDa.Update(ds, "primitems");
621 }
622 607
623 terrainDa.Update(ds, "terrain"); 608 terrainDa.Update(ds, "terrain");
624 landDa.Update(ds, "land"); 609 landDa.Update(ds, "land");
@@ -1475,9 +1460,6 @@ namespace OpenSim.Data.SQLite
1475 /// <param name="items"></param> 1460 /// <param name="items"></param>
1476 public void StorePrimInventory(LLUUID primID, ICollection<TaskInventoryItem> items) 1461 public void StorePrimInventory(LLUUID primID, ICollection<TaskInventoryItem> items)
1477 { 1462 {
1478 if (!persistPrimInventories)
1479 return;
1480
1481 m_log.InfoFormat("[REGION DB]: Entered StorePrimInventory with prim ID {0}", primID); 1463 m_log.InfoFormat("[REGION DB]: Entered StorePrimInventory with prim ID {0}", primID);
1482 1464
1483 DataTable dbItems = ds.Tables["primitems"]; 1465 DataTable dbItems = ds.Tables["primitems"];
@@ -1779,8 +1761,6 @@ namespace OpenSim.Data.SQLite
1779 // m_log.Warn("[REGION DB]: Shapes Table Already Exists"); 1761 // m_log.Warn("[REGION DB]: Shapes Table Already Exists");
1780 // } 1762 // }
1781 1763
1782 // if (persistPrimInventories)
1783 // {
1784 // try 1764 // try
1785 // { 1765 // {
1786 // icmd.ExecuteNonQuery(); 1766 // icmd.ExecuteNonQuery();
@@ -1789,7 +1769,6 @@ namespace OpenSim.Data.SQLite
1789 // { 1769 // {
1790 // m_log.Warn("[REGION DB]: Primitives Inventory Table Already Exists"); 1770 // m_log.Warn("[REGION DB]: Primitives Inventory Table Already Exists");
1791 // } 1771 // }
1792 // }
1793 1772
1794 // try 1773 // try
1795 // { 1774 // {
@@ -1851,7 +1830,6 @@ namespace OpenSim.Data.SQLite
1851 pDa.Fill(tmpDS, "prims"); 1830 pDa.Fill(tmpDS, "prims");
1852 sDa.Fill(tmpDS, "primshapes"); 1831 sDa.Fill(tmpDS, "primshapes");
1853 1832
1854 if (persistPrimInventories)
1855 iDa.Fill(tmpDS, "primitems"); 1833 iDa.Fill(tmpDS, "primitems");
1856 1834
1857 tDa.Fill(tmpDS, "terrain"); 1835 tDa.Fill(tmpDS, "terrain");
@@ -1874,7 +1852,6 @@ namespace OpenSim.Data.SQLite
1874 // pDa.Fill(tmpDS, "prims"); 1852 // pDa.Fill(tmpDS, "prims");
1875 // sDa.Fill(tmpDS, "primshapes"); 1853 // sDa.Fill(tmpDS, "primshapes");
1876 1854
1877 // if (persistPrimInventories)
1878 // iDa.Fill(tmpDS, "primitems"); 1855 // iDa.Fill(tmpDS, "primitems");
1879 1856
1880 // tDa.Fill(tmpDS, "terrain"); 1857 // tDa.Fill(tmpDS, "terrain");
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs
index 910ec55..05e4f46 100644
--- a/OpenSim/Region/Application/OpenSimBase.cs
+++ b/OpenSim/Region/Application/OpenSimBase.cs
@@ -300,9 +300,8 @@ namespace OpenSim
300 } 300 }
301 m_storageConnectionString 301 m_storageConnectionString
302 = startupConfig.GetString("storage_connection_string", "URI=file:OpenSim.db,version=3"); 302 = startupConfig.GetString("storage_connection_string", "URI=file:OpenSim.db,version=3");
303 m_storagePersistPrimInventories 303 m_estateConnectionString
304 = startupConfig.GetBoolean("storage_prim_inventories", true); 304 = startupConfig.GetString("estate_connection_string", m_storageConnectionString);
305
306 m_scriptEngine = startupConfig.GetString("script_engine", "OpenSim.Region.ScriptEngine.DotNetEngine.dll"); 305 m_scriptEngine = startupConfig.GetString("script_engine", "OpenSim.Region.ScriptEngine.DotNetEngine.dll");
307 m_assetStorage = startupConfig.GetString("asset_database", "local"); 306 m_assetStorage = startupConfig.GetString("asset_database", "local");
308 m_clientstackDll = startupConfig.GetString("clientstack_plugin", "OpenSim.Region.ClientStack.LindenUDP.dll"); 307 m_clientstackDll = startupConfig.GetString("clientstack_plugin", "OpenSim.Region.ClientStack.LindenUDP.dll");
@@ -555,9 +554,9 @@ namespace OpenSim
555 return clientServer; 554 return clientServer;
556 } 555 }
557 556
558 protected override StorageManager CreateStorageManager(string connectionstring) 557 protected override StorageManager CreateStorageManager(string connectionstring, string estateconnectionstring)
559 { 558 {
560 return new StorageManager(m_storageDll, connectionstring, m_storagePersistPrimInventories); 559 return new StorageManager(m_storageDll, connectionstring, estateconnectionstring);
561 } 560 }
562 561
563 protected override ClientStackManager CreateClientStackManager() 562 protected override ClientStackManager CreateClientStackManager()
diff --git a/OpenSim/Region/ClientStack/RegionApplicationBase.cs b/OpenSim/Region/ClientStack/RegionApplicationBase.cs
index dadaf88..3e941cf 100644
--- a/OpenSim/Region/ClientStack/RegionApplicationBase.cs
+++ b/OpenSim/Region/ClientStack/RegionApplicationBase.cs
@@ -62,13 +62,10 @@ namespace OpenSim.Region.ClientStack
62 62
63 protected StorageManager m_storageManager; 63 protected StorageManager m_storageManager;
64 protected string m_storageConnectionString; 64 protected string m_storageConnectionString;
65 protected string m_estateConnectionString;
65 66
66 protected ClientStackManager m_clientStackManager; 67 protected ClientStackManager m_clientStackManager;
67 68
68 // An attribute to indicate whether prim inventories should be persisted.
69 // Probably will be temporary until this stops being experimental.
70 protected bool m_storagePersistPrimInventories;
71
72 public SceneManager SceneManager 69 public SceneManager SceneManager
73 { 70 {
74 get { return m_sceneManager; } 71 get { return m_sceneManager; }
@@ -78,7 +75,7 @@ namespace OpenSim.Region.ClientStack
78 { 75 {
79 base.Startup(); 76 base.Startup();
80 77
81 m_storageManager = CreateStorageManager(m_storageConnectionString); 78 m_storageManager = CreateStorageManager(m_storageConnectionString, m_estateConnectionString);
82 79
83 m_clientStackManager = CreateClientStackManager(); 80 m_clientStackManager = CreateClientStackManager();
84 81
@@ -101,7 +98,7 @@ namespace OpenSim.Region.ClientStack
101 98
102 // protected abstract ConsoleBase CreateConsole(); 99 // protected abstract ConsoleBase CreateConsole();
103 protected abstract PhysicsScene GetPhysicsScene(); 100 protected abstract PhysicsScene GetPhysicsScene();
104 protected abstract StorageManager CreateStorageManager(string connectionstring); 101 protected abstract StorageManager CreateStorageManager(string connectionstring, string estateconnectionstring);
105 protected abstract ClientStackManager CreateClientStackManager(); 102 protected abstract ClientStackManager CreateClientStackManager();
106 103
107 protected PhysicsScene GetPhysicsScene(string engine, string meshEngine, IConfigSource config) 104 protected PhysicsScene GetPhysicsScene(string engine, string meshEngine, IConfigSource config)
diff --git a/OpenSim/Region/Environment/Interfaces/IRegionDataStore.cs b/OpenSim/Region/Environment/Interfaces/IRegionDataStore.cs
index 0316f20..ad5983c 100644
--- a/OpenSim/Region/Environment/Interfaces/IRegionDataStore.cs
+++ b/OpenSim/Region/Environment/Interfaces/IRegionDataStore.cs
@@ -39,8 +39,7 @@ namespace OpenSim.Region.Environment.Interfaces
39 /// </summary> 39 /// </summary>
40 /// <param name="filename">The file to save the database to (may not be applicable). Alternatively, 40 /// <param name="filename">The file to save the database to (may not be applicable). Alternatively,
41 /// a connection string for the database</param> 41 /// a connection string for the database</param>
42 /// <param name="persistPrimInventories">Temporary switch while this option is immature</param> 42 void Initialise(string filename);
43 void Initialise(string filename, bool persistPrimInventories);
44 43
45 /// <summary> 44 /// <summary>
46 /// Stores all object's details apart from inventory 45 /// Stores all object's details apart from inventory
diff --git a/OpenSim/Region/Environment/StorageManager.cs b/OpenSim/Region/Environment/StorageManager.cs
index 768e12c..36c9196 100644
--- a/OpenSim/Region/Environment/StorageManager.cs
+++ b/OpenSim/Region/Environment/StorageManager.cs
@@ -55,7 +55,7 @@ namespace OpenSim.Region.Environment
55 m_dataStore = storage; 55 m_dataStore = storage;
56 } 56 }
57 57
58 public StorageManager(string dllName, string connectionstring, bool persistPrimInventories) 58 public StorageManager(string dllName, string connectionstring, string estateconnectionstring)
59 { 59 {
60 m_log.Info("[DATASTORE]: Attempting to load " + dllName); 60 m_log.Info("[DATASTORE]: Attempting to load " + dllName);
61 Assembly pluginAssembly = Assembly.LoadFrom(dllName); 61 Assembly pluginAssembly = Assembly.LoadFrom(dllName);
@@ -70,7 +70,7 @@ namespace OpenSim.Region.Environment
70 { 70 {
71 IRegionDataStore plug = 71 IRegionDataStore plug =
72 (IRegionDataStore) Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); 72 (IRegionDataStore) Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
73 plug.Initialise(connectionstring, persistPrimInventories); 73 plug.Initialise(connectionstring);
74 74
75 m_dataStore = plug; 75 m_dataStore = plug;
76 76
@@ -83,7 +83,7 @@ namespace OpenSim.Region.Environment
83 { 83 {
84 IEstateDataStore estPlug = 84 IEstateDataStore estPlug =
85 (IEstateDataStore) Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); 85 (IEstateDataStore) Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
86 estPlug.Initialise(connectionstring); 86 estPlug.Initialise(estateconnectionstring);
87 87
88 m_estateDataStore = estPlug; 88 m_estateDataStore = estPlug;
89 } 89 }
diff --git a/OpenSim/Tools/Export/OpenSimExport.cs b/OpenSim/Tools/Export/OpenSimExport.cs
index 1e7db51..f469d91 100644
--- a/OpenSim/Tools/Export/OpenSimExport.cs
+++ b/OpenSim/Tools/Export/OpenSimExport.cs
@@ -54,7 +54,7 @@ namespace OpenSimExport
54 sman = new StorageManager( 54 sman = new StorageManager(
55 startup.GetString("storage_plugin", "OpenSim.DataStore.NullStorage.dll"), 55 startup.GetString("storage_plugin", "OpenSim.DataStore.NullStorage.dll"),
56 startup.GetString("storage_connection_string", String.Empty), 56 startup.GetString("storage_connection_string", String.Empty),
57 false 57 startup.GetString("estate_connection_string", String.Empty)
58 ); 58 );
59 } 59 }
60 60
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example
index 491e7dd..afcb8ee 100644
--- a/bin/OpenSim.ini.example
+++ b/bin/OpenSim.ini.example
@@ -42,16 +42,9 @@ storage_connection_string="URI=file:OpenSim.db,version=3";
42; note that the supplied account needs create privilegies if you want it to auto-create needed tables. 42; note that the supplied account needs create privilegies if you want it to auto-create needed tables.
43; storage_plugin="OpenSim.Data.MySQL.dll" 43; storage_plugin="OpenSim.Data.MySQL.dll"
44; storage_connection_string="Data Source=localhost;Database=opensim;User ID=opensim;Password=*****;"; 44; storage_connection_string="Data Source=localhost;Database=opensim;User ID=opensim;Password=*****;";
45 45; If you want to use a different database/server for estate data, then
46; turn on experimental storage of prim inventories in the region database 46; uncomment and change this connect string. Defaults to the above if not set
47 47; estate_connection_string="Data Source=localhost;Database=opensim;User ID=opensim;Password=*****;";
48; Prim inventory storage is now turned on by default
49; However, this option remains in case it needs to be disabled
50; More details of the current state of this can be found at
51;
52; http://opensimulator.org/wiki/OpenSim:Prim_Inventory_Persistence
53;
54storage_prim_inventories = true
55 48
56; Select whether you want to use local or grid asset storage. 49; Select whether you want to use local or grid asset storage.
57; 50;