It's very difficult to replicate the whole situation. I just wanted to know wether it could be somethig wrong in the files, not in the<br>objects in memory for this malcfunction. Could be a unfinished transaction waiting in the files for return to live? Because I didn't created any extra transaction, just only one.
<br>I was testing wether the problem could be in a session that remain in memory. I wrote this test. <br><br>test00OpenSessions<br><br>| session1 session2 |<br>MagmaSession disconnectAndCloseAllConnectedSessions.<br>MagmaSession cleanUp.
<br>Smalltalk garbageCollect.<br>self assert: MagmaSession allInstances isEmpty.<br>session1:= MagmaSession openLocal: '\Squeak 3.9\magma'.<br>session1 connectAs: 'User1' asString.<br>self assert: MagmaSession allInstances size = 2. "it fails. There is an extra session with id=nil, user=nil. Is it normal? "
<br>session2:=MagmaSession openLocal: '\Squeak 3.9\magma'.<br>session2 connectAs: 'User2' asString.<br>self assert: MagmaSession allInstances size = 3. "idem"<br><br><br><br><br>Regards<br>Norberto
<br><br><div><span class="gmail_quote">On 9/13/07, <b class="gmail_sendername">Chris Muller</b> <<a href="mailto:asqueaker@gmail.com">asqueaker@gmail.com</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Norberto, given the lack of specific information, I can only speculate<br>from my gut that you were in a transaction more than one-level deep.<br>In that case, all changes remain solely in memory until you execute<br>the outermost #commit and you will not see any change in the
<br>repository files until then.<br><br>You said it wasn't the first time you've encountered a problem, so<br>would you please retrace your steps, documenting them into a script I<br>can follow that demonstrates a problem? I would be happy to be help.
<br><br>Regards,<br> Chris<br><br><br><br>On 9/13/07, Norberto Manzanos <<a href="mailto:nmanzanos@gmail.com">nmanzanos@gmail.com</a>> wrote:<br>> Hi Chris and people.<br>><br>> Something really strange has just happened with Magma.
<br>><br>> I had a repository. One of its collections had about 11000 objects.<br>> I made a massive adding of about 600 objects. 10 objects per<br>> transaction, refreshPersistentObjects... seting to false, readStrategy
<br>> with depth 0.<br>> When the process finished, the size of the collection was about 11600.<br>> I noticed the files of the repository hadn't change. When I closed the<br>> session the collection size was 11000 again. Where were the other? I
<br>> tried sending an #abort (but the whole process was inside<br>> transactions,so, what for?), then I sent a #cleanUp to MagmaSession (I<br>> don't known why, magic perhaps). Surprisingly, when I reconnected the
<br>> session and requested the size again, it was 600!. I swear I didn't<br>> drink nothing but coffee, but when I closed and reconnected the<br>> session one more time, the collection had the 11000 of the beginning.
<br>> The objects file hadn't changed and the size of the squeak image was<br>> about 150 Mb. So, they were allways in memory ... but where exactly?<br>> There was only one instance of MagmaRepositoryController and two
<br>> instances of MagmaSession, one my session, and a __system session.<br>><br>> This is not the first time that many objects disapears in the air.<br>> What I really want to understand is what could be the reason that
<br>> several #add: to the repository inside a transaction could not be<br>> actually saved in the files and keeps in memory.<br>><br>> Thanks in advance.<br>> Norberto<br>> _______________________________________________
<br>> Magma mailing list<br>> <a href="mailto:Magma@lists.squeakfoundation.org">Magma@lists.squeakfoundation.org</a><br>> <a href="http://lists.squeakfoundation.org/mailman/listinfo/magma">http://lists.squeakfoundation.org/mailman/listinfo/magma
</a><br>><br></blockquote></div><br>