Thanks Keith.
I gave it another try following your hints. Here are more notes, again
from a newbie approach. I found many issues:
1- Minor: Default port
The default proposed port is 8080. This conflict with usual Tomcat
installation. Changing the text to 9090 does not seem to change the
underlying hot link. Being new to Squeak, I do not know how to change
that. I had to do the classic highlight+do it. I would recommend
changing the default port or let the user choose themselves (remove
the hot link).
2- Major: Froze Squeak clicking 'Over' in the debugger
Going to seaside/config then Pier>Magma I got an error about a
filestream (more about that below). I clicked debugged. Inspected the
variables in Squeak. I found that a directory was set to c:/tmp/magma.
I thought that maybe the issue was with the Windows path (\ vs. /). I
changed a variable and clicked Over. Oops... Squeak would not respond
anymore to any click. The web site still worked. How does one unfreeze
Squeak in such situation? Crtl-C did nothing.
3- Critical: Magma error following instructions
I removed every thing and started over: fresh 3.9 Squeak + fresh SMP
image. Following the How To I clicked on PRMagmaRepository > create. I
got an error:
Repository Path Setting: magma
c:\dev\Squeak\SMP\magma\objects not found
The above file and directory do exist...
Further clicking brings an error page. Here is the top of the stack:
MaUserError: fileStream required
* MaUserError class(Exception class)>>signal:
self MaUserError
temps
signalerText 'fileStream required'
inst vars
superclass MaError
methodDict a MethodDictionary(#isUserError->a CompiledMethod (1830) )
format 140
instanceVariables nil
organization ('as yet unclassified' isUserError)
subclasses {MaClientServerUserError . MaHashIndexUserError .
MaObjectSerializationUserError . MagmaUserError}
name #MaUserError
classPool nil
sharedPools nil
environment a SystemDictionary(lots of globals)
category #'Ma exception handling-exceptions'
traitComposition nil
localSelectors nil
* MaTransactionalFileStream class>>fileStream:
self MaTransactionalFileStream
temps
aFileStream nil
inst vars
superclass MaObject
methodDict a MethodDictionary(#bePhysical->a CompiledMethod
(2620) #binary->a CompiledMethod (3812) #close->a C...etc...
format 142
instanceVariables #('filename' 'fileStream' 'guard'
'uncommittedSize' 'position' 'writers')
organization ('accessing' bePhysical committedSize
copyToDirectory: physicalStream writersDo:) ('filestream api'
...etc...
subclasses nil
name #MaTransactionalFileStream
classPool nil
sharedPools nil
environment a SystemDictionary(lots of globals)
category #'Magma server-recovery'
traitComposition nil
localSelectors nil
* MaObjectFiler>>openFile:
self a MaObjectFiler
temps
unqualifiedName 'objects'
answer nil
inst vars
directory DosFileDirectory on 'C:\dev\Squeak\SMP\magma'
file nil
preMadeObjectBuffer a MaObjectBuffer oid : **invalid**
classId : **invalid** objectInstSize : **invalid**
filePositionIndex nil
usedByteArrays an Array(a ByteArray(0) a ByteArray(0 0) a
ByteArray(0 0 0) a ByteArray(0 0 0 0) a ByteArray(0 0 0 0...etc...
primitiveAttributeAddressesMap a
Dictionary('anchorOid'->43->64 'booleanFlags'->10->8
'classDefinitionsOid'->27->64 'definitionOid'...etc...
* MaObjectFiler>>openObjectsFile
self a MaObjectFiler
temps
inst vars
directory DosFileDirectory on 'C:\dev\Squeak\SMP\magma'
file nil
preMadeObjectBuffer a MaObjectBuffer oid : **invalid**
classId : **invalid** objectInstSize : **invalid**
filePositionIndex nil
usedByteArrays an Array(a ByteArray(0) a ByteArray(0 0) a
ByteArray(0 0 0) a ByteArray(0 0 0 0) a ByteArray(0 0 0 0...etc...
primitiveAttributeAddressesMap a
Dictionary('anchorOid'->43->64 'booleanFlags'->10->8
'classDefinitionsOid'->27->64 'definitionOid'...etc...
* MaObjectFiler>>open
self a MaObjectFiler
temps
inst vars
directory DosFileDirectory on 'C:\dev\Squeak\SMP\magma'
file nil
preMadeObjectBuffer a MaObjectBuffer oid : **invalid**
classId : **invalid** objectInstSize : **invalid**
filePositionIndex nil
usedByteArrays an Array(a ByteArray(0) a ByteArray(0 0) a
ByteArray(0 0 0) a ByteArray(0 0 0 0) a ByteArray(0 0 0 0...etc...
primitiveAttributeAddressesMap a
Dictionary('anchorOid'->43->64 'booleanFlags'->10->8
'classDefinitionsOid'->27->64 'definitionOid'...etc...
* MaObjectFiler class>>open:
self MaObjectFiler
temps
aFileDirectory DosFileDirectory on 'C:\dev\Squeak\SMP\magma'
inst vars
superclass MaObject
methodDict a MethodDictionary(#anchorOid->a CompiledMethod
(1003) #anchorOid:->a CompiledMethod (3392) #append:...etc...
format 142
instanceVariables #('directory' 'file'
'preMadeObjectBuffer'
'filePositionIndex' 'usedByteArrays' 'primitiveAttributeA...etc...
organization ('accessing' anchorOid classDefinitionsOid
dataFileName definitionOid directory filePointerForOid: f...etc...
subclasses nil
name #MaObjectFiler
classPool nil
sharedPools nil
environment a SystemDictionary(lots of globals)
category #'Magma server-private'
traitComposition nil
localSelectors nil
* MaObjectRepository>>open:
self a MaObjectRepository
temps
aFileDirectory DosFileDirectory on 'C:\dev\Squeak\SMP\magma'
inst vars
transactionLog a MaTransactionLog
sessions a Dictionary()
filer nil
repositoryController a MagmaRepositoryController
largeCollectionManagers a Dictionary()
systemReadStrategy nil
nextOid nil
recoveryManager nil
commitGuard a Monitor
applyProcess nil
wantsToClose nil
* MaObjectRepository class>>open:controller:
self MaObjectRepository
temps
aFileDirectory DosFileDirectory on 'C:\dev\Squeak\SMP\magma'
aMaRepositoryController a MagmaRepositoryController
inst vars
superclass MaObject
methodDict a MethodDictionary(#abortTransactionFor:->a
CompiledMethod (131) #applyToCache:->a CompiledMethod (1...etc...
format 152
instanceVariables #('transactionLog' 'sessions' 'filer'
'repositoryController' 'largeCollectionManagers'
'systemReadSt...etc...
organization ('client-requests' abortTransactionFor:
fractionLoaded: getTrunkFor:expression: numberOfEntriesFrom:...etc...
subclasses nil
name #MaObjectRepository
classPool a Dictionary(#RunningTestCases->false
#SimulateOutage->false )
sharedPools nil
environment a SystemDictionary(lots of globals)
category #'Magma server-private'
traitComposition nil
localSelectors nil
* MagmaRepositoryController>>privateOpen:
self a MagmaRepositoryController
temps
aFileDirectory DosFileDirectory on 'C:\dev\Squeak\SMP\magma'
inst vars
repository a MaObjectRepository
session a MagmaSession
serverSerializer a MaObjectSerializer
requestInterruptGuard a Monitor
directory DosFileDirectory on 'C:\dev\Squeak\SMP\magma'
preferences a MagmaServerPreferences
Thierry