[7.7.1] Publishing base fails

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
12 messages Options
Reply | Threaded
Open this post in threaded view
|

[7.7.1] Publishing base fails

Reinout Heeck-2
We received the vw7.7.1 CD today, so I started to publish it into our
Store repository.

Publishing Base Visualworks generates an error (ORA-01000: maximum open
cursors exceeded).

I retried the operation but that gave the same result, stack dump attached.

Steps I took:
--copied our 7.6 repository (and changed the repository identifier).
--load StoreForOracle
--ran update77 and update 771
--'switch databases' to reconcile
--publish Base VisualWorks bundle

Reinout
-------



--
*********************************************************************

Dit e-mailbericht is alleen bestemd voor de geadresseerde(n).

Gebruik door anderen is niet toegestaan. Indien u niet degeadresseerde(n) bent wordt u verzocht de verzender hiervan op de hoogte te stellen en het bericht te verwijderen. Door de elektronische verzending kunnen aan de inhoud van dit bericht geen rechten worden ontleend.

Soops B.V. is gevestigd te Amsterdam, Nederland, en is geregistreerd bij de Kamer van Koophandel onder nummer 33240368.
Soops B.V. levert volgens de Fenit voorwaarden, gedeponeerd te Den Haag op 8 december 1994 onder nummer 1994/189.
**********************************************************************

This e-mail message is intended to be exclusively for the addressee.

If you are not the intended recipient you are kindly requested not to make any use whatsoever of the contents and to notify the sender immediately by returning this e-mail message. No rights can be derived from this message.

Soops B.V. is a private limited liability company and has its seat at Amsterdam, The Netherlands and is registered with the Trade Registry of the Chamber of Commerce and Industry under number 33240368.
Soops B.V. delivers according to the General Terms and Conditions of Business of Fenit, registered at The Hague, The Netherlands on December 8th, 1994, under number 1994/189
**********************************************************************



Unhandled exception:  
ORA-01000: maximum open cursors exceeded

Glorp.GlorpDatabaseReadError(Glorp.GlorpError)>>signal
Glorp.VWDatabaseAccessor(Glorp.DatabaseAccessor)>>handleError:for:
optimized [] in [] in Glorp.DatabaseAccessor>>executeCommand:returnCursor:
BlockClosure>>cull:
UnableToExecuteSQL(GenericException)>>performHandler:
UnableToExecuteSQL(GenericException)>>propagatePrivateFrom:
UnableToExecuteSQL(GenericException)>>propagateFrom:
UnableToExecuteSQL(GenericException)>>propagate
UnableToExecuteSQL(GenericException)>>raiseSignal
UnableToExecuteSQL class(GenericException class)>>raiseWith:errorString:
OracleSession>>resultsExternal
OracleSession>>executeExternal
optimized [] in ExternalDatabaseSession>>execute
BlockClosure>>ifCurtailed:
OracleSession(ExternalDatabaseSession)>>execute
Glorp.VWDatabaseAccessor>>executeCommand:inDBSession:
optimized [] in Glorp.VWDatabaseAccessor>>executeCommandBound:
Time class>>microsecondsToRun:
Time class>>millisecondsToRun:
Glorp.VWDatabaseAccessor>>executeCommandBound:
Glorp.QuerySelectCommand(Glorp.DatabaseCommand)>>executeBoundIn:
optimized [] in [] in Glorp.DatabaseAccessor>>executeCommand:returnCursor:
BlockClosure>>on:do:
optimized [] in Glorp.DatabaseAccessor>>executeCommand:returnCursor:
BlockClosure>>ensure:
Semaphore>>critical:
Glorp.VWDatabaseAccessor(Glorp.DatabaseAccessor)>>executeCommand:returnCursor:
optimized [] in Glorp.SimpleQuery>>rowsFromDatabaseWithParameters:
BlockClosure>>on:do:
Glorp.SimpleQuery>>rowsFromDatabaseWithParameters:
Glorp.SimpleQuery(Glorp.AbstractReadQuery)>>readFromDatabaseWithParameters:
Glorp.SimpleQuery(Glorp.AbstractReadQuery)>>executeWithParameters:in:
Glorp.GlorpSession>>execute:
Glorp.GlorpSession>>readOneOf:where:
Store.Glorp.StorePundleWriter>>readPreviousVersion
Store.Glorp.StorePundleWriter>>previousVersionInTargetDatabase
Store.Glorp.StorePundleWriter>>isPreviousVersionPresent
Store.Glorp.StorePundleWriter>>writePundlePhase1:withChangesBasedOn:using:
Store.Glorp.StorePundleWriter>>writePundle:withChangesBasedOn:using:
optimized [] in [] in Store.PublishSpecificationList>>publishSilently
BlockClosure>>on:do:
[] in Store.PublishSpecificationList>>publishSilently
Store.PublishSpecificationList>>publishSilently
Store.PublishSpecificationList>>publishPundle
optimized [] in Store.PublishPundleDialog>>accept
optimized [] in Store.StoreProgressOverlay class>>subsumeAll:while:
BlockClosure>>ensure:
Store.StoreProgressOverlay class>>subsumeAll:while:
Store.StoreProgressOverlay class>>subsume:while:
Store.PublishPundleDialog>>accept
optimized [] in ApplicationModel>>actionFor:
optimized [] in ActionButtonSpec>>typeConvert:
PluggableAdaptor>>setValue:
PluggableAdaptor(ValueModel)>>value:
WinXPTriggerButtonController(TriggerButtonController)>>pressAction
TriggerButtonTracker(BasicButtonTracker)>>finishSelectionFor:
TriggerButtonTracker>>finishSelectionFor:
TriggerButtonTracker(SelectionTracker)>>redButtonReleasedEvent:
RedButtonReleasedEvent>>dispatchTo:
TriggerButtonTracker(SelectionTracker)>>handleEvent:
EventDispatcher>>dispatch:to:
[] in EventDispatcher>>dispatchEvent:
BlockClosure>>on:do:
EventDispatcher>>dispatchEvent:
RedButtonReleasedEvent(Event)>>dispatch
RedButtonReleasedEvent(Event)>>dispatchForWindowManager:
optimized [] in WindowManager>>safelyDispatchForWindowManager:
BlockClosure>>on:do:
WindowManager>>safelyDispatchForWindowManager:
WindowManager>>processNextEvent
optimized [] in [] in WindowManager>>newProcess
BlockClosure>>on:do:
optimized [] in WindowManager>>newProcess
BlockClosure>>on:do:
optimized [] in Process class>>forBlock:priority:

----------------------------------------------------------------------
Glorp.GlorpDatabaseReadError(Glorp.GlorpError)>>signal
Receiver:
        a Glorp.GlorpDatabaseReadError
Instance Variables:
        messageText = '
ORA-01000: maximum open cursors exceeded
'
        originator = a Glorp.GlorpDatabaseReadError
        initialContext = Glorp.GlorpDatabaseReadError(Glorp.GlorpError)>>signal
        firstUnwindContext = BlockClosure>>ifCurtailed:
        handlerContext = nil
        parameter = nil
        proceedBlock = nil
        isResumable = true
        signal = nil
        searchContext = Glorp.SimpleQuery>>rowsFromDatabaseWithParameters:
        command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
        databaseError = an UnableToExecuteSQL
        accessor = a Glorp.VWDatabaseAccessor
Context PC = 7

----------------------------------------------------------------------
Glorp.VWDatabaseAccessor(Glorp.DatabaseAccessor)>>handleError:for:
Receiver:
        a Glorp.VWDatabaseAccessor
Instance Variables:
        connection = an OracleConnection( hsvcctx = 47D8DA8 )
        currentLogin = a Login(a Glorp.OraclePlatform, 'store', 'store771', 'store')
        logging = false
        reusePreparedStatements = true
        deniedCommands = nil
        mutex = a Semaphore[0]
        dependents = nil
        driverSession = an OracleSession( hstmt = 4C60A80 )
        preparedStatements = a Glorp.CacheManager
Arguments:
        exception = an UnableToExecuteSQL
        command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
Temporaries:
        errorClass = Glorp.GlorpDatabaseReadError
        error = a Glorp.GlorpDatabaseReadError
Context PC = 28

----------------------------------------------------------------------
optimized [] in [] in Glorp.DatabaseAccessor>>executeCommand:returnCursor:
Receiver:
        an UndefinedObject
Arguments:
        ex = an UnableToExecuteSQL
Temporaries:
        .self = a Glorp.VWDatabaseAccessor
        .command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
Context PC = 8

----------------------------------------------------------------------
BlockClosure>>cull:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in [] in Glorp.DatabaseAccessor>>executeCommand:returnCursor:
        outerContext = nil
        copiedValues = an Array[2]
Arguments:
        anObject = an UnableToExecuteSQL
Context PC = 15

----------------------------------------------------------------------
UnableToExecuteSQL(GenericException)>>performHandler:
Receiver:
        an UnableToExecuteSQL
Instance Variables:
        messageText = '
ORA-01000: maximum open cursors exceeded
'
        originator = an OracleSession( hstmt = 4C5F62C )
        initialContext = OracleSession>>resultsExternal
        firstUnwindContext = BlockClosure>>ifCurtailed:
        handlerContext = BlockClosure>>on:do:
        parameter = an Array[1]
        proceedBlock = nil
        isResumable = false
        signal = nil
        searchContext = OracleSession>>resultsExternal
Arguments:
        aContext = BlockClosure>>on:do:
Temporaries:
        result = nil
        oldHandler = BlockClosure>>on:do:
Context PC = 39

----------------------------------------------------------------------
UnableToExecuteSQL(GenericException)>>propagatePrivateFrom:
Receiver:
        an UnableToExecuteSQL
Instance Variables:
        messageText = '
ORA-01000: maximum open cursors exceeded
'
        originator = an OracleSession( hstmt = 4C5F62C )
        initialContext = OracleSession>>resultsExternal
        firstUnwindContext = BlockClosure>>ifCurtailed:
        handlerContext = BlockClosure>>on:do:
        parameter = an Array[1]
        proceedBlock = nil
        isResumable = false
        signal = nil
        searchContext = OracleSession>>resultsExternal
Arguments:
        aContext = OracleSession>>resultsExternal
Temporaries:
        handler = BlockClosure>>on:do:
Context PC = 13

----------------------------------------------------------------------
UnableToExecuteSQL(GenericException)>>propagateFrom:
Receiver:
        an UnableToExecuteSQL
Instance Variables:
        messageText = '
ORA-01000: maximum open cursors exceeded
'
        originator = an OracleSession( hstmt = 4C5F62C )
        initialContext = OracleSession>>resultsExternal
        firstUnwindContext = BlockClosure>>ifCurtailed:
        handlerContext = BlockClosure>>on:do:
        parameter = an Array[1]
        proceedBlock = nil
        isResumable = false
        signal = nil
        searchContext = OracleSession>>resultsExternal
Arguments:
        startContext = OracleSession>>resultsExternal
Context PC = 9

----------------------------------------------------------------------
UnableToExecuteSQL(GenericException)>>propagate
Receiver:
        an UnableToExecuteSQL
Instance Variables:
        messageText = '
ORA-01000: maximum open cursors exceeded
'
        originator = an OracleSession( hstmt = 4C5F62C )
        initialContext = OracleSession>>resultsExternal
        firstUnwindContext = BlockClosure>>ifCurtailed:
        handlerContext = BlockClosure>>on:do:
        parameter = an Array[1]
        proceedBlock = nil
        isResumable = false
        signal = nil
        searchContext = OracleSession>>resultsExternal
Context PC = 5

----------------------------------------------------------------------
UnableToExecuteSQL(GenericException)>>raiseSignal
Receiver:
        an UnableToExecuteSQL
Instance Variables:
        messageText = '
ORA-01000: maximum open cursors exceeded
'
        originator = an OracleSession( hstmt = 4C5F62C )
        initialContext = OracleSession>>resultsExternal
        firstUnwindContext = BlockClosure>>ifCurtailed:
        handlerContext = BlockClosure>>on:do:
        parameter = an Array[1]
        proceedBlock = nil
        isResumable = false
        signal = nil
        searchContext = OracleSession>>resultsExternal
Context PC = 16

----------------------------------------------------------------------
UnableToExecuteSQL class(GenericException class)>>raiseWith:errorString:
Receiver:
        an UnableToExecuteSQL class
Instance Variables:
        superclass = ExternalDatabaseException
        methodDict = a MethodDictionary[1]
        format = 16394
        subclasses = an Array[5]
        instanceVariables = an Array[0]
        organization = ('printing' #defaultMessageText)

        name = #UnableToExecuteSQL
        classPool = a NameSpaceOfClass[0]
        environment = a NameSpace[130]
        notifierString = nil
Arguments:
        parameter = an Array[1]
        aStringOrValuable = '
ORA-01000: maximum open cursors exceeded
'
Context PC = 26

----------------------------------------------------------------------
OracleSession>>resultsExternal
Receiver:
        an OracleSession
Instance Variables:
        stateHolder = a ValueHolder on: #executing
        traceStream = nil
        traceLevel = 0
        participants = a WeakArray[0]
        participantsSemaphore = a RecursionLock
        connection = an OracleConnection( hsvcctx = 47D8DA8 )
        query = 'SELECT t1.primaryKey, t1.name...tamp = ?) AND (t1.name = ?))'
        queryFragments = an OrderedCollection[5]
        bindInput = an OrderedCollection[2]
        bindTemplate = an OrderedCollection[2]
        bindOutput = nil
        useNamedOutputBinding = false
        bindValues = an IdentityDictionary[2]
        resultTemplate = nil
        allocateForEachRow = true
        blockFactor = 1
        numColumns = nil
        columnDescriptions = nil
        rowAdaptors = nil
        rowBuffersHolder = a ValueHolder on: nil
        bufferIndex = nil
        answerStream = nil
        currentRow = nil
        scrollable = false
        needBinding = true
        resultsCache = nil
        hstmtHolder = a ValueHolder on: a CCompositePointer {04C5F62C} (struct __OCIStmt * )
        herrHolder = a ValueHolder on: a CCompositePointer {047D82A4} (struct __OCIError * )
        bindValuePointersHolder = a ValueHolder on: IdentityDictionary (1 -> an OracleBuffer 2 -> an OracleBuffer )
        maxLongBytes = 32768
        queryIsPLSQL = false
        currentRowIndex = nil
        totalRows = nil
        rowsInBlock = nil
        dependentLobs = a WeakDictionary[0]
        sqlPointerHolder = a ValueHolder on: a CPointer {00EEDF60} (unsigned char * )
        maxBindSize = 1
        answerLobProxy = false
        defaultDisplayLobSize = 32768
        isReleasedFromCacheHolder = a ValueHolder on: true
        lobBufferSize = 32768
        reuseColumnBuffers = false
        definePointerHolder = a ValueHolder on: nil
        bindPointerHolder = a ValueHolder on: a CPointer {06658870} (struct __OCIBind * * )
Temporaries:
        errs = an OrderedCollection[1]
        errorParameter = an Array[1]
        error = an OracleError
        signal = UnableToExecuteSQL
        connClass = OracleConnection
Context PC = 63

----------------------------------------------------------------------
OracleSession>>executeExternal
Receiver:
        an OracleSession
Instance Variables:
        stateHolder = a ValueHolder on: #executing
        traceStream = nil
        traceLevel = 0
        participants = a WeakArray[0]
        participantsSemaphore = a RecursionLock
        connection = an OracleConnection( hsvcctx = 47D8DA8 )
        query = 'SELECT t1.primaryKey, t1.name...tamp = ?) AND (t1.name = ?))'
        queryFragments = an OrderedCollection[5]
        bindInput = an OrderedCollection[2]
        bindTemplate = an OrderedCollection[2]
        bindOutput = nil
        useNamedOutputBinding = false
        bindValues = an IdentityDictionary[2]
        resultTemplate = nil
        allocateForEachRow = true
        blockFactor = 1
        numColumns = nil
        columnDescriptions = nil
        rowAdaptors = nil
        rowBuffersHolder = a ValueHolder on: nil
        bufferIndex = nil
        answerStream = nil
        currentRow = nil
        scrollable = false
        needBinding = true
        resultsCache = nil
        hstmtHolder = a ValueHolder on: a CCompositePointer {04C5F62C} (struct __OCIStmt * )
        herrHolder = a ValueHolder on: a CCompositePointer {047D82A4} (struct __OCIError * )
        bindValuePointersHolder = a ValueHolder on: IdentityDictionary (1 -> an OracleBuffer 2 -> an OracleBuffer )
        maxLongBytes = 32768
        queryIsPLSQL = false
        currentRowIndex = nil
        totalRows = nil
        rowsInBlock = nil
        dependentLobs = a WeakDictionary[0]
        sqlPointerHolder = a ValueHolder on: a CPointer {00EEDF60} (unsigned char * )
        maxBindSize = 1
        answerLobProxy = false
        defaultDisplayLobSize = 32768
        isReleasedFromCacheHolder = a ValueHolder on: true
        lobBufferSize = 32768
        reuseColumnBuffers = false
        definePointerHolder = a ValueHolder on: nil
        bindPointerHolder = a ValueHolder on: a CPointer {06658870} (struct __OCIBind * * )
Temporaries:
        rtval = -1
        xif = an OracleNTInterface
        hsvcctx = a CCompositePointer {047D8DA8} (struct __OCISvcCtx * )
        hstmt = a CCompositePointer {04C5F62C} (struct __OCIStmt * )
        herr = a CCompositePointer {047D82A4} (struct __OCIError * )
        iterations = 0
        rowOffset = 0
        mode = 32
Context PC = 180

----------------------------------------------------------------------
optimized [] in ExternalDatabaseSession>>execute
Receiver:
        an UndefinedObject
Temporaries:
        .self = an OracleSession( hstmt = 4C5F62C )
Context PC = 13

----------------------------------------------------------------------
BlockClosure>>ifCurtailed:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in ExternalDatabaseSession>>execute
        outerContext = nil
        copiedValues = an OracleSession( hstmt = 4C5F62C )
Arguments:
        terminationBlock = BlockClosure [] in ExternalDatabaseSession>>execute
Context PC = 4

----------------------------------------------------------------------
OracleSession(ExternalDatabaseSession)>>execute
Receiver:
        an OracleSession
Instance Variables:
        stateHolder = a ValueHolder on: #executing
        traceStream = nil
        traceLevel = 0
        participants = a WeakArray[0]
        participantsSemaphore = a RecursionLock
        connection = an OracleConnection( hsvcctx = 47D8DA8 )
        query = 'SELECT t1.primaryKey, t1.name...tamp = ?) AND (t1.name = ?))'
        queryFragments = an OrderedCollection[5]
        bindInput = an OrderedCollection[2]
        bindTemplate = an OrderedCollection[2]
        bindOutput = nil
        useNamedOutputBinding = false
        bindValues = an IdentityDictionary[2]
        resultTemplate = nil
        allocateForEachRow = true
        blockFactor = 1
        numColumns = nil
        columnDescriptions = nil
        rowAdaptors = nil
        rowBuffersHolder = a ValueHolder on: nil
        bufferIndex = nil
        answerStream = nil
        currentRow = nil
        scrollable = false
        needBinding = true
        resultsCache = nil
        hstmtHolder = a ValueHolder on: a CCompositePointer {04C5F62C} (struct __OCIStmt * )
        herrHolder = a ValueHolder on: a CCompositePointer {047D82A4} (struct __OCIError * )
        bindValuePointersHolder = a ValueHolder on: IdentityDictionary (1 -> an OracleBuffer 2 -> an OracleBuffer )
        maxLongBytes = 32768
        queryIsPLSQL = false
        currentRowIndex = nil
        totalRows = nil
        rowsInBlock = nil
        dependentLobs = a WeakDictionary[0]
        sqlPointerHolder = a ValueHolder on: a CPointer {00EEDF60} (unsigned char * )
        maxBindSize = 1
        answerLobProxy = false
        defaultDisplayLobSize = 32768
        isReleasedFromCacheHolder = a ValueHolder on: true
        lobBufferSize = 32768
        reuseColumnBuffers = false
        definePointerHolder = a ValueHolder on: nil
        bindPointerHolder = a ValueHolder on: a CPointer {06658870} (struct __OCIBind * * )
Context PC = 34

----------------------------------------------------------------------
Glorp.VWDatabaseAccessor>>executeCommand:inDBSession:
Receiver:
        a Glorp.VWDatabaseAccessor
Instance Variables:
        connection = an OracleConnection( hsvcctx = 47D8DA8 )
        currentLogin = a Login(a Glorp.OraclePlatform, 'store', 'store771', 'store')
        logging = false
        reusePreparedStatements = true
        deniedCommands = nil
        mutex = a Semaphore[0]
        dependents = nil
        driverSession = an OracleSession( hstmt = 4C60A80 )
        preparedStatements = a Glorp.CacheManager
Arguments:
        aCommand = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
        aSession = an OracleSession( hstmt = 4C5F62C )
Temporaries:
        answerStream = nil
        cursor = nil
Context PC = 3

----------------------------------------------------------------------
optimized [] in Glorp.VWDatabaseAccessor>>executeCommandBound:
Receiver:
        an UndefinedObject
Temporaries:
        .self = a Glorp.VWDatabaseAccessor
        .aCommand = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
        statement = a Glorp.GlorpPreparedStatement
        cursor = nil
Context PC = 22

----------------------------------------------------------------------
Time class>>microsecondsToRun:
Receiver:
        a Time class
Instance Variables:
        superclass = Magnitude
        methodDict = a MethodDictionary[31]
        format = 16387
        subclasses = nil
        instanceVariables = an Array[3]
        organization = ('comparing' #< #= #hash)
('accessing' #hours #milliseconds #minutes #seconds)
('arithmetic' #addSeconds: #addTime: #subtractSeconds: #subtractTime:)
('printing' #glorpPadToTwoDigits: #glorpPrintSQLOn: #longPrintString #printOn: #shortPrintString #storeOn:)
('converting' #asDuration #asSeconds #asTimestamp)
('private' #hours: #hours:minutes:seconds: #isCompatibleWithDuration #literalArrayEncoding #printOn:policy:format:)
('private-spin-button' #spinBy:boundedBy:)
('double dispatch' #equalFromDuration: #equalFromTime: #lessFromDuration: #lessFromTime:)
('private-oracle' #oracleConversion)

        name = #Time
        classPool = a NameSpaceOfClass[0]
        environment = a NameSpace[243]
Arguments:
        timedBlock = BlockClosure [] in Glorp.VWDatabaseAccessor>>executeCommandBound:
Temporaries:
        initialMicroseconds = 3459576683441564
Context PC = 7

----------------------------------------------------------------------
Time class>>millisecondsToRun:
Receiver:
        a Time class
Instance Variables:
        superclass = Magnitude
        methodDict = a MethodDictionary[31]
        format = 16387
        subclasses = nil
        instanceVariables = an Array[3]
        organization = ('comparing' #< #= #hash)
('accessing' #hours #milliseconds #minutes #seconds)
('arithmetic' #addSeconds: #addTime: #subtractSeconds: #subtractTime:)
('printing' #glorpPadToTwoDigits: #glorpPrintSQLOn: #longPrintString #printOn: #shortPrintString #storeOn:)
('converting' #asDuration #asSeconds #asTimestamp)
('private' #hours: #hours:minutes:seconds: #isCompatibleWithDuration #literalArrayEncoding #printOn:policy:format:)
('private-spin-button' #spinBy:boundedBy:)
('double dispatch' #equalFromDuration: #equalFromTime: #lessFromDuration: #lessFromTime:)
('private-oracle' #oracleConversion)

        name = #Time
        classPool = a NameSpaceOfClass[0]
        environment = a NameSpace[243]
Arguments:
        timedBlock = BlockClosure [] in Glorp.VWDatabaseAccessor>>executeCommandBound:
Context PC = 5

----------------------------------------------------------------------
Glorp.VWDatabaseAccessor>>executeCommandBound:
Receiver:
        a Glorp.VWDatabaseAccessor
Instance Variables:
        connection = an OracleConnection( hsvcctx = 47D8DA8 )
        currentLogin = a Login(a Glorp.OraclePlatform, 'store', 'store771', 'store')
        logging = false
        reusePreparedStatements = true
        deniedCommands = nil
        mutex = a Semaphore[0]
        dependents = nil
        driverSession = an OracleSession( hstmt = 4C60A80 )
        preparedStatements = a Glorp.CacheManager
Arguments:
        aCommand = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
Temporaries:
        statement = a Glorp.GlorpPreparedStatement
        cursor = nil
        time = nil
        block = BlockClosure [] in Glorp.VWDatabaseAccessor>>executeCommandBound:
Context PC = 19

----------------------------------------------------------------------
Glorp.QuerySelectCommand(Glorp.DatabaseCommand)>>executeBoundIn:
Receiver:
        a Glorp.QuerySelectCommand
Instance Variables:
        useBinding = true
        stream = nil
        sqlString = 'SELECT t1.primaryKey, t1.name...tamp = ?) AND (t1.name = ?))'
        session = a Glorp.GlorpSession
        parameters = an Array[0]
        blockFactor = 1
        query = a SimpleQuery for StoreBundle
        boundExpressions = an OrderedCollection[2]
Arguments:
        anAccessor = a Glorp.VWDatabaseAccessor
Context PC = 4

----------------------------------------------------------------------
optimized [] in [] in Glorp.DatabaseAccessor>>executeCommand:returnCursor:
Receiver:
        an UndefinedObject
Temporaries:
        .self = a Glorp.VWDatabaseAccessor
        .command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
Context PC = 15

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in [] in Glorp.DatabaseAccessor>>executeCommand:returnCursor:
        outerContext = nil
        copiedValues = an Array[2]
Arguments:
        anExceptionSelector = Error
        handlerBlock = BlockClosure [] in [] in Glorp.DatabaseAccessor>>executeCommand:returnCursor:
Context PC = 18

----------------------------------------------------------------------
optimized [] in Glorp.DatabaseAccessor>>executeCommand:returnCursor:
Receiver:
        an UndefinedObject
Temporaries:
        result = nil
        .self = a Glorp.VWDatabaseAccessor
        .command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
        .aBoolean = true
Context PC = 21

----------------------------------------------------------------------
BlockClosure>>ensure:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in Glorp.DatabaseAccessor>>executeCommand:returnCursor:
        outerContext = nil
        copiedValues = an Array[3]
Arguments:
        aBlock = BlockClosure [] in Semaphore>>critical:
Temporaries:
        result = nil
Context PC = 4

----------------------------------------------------------------------
Semaphore>>critical:
Receiver:
        a Semaphore
Instance Variables:
        firstLink = nil
        lastLink = nil
        excessSignals = 0
Arguments:
        mutuallyExcludedBlock = BlockClosure [] in Glorp.DatabaseAccessor>>executeCommand:returnCursor:
Context PC = 10

----------------------------------------------------------------------
Glorp.VWDatabaseAccessor(Glorp.DatabaseAccessor)>>executeCommand:returnCursor:
Receiver:
        a Glorp.VWDatabaseAccessor
Instance Variables:
        connection = an OracleConnection( hsvcctx = 47D8DA8 )
        currentLogin = a Login(a Glorp.OraclePlatform, 'store', 'store771', 'store')
        logging = false
        reusePreparedStatements = true
        deniedCommands = nil
        mutex = a Semaphore[0]
        dependents = nil
        driverSession = an OracleSession( hstmt = 4C60A80 )
        preparedStatements = a Glorp.CacheManager
Arguments:
        command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
        aBoolean = true
Context PC = 10

----------------------------------------------------------------------
optimized [] in Glorp.SimpleQuery>>rowsFromDatabaseWithParameters:
Receiver:
        an UndefinedObject
Temporaries:
        .self = a SimpleQuery for StoreBundle
        .command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
Context PC = 9

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in Glorp.SimpleQuery>>rowsFromDatabaseWithParameters:
        outerContext = nil
        copiedValues = an Array[2]
Arguments:
        anExceptionSelector = Glorp.GlorpDatabaseReadError
        handlerBlock = BlockClosure [] in Glorp.SimpleQuery>>rowsFromDatabaseWithParameters:
Context PC = 18

----------------------------------------------------------------------
Glorp.SimpleQuery>>rowsFromDatabaseWithParameters:
Receiver:
        a Glorp.SimpleQuery
Instance Variables:
        session = a Glorp.GlorpSession
        prepared = true
        expectedRows = 1
        collectionType = nil
        ordering = nil
        maximumLobSizeToRetrieveDirectly = 32768
        readsOneObject = true
        groupBy = nil
        resultClass = Store.Glorp.StoreBundle
        whereClause = Base(Store.Glorp.StoreBundle).timestamp = February 7, 2008 9:50:20 AM AND Base(Store.Glorp.StoreBundle).name = 'Base VisualWorks'
        base = Base(Store.Glorp.StoreBundle)
        limit = 1
        offset = nil
        proxyType = nil
        shouldRefresh = false
        tracing = a Glorp.Tracing
        builders = an Array[1]
        fields = an OrderedCollection[9]
        joins = an OrderedCollection[0]
        tablePrefix = nil
        customCommand = nil
        tablesToPrint = a SortedCollection[1]
Arguments:
        anArray = an Array[0]
Temporaries:
        alreadyTriedAction = true
        command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
Context PC = 43

----------------------------------------------------------------------
Glorp.SimpleQuery(Glorp.AbstractReadQuery)>>readFromDatabaseWithParameters:
Receiver:
        a Glorp.SimpleQuery
Instance Variables:
        session = a Glorp.GlorpSession
        prepared = true
        expectedRows = 1
        collectionType = nil
        ordering = nil
        maximumLobSizeToRetrieveDirectly = 32768
        readsOneObject = true
        groupBy = nil
        resultClass = Store.Glorp.StoreBundle
        whereClause = Base(Store.Glorp.StoreBundle).timestamp = February 7, 2008 9:50:20 AM AND Base(Store.Glorp.StoreBundle).name = 'Base VisualWorks'
        base = Base(Store.Glorp.StoreBundle)
        limit = 1
        offset = nil
        proxyType = nil
        shouldRefresh = false
        tracing = a Glorp.Tracing
        builders = an Array[1]
        fields = an OrderedCollection[9]
        joins = an OrderedCollection[0]
        tablePrefix = nil
        customCommand = nil
        tablesToPrint = a SortedCollection[1]
Arguments:
        anArray = an Array[0]
Temporaries:
        answerStream = nil
        result = nil
Context PC = 5

----------------------------------------------------------------------
Glorp.SimpleQuery(Glorp.AbstractReadQuery)>>executeWithParameters:in:
Receiver:
        a Glorp.SimpleQuery
Instance Variables:
        session = a Glorp.GlorpSession
        prepared = true
        expectedRows = 1
        collectionType = nil
        ordering = nil
        maximumLobSizeToRetrieveDirectly = 32768
        readsOneObject = true
        groupBy = nil
        resultClass = Store.Glorp.StoreBundle
        whereClause = Base(Store.Glorp.StoreBundle).timestamp = February 7, 2008 9:50:20 AM AND Base(Store.Glorp.StoreBundle).name = 'Base VisualWorks'
        base = Base(Store.Glorp.StoreBundle)
        limit = 1
        offset = nil
        proxyType = nil
        shouldRefresh = false
        tracing = a Glorp.Tracing
        builders = an Array[1]
        fields = an OrderedCollection[9]
        joins = an OrderedCollection[0]
        tablePrefix = nil
        customCommand = nil
        tablesToPrint = a SortedCollection[1]
Arguments:
        parameterArray = an Array[0]
        aSession = a Glorp.GlorpSession
Context PC = 35

----------------------------------------------------------------------
Glorp.GlorpSession>>execute:
Receiver:
        a Glorp.GlorpSession
Instance Variables:
        system = a Store.Glorp.Store74DescriptorSystem
        currentUnitOfWork = nil
        cache = a Glorp.CacheManager
        accessor = a Glorp.VWDatabaseAccessor
        applicationData = nil
        reaper = nil
        errorAction = nil
        modificationTracker = nil
Arguments:
        aQuery = a SimpleQuery for StoreBundle
Context PC = 5

----------------------------------------------------------------------
Glorp.GlorpSession>>readOneOf:where:
Receiver:
        a Glorp.GlorpSession
Instance Variables:
        system = a Store.Glorp.Store74DescriptorSystem
        currentUnitOfWork = nil
        cache = a Glorp.CacheManager
        accessor = a Glorp.VWDatabaseAccessor
        applicationData = nil
        reaper = nil
        errorAction = nil
        modificationTracker = nil
Arguments:
        aClass = Store.Glorp.StoreBundle
        aBlock = BlockClosure [] in Store.Glorp.StorePundleWriter>>readPreviousVersion
Context PC = 8

----------------------------------------------------------------------
Store.Glorp.StorePundleWriter>>readPreviousVersion
Receiver:
        a Store.Glorp.StorePundleWriter
Instance Variables:
        pundle = StoreBundle(Base VisualWorks,vw771-sps0)
        newPundle = nil
        previousVersionInTargetDatabase = an Object
        targetSession = a Glorp.GlorpSession
        preWriteAction = nil
        splitPundles = true
        notificationQueue = nil
Context PC = 12

----------------------------------------------------------------------
Store.Glorp.StorePundleWriter>>previousVersionInTargetDatabase
Receiver:
        a Store.Glorp.StorePundleWriter
Instance Variables:
        pundle = StoreBundle(Base VisualWorks,vw771-sps0)
        newPundle = nil
        previousVersionInTargetDatabase = an Object
        targetSession = a Glorp.GlorpSession
        preWriteAction = nil
        splitPundles = true
        notificationQueue = nil
Context PC = 18

----------------------------------------------------------------------
Store.Glorp.StorePundleWriter>>isPreviousVersionPresent
Receiver:
        a Store.Glorp.StorePundleWriter
Instance Variables:
        pundle = StoreBundle(Base VisualWorks,vw771-sps0)
        newPundle = nil
        previousVersionInTargetDatabase = an Object
        targetSession = a Glorp.GlorpSession
        preWriteAction = nil
        splitPundles = true
        notificationQueue = nil
Context PC = 4

----------------------------------------------------------------------
Store.Glorp.StorePundleWriter>>writePundlePhase1:withChangesBasedOn:using:
Receiver:
        a Store.Glorp.StorePundleWriter
Instance Variables:
        pundle = StoreBundle(Base VisualWorks,vw771-sps0)
        newPundle = nil
        previousVersionInTargetDatabase = an Object
        targetSession = a Glorp.GlorpSession
        preWriteAction = nil
        splitPundles = true
        notificationQueue = nil
Arguments:
        aPundle = StoreBundle(Base VisualWorks,vw771-sps0)
        anImagePundle = {Base VisualWorks}
        aCollection = an OrderedCollection[117]
Context PC = 11

----------------------------------------------------------------------
Store.Glorp.StorePundleWriter>>writePundle:withChangesBasedOn:using:
Receiver:
        a Store.Glorp.StorePundleWriter
Instance Variables:
        pundle = StoreBundle(Base VisualWorks,vw771-sps0)
        newPundle = nil
        previousVersionInTargetDatabase = an Object
        targetSession = a Glorp.GlorpSession
        preWriteAction = nil
        splitPundles = true
        notificationQueue = nil
Arguments:
        aPundle = StoreBundle(Base VisualWorks,vw771-sps0)
        anImagePundle = {Base VisualWorks}
        aCollection = an OrderedCollection[117]
Context PC = 7

----------------------------------------------------------------------
optimized [] in [] in Store.PublishSpecificationList>>publishSilently
Receiver:
        an UndefinedObject
Temporaries:
        .self = a Store.PublishSpecificationList[117]
        newPundle = nil
        targetPundles = an OrderedCollection[117]
Context PC = 16

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in [] in Store.PublishSpecificationList>>publishSilently
        outerContext = nil
        copiedValues = an Array[2]
Arguments:
        anExceptionSelector = Glorp.GlorpDatabaseWriteError
        handlerBlock = BlockClosure [] in [] in Store.PublishSpecificationList>>publishSilently
Context PC = 18

----------------------------------------------------------------------
[] in Store.PublishSpecificationList>>publishSilently
Receiver:
        a Store.PublishSpecificationList
Instance Variables:
        dependents = a SequenceView
        collection = an Array[192]
        limit = 117
        collectionSize = 192
        publisher = a Store.Glorp.StorePundleWriter
        notificationQueue = nil
Temporaries:
        .self = a Store.PublishSpecificationList[117]
        newPundle = nil
        targetPundles = an OrderedCollection[117]
Context PC = 17

----------------------------------------------------------------------
Store.PublishSpecificationList>>publishSilently
Receiver:
        a Store.PublishSpecificationList
Instance Variables:
        dependents = a SequenceView
        collection = an Array[192]
        limit = 117
        collectionSize = 192
        publisher = a Store.Glorp.StorePundleWriter
        notificationQueue = nil
Temporaries:
        newPundle = nil
        targetPundles = an OrderedCollection[117]
Context PC = 29

----------------------------------------------------------------------
Store.PublishSpecificationList>>publishPundle
Receiver:
        a Store.PublishSpecificationList
Instance Variables:
        dependents = a SequenceView
        collection = an Array[192]
        limit = 117
        collectionSize = 192
        publisher = a Store.Glorp.StorePundleWriter
        notificationQueue = nil
Temporaries:
        pundle = nil
Context PC = 8

----------------------------------------------------------------------
optimized [] in Store.PublishPundleDialog>>accept
Receiver:
        an UndefinedObject
Temporaries:
        .self = a Store.PublishPundleDialog
Context PC = 7

----------------------------------------------------------------------
optimized [] in Store.StoreProgressOverlay class>>subsumeAll:while:
Receiver:
        an UndefinedObject
Temporaries:
        .windowsToSubsume = an Array[1]
        .self = Store.StoreProgressOverlay
        overlays = an Array[1]
        .aBlock = BlockClosure [] in Store.PublishPundleDialog>>accept
Context PC = 14

----------------------------------------------------------------------
BlockClosure>>ensure:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in Store.StoreProgressOverlay class>>subsumeAll:while:
        outerContext = nil
        copiedValues = an Array[4]
Arguments:
        aBlock = BlockClosure [] in Store.StoreProgressOverlay class>>subsumeAll:while:
Temporaries:
        result = nil
Context PC = 4

----------------------------------------------------------------------
Store.StoreProgressOverlay class>>subsumeAll:while:
Receiver:
        a Store.StoreProgressOverlay class
Instance Variables:
        superclass = Panel
        methodDict = a MethodDictionary[12]
        format = 16394
        subclasses = nil
        instanceVariables = an Array[3]
        organization = ('initialize-release' #addProgressView #initializeLayoutAlgorithm #restoreOriginal #subsume:)
('private' #backdrop #dropdownGradient #dropdownRectangle #progressView #regularView #washOutBackdropImage)
('displaying' #displayDropdownOn: #displayPart:on:)

        name = #StoreProgressOverlay
        classPool = a NameSpaceOfClass[0]
        environment = a NameSpace[313]
Arguments:
        aWindowCollection = an Array[1]
        aBlock = BlockClosure [] in Store.PublishPundleDialog>>accept
Temporaries:
        overlays = an Array[1]
        windowsToSubsume = an Array[1]
Context PC = 22

----------------------------------------------------------------------
Store.StoreProgressOverlay class>>subsume:while:
Receiver:
        a Store.StoreProgressOverlay class
Instance Variables:
        superclass = Panel
        methodDict = a MethodDictionary[12]
        format = 16394
        subclasses = nil
        instanceVariables = an Array[3]
        organization = ('initialize-release' #addProgressView #initializeLayoutAlgorithm #restoreOriginal #subsume:)
('private' #backdrop #dropdownGradient #dropdownRectangle #progressView #regularView #washOutBackdropImage)
('displaying' #displayDropdownOn: #displayPart:on:)

        name = #StoreProgressOverlay
        classPool = a NameSpaceOfClass[0]
        environment = a NameSpace[313]
Arguments:
        aWindowOrNil = a ScheduledWindow 7626
        aBlock = BlockClosure [] in Store.PublishPundleDialog>>accept
Context PC = 9

----------------------------------------------------------------------
Store.PublishPundleDialog>>accept
Receiver:
        a Store.PublishPundleDialog
Instance Variables:
        dependents = a ScheduledWindow 7626
        builder = an UIBuilder
        uiSession = a ControlManager
        eventHandlers = nil
        list = a SelectionInList
        disturbed = a ValueHolder on: false
        subBuilder = an UIBuilder
        items = a SelectionInList
        blessingLevel = a ValueHolder on: 99
        blessingComment = a ValueHolder on: Text for 'From the Cincom release cd'
        publish = a ValueHolder on: true
        versionString = a ValueHolder on: 'vw771-sps0'
        binarySave = a ValueHolder on: false
        parcelSave = a ValueHolder on: false
        bundleStructure = a ValueHolder on: false
        databaseLinks = a ValueHolder on: false
        parcelDirectory = a ValueHolder on: 'Base VisualWorks'
        parcelSaveSource = a ValueHolder on: true
        parcelHideSource = a ValueHolder on: false
        parcelPadded = a ValueHolder on: false
        parcelRepublish = a ValueHolder on: false
        parcelBackup = a ValueHolder on: false
        parcelOverwrite = a ValueHolder on: false
        parcelWarningMessage = ''
        labelDict = a Dictionary[117]
        offsets = an Array[4]
        callBackBlock = nil
        retry = false
        files = a SelectionInList
        publishFile = nil
        parcelVersionString = a ValueHolder on: 'vw77'
Temporaries:
        navigatorClass = nil
Context PC = 32

----------------------------------------------------------------------
optimized [] in ApplicationModel>>actionFor:
Receiver:
        an UndefinedObject
Temporaries:
        .self = a Store.PublishPundleDialog
        .aKey = #accept
Context PC = 7

----------------------------------------------------------------------
optimized [] in ActionButtonSpec>>typeConvert:
Receiver:
        an UndefinedObject
Arguments:
        b = a ValueHolder on: nil
        v = true
Temporaries:
        .aValue = BlockClosure [] in ApplicationModel>>actionFor:
Context PC = 5

----------------------------------------------------------------------
PluggableAdaptor>>setValue:
Receiver:
        a PluggableAdaptor
Instance Variables:
        dependents = a WinXPActionButtonView
        model = a ValueHolder on: nil
        getBlock = BlockClosure [] in ActionButtonSpec>>typeConvert:
        putBlock = BlockClosure [] in ActionButtonSpec>>typeConvert:
        updateBlock = BlockClosure [] in ActionButtonSpec>>typeConvert:
Arguments:
        newValue = true
Context PC = 6

----------------------------------------------------------------------
PluggableAdaptor(ValueModel)>>value:
Receiver:
        a PluggableAdaptor
Instance Variables:
        dependents = a WinXPActionButtonView
        model = a ValueHolder on: nil
        getBlock = BlockClosure [] in ActionButtonSpec>>typeConvert:
        putBlock = BlockClosure [] in ActionButtonSpec>>typeConvert:
        updateBlock = BlockClosure [] in ActionButtonSpec>>typeConvert:
Arguments:
        newValue = true
Context PC = 5

----------------------------------------------------------------------
WinXPTriggerButtonController(TriggerButtonController)>>pressAction
Receiver:
        a WinXPTriggerButtonController
Instance Variables:
        model = a PluggableAdaptor
        view = a WinXPActionButtonView
        sensor = a TranslatingSensor
        keyboardHook = nil
        dispatcher = nil
Context PC = 17

----------------------------------------------------------------------
TriggerButtonTracker(BasicButtonTracker)>>finishSelectionFor:
Receiver:
        a TriggerButtonTracker
Instance Variables:
        controller = a WinXPTriggerButtonController
        inside = true
Arguments:
        aPoint = 51 @ 9
Context PC = 8

----------------------------------------------------------------------
TriggerButtonTracker>>finishSelectionFor:
Receiver:
        a TriggerButtonTracker
Instance Variables:
        controller = a WinXPTriggerButtonController
        inside = true
Arguments:
        aPoint = 51 @ 9
Context PC = 11

----------------------------------------------------------------------
TriggerButtonTracker(SelectionTracker)>>redButtonReleasedEvent:
Receiver:
        a TriggerButtonTracker
Instance Variables:
        controller = a WinXPTriggerButtonController
        inside = true
Arguments:
        aMouseButtonEvent = a RedButtonReleasedEvent
Context PC = 13

----------------------------------------------------------------------
RedButtonReleasedEvent>>dispatchTo:
Receiver:
        a RedButtonReleasedEvent
Instance Variables:
        time = 8718359
        initiator = an EventDispatcher
        window = a ScheduledWindow 7626
        state = 0
        x = 336
        y = 524
        gx = 701
        gy = 746
        buttonNumber = 1
Arguments:
        anObject = a TriggerButtonTracker
Context PC = 4

----------------------------------------------------------------------
TriggerButtonTracker(SelectionTracker)>>handleEvent:
Receiver:
        a TriggerButtonTracker
Instance Variables:
        controller = a WinXPTriggerButtonController
        inside = true
Arguments:
        anEvent = a RedButtonReleasedEvent
Context PC = 4

----------------------------------------------------------------------
EventDispatcher>>dispatch:to:
Receiver:
        an EventDispatcher
Instance Variables:
        windowController = an ApplicationStandardSystemController
        currentMouseConsumer = nil
        grabbingMouse = false
        lastControlObject = nil
        trapList = nil
        state = nil
        repairDamageWhenDebugging = true
        flushQueueAfterError = true
        distributeEventsWhenDebugging = true
        dragDropInProgress = false
        dragDropTracker = nil
        dispatchUnknownEvents = false
Arguments:
        event = a RedButtonReleasedEvent
        object = a TriggerButtonTracker
Temporaries:
        tmp = nil
Context PC = 10

----------------------------------------------------------------------
[] in EventDispatcher>>dispatchEvent:
Receiver:
        an EventDispatcher
Instance Variables:
        windowController = an ApplicationStandardSystemController
        currentMouseConsumer = nil
        grabbingMouse = false
        lastControlObject = nil
        trapList = nil
        state = nil
        repairDamageWhenDebugging = true
        flushQueueAfterError = true
        distributeEventsWhenDebugging = true
        dragDropInProgress = false
        dragDropTracker = nil
        dispatchUnknownEvents = false
Temporaries:
        .self = an EventDispatcher
        .event = a RedButtonReleasedEvent
Context PC = 9

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in EventDispatcher>>dispatchEvent:
        outerContext = EventDispatcher>>dispatchEvent:
        copiedValues = an Array[2]
Arguments:
        anExceptionSelector = ClosedWindowNotification
        handlerBlock = BlockClosure [] in EventDispatcher>>dispatchEvent:
Context PC = 18

----------------------------------------------------------------------
EventDispatcher>>dispatchEvent:
Receiver:
        an EventDispatcher
Instance Variables:
        windowController = an ApplicationStandardSystemController
        currentMouseConsumer = nil
        grabbingMouse = false
        lastControlObject = nil
        trapList = nil
        state = nil
        repairDamageWhenDebugging = true
        flushQueueAfterError = true
        distributeEventsWhenDebugging = true
        dragDropInProgress = false
        dragDropTracker = nil
        dispatchUnknownEvents = false
Arguments:
        event = a RedButtonReleasedEvent
Temporaries:
        objectWantingControl = nil
        targetKeyboardProcessor = nil
Context PC = 68

----------------------------------------------------------------------
RedButtonReleasedEvent(Event)>>dispatch
Receiver:
        a RedButtonReleasedEvent
Instance Variables:
        time = 8718359
        initiator = an EventDispatcher
        window = a ScheduledWindow 7626
        state = 0
        x = 336
        y = 524
        gx = 701
        gy = 746
        buttonNumber = 1
Context PC = 16

----------------------------------------------------------------------
RedButtonReleasedEvent(Event)>>dispatchForWindowManager:
Receiver:
        a RedButtonReleasedEvent
Instance Variables:
        time = 8718359
        initiator = an EventDispatcher
        window = a ScheduledWindow 7626
        state = 0
        x = 336
        y = 524
        gx = 701
        gy = 746
        buttonNumber = 1
Arguments:
        aWinMgr = a WindowManager
Context PC = 4

----------------------------------------------------------------------
optimized [] in WindowManager>>safelyDispatchForWindowManager:
Receiver:
        an UndefinedObject
Temporaries:
        .event = a RedButtonReleasedEvent
        .self = a WindowManager
Context PC = 6

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in WindowManager>>safelyDispatchForWindowManager:
        outerContext = nil
        copiedValues = an Array[2]
Arguments:
        anExceptionSelector = BadControllerError
        handlerBlock = BlockClosure [] in WindowManager>>safelyDispatchForWindowManager:
Context PC = 18

----------------------------------------------------------------------
WindowManager>>safelyDispatchForWindowManager:
Receiver:
        a WindowManager
Instance Variables:
        windows = an OrderedCollection[2]
        activeController = nil
        interruptLock = false
        outstandingMetaOrDamage = false
        openInProgress = false
        eventQueue = an EventQueue
        baseProcess = a Process in Semaphore>>waitIfCurtailedSignal
        dontFilterEvents = false
Arguments:
        event = a RedButtonReleasedEvent
Context PC = 13

----------------------------------------------------------------------
WindowManager>>processNextEvent
Receiver:
        a WindowManager
Instance Variables:
        windows = an OrderedCollection[2]
        activeController = nil
        interruptLock = false
        outstandingMetaOrDamage = false
        openInProgress = false
        eventQueue = an EventQueue
        baseProcess = a Process in Semaphore>>waitIfCurtailedSignal
        dontFilterEvents = false
Temporaries:
        event = a RedButtonReleasedEvent
Context PC = 9

----------------------------------------------------------------------
optimized [] in [] in WindowManager>>newProcess
Receiver:
        an UndefinedObject
Temporaries:
        .self = a WindowManager
Context PC = 13

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in [] in WindowManager>>newProcess
        outerContext = nil
        copiedValues = a WindowManager
Arguments:
        anExceptionSelector = TerminateException
        handlerBlock = BlockClosure [] in [] in WindowManager>>newProcess
Context PC = 18

----------------------------------------------------------------------
optimized [] in WindowManager>>newProcess
Receiver:
        an UndefinedObject
Temporaries:
        .self = a WindowManager
Context PC = 15

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
        a BlockClosure
Instance Variables:
        method = CompiledBlock [] in WindowManager>>newProcess
        outerContext = nil
        copiedValues = a WindowManager
Arguments:
        anExceptionSelector = TerminateException
        handlerBlock = BlockClosure [] in [] in Process class>>forBlock:priority:
Context PC = 18

----------------------------------------------------------------------
optimized [] in Process class>>forBlock:priority:
Receiver:
        an UndefinedObject
Temporaries:
        .aBlock = BlockClosure [] in WindowManager>>newProcess
Context PC = 9

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [7.7.1] Publishing base fails

Philippe Demaecker
Looks like either VW is not releasing it's Oracle cursors, or maybe Oracle's 'open_cursors' parameter is not high enough (and should be increased).

Depending on Oracle's version this should be done in the DB's initDBNAME.ora file, or in an oracle session (alter system set open_cursors=1000 SCOPE=BOTH).

HTH,
Philippe


-----Original Message-----
From: [hidden email] [mailto:[hidden email]] On Behalf Of Reinout Heeck
Sent: woensdag 18 augustus 2010 11:50
To: 'VWNC'
Subject: [vwnc] [7.7.1] Publishing base fails

We received the vw7.7.1 CD today, so I started to publish it into our Store repository.

Publishing Base Visualworks generates an error (ORA-01000: maximum open cursors exceeded).

I retried the operation but that gave the same result, stack dump attached.

Steps I took:
--copied our 7.6 repository (and changed the repository identifier).
--load StoreForOracle
--ran update77 and update 771
--'switch databases' to reconcile
--publish Base VisualWorks bundle

Reinout
-------



--
*********************************************************************

Dit e-mailbericht is alleen bestemd voor de geadresseerde(n).

Gebruik door anderen is niet toegestaan. Indien u niet degeadresseerde(n) bent wordt u verzocht de verzender hiervan op de hoogte te stellen en het bericht te verwijderen. Door de elektronische verzending kunnen aan de inhoud van dit bericht geen rechten worden ontleend.

Soops B.V. is gevestigd te Amsterdam, Nederland, en is geregistreerd bij de Kamer van Koophandel onder nummer 33240368.
Soops B.V. levert volgens de Fenit voorwaarden, gedeponeerd te Den Haag op 8 december 1994 onder nummer 1994/189.
**********************************************************************

This e-mail message is intended to be exclusively for the addressee.

If you are not the intended recipient you are kindly requested not to make any use whatsoever of the contents and to notify the sender immediately by returning this e-mail message. No rights can be derived from this message.

Soops B.V. is a private limited liability company and has its seat at Amsterdam, The Netherlands and is registered with the Trade Registry of the Chamber of Commerce and Industry under number 33240368.
Soops B.V. delivers according to the General Terms and Conditions of Business of Fenit, registered at The Hague, The Netherlands on December 8th, 1994, under number 1994/189
**********************************************************************



_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [7.7.1] Publishing base fails

Holger Kleinsorgen-4
In reply to this post by Reinout Heeck-2
Am 18.08.2010 11:50, schrieb Reinout Heeck:
> We received the vw7.7.1 CD today, so I started to publish it into our
> Store repository.
>
> Publishing Base Visualworks generates an error (ORA-01000: maximum open
> cursors exceeded).
>

trent aug10.2 bugfix list mentions

    60970   Store regression on Oracle - too many open cursors
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [7.7.1] Publishing base fails

Reinout Heeck-2
In reply to this post by Reinout Heeck-2
Some more info:

I went by our dba, it turns out that many (hundreds of) cursors are
created that are all running the same sql statement:
   select sys_extract_utc(current_timestamp) from dual
most of these cursors are marked with 'paused' state.


We surmise that many of those same queries can only be generated by
resetting connections (because otherwise the cached timestamp info will
be used by the Store code - no db query).


Resetting the timestamp happens in DBObject class>>session.

Note however that it will also reset this timestamp information while a
session is connected. This is because #isSessionValid:  also rejects
sessions that are in connected mode.

The code in DBObject class>>session does not clean up the 'invalid'
session, however it does remove the cached timestamp info.
We guess this interaction creates many cursors (for obtaining the DB
system time) that do not get cleaned up...


Upping the amount of available cursors at the DB side seems futile given
the above, so any other suggestions to proceed are welcome...

Reinout
-------




Reinout Heeck wrote:

> We received the vw7.7.1 CD today, so I started to publish it into our
> Store repository.
>
> Publishing Base Visualworks generates an error (ORA-01000: maximum
> open cursors exceeded).
>
> I retried the operation but that gave the same result, stack dump
> attached.
>
> Steps I took:
> --copied our 7.6 repository (and changed the repository identifier).
> --load StoreForOracle
> --ran update77 and update 771
> --'switch databases' to reconcile
> --publish Base VisualWorks bundle
>
> Reinout
> -------
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> vwnc mailing list
> [hidden email]
> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc

--
*********************************************************************

Dit e-mailbericht is alleen bestemd voor de geadresseerde(n).

Gebruik door anderen is niet toegestaan. Indien u niet degeadresseerde(n) bent wordt u verzocht de verzender hiervan op de hoogte te stellen en het bericht te verwijderen. Door de elektronische verzending kunnen aan de inhoud van dit bericht geen rechten worden ontleend.

Soops B.V. is gevestigd te Amsterdam, Nederland, en is geregistreerd bij de Kamer van Koophandel onder nummer 33240368.
Soops B.V. levert volgens de Fenit voorwaarden, gedeponeerd te Den Haag op 8 december 1994 onder nummer 1994/189.
**********************************************************************

This e-mail message is intended to be exclusively for the addressee.

If you are not the intended recipient you are kindly requested not to make any use whatsoever of the contents and to notify the sender immediately by returning this e-mail message. No rights can be derived from this message.

Soops B.V. is a private limited liability company and has its seat at Amsterdam, The Netherlands and is registered with the Trade Registry of the Chamber of Commerce and Industry under number 33240368.
Soops B.V. delivers according to the General Terms and Conditions of Business of Fenit, registered at The Hague, The Netherlands on December 8th, 1994, under number 1994/189
**********************************************************************


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [7.7.1] Publishing base fails

Reinout Heeck-2
In reply to this post by Holger Kleinsorgen-4
Holger Kleinsorgen wrote:

> Am 18.08.2010 11:50, schrieb Reinout Heeck:
>  
>> We received the vw7.7.1 CD today, so I started to publish it into our
>> Store repository.
>>
>> Publishing Base Visualworks generates an error (ORA-01000: maximum open
>> cursors exceeded).
>>
>>    
>
> trent aug10.2 bugfix list mentions
>
>     60970   Store regression on Oracle - too many open cursors
>  


Thanks Holger, we'll have to submit a support request then....

In the mean time we found a (somewhat silly) workaround:
 if we use a database with the schema of vw76 we do not run into this
problem - probably due to timing differences.
In the db tools we do see plenty of those cursors appearing - just not
enough to pass the limit any more...



R
-








> _______________________________________________
> vwnc mailing list
> [hidden email]
> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
>
>  

--
*********************************************************************

Dit e-mailbericht is alleen bestemd voor de geadresseerde(n).

Gebruik door anderen is niet toegestaan. Indien u niet degeadresseerde(n) bent wordt u verzocht de verzender hiervan op de hoogte te stellen en het bericht te verwijderen. Door de elektronische verzending kunnen aan de inhoud van dit bericht geen rechten worden ontleend.

Soops B.V. is gevestigd te Amsterdam, Nederland, en is geregistreerd bij de Kamer van Koophandel onder nummer 33240368.
Soops B.V. levert volgens de Fenit voorwaarden, gedeponeerd te Den Haag op 8 december 1994 onder nummer 1994/189.
**********************************************************************

This e-mail message is intended to be exclusively for the addressee.

If you are not the intended recipient you are kindly requested not to make any use whatsoever of the contents and to notify the sender immediately by returning this e-mail message. No rights can be derived from this message.

Soops B.V. is a private limited liability company and has its seat at Amsterdam, The Netherlands and is registered with the Trade Registry of the Chamber of Commerce and Industry under number 33240368.
Soops B.V. delivers according to the General Terms and Conditions of Business of Fenit, registered at The Hague, The Netherlands on December 8th, 1994, under number 1994/189
**********************************************************************


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [7.7.1] Publishing base fails

Boris Popov, DeepCove Labs (SNN)
In reply to this post by Holger Kleinsorgen-4
I suppose one could ask support to package it as a resolution for 7.7.1
in the portal?

-Boris

--
DeepCove Labs Ltd.
+1 (604) 689-0322
4th floor, 595 Howe Street
Vancouver, British Columbia
Canada V6C 2T5
http://tinyurl.com/r7uw4

PacNet Services (Europe) Ltd.
+353 (0)61 714-360
Shannon Airport House, SFZ
County Clare, Ireland
http://tinyurl.com/y952amr

CONFIDENTIALITY NOTICE

This email is intended only for the persons named in the message header.
Unless otherwise indicated, it contains information that is private and
confidential. If you have received it in error, please notify the sender
and delete the entire message including any attachments.

Thank you.


-----Original Message-----
From: [hidden email] [mailto:[hidden email]] On
Behalf Of Holger Kleinsorgen
Sent: 18 August 2010 12:20
To: [hidden email]
Subject: Re: [vwnc] [7.7.1] Publishing base fails

Am 18.08.2010 11:50, schrieb Reinout Heeck:
> We received the vw7.7.1 CD today, so I started to publish it into our
> Store repository.
>
> Publishing Base Visualworks generates an error (ORA-01000: maximum
> open cursors exceeded).
>

trent aug10.2 bugfix list mentions

    60970   Store regression on Oracle - too many open cursors
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: ORA-01000: maximum open cursors exceeded (was [7.7.1] Publishing base fails)

Niall Ross
In reply to this post by Reinout Heeck-2
Dear Reinout,
    on all occasions when I get this error, I find that walking up the
stack slightly and restarting lets the operation complete fine.  Hardly
the ideal workaround but it does mean you can get the operation
completed.  On one occasion (when I was doing a massive database GC
taking several hours), I got it twice but each time was able to walk up
the stack a little, restart and carry on.

(If anyone finds this workaround does _not_ let them continue OK, that
would be of interest.)

          Yours faithfully
             Niall Ross

> We received the vw7.7.1 CD today, so I started to publish it into our
> Store repository.
>
> Publishing Base Visualworks generates an error (ORA-01000: maximum
> open cursors exceeded).
>
> I retried the operation but that gave the same result, stack dump
> attached.
>
> Steps I took:
> --copied our 7.6 repository (and changed the repository identifier).
> --load StoreForOracle
> --ran update77 and update 771
> --'switch databases' to reconcile
> --publish Base VisualWorks bundle
>
> Reinout
> -------
>
>
>
>------------------------------------------------------------------------
>
>Unhandled exception:  
>ORA-01000: maximum open cursors exceeded
>
>Glorp.GlorpDatabaseReadError(Glorp.GlorpError)>>signal
>Glorp.VWDatabaseAccessor(Glorp.DatabaseAccessor)>>handleError:for:
>optimized [] in [] in Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>BlockClosure>>cull:
>UnableToExecuteSQL(GenericException)>>performHandler:
>UnableToExecuteSQL(GenericException)>>propagatePrivateFrom:
>UnableToExecuteSQL(GenericException)>>propagateFrom:
>UnableToExecuteSQL(GenericException)>>propagate
>UnableToExecuteSQL(GenericException)>>raiseSignal
>UnableToExecuteSQL class(GenericException class)>>raiseWith:errorString:
>OracleSession>>resultsExternal
>OracleSession>>executeExternal
>optimized [] in ExternalDatabaseSession>>execute
>BlockClosure>>ifCurtailed:
>OracleSession(ExternalDatabaseSession)>>execute
>Glorp.VWDatabaseAccessor>>executeCommand:inDBSession:
>optimized [] in Glorp.VWDatabaseAccessor>>executeCommandBound:
>Time class>>microsecondsToRun:
>Time class>>millisecondsToRun:
>Glorp.VWDatabaseAccessor>>executeCommandBound:
>Glorp.QuerySelectCommand(Glorp.DatabaseCommand)>>executeBoundIn:
>optimized [] in [] in Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>BlockClosure>>on:do:
>optimized [] in Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>BlockClosure>>ensure:
>Semaphore>>critical:
>Glorp.VWDatabaseAccessor(Glorp.DatabaseAccessor)>>executeCommand:returnCursor:
>optimized [] in Glorp.SimpleQuery>>rowsFromDatabaseWithParameters:
>BlockClosure>>on:do:
>Glorp.SimpleQuery>>rowsFromDatabaseWithParameters:
>Glorp.SimpleQuery(Glorp.AbstractReadQuery)>>readFromDatabaseWithParameters:
>Glorp.SimpleQuery(Glorp.AbstractReadQuery)>>executeWithParameters:in:
>Glorp.GlorpSession>>execute:
>Glorp.GlorpSession>>readOneOf:where:
>Store.Glorp.StorePundleWriter>>readPreviousVersion
>Store.Glorp.StorePundleWriter>>previousVersionInTargetDatabase
>Store.Glorp.StorePundleWriter>>isPreviousVersionPresent
>Store.Glorp.StorePundleWriter>>writePundlePhase1:withChangesBasedOn:using:
>Store.Glorp.StorePundleWriter>>writePundle:withChangesBasedOn:using:
>optimized [] in [] in Store.PublishSpecificationList>>publishSilently
>BlockClosure>>on:do:
>[] in Store.PublishSpecificationList>>publishSilently
>Store.PublishSpecificationList>>publishSilently
>Store.PublishSpecificationList>>publishPundle
>optimized [] in Store.PublishPundleDialog>>accept
>optimized [] in Store.StoreProgressOverlay class>>subsumeAll:while:
>BlockClosure>>ensure:
>Store.StoreProgressOverlay class>>subsumeAll:while:
>Store.StoreProgressOverlay class>>subsume:while:
>Store.PublishPundleDialog>>accept
>optimized [] in ApplicationModel>>actionFor:
>optimized [] in ActionButtonSpec>>typeConvert:
>PluggableAdaptor>>setValue:
>PluggableAdaptor(ValueModel)>>value:
>WinXPTriggerButtonController(TriggerButtonController)>>pressAction
>TriggerButtonTracker(BasicButtonTracker)>>finishSelectionFor:
>TriggerButtonTracker>>finishSelectionFor:
>TriggerButtonTracker(SelectionTracker)>>redButtonReleasedEvent:
>RedButtonReleasedEvent>>dispatchTo:
>TriggerButtonTracker(SelectionTracker)>>handleEvent:
>EventDispatcher>>dispatch:to:
>[] in EventDispatcher>>dispatchEvent:
>BlockClosure>>on:do:
>EventDispatcher>>dispatchEvent:
>RedButtonReleasedEvent(Event)>>dispatch
>RedButtonReleasedEvent(Event)>>dispatchForWindowManager:
>optimized [] in WindowManager>>safelyDispatchForWindowManager:
>BlockClosure>>on:do:
>WindowManager>>safelyDispatchForWindowManager:
>WindowManager>>processNextEvent
>optimized [] in [] in WindowManager>>newProcess
>BlockClosure>>on:do:
>optimized [] in WindowManager>>newProcess
>BlockClosure>>on:do:
>optimized [] in Process class>>forBlock:priority:
>
>----------------------------------------------------------------------
>Glorp.GlorpDatabaseReadError(Glorp.GlorpError)>>signal
>Receiver:
> a Glorp.GlorpDatabaseReadError
>Instance Variables:
> messageText = '
>ORA-01000: maximum open cursors exceeded
>'
> originator = a Glorp.GlorpDatabaseReadError
> initialContext = Glorp.GlorpDatabaseReadError(Glorp.GlorpError)>>signal
> firstUnwindContext = BlockClosure>>ifCurtailed:
> handlerContext = nil
> parameter = nil
> proceedBlock = nil
> isResumable = true
> signal = nil
> searchContext = Glorp.SimpleQuery>>rowsFromDatabaseWithParameters:
> command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
> databaseError = an UnableToExecuteSQL
> accessor = a Glorp.VWDatabaseAccessor
>Context PC = 7
>
>----------------------------------------------------------------------
>Glorp.VWDatabaseAccessor(Glorp.DatabaseAccessor)>>handleError:for:
>Receiver:
> a Glorp.VWDatabaseAccessor
>Instance Variables:
> connection = an OracleConnection( hsvcctx = 47D8DA8 )
> currentLogin = a Login(a Glorp.OraclePlatform, 'store', 'store771', 'store')
> logging = false
> reusePreparedStatements = true
> deniedCommands = nil
> mutex = a Semaphore[0]
> dependents = nil
> driverSession = an OracleSession( hstmt = 4C60A80 )
> preparedStatements = a Glorp.CacheManager
>Arguments:
> exception = an UnableToExecuteSQL
> command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
>Temporaries:
> errorClass = Glorp.GlorpDatabaseReadError
> error = a Glorp.GlorpDatabaseReadError
>Context PC = 28
>
>----------------------------------------------------------------------
>optimized [] in [] in Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>Receiver:
> an UndefinedObject
>Arguments:
> ex = an UnableToExecuteSQL
>Temporaries:
> .self = a Glorp.VWDatabaseAccessor
> .command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
>Context PC = 8
>
>----------------------------------------------------------------------
>BlockClosure>>cull:
>Receiver:
> a BlockClosure
>Instance Variables:
> method = CompiledBlock [] in [] in Glorp.DatabaseAccessor>>executeCommand:returnCursor:
> outerContext = nil
> copiedValues = an Array[2]
>Arguments:
> anObject = an UnableToExecuteSQL
>Context PC = 15
>
>----------------------------------------------------------------------
>UnableToExecuteSQL(GenericException)>>performHandler:
>Receiver:
> an UnableToExecuteSQL
>Instance Variables:
> messageText = '
>ORA-01000: maximum open cursors exceeded
>'
> originator = an OracleSession( hstmt = 4C5F62C )
> initialContext = OracleSession>>resultsExternal
> firstUnwindContext = BlockClosure>>ifCurtailed:
> handlerContext = BlockClosure>>on:do:
> parameter = an Array[1]
> proceedBlock = nil
> isResumable = false
> signal = nil
> searchContext = OracleSession>>resultsExternal
>Arguments:
> aContext = BlockClosure>>on:do:
>Temporaries:
> result = nil
> oldHandler = BlockClosure>>on:do:
>Context PC = 39
>
>----------------------------------------------------------------------
>UnableToExecuteSQL(GenericException)>>propagatePrivateFrom:
>Receiver:
> an UnableToExecuteSQL
>Instance Variables:
> messageText = '
>ORA-01000: maximum open cursors exceeded
>'
> originator = an OracleSession( hstmt = 4C5F62C )
> initialContext = OracleSession>>resultsExternal
> firstUnwindContext = BlockClosure>>ifCurtailed:
> handlerContext = BlockClosure>>on:do:
> parameter = an Array[1]
> proceedBlock = nil
> isResumable = false
> signal = nil
> searchContext = OracleSession>>resultsExternal
>Arguments:
> aContext = OracleSession>>resultsExternal
>Temporaries:
> handler = BlockClosure>>on:do:
>Context PC = 13
>
>----------------------------------------------------------------------
>UnableToExecuteSQL(GenericException)>>propagateFrom:
>Receiver:
> an UnableToExecuteSQL
>Instance Variables:
> messageText = '
>ORA-01000: maximum open cursors exceeded
>'
> originator = an OracleSession( hstmt = 4C5F62C )
> initialContext = OracleSession>>resultsExternal
> firstUnwindContext = BlockClosure>>ifCurtailed:
> handlerContext = BlockClosure>>on:do:
> parameter = an Array[1]
> proceedBlock = nil
> isResumable = false
> signal = nil
> searchContext = OracleSession>>resultsExternal
>Arguments:
> startContext = OracleSession>>resultsExternal
>Context PC = 9
>
>----------------------------------------------------------------------
>UnableToExecuteSQL(GenericException)>>propagate
>Receiver:
> an UnableToExecuteSQL
>Instance Variables:
> messageText = '
>ORA-01000: maximum open cursors exceeded
>'
> originator = an OracleSession( hstmt = 4C5F62C )
> initialContext = OracleSession>>resultsExternal
> firstUnwindContext = BlockClosure>>ifCurtailed:
> handlerContext = BlockClosure>>on:do:
> parameter = an Array[1]
> proceedBlock = nil
> isResumable = false
> signal = nil
> searchContext = OracleSession>>resultsExternal
>Context PC = 5
>
>----------------------------------------------------------------------
>UnableToExecuteSQL(GenericException)>>raiseSignal
>Receiver:
> an UnableToExecuteSQL
>Instance Variables:
> messageText = '
>ORA-01000: maximum open cursors exceeded
>'
> originator = an OracleSession( hstmt = 4C5F62C )
> initialContext = OracleSession>>resultsExternal
> firstUnwindContext = BlockClosure>>ifCurtailed:
> handlerContext = BlockClosure>>on:do:
> parameter = an Array[1]
> proceedBlock = nil
> isResumable = false
> signal = nil
> searchContext = OracleSession>>resultsExternal
>Context PC = 16
>
>----------------------------------------------------------------------
>UnableToExecuteSQL class(GenericException class)>>raiseWith:errorString:
>Receiver:
> an UnableToExecuteSQL class
>Instance Variables:
> superclass = ExternalDatabaseException
> methodDict = a MethodDictionary[1]
> format = 16394
> subclasses = an Array[5]
> instanceVariables = an Array[0]
> organization = ('printing' #defaultMessageText)
>
> name = #UnableToExecuteSQL
> classPool = a NameSpaceOfClass[0]
> environment = a NameSpace[130]
> notifierString = nil
>Arguments:
> parameter = an Array[1]
> aStringOrValuable = '
>ORA-01000: maximum open cursors exceeded
>'
>Context PC = 26
>
>----------------------------------------------------------------------
>OracleSession>>resultsExternal
>Receiver:
> an OracleSession
>Instance Variables:
> stateHolder = a ValueHolder on: #executing
> traceStream = nil
> traceLevel = 0
> participants = a WeakArray[0]
> participantsSemaphore = a RecursionLock
> connection = an OracleConnection( hsvcctx = 47D8DA8 )
> query = 'SELECT t1.primaryKey, t1.name...tamp = ?) AND (t1.name = ?))'
> queryFragments = an OrderedCollection[5]
> bindInput = an OrderedCollection[2]
> bindTemplate = an OrderedCollection[2]
> bindOutput = nil
> useNamedOutputBinding = false
> bindValues = an IdentityDictionary[2]
> resultTemplate = nil
> allocateForEachRow = true
> blockFactor = 1
> numColumns = nil
> columnDescriptions = nil
> rowAdaptors = nil
> rowBuffersHolder = a ValueHolder on: nil
> bufferIndex = nil
> answerStream = nil
> currentRow = nil
> scrollable = false
> needBinding = true
> resultsCache = nil
> hstmtHolder = a ValueHolder on: a CCompositePointer {04C5F62C} (struct __OCIStmt * )
> herrHolder = a ValueHolder on: a CCompositePointer {047D82A4} (struct __OCIError * )
> bindValuePointersHolder = a ValueHolder on: IdentityDictionary (1 -> an OracleBuffer 2 -> an OracleBuffer )
> maxLongBytes = 32768
> queryIsPLSQL = false
> currentRowIndex = nil
> totalRows = nil
> rowsInBlock = nil
> dependentLobs = a WeakDictionary[0]
> sqlPointerHolder = a ValueHolder on: a CPointer {00EEDF60} (unsigned char * )
> maxBindSize = 1
> answerLobProxy = false
> defaultDisplayLobSize = 32768
> isReleasedFromCacheHolder = a ValueHolder on: true
> lobBufferSize = 32768
> reuseColumnBuffers = false
> definePointerHolder = a ValueHolder on: nil
> bindPointerHolder = a ValueHolder on: a CPointer {06658870} (struct __OCIBind * * )
>Temporaries:
> errs = an OrderedCollection[1]
> errorParameter = an Array[1]
> error = an OracleError
> signal = UnableToExecuteSQL
> connClass = OracleConnection
>Context PC = 63
>
>----------------------------------------------------------------------
>OracleSession>>executeExternal
>Receiver:
> an OracleSession
>Instance Variables:
> stateHolder = a ValueHolder on: #executing
> traceStream = nil
> traceLevel = 0
> participants = a WeakArray[0]
> participantsSemaphore = a RecursionLock
> connection = an OracleConnection( hsvcctx = 47D8DA8 )
> query = 'SELECT t1.primaryKey, t1.name...tamp = ?) AND (t1.name = ?))'
> queryFragments = an OrderedCollection[5]
> bindInput = an OrderedCollection[2]
> bindTemplate = an OrderedCollection[2]
> bindOutput = nil
> useNamedOutputBinding = false
> bindValues = an IdentityDictionary[2]
> resultTemplate = nil
> allocateForEachRow = true
> blockFactor = 1
> numColumns = nil
> columnDescriptions = nil
> rowAdaptors = nil
> rowBuffersHolder = a ValueHolder on: nil
> bufferIndex = nil
> answerStream = nil
> currentRow = nil
> scrollable = false
> needBinding = true
> resultsCache = nil
> hstmtHolder = a ValueHolder on: a CCompositePointer {04C5F62C} (struct __OCIStmt * )
> herrHolder = a ValueHolder on: a CCompositePointer {047D82A4} (struct __OCIError * )
> bindValuePointersHolder = a ValueHolder on: IdentityDictionary (1 -> an OracleBuffer 2 -> an OracleBuffer )
> maxLongBytes = 32768
> queryIsPLSQL = false
> currentRowIndex = nil
> totalRows = nil
> rowsInBlock = nil
> dependentLobs = a WeakDictionary[0]
> sqlPointerHolder = a ValueHolder on: a CPointer {00EEDF60} (unsigned char * )
> maxBindSize = 1
> answerLobProxy = false
> defaultDisplayLobSize = 32768
> isReleasedFromCacheHolder = a ValueHolder on: true
> lobBufferSize = 32768
> reuseColumnBuffers = false
> definePointerHolder = a ValueHolder on: nil
> bindPointerHolder = a ValueHolder on: a CPointer {06658870} (struct __OCIBind * * )
>Temporaries:
> rtval = -1
> xif = an OracleNTInterface
> hsvcctx = a CCompositePointer {047D8DA8} (struct __OCISvcCtx * )
> hstmt = a CCompositePointer {04C5F62C} (struct __OCIStmt * )
> herr = a CCompositePointer {047D82A4} (struct __OCIError * )
> iterations = 0
> rowOffset = 0
> mode = 32
>Context PC = 180
>
>----------------------------------------------------------------------
>optimized [] in ExternalDatabaseSession>>execute
>Receiver:
> an UndefinedObject
>Temporaries:
> .self = an OracleSession( hstmt = 4C5F62C )
>Context PC = 13
>
>----------------------------------------------------------------------
>BlockClosure>>ifCurtailed:
>Receiver:
> a BlockClosure
>Instance Variables:
> method = CompiledBlock [] in ExternalDatabaseSession>>execute
> outerContext = nil
> copiedValues = an OracleSession( hstmt = 4C5F62C )
>Arguments:
> terminationBlock = BlockClosure [] in ExternalDatabaseSession>>execute
>Context PC = 4
>
>----------------------------------------------------------------------
>OracleSession(ExternalDatabaseSession)>>execute
>Receiver:
> an OracleSession
>Instance Variables:
> stateHolder = a ValueHolder on: #executing
> traceStream = nil
> traceLevel = 0
> participants = a WeakArray[0]
> participantsSemaphore = a RecursionLock
> connection = an OracleConnection( hsvcctx = 47D8DA8 )
> query = 'SELECT t1.primaryKey, t1.name...tamp = ?) AND (t1.name = ?))'
> queryFragments = an OrderedCollection[5]
> bindInput = an OrderedCollection[2]
> bindTemplate = an OrderedCollection[2]
> bindOutput = nil
> useNamedOutputBinding = false
> bindValues = an IdentityDictionary[2]
> resultTemplate = nil
> allocateForEachRow = true
> blockFactor = 1
> numColumns = nil
> columnDescriptions = nil
> rowAdaptors = nil
> rowBuffersHolder = a ValueHolder on: nil
> bufferIndex = nil
> answerStream = nil
> currentRow = nil
> scrollable = false
> needBinding = true
> resultsCache = nil
> hstmtHolder = a ValueHolder on: a CCompositePointer {04C5F62C} (struct __OCIStmt * )
> herrHolder = a ValueHolder on: a CCompositePointer {047D82A4} (struct __OCIError * )
> bindValuePointersHolder = a ValueHolder on: IdentityDictionary (1 -> an OracleBuffer 2 -> an OracleBuffer )
> maxLongBytes = 32768
> queryIsPLSQL = false
> currentRowIndex = nil
> totalRows = nil
> rowsInBlock = nil
> dependentLobs = a WeakDictionary[0]
> sqlPointerHolder = a ValueHolder on: a CPointer {00EEDF60} (unsigned char * )
> maxBindSize = 1
> answerLobProxy = false
> defaultDisplayLobSize = 32768
> isReleasedFromCacheHolder = a ValueHolder on: true
> lobBufferSize = 32768
> reuseColumnBuffers = false
> definePointerHolder = a ValueHolder on: nil
> bindPointerHolder = a ValueHolder on: a CPointer {06658870} (struct __OCIBind * * )
>Context PC = 34
>
>----------------------------------------------------------------------
>Glorp.VWDatabaseAccessor>>executeCommand:inDBSession:
>Receiver:
> a Glorp.VWDatabaseAccessor
>Instance Variables:
> connection = an OracleConnection( hsvcctx = 47D8DA8 )
> currentLogin = a Login(a Glorp.OraclePlatform, 'store', 'store771', 'store')
> logging = false
> reusePreparedStatements = true
> deniedCommands = nil
> mutex = a Semaphore[0]
> dependents = nil
> driverSession = an OracleSession( hstmt = 4C60A80 )
> preparedStatements = a Glorp.CacheManager
>Arguments:
> aCommand = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
> aSession = an OracleSession( hstmt = 4C5F62C )
>Temporaries:
> answerStream = nil
> cursor = nil
>Context PC = 3
>
>----------------------------------------------------------------------
>optimized [] in Glorp.VWDatabaseAccessor>>executeCommandBound:
>Receiver:
> an UndefinedObject
>Temporaries:
> .self = a Glorp.VWDatabaseAccessor
> .aCommand = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
> statement = a Glorp.GlorpPreparedStatement
> cursor = nil
>Context PC = 22
>
>----------------------------------------------------------------------
>Time class>>microsecondsToRun:
>Receiver:
> a Time class
>Instance Variables:
> superclass = Magnitude
> methodDict = a MethodDictionary[31]
> format = 16387
> subclasses = nil
> instanceVariables = an Array[3]
> organization = ('comparing' #< #= #hash)
>('accessing' #hours #milliseconds #minutes #seconds)
>('arithmetic' #addSeconds: #addTime: #subtractSeconds: #subtractTime:)
>('printing' #glorpPadToTwoDigits: #glorpPrintSQLOn: #longPrintString #printOn: #shortPrintString #storeOn:)
>('converting' #asDuration #asSeconds #asTimestamp)
>('private' #hours: #hours:minutes:seconds: #isCompatibleWithDuration #literalArrayEncoding #printOn:policy:format:)
>('private-spin-button' #spinBy:boundedBy:)
>('double dispatch' #equalFromDuration: #equalFromTime: #lessFromDuration: #lessFromTime:)
>('private-oracle' #oracleConversion)
>
> name = #Time
> classPool = a NameSpaceOfClass[0]
> environment = a NameSpace[243]
>Arguments:
> timedBlock = BlockClosure [] in Glorp.VWDatabaseAccessor>>executeCommandBound:
>Temporaries:
> initialMicroseconds = 3459576683441564
>Context PC = 7
>
>----------------------------------------------------------------------
>Time class>>millisecondsToRun:
>Receiver:
> a Time class
>Instance Variables:
> superclass = Magnitude
> methodDict = a MethodDictionary[31]
> format = 16387
> subclasses = nil
> instanceVariables = an Array[3]
> organization = ('comparing' #< #= #hash)
>('accessing' #hours #milliseconds #minutes #seconds)
>('arithmetic' #addSeconds: #addTime: #subtractSeconds: #subtractTime:)
>('printing' #glorpPadToTwoDigits: #glorpPrintSQLOn: #longPrintString #printOn: #shortPrintString #storeOn:)
>('converting' #asDuration #asSeconds #asTimestamp)
>('private' #hours: #hours:minutes:seconds: #isCompatibleWithDuration #literalArrayEncoding #printOn:policy:format:)
>('private-spin-button' #spinBy:boundedBy:)
>('double dispatch' #equalFromDuration: #equalFromTime: #lessFromDuration: #lessFromTime:)
>('private-oracle' #oracleConversion)
>
> name = #Time
> classPool = a NameSpaceOfClass[0]
> environment = a NameSpace[243]
>Arguments:
> timedBlock = BlockClosure [] in Glorp.VWDatabaseAccessor>>executeCommandBound:
>Context PC = 5
>
>----------------------------------------------------------------------
>Glorp.VWDatabaseAccessor>>executeCommandBound:
>Receiver:
> a Glorp.VWDatabaseAccessor
>Instance Variables:
> connection = an OracleConnection( hsvcctx = 47D8DA8 )
> currentLogin = a Login(a Glorp.OraclePlatform, 'store', 'store771', 'store')
> logging = false
> reusePreparedStatements = true
> deniedCommands = nil
> mutex = a Semaphore[0]
> dependents = nil
> driverSession = an OracleSession( hstmt = 4C60A80 )
> preparedStatements = a Glorp.CacheManager
>Arguments:
> aCommand = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
>Temporaries:
> statement = a Glorp.GlorpPreparedStatement
> cursor = nil
> time = nil
> block = BlockClosure [] in Glorp.VWDatabaseAccessor>>executeCommandBound:
>Context PC = 19
>
>----------------------------------------------------------------------
>Glorp.QuerySelectCommand(Glorp.DatabaseCommand)>>executeBoundIn:
>Receiver:
> a Glorp.QuerySelectCommand
>Instance Variables:
> useBinding = true
> stream = nil
> sqlString = 'SELECT t1.primaryKey, t1.name...tamp = ?) AND (t1.name = ?))'
> session = a Glorp.GlorpSession
> parameters = an Array[0]
> blockFactor = 1
> query = a SimpleQuery for StoreBundle
> boundExpressions = an OrderedCollection[2]
>Arguments:
> anAccessor = a Glorp.VWDatabaseAccessor
>Context PC = 4
>
>----------------------------------------------------------------------
>optimized [] in [] in Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>Receiver:
> an UndefinedObject
>Temporaries:
> .self = a Glorp.VWDatabaseAccessor
> .command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
>Context PC = 15
>
>----------------------------------------------------------------------
>BlockClosure>>on:do:
>Receiver:
> a BlockClosure
>Instance Variables:
> method = CompiledBlock [] in [] in Glorp.DatabaseAccessor>>executeCommand:returnCursor:
> outerContext = nil
> copiedValues = an Array[2]
>Arguments:
> anExceptionSelector = Error
> handlerBlock = BlockClosure [] in [] in Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>Context PC = 18
>
>----------------------------------------------------------------------
>optimized [] in Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>Receiver:
> an UndefinedObject
>Temporaries:
> result = nil
> .self = a Glorp.VWDatabaseAccessor
> .command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
> .aBoolean = true
>Context PC = 21
>
>----------------------------------------------------------------------
>BlockClosure>>ensure:
>Receiver:
> a BlockClosure
>Instance Variables:
> method = CompiledBlock [] in Glorp.DatabaseAccessor>>executeCommand:returnCursor:
> outerContext = nil
> copiedValues = an Array[3]
>Arguments:
> aBlock = BlockClosure [] in Semaphore>>critical:
>Temporaries:
> result = nil
>Context PC = 4
>
>----------------------------------------------------------------------
>Semaphore>>critical:
>Receiver:
> a Semaphore
>Instance Variables:
> firstLink = nil
> lastLink = nil
> excessSignals = 0
>Arguments:
> mutuallyExcludedBlock = BlockClosure [] in Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>Context PC = 10
>
>----------------------------------------------------------------------
>Glorp.VWDatabaseAccessor(Glorp.DatabaseAccessor)>>executeCommand:returnCursor:
>Receiver:
> a Glorp.VWDatabaseAccessor
>Instance Variables:
> connection = an OracleConnection( hsvcctx = 47D8DA8 )
> currentLogin = a Login(a Glorp.OraclePlatform, 'store', 'store771', 'store')
> logging = false
> reusePreparedStatements = true
> deniedCommands = nil
> mutex = a Semaphore[0]
> dependents = nil
> driverSession = an OracleSession( hstmt = 4C60A80 )
> preparedStatements = a Glorp.CacheManager
>Arguments:
> command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
> aBoolean = true
>Context PC = 10
>
>----------------------------------------------------------------------
>optimized [] in Glorp.SimpleQuery>>rowsFromDatabaseWithParameters:
>Receiver:
> an UndefinedObject
>Temporaries:
> .self = a SimpleQuery for StoreBundle
> .command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
>Context PC = 9
>
>----------------------------------------------------------------------
>BlockClosure>>on:do:
>Receiver:
> a BlockClosure
>Instance Variables:
> method = CompiledBlock [] in Glorp.SimpleQuery>>rowsFromDatabaseWithParameters:
> outerContext = nil
> copiedValues = an Array[2]
>Arguments:
> anExceptionSelector = Glorp.GlorpDatabaseReadError
> handlerBlock = BlockClosure [] in Glorp.SimpleQuery>>rowsFromDatabaseWithParameters:
>Context PC = 18
>
>----------------------------------------------------------------------
>Glorp.SimpleQuery>>rowsFromDatabaseWithParameters:
>Receiver:
> a Glorp.SimpleQuery
>Instance Variables:
> session = a Glorp.GlorpSession
> prepared = true
> expectedRows = 1
> collectionType = nil
> ordering = nil
> maximumLobSizeToRetrieveDirectly = 32768
> readsOneObject = true
> groupBy = nil
> resultClass = Store.Glorp.StoreBundle
> whereClause = Base(Store.Glorp.StoreBundle).timestamp = February 7, 2008 9:50:20 AM AND Base(Store.Glorp.StoreBundle).name = 'Base VisualWorks'
> base = Base(Store.Glorp.StoreBundle)
> limit = 1
> offset = nil
> proxyType = nil
> shouldRefresh = false
> tracing = a Glorp.Tracing
> builders = an Array[1]
> fields = an OrderedCollection[9]
> joins = an OrderedCollection[0]
> tablePrefix = nil
> customCommand = nil
> tablesToPrint = a SortedCollection[1]
>Arguments:
> anArray = an Array[0]
>Temporaries:
> alreadyTriedAction = true
> command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
>Context PC = 43
>
>----------------------------------------------------------------------
>Glorp.SimpleQuery(Glorp.AbstractReadQuery)>>readFromDatabaseWithParameters:
>Receiver:
> a Glorp.SimpleQuery
>Instance Variables:
> session = a Glorp.GlorpSession
> prepared = true
> expectedRows = 1
> collectionType = nil
> ordering = nil
> maximumLobSizeToRetrieveDirectly = 32768
> readsOneObject = true
> groupBy = nil
> resultClass = Store.Glorp.StoreBundle
> whereClause = Base(Store.Glorp.StoreBundle).timestamp = February 7, 2008 9:50:20 AM AND Base(Store.Glorp.StoreBundle).name = 'Base VisualWorks'
> base = Base(Store.Glorp.StoreBundle)
> limit = 1
> offset = nil
> proxyType = nil
> shouldRefresh = false
> tracing = a Glorp.Tracing
> builders = an Array[1]
> fields = an OrderedCollection[9]
> joins = an OrderedCollection[0]
> tablePrefix = nil
> customCommand = nil
> tablesToPrint = a SortedCollection[1]
>Arguments:
> anArray = an Array[0]
>Temporaries:
> answerStream = nil
> result = nil
>Context PC = 5
>
>----------------------------------------------------------------------
>Glorp.SimpleQuery(Glorp.AbstractReadQuery)>>executeWithParameters:in:
>Receiver:
> a Glorp.SimpleQuery
>Instance Variables:
> session = a Glorp.GlorpSession
> prepared = true
> expectedRows = 1
> collectionType = nil
> ordering = nil
> maximumLobSizeToRetrieveDirectly = 32768
> readsOneObject = true
> groupBy = nil
> resultClass = Store.Glorp.StoreBundle
> whereClause = Base(Store.Glorp.StoreBundle).timestamp = February 7, 2008 9:50:20 AM AND Base(Store.Glorp.StoreBundle).name = 'Base VisualWorks'
> base = Base(Store.Glorp.StoreBundle)
> limit = 1
> offset = nil
> proxyType = nil
> shouldRefresh = false
> tracing = a Glorp.Tracing
> builders = an Array[1]
> fields = an OrderedCollection[9]
> joins = an OrderedCollection[0]
> tablePrefix = nil
> customCommand = nil
> tablesToPrint = a SortedCollection[1]
>Arguments:
> parameterArray = an Array[0]
> aSession = a Glorp.GlorpSession
>Context PC = 35
>
>----------------------------------------------------------------------
>Glorp.GlorpSession>>execute:
>Receiver:
> a Glorp.GlorpSession
>Instance Variables:
> system = a Store.Glorp.Store74DescriptorSystem
> currentUnitOfWork = nil
> cache = a Glorp.CacheManager
> accessor = a Glorp.VWDatabaseAccessor
> applicationData = nil
> reaper = nil
> errorAction = nil
> modificationTracker = nil
>Arguments:
> aQuery = a SimpleQuery for StoreBundle
>Context PC = 5
>
>----------------------------------------------------------------------
>Glorp.GlorpSession>>readOneOf:where:
>Receiver:
> a Glorp.GlorpSession
>Instance Variables:
> system = a Store.Glorp.Store74DescriptorSystem
> currentUnitOfWork = nil
> cache = a Glorp.CacheManager
> accessor = a Glorp.VWDatabaseAccessor
> applicationData = nil
> reaper = nil
> errorAction = nil
> modificationTracker = nil
>Arguments:
> aClass = Store.Glorp.StoreBundle
> aBlock = BlockClosure [] in Store.Glorp.StorePundleWriter>>readPreviousVersion
>Context PC = 8
>
>----------------------------------------------------------------------
>Store.Glorp.StorePundleWriter>>readPreviousVersion
>Receiver:
> a Store.Glorp.StorePundleWriter
>Instance Variables:
> pundle = StoreBundle(Base VisualWorks,vw771-sps0)
> newPundle = nil
> previousVersionInTargetDatabase = an Object
> targetSession = a Glorp.GlorpSession
> preWriteAction = nil
> splitPundles = true
> notificationQueue = nil
>Context PC = 12
>
>----------------------------------------------------------------------
>Store.Glorp.StorePundleWriter>>previousVersionInTargetDatabase
>Receiver:
> a Store.Glorp.StorePundleWriter
>Instance Variables:
> pundle = StoreBundle(Base VisualWorks,vw771-sps0)
> newPundle = nil
> previousVersionInTargetDatabase = an Object
> targetSession = a Glorp.GlorpSession
> preWriteAction = nil
> splitPundles = true
> notificationQueue = nil
>Context PC = 18
>
>----------------------------------------------------------------------
>Store.Glorp.StorePundleWriter>>isPreviousVersionPresent
>Receiver:
> a Store.Glorp.StorePundleWriter
>Instance Variables:
> pundle = StoreBundle(Base VisualWorks,vw771-sps0)
> newPundle = nil
> previousVersionInTargetDatabase = an Object
> targetSession = a Glorp.GlorpSession
> preWriteAction = nil
> splitPundles = true
> notificationQueue = nil
>Context PC = 4
>
>----------------------------------------------------------------------
>Store.Glorp.StorePundleWriter>>writePundlePhase1:withChangesBasedOn:using:
>Receiver:
> a Store.Glorp.StorePundleWriter
>Instance Variables:
> pundle = StoreBundle(Base VisualWorks,vw771-sps0)
> newPundle = nil
> previousVersionInTargetDatabase = an Object
> targetSession = a Glorp.GlorpSession
> preWriteAction = nil
> splitPundles = true
> notificationQueue = nil
>Arguments:
> aPundle = StoreBundle(Base VisualWorks,vw771-sps0)
> anImagePundle = {Base VisualWorks}
> aCollection = an OrderedCollection[117]
>Context PC = 11
>
>----------------------------------------------------------------------
>Store.Glorp.StorePundleWriter>>writePundle:withChangesBasedOn:using:
>Receiver:
> a Store.Glorp.StorePundleWriter
>Instance Variables:
> pundle = StoreBundle(Base VisualWorks,vw771-sps0)
> newPundle = nil
> previousVersionInTargetDatabase = an Object
> targetSession = a Glorp.GlorpSession
> preWriteAction = nil
> splitPundles = true
> notificationQueue = nil
>Arguments:
> aPundle = StoreBundle(Base VisualWorks,vw771-sps0)
> anImagePundle = {Base VisualWorks}
> aCollection = an OrderedCollection[117]
>Context PC = 7
>
>----------------------------------------------------------------------
>optimized [] in [] in Store.PublishSpecificationList>>publishSilently
>Receiver:
> an UndefinedObject
>Temporaries:
> .self = a Store.PublishSpecificationList[117]
> newPundle = nil
> targetPundles = an OrderedCollection[117]
>Context PC = 16
>
>----------------------------------------------------------------------
>BlockClosure>>on:do:
>Receiver:
> a BlockClosure
>Instance Variables:
> method = CompiledBlock [] in [] in Store.PublishSpecificationList>>publishSilently
> outerContext = nil
> copiedValues = an Array[2]
>Arguments:
> anExceptionSelector = Glorp.GlorpDatabaseWriteError
> handlerBlock = BlockClosure [] in [] in Store.PublishSpecificationList>>publishSilently
>Context PC = 18
>
>----------------------------------------------------------------------
>[] in Store.PublishSpecificationList>>publishSilently
>Receiver:
> a Store.PublishSpecificationList
>Instance Variables:
> dependents = a SequenceView
> collection = an Array[192]
> limit = 117
> collectionSize = 192
> publisher = a Store.Glorp.StorePundleWriter
> notificationQueue = nil
>Temporaries:
> .self = a Store.PublishSpecificationList[117]
> newPundle = nil
> targetPundles = an OrderedCollection[117]
>Context PC = 17
>
>----------------------------------------------------------------------
>Store.PublishSpecificationList>>publishSilently
>Receiver:
> a Store.PublishSpecificationList
>Instance Variables:
> dependents = a SequenceView
> collection = an Array[192]
> limit = 117
> collectionSize = 192
> publisher = a Store.Glorp.StorePundleWriter
> notificationQueue = nil
>Temporaries:
> newPundle = nil
> targetPundles = an OrderedCollection[117]
>Context PC = 29
>
>----------------------------------------------------------------------
>Store.PublishSpecificationList>>publishPundle
>Receiver:
> a Store.PublishSpecificationList
>Instance Variables:
> dependents = a SequenceView
> collection = an Array[192]
> limit = 117
> collectionSize = 192
> publisher = a Store.Glorp.StorePundleWriter
> notificationQueue = nil
>Temporaries:
> pundle = nil
>Context PC = 8
>
>----------------------------------------------------------------------
>optimized [] in Store.PublishPundleDialog>>accept
>Receiver:
> an UndefinedObject
>Temporaries:
> .self = a Store.PublishPundleDialog
>Context PC = 7
>
>----------------------------------------------------------------------
>optimized [] in Store.StoreProgressOverlay class>>subsumeAll:while:
>Receiver:
> an UndefinedObject
>Temporaries:
> .windowsToSubsume = an Array[1]
> .self = Store.StoreProgressOverlay
> overlays = an Array[1]
> .aBlock = BlockClosure [] in Store.PublishPundleDialog>>accept
>Context PC = 14
>
>----------------------------------------------------------------------
>BlockClosure>>ensure:
>Receiver:
> a BlockClosure
>Instance Variables:
> method = CompiledBlock [] in Store.StoreProgressOverlay class>>subsumeAll:while:
> outerContext = nil
> copiedValues = an Array[4]
>Arguments:
> aBlock = BlockClosure [] in Store.StoreProgressOverlay class>>subsumeAll:while:
>Temporaries:
> result = nil
>Context PC = 4
>
>----------------------------------------------------------------------
>Store.StoreProgressOverlay class>>subsumeAll:while:
>Receiver:
> a Store.StoreProgressOverlay class
>Instance Variables:
> superclass = Panel
> methodDict = a MethodDictionary[12]
> format = 16394
> subclasses = nil
> instanceVariables = an Array[3]
> organization = ('initialize-release' #addProgressView #initializeLayoutAlgorithm #restoreOriginal #subsume:)
>('private' #backdrop #dropdownGradient #dropdownRectangle #progressView #regularView #washOutBackdropImage)
>('displaying' #displayDropdownOn: #displayPart:on:)
>
> name = #StoreProgressOverlay
> classPool = a NameSpaceOfClass[0]
> environment = a NameSpace[313]
>Arguments:
> aWindowCollection = an Array[1]
> aBlock = BlockClosure [] in Store.PublishPundleDialog>>accept
>Temporaries:
> overlays = an Array[1]
> windowsToSubsume = an Array[1]
>Context PC = 22
>
>----------------------------------------------------------------------
>Store.StoreProgressOverlay class>>subsume:while:
>Receiver:
> a Store.StoreProgressOverlay class
>Instance Variables:
> superclass = Panel
> methodDict = a MethodDictionary[12]
> format = 16394
> subclasses = nil
> instanceVariables = an Array[3]
> organization = ('initialize-release' #addProgressView #initializeLayoutAlgorithm #restoreOriginal #subsume:)
>('private' #backdrop #dropdownGradient #dropdownRectangle #progressView #regularView #washOutBackdropImage)
>('displaying' #displayDropdownOn: #displayPart:on:)
>
> name = #StoreProgressOverlay
> classPool = a NameSpaceOfClass[0]
> environment = a NameSpace[313]
>Arguments:
> aWindowOrNil = a ScheduledWindow 7626
> aBlock = BlockClosure [] in Store.PublishPundleDialog>>accept
>Context PC = 9
>
>----------------------------------------------------------------------
>Store.PublishPundleDialog>>accept
>Receiver:
> a Store.PublishPundleDialog
>Instance Variables:
> dependents = a ScheduledWindow 7626
> builder = an UIBuilder
> uiSession = a ControlManager
> eventHandlers = nil
> list = a SelectionInList
> disturbed = a ValueHolder on: false
> subBuilder = an UIBuilder
> items = a SelectionInList
> blessingLevel = a ValueHolder on: 99
> blessingComment = a ValueHolder on: Text for 'From the Cincom release cd'
> publish = a ValueHolder on: true
> versionString = a ValueHolder on: 'vw771-sps0'
> binarySave = a ValueHolder on: false
> parcelSave = a ValueHolder on: false
> bundleStructure = a ValueHolder on: false
> databaseLinks = a ValueHolder on: false
> parcelDirectory = a ValueHolder on: 'Base VisualWorks'
> parcelSaveSource = a ValueHolder on: true
> parcelHideSource = a ValueHolder on: false
> parcelPadded = a ValueHolder on: false
> parcelRepublish = a ValueHolder on: false
> parcelBackup = a ValueHolder on: false
> parcelOverwrite = a ValueHolder on: false
> parcelWarningMessage = ''
> labelDict = a Dictionary[117]
> offsets = an Array[4]
> callBackBlock = nil
> retry = false
> files = a SelectionInList
> publishFile = nil
> parcelVersionString = a ValueHolder on: 'vw77'
>Temporaries:
> navigatorClass = nil
>Context PC = 32
>
>----------------------------------------------------------------------
>optimized [] in ApplicationModel>>actionFor:
>Receiver:
> an UndefinedObject
>Temporaries:
> .self = a Store.PublishPundleDialog
> .aKey = #accept
>Context PC = 7
>
>----------------------------------------------------------------------
>optimized [] in ActionButtonSpec>>typeConvert:
>Receiver:
> an UndefinedObject
>Arguments:
> b = a ValueHolder on: nil
> v = true
>Temporaries:
> .aValue = BlockClosure [] in ApplicationModel>>actionFor:
>Context PC = 5
>
>----------------------------------------------------------------------
>PluggableAdaptor>>setValue:
>Receiver:
> a PluggableAdaptor
>Instance Variables:
> dependents = a WinXPActionButtonView
> model = a ValueHolder on: nil
> getBlock = BlockClosure [] in ActionButtonSpec>>typeConvert:
> putBlock = BlockClosure [] in ActionButtonSpec>>typeConvert:
> updateBlock = BlockClosure [] in ActionButtonSpec>>typeConvert:
>Arguments:
> newValue = true
>Context PC = 6
>
>----------------------------------------------------------------------
>PluggableAdaptor(ValueModel)>>value:
>Receiver:
> a PluggableAdaptor
>Instance Variables:
> dependents = a WinXPActionButtonView
> model = a ValueHolder on: nil
> getBlock = BlockClosure [] in ActionButtonSpec>>typeConvert:
> putBlock = BlockClosure [] in ActionButtonSpec>>typeConvert:
> updateBlock = BlockClosure [] in ActionButtonSpec>>typeConvert:
>Arguments:
> newValue = true
>Context PC = 5
>
>----------------------------------------------------------------------
>WinXPTriggerButtonController(TriggerButtonController)>>pressAction
>Receiver:
> a WinXPTriggerButtonController
>Instance Variables:
> model = a PluggableAdaptor
> view = a WinXPActionButtonView
> sensor = a TranslatingSensor
> keyboardHook = nil
> dispatcher = nil
>Context PC = 17
>
>----------------------------------------------------------------------
>TriggerButtonTracker(BasicButtonTracker)>>finishSelectionFor:
>Receiver:
> a TriggerButtonTracker
>Instance Variables:
> controller = a WinXPTriggerButtonController
> inside = true
>Arguments:
> aPoint = 51 @ 9
>Context PC = 8
>
>----------------------------------------------------------------------
>TriggerButtonTracker>>finishSelectionFor:
>Receiver:
> a TriggerButtonTracker
>Instance Variables:
> controller = a WinXPTriggerButtonController
> inside = true
>Arguments:
> aPoint = 51 @ 9
>Context PC = 11
>
>----------------------------------------------------------------------
>TriggerButtonTracker(SelectionTracker)>>redButtonReleasedEvent:
>Receiver:
> a TriggerButtonTracker
>Instance Variables:
> controller = a WinXPTriggerButtonController
> inside = true
>Arguments:
> aMouseButtonEvent = a RedButtonReleasedEvent
>Context PC = 13
>
>----------------------------------------------------------------------
>RedButtonReleasedEvent>>dispatchTo:
>Receiver:
> a RedButtonReleasedEvent
>Instance Variables:
> time = 8718359
> initiator = an EventDispatcher
> window = a ScheduledWindow 7626
> state = 0
> x = 336
> y = 524
> gx = 701
> gy = 746
> buttonNumber = 1
>Arguments:
> anObject = a TriggerButtonTracker
>Context PC = 4
>
>----------------------------------------------------------------------
>TriggerButtonTracker(SelectionTracker)>>handleEvent:
>Receiver:
> a TriggerButtonTracker
>Instance Variables:
> controller = a WinXPTriggerButtonController
> inside = true
>Arguments:
> anEvent = a RedButtonReleasedEvent
>Context PC = 4
>
>----------------------------------------------------------------------
>EventDispatcher>>dispatch:to:
>Receiver:
> an EventDispatcher
>Instance Variables:
> windowController = an ApplicationStandardSystemController
> currentMouseConsumer = nil
> grabbingMouse = false
> lastControlObject = nil
> trapList = nil
> state = nil
> repairDamageWhenDebugging = true
> flushQueueAfterError = true
> distributeEventsWhenDebugging = true
> dragDropInProgress = false
> dragDropTracker = nil
> dispatchUnknownEvents = false
>Arguments:
> event = a RedButtonReleasedEvent
> object = a TriggerButtonTracker
>Temporaries:
> tmp = nil
>Context PC = 10
>
>----------------------------------------------------------------------
>[] in EventDispatcher>>dispatchEvent:
>Receiver:
> an EventDispatcher
>Instance Variables:
> windowController = an ApplicationStandardSystemController
> currentMouseConsumer = nil
> grabbingMouse = false
> lastControlObject = nil
> trapList = nil
> state = nil
> repairDamageWhenDebugging = true
> flushQueueAfterError = true
> distributeEventsWhenDebugging = true
> dragDropInProgress = false
> dragDropTracker = nil
> dispatchUnknownEvents = false
>Temporaries:
> .self = an EventDispatcher
> .event = a RedButtonReleasedEvent
>Context PC = 9
>
>----------------------------------------------------------------------
>BlockClosure>>on:do:
>Receiver:
> a BlockClosure
>Instance Variables:
> method = CompiledBlock [] in EventDispatcher>>dispatchEvent:
> outerContext = EventDispatcher>>dispatchEvent:
> copiedValues = an Array[2]
>Arguments:
> anExceptionSelector = ClosedWindowNotification
> handlerBlock = BlockClosure [] in EventDispatcher>>dispatchEvent:
>Context PC = 18
>
>----------------------------------------------------------------------
>EventDispatcher>>dispatchEvent:
>Receiver:
> an EventDispatcher
>Instance Variables:
> windowController = an ApplicationStandardSystemController
> currentMouseConsumer = nil
> grabbingMouse = false
> lastControlObject = nil
> trapList = nil
> state = nil
> repairDamageWhenDebugging = true
> flushQueueAfterError = true
> distributeEventsWhenDebugging = true
> dragDropInProgress = false
> dragDropTracker = nil
> dispatchUnknownEvents = false
>Arguments:
> event = a RedButtonReleasedEvent
>Temporaries:
> objectWantingControl = nil
> targetKeyboardProcessor = nil
>Context PC = 68
>
>----------------------------------------------------------------------
>RedButtonReleasedEvent(Event)>>dispatch
>Receiver:
> a RedButtonReleasedEvent
>Instance Variables:
> time = 8718359
> initiator = an EventDispatcher
> window = a ScheduledWindow 7626
> state = 0
> x = 336
> y = 524
> gx = 701
> gy = 746
> buttonNumber = 1
>Context PC = 16
>
>----------------------------------------------------------------------
>RedButtonReleasedEvent(Event)>>dispatchForWindowManager:
>Receiver:
> a RedButtonReleasedEvent
>Instance Variables:
> time = 8718359
> initiator = an EventDispatcher
> window = a ScheduledWindow 7626
> state = 0
> x = 336
> y = 524
> gx = 701
> gy = 746
> buttonNumber = 1
>Arguments:
> aWinMgr = a WindowManager
>Context PC = 4
>
>----------------------------------------------------------------------
>optimized [] in WindowManager>>safelyDispatchForWindowManager:
>Receiver:
> an UndefinedObject
>Temporaries:
> .event = a RedButtonReleasedEvent
> .self = a WindowManager
>Context PC = 6
>
>----------------------------------------------------------------------
>BlockClosure>>on:do:
>Receiver:
> a BlockClosure
>Instance Variables:
> method = CompiledBlock [] in WindowManager>>safelyDispatchForWindowManager:
> outerContext = nil
> copiedValues = an Array[2]
>Arguments:
> anExceptionSelector = BadControllerError
> handlerBlock = BlockClosure [] in WindowManager>>safelyDispatchForWindowManager:
>Context PC = 18
>
>----------------------------------------------------------------------
>WindowManager>>safelyDispatchForWindowManager:
>Receiver:
> a WindowManager
>Instance Variables:
> windows = an OrderedCollection[2]
> activeController = nil
> interruptLock = false
> outstandingMetaOrDamage = false
> openInProgress = false
> eventQueue = an EventQueue
> baseProcess = a Process in Semaphore>>waitIfCurtailedSignal
> dontFilterEvents = false
>Arguments:
> event = a RedButtonReleasedEvent
>Context PC = 13
>
>----------------------------------------------------------------------
>WindowManager>>processNextEvent
>Receiver:
> a WindowManager
>Instance Variables:
> windows = an OrderedCollection[2]
> activeController = nil
> interruptLock = false
> outstandingMetaOrDamage = false
> openInProgress = false
> eventQueue = an EventQueue
> baseProcess = a Process in Semaphore>>waitIfCurtailedSignal
> dontFilterEvents = false
>Temporaries:
> event = a RedButtonReleasedEvent
>Context PC = 9
>
>----------------------------------------------------------------------
>optimized [] in [] in WindowManager>>newProcess
>Receiver:
> an UndefinedObject
>Temporaries:
> .self = a WindowManager
>Context PC = 13
>
>----------------------------------------------------------------------
>BlockClosure>>on:do:
>Receiver:
> a BlockClosure
>Instance Variables:
> method = CompiledBlock [] in [] in WindowManager>>newProcess
> outerContext = nil
> copiedValues = a WindowManager
>Arguments:
> anExceptionSelector = TerminateException
> handlerBlock = BlockClosure [] in [] in WindowManager>>newProcess
>Context PC = 18
>
>----------------------------------------------------------------------
>optimized [] in WindowManager>>newProcess
>Receiver:
> an UndefinedObject
>Temporaries:
> .self = a WindowManager
>Context PC = 15
>
>----------------------------------------------------------------------
>BlockClosure>>on:do:
>Receiver:
> a BlockClosure
>Instance Variables:
> method = CompiledBlock [] in WindowManager>>newProcess
> outerContext = nil
> copiedValues = a WindowManager
>Arguments:
> anExceptionSelector = TerminateException
> handlerBlock = BlockClosure [] in [] in Process class>>forBlock:priority:
>Context PC = 18
>
>----------------------------------------------------------------------
>optimized [] in Process class>>forBlock:priority:
>Receiver:
> an UndefinedObject
>Temporaries:
> .aBlock = BlockClosure [] in WindowManager>>newProcess
>Context PC = 9
>  
>
>------------------------------------------------------------------------
>
>_______________________________________________
>vwnc mailing list
>[hidden email]
>http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
>  
>


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: ORA-01000: maximum open cursors exceeded (was [7.7.1] Publishing base fails)

Reinout Heeck-2
Niall Ross wrote:
> Dear Reinout,
>    on all occasions when I get this error, I find that walking up the
> stack slightly and restarting lets the operation complete fine.  
> Hardly the ideal workaround but it does mean you can get the operation
> completed.  On one occasion (when I was doing a massive database GC
> taking several hours), I got it twice but each time was able to walk
> up the stack a little, restart and carry on.

Thats what I did of course - I love smalltalk ;-)

For my situation it was necessary that the db connection was broken and
re-established, but that worked out alright in this case..

We received a patch instruction from Cincom support, but I'll have to
review that coming week -- at first blush it seems this patch only fixes
this problem in the Store reconciliation code and not generically....



Thanks!

Reinout
-------


>
> (If anyone finds this workaround does _not_ let them continue OK, that
> would be of interest.)
>
>          Yours faithfully
>             Niall Ross
>
>> We received the vw7.7.1 CD today, so I started to publish it into our
>> Store repository.
>>
>> Publishing Base Visualworks generates an error (ORA-01000: maximum
>> open cursors exceeded).
>>
>> I retried the operation but that gave the same result, stack dump
>> attached.
>>
>> Steps I took:
>> --copied our 7.6 repository (and changed the repository identifier).
>> --load StoreForOracle
>> --ran update77 and update 771
>> --'switch databases' to reconcile
>> --publish Base VisualWorks bundle
>>
>> Reinout
>> -------
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>> Unhandled exception:  ORA-01000: maximum open cursors exceeded
>>
>> Glorp.GlorpDatabaseReadError(Glorp.GlorpError)>>signal
>> Glorp.VWDatabaseAccessor(Glorp.DatabaseAccessor)>>handleError:for:
>> optimized [] in [] in
>> Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>> BlockClosure>>cull:
>> UnableToExecuteSQL(GenericException)>>performHandler:
>> UnableToExecuteSQL(GenericException)>>propagatePrivateFrom:
>> UnableToExecuteSQL(GenericException)>>propagateFrom:
>> UnableToExecuteSQL(GenericException)>>propagate
>> UnableToExecuteSQL(GenericException)>>raiseSignal
>> UnableToExecuteSQL class(GenericException class)>>raiseWith:errorString:
>> OracleSession>>resultsExternal
>> OracleSession>>executeExternal
>> optimized [] in ExternalDatabaseSession>>execute
>> BlockClosure>>ifCurtailed:
>> OracleSession(ExternalDatabaseSession)>>execute
>> Glorp.VWDatabaseAccessor>>executeCommand:inDBSession:
>> optimized [] in Glorp.VWDatabaseAccessor>>executeCommandBound:
>> Time class>>microsecondsToRun:
>> Time class>>millisecondsToRun:
>> Glorp.VWDatabaseAccessor>>executeCommandBound:
>> Glorp.QuerySelectCommand(Glorp.DatabaseCommand)>>executeBoundIn:
>> optimized [] in [] in
>> Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>> BlockClosure>>on:do:
>> optimized [] in Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>> BlockClosure>>ensure:
>> Semaphore>>critical:
>> Glorp.VWDatabaseAccessor(Glorp.DatabaseAccessor)>>executeCommand:returnCursor:
>>
>> optimized [] in Glorp.SimpleQuery>>rowsFromDatabaseWithParameters:
>> BlockClosure>>on:do:
>> Glorp.SimpleQuery>>rowsFromDatabaseWithParameters:
>> Glorp.SimpleQuery(Glorp.AbstractReadQuery)>>readFromDatabaseWithParameters:
>>
>> Glorp.SimpleQuery(Glorp.AbstractReadQuery)>>executeWithParameters:in:
>> Glorp.GlorpSession>>execute:
>> Glorp.GlorpSession>>readOneOf:where:
>> Store.Glorp.StorePundleWriter>>readPreviousVersion
>> Store.Glorp.StorePundleWriter>>previousVersionInTargetDatabase
>> Store.Glorp.StorePundleWriter>>isPreviousVersionPresent
>> Store.Glorp.StorePundleWriter>>writePundlePhase1:withChangesBasedOn:using:
>>
>> Store.Glorp.StorePundleWriter>>writePundle:withChangesBasedOn:using:
>> optimized [] in [] in Store.PublishSpecificationList>>publishSilently
>> BlockClosure>>on:do:
>> [] in Store.PublishSpecificationList>>publishSilently
>> Store.PublishSpecificationList>>publishSilently
>> Store.PublishSpecificationList>>publishPundle
>> optimized [] in Store.PublishPundleDialog>>accept
>> optimized [] in Store.StoreProgressOverlay class>>subsumeAll:while:
>> BlockClosure>>ensure:
>> Store.StoreProgressOverlay class>>subsumeAll:while:
>> Store.StoreProgressOverlay class>>subsume:while:
>> Store.PublishPundleDialog>>accept
>> optimized [] in ApplicationModel>>actionFor:
>> optimized [] in ActionButtonSpec>>typeConvert:
>> PluggableAdaptor>>setValue:
>> PluggableAdaptor(ValueModel)>>value:
>> WinXPTriggerButtonController(TriggerButtonController)>>pressAction
>> TriggerButtonTracker(BasicButtonTracker)>>finishSelectionFor:
>> TriggerButtonTracker>>finishSelectionFor:
>> TriggerButtonTracker(SelectionTracker)>>redButtonReleasedEvent:
>> RedButtonReleasedEvent>>dispatchTo:
>> TriggerButtonTracker(SelectionTracker)>>handleEvent:
>> EventDispatcher>>dispatch:to:
>> [] in EventDispatcher>>dispatchEvent:
>> BlockClosure>>on:do:
>> EventDispatcher>>dispatchEvent:
>> RedButtonReleasedEvent(Event)>>dispatch
>> RedButtonReleasedEvent(Event)>>dispatchForWindowManager:
>> optimized [] in WindowManager>>safelyDispatchForWindowManager:
>> BlockClosure>>on:do:
>> WindowManager>>safelyDispatchForWindowManager:
>> WindowManager>>processNextEvent
>> optimized [] in [] in WindowManager>>newProcess
>> BlockClosure>>on:do:
>> optimized [] in WindowManager>>newProcess
>> BlockClosure>>on:do:
>> optimized [] in Process class>>forBlock:priority:
>>
>> ----------------------------------------------------------------------
>> Glorp.GlorpDatabaseReadError(Glorp.GlorpError)>>signal
>> Receiver:
>>     a Glorp.GlorpDatabaseReadError
>> Instance Variables:
>>     messageText = ' ORA-01000: maximum open cursors exceeded
>> '
>>     originator = a Glorp.GlorpDatabaseReadError
>>     initialContext =
>> Glorp.GlorpDatabaseReadError(Glorp.GlorpError)>>signal
>>     firstUnwindContext = BlockClosure>>ifCurtailed:
>>     handlerContext = nil
>>     parameter = nil
>>     proceedBlock = nil
>>     isResumable = true
>>     signal = nil
>>     searchContext = Glorp.SimpleQuery>>rowsFromDatabaseWithParameters:
>>     command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
>>     databaseError = an UnableToExecuteSQL
>>     accessor = a Glorp.VWDatabaseAccessor
>> Context PC = 7
>>
>> ----------------------------------------------------------------------
>> Glorp.VWDatabaseAccessor(Glorp.DatabaseAccessor)>>handleError:for:
>> Receiver:
>>     a Glorp.VWDatabaseAccessor
>> Instance Variables:
>>     connection = an OracleConnection( hsvcctx = 47D8DA8 )
>>     currentLogin = a Login(a Glorp.OraclePlatform, 'store',
>> 'store771', 'store')
>>     logging = false
>>     reusePreparedStatements = true
>>     deniedCommands = nil
>>     mutex = a Semaphore[0]
>>     dependents = nil
>>     driverSession = an OracleSession( hstmt = 4C60A80 )
>>     preparedStatements = a Glorp.CacheManager
>> Arguments:
>>     exception = an UnableToExecuteSQL
>>     command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
>> Temporaries:
>>     errorClass = Glorp.GlorpDatabaseReadError
>>     error = a Glorp.GlorpDatabaseReadError
>> Context PC = 28
>>
>> ----------------------------------------------------------------------
>> optimized [] in [] in
>> Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>> Receiver:
>>     an UndefinedObject
>> Arguments:
>>     ex = an UnableToExecuteSQL
>> Temporaries:
>>     .self = a Glorp.VWDatabaseAccessor
>>     .command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
>> Context PC = 8
>>
>> ----------------------------------------------------------------------
>> BlockClosure>>cull:
>> Receiver:
>>     a BlockClosure
>> Instance Variables:
>>     method = CompiledBlock [] in [] in
>> Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>>     outerContext = nil
>>     copiedValues = an Array[2]
>> Arguments:
>>     anObject = an UnableToExecuteSQL
>> Context PC = 15
>>
>> ----------------------------------------------------------------------
>> UnableToExecuteSQL(GenericException)>>performHandler:
>> Receiver:
>>     an UnableToExecuteSQL
>> Instance Variables:
>>     messageText = ' ORA-01000: maximum open cursors exceeded
>> '
>>     originator = an OracleSession( hstmt = 4C5F62C )
>>     initialContext = OracleSession>>resultsExternal
>>     firstUnwindContext = BlockClosure>>ifCurtailed:
>>     handlerContext = BlockClosure>>on:do:
>>     parameter = an Array[1]
>>     proceedBlock = nil
>>     isResumable = false
>>     signal = nil
>>     searchContext = OracleSession>>resultsExternal
>> Arguments:
>>     aContext = BlockClosure>>on:do:
>> Temporaries:
>>     result = nil
>>     oldHandler = BlockClosure>>on:do:
>> Context PC = 39
>>
>> ----------------------------------------------------------------------
>> UnableToExecuteSQL(GenericException)>>propagatePrivateFrom:
>> Receiver:
>>     an UnableToExecuteSQL
>> Instance Variables:
>>     messageText = ' ORA-01000: maximum open cursors exceeded
>> '
>>     originator = an OracleSession( hstmt = 4C5F62C )
>>     initialContext = OracleSession>>resultsExternal
>>     firstUnwindContext = BlockClosure>>ifCurtailed:
>>     handlerContext = BlockClosure>>on:do:
>>     parameter = an Array[1]
>>     proceedBlock = nil
>>     isResumable = false
>>     signal = nil
>>     searchContext = OracleSession>>resultsExternal
>> Arguments:
>>     aContext = OracleSession>>resultsExternal
>> Temporaries:
>>     handler = BlockClosure>>on:do:
>> Context PC = 13
>>
>> ----------------------------------------------------------------------
>> UnableToExecuteSQL(GenericException)>>propagateFrom:
>> Receiver:
>>     an UnableToExecuteSQL
>> Instance Variables:
>>     messageText = ' ORA-01000: maximum open cursors exceeded
>> '
>>     originator = an OracleSession( hstmt = 4C5F62C )
>>     initialContext = OracleSession>>resultsExternal
>>     firstUnwindContext = BlockClosure>>ifCurtailed:
>>     handlerContext = BlockClosure>>on:do:
>>     parameter = an Array[1]
>>     proceedBlock = nil
>>     isResumable = false
>>     signal = nil
>>     searchContext = OracleSession>>resultsExternal
>> Arguments:
>>     startContext = OracleSession>>resultsExternal
>> Context PC = 9
>>
>> ----------------------------------------------------------------------
>> UnableToExecuteSQL(GenericException)>>propagate
>> Receiver:
>>     an UnableToExecuteSQL
>> Instance Variables:
>>     messageText = ' ORA-01000: maximum open cursors exceeded
>> '
>>     originator = an OracleSession( hstmt = 4C5F62C )
>>     initialContext = OracleSession>>resultsExternal
>>     firstUnwindContext = BlockClosure>>ifCurtailed:
>>     handlerContext = BlockClosure>>on:do:
>>     parameter = an Array[1]
>>     proceedBlock = nil
>>     isResumable = false
>>     signal = nil
>>     searchContext = OracleSession>>resultsExternal
>> Context PC = 5
>>
>> ----------------------------------------------------------------------
>> UnableToExecuteSQL(GenericException)>>raiseSignal
>> Receiver:
>>     an UnableToExecuteSQL
>> Instance Variables:
>>     messageText = ' ORA-01000: maximum open cursors exceeded
>> '
>>     originator = an OracleSession( hstmt = 4C5F62C )
>>     initialContext = OracleSession>>resultsExternal
>>     firstUnwindContext = BlockClosure>>ifCurtailed:
>>     handlerContext = BlockClosure>>on:do:
>>     parameter = an Array[1]
>>     proceedBlock = nil
>>     isResumable = false
>>     signal = nil
>>     searchContext = OracleSession>>resultsExternal
>> Context PC = 16
>>
>> ----------------------------------------------------------------------
>> UnableToExecuteSQL class(GenericException class)>>raiseWith:errorString:
>> Receiver:
>>     an UnableToExecuteSQL class
>> Instance Variables:
>>     superclass = ExternalDatabaseException
>>     methodDict = a MethodDictionary[1]
>>     format = 16394
>>     subclasses = an Array[5]
>>     instanceVariables = an Array[0]
>>     organization = ('printing' #defaultMessageText)
>>
>>     name = #UnableToExecuteSQL
>>     classPool = a NameSpaceOfClass[0]
>>     environment = a NameSpace[130]
>>     notifierString = nil
>> Arguments:
>>     parameter = an Array[1]
>>     aStringOrValuable = ' ORA-01000: maximum open cursors exceeded
>> '
>> Context PC = 26
>>
>> ----------------------------------------------------------------------
>> OracleSession>>resultsExternal
>> Receiver:
>>     an OracleSession
>> Instance Variables:
>>     stateHolder = a ValueHolder on: #executing
>>     traceStream = nil
>>     traceLevel = 0
>>     participants = a WeakArray[0]
>>     participantsSemaphore = a RecursionLock
>>     connection = an OracleConnection( hsvcctx = 47D8DA8 )
>>     query = 'SELECT t1.primaryKey, t1.name...tamp = ?) AND (t1.name =
>> ?))'
>>     queryFragments = an OrderedCollection[5]
>>     bindInput = an OrderedCollection[2]
>>     bindTemplate = an OrderedCollection[2]
>>     bindOutput = nil
>>     useNamedOutputBinding = false
>>     bindValues = an IdentityDictionary[2]
>>     resultTemplate = nil
>>     allocateForEachRow = true
>>     blockFactor = 1
>>     numColumns = nil
>>     columnDescriptions = nil
>>     rowAdaptors = nil
>>     rowBuffersHolder = a ValueHolder on: nil
>>     bufferIndex = nil
>>     answerStream = nil
>>     currentRow = nil
>>     scrollable = false
>>     needBinding = true
>>     resultsCache = nil
>>     hstmtHolder = a ValueHolder on: a CCompositePointer {04C5F62C}
>> (struct __OCIStmt * )
>>     herrHolder = a ValueHolder on: a CCompositePointer {047D82A4}
>> (struct __OCIError * )
>>     bindValuePointersHolder = a ValueHolder on: IdentityDictionary (1
>> -> an OracleBuffer 2 -> an OracleBuffer )
>>     maxLongBytes = 32768
>>     queryIsPLSQL = false
>>     currentRowIndex = nil
>>     totalRows = nil
>>     rowsInBlock = nil
>>     dependentLobs = a WeakDictionary[0]
>>     sqlPointerHolder = a ValueHolder on: a CPointer {00EEDF60}
>> (unsigned char * )
>>     maxBindSize = 1
>>     answerLobProxy = false
>>     defaultDisplayLobSize = 32768
>>     isReleasedFromCacheHolder = a ValueHolder on: true
>>     lobBufferSize = 32768
>>     reuseColumnBuffers = false
>>     definePointerHolder = a ValueHolder on: nil
>>     bindPointerHolder = a ValueHolder on: a CPointer {06658870}
>> (struct __OCIBind * * )
>> Temporaries:
>>     errs = an OrderedCollection[1]
>>     errorParameter = an Array[1]
>>     error = an OracleError
>>     signal = UnableToExecuteSQL
>>     connClass = OracleConnection
>> Context PC = 63
>>
>> ----------------------------------------------------------------------
>> OracleSession>>executeExternal
>> Receiver:
>>     an OracleSession
>> Instance Variables:
>>     stateHolder = a ValueHolder on: #executing
>>     traceStream = nil
>>     traceLevel = 0
>>     participants = a WeakArray[0]
>>     participantsSemaphore = a RecursionLock
>>     connection = an OracleConnection( hsvcctx = 47D8DA8 )
>>     query = 'SELECT t1.primaryKey, t1.name...tamp = ?) AND (t1.name =
>> ?))'
>>     queryFragments = an OrderedCollection[5]
>>     bindInput = an OrderedCollection[2]
>>     bindTemplate = an OrderedCollection[2]
>>     bindOutput = nil
>>     useNamedOutputBinding = false
>>     bindValues = an IdentityDictionary[2]
>>     resultTemplate = nil
>>     allocateForEachRow = true
>>     blockFactor = 1
>>     numColumns = nil
>>     columnDescriptions = nil
>>     rowAdaptors = nil
>>     rowBuffersHolder = a ValueHolder on: nil
>>     bufferIndex = nil
>>     answerStream = nil
>>     currentRow = nil
>>     scrollable = false
>>     needBinding = true
>>     resultsCache = nil
>>     hstmtHolder = a ValueHolder on: a CCompositePointer {04C5F62C}
>> (struct __OCIStmt * )
>>     herrHolder = a ValueHolder on: a CCompositePointer {047D82A4}
>> (struct __OCIError * )
>>     bindValuePointersHolder = a ValueHolder on: IdentityDictionary (1
>> -> an OracleBuffer 2 -> an OracleBuffer )
>>     maxLongBytes = 32768
>>     queryIsPLSQL = false
>>     currentRowIndex = nil
>>     totalRows = nil
>>     rowsInBlock = nil
>>     dependentLobs = a WeakDictionary[0]
>>     sqlPointerHolder = a ValueHolder on: a CPointer {00EEDF60}
>> (unsigned char * )
>>     maxBindSize = 1
>>     answerLobProxy = false
>>     defaultDisplayLobSize = 32768
>>     isReleasedFromCacheHolder = a ValueHolder on: true
>>     lobBufferSize = 32768
>>     reuseColumnBuffers = false
>>     definePointerHolder = a ValueHolder on: nil
>>     bindPointerHolder = a ValueHolder on: a CPointer {06658870}
>> (struct __OCIBind * * )
>> Temporaries:
>>     rtval = -1
>>     xif = an OracleNTInterface
>>     hsvcctx = a CCompositePointer {047D8DA8} (struct __OCISvcCtx * )
>>     hstmt = a CCompositePointer {04C5F62C} (struct __OCIStmt * )
>>     herr = a CCompositePointer {047D82A4} (struct __OCIError * )
>>     iterations = 0
>>     rowOffset = 0
>>     mode = 32
>> Context PC = 180
>>
>> ----------------------------------------------------------------------
>> optimized [] in ExternalDatabaseSession>>execute
>> Receiver:
>>     an UndefinedObject
>> Temporaries:
>>     .self = an OracleSession( hstmt = 4C5F62C )
>> Context PC = 13
>>
>> ----------------------------------------------------------------------
>> BlockClosure>>ifCurtailed:
>> Receiver:
>>     a BlockClosure
>> Instance Variables:
>>     method = CompiledBlock [] in ExternalDatabaseSession>>execute
>>     outerContext = nil
>>     copiedValues = an OracleSession( hstmt = 4C5F62C )
>> Arguments:
>>     terminationBlock = BlockClosure [] in
>> ExternalDatabaseSession>>execute
>> Context PC = 4
>>
>> ----------------------------------------------------------------------
>> OracleSession(ExternalDatabaseSession)>>execute
>> Receiver:
>>     an OracleSession
>> Instance Variables:
>>     stateHolder = a ValueHolder on: #executing
>>     traceStream = nil
>>     traceLevel = 0
>>     participants = a WeakArray[0]
>>     participantsSemaphore = a RecursionLock
>>     connection = an OracleConnection( hsvcctx = 47D8DA8 )
>>     query = 'SELECT t1.primaryKey, t1.name...tamp = ?) AND (t1.name =
>> ?))'
>>     queryFragments = an OrderedCollection[5]
>>     bindInput = an OrderedCollection[2]
>>     bindTemplate = an OrderedCollection[2]
>>     bindOutput = nil
>>     useNamedOutputBinding = false
>>     bindValues = an IdentityDictionary[2]
>>     resultTemplate = nil
>>     allocateForEachRow = true
>>     blockFactor = 1
>>     numColumns = nil
>>     columnDescriptions = nil
>>     rowAdaptors = nil
>>     rowBuffersHolder = a ValueHolder on: nil
>>     bufferIndex = nil
>>     answerStream = nil
>>     currentRow = nil
>>     scrollable = false
>>     needBinding = true
>>     resultsCache = nil
>>     hstmtHolder = a ValueHolder on: a CCompositePointer {04C5F62C}
>> (struct __OCIStmt * )
>>     herrHolder = a ValueHolder on: a CCompositePointer {047D82A4}
>> (struct __OCIError * )
>>     bindValuePointersHolder = a ValueHolder on: IdentityDictionary (1
>> -> an OracleBuffer 2 -> an OracleBuffer )
>>     maxLongBytes = 32768
>>     queryIsPLSQL = false
>>     currentRowIndex = nil
>>     totalRows = nil
>>     rowsInBlock = nil
>>     dependentLobs = a WeakDictionary[0]
>>     sqlPointerHolder = a ValueHolder on: a CPointer {00EEDF60}
>> (unsigned char * )
>>     maxBindSize = 1
>>     answerLobProxy = false
>>     defaultDisplayLobSize = 32768
>>     isReleasedFromCacheHolder = a ValueHolder on: true
>>     lobBufferSize = 32768
>>     reuseColumnBuffers = false
>>     definePointerHolder = a ValueHolder on: nil
>>     bindPointerHolder = a ValueHolder on: a CPointer {06658870}
>> (struct __OCIBind * * )
>> Context PC = 34
>>
>> ----------------------------------------------------------------------
>> Glorp.VWDatabaseAccessor>>executeCommand:inDBSession:
>> Receiver:
>>     a Glorp.VWDatabaseAccessor
>> Instance Variables:
>>     connection = an OracleConnection( hsvcctx = 47D8DA8 )
>>     currentLogin = a Login(a Glorp.OraclePlatform, 'store',
>> 'store771', 'store')
>>     logging = false
>>     reusePreparedStatements = true
>>     deniedCommands = nil
>>     mutex = a Semaphore[0]
>>     dependents = nil
>>     driverSession = an OracleSession( hstmt = 4C60A80 )
>>     preparedStatements = a Glorp.CacheManager
>> Arguments:
>>     aCommand = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
>>     aSession = an OracleSession( hstmt = 4C5F62C )
>> Temporaries:
>>     answerStream = nil
>>     cursor = nil
>> Context PC = 3
>>
>> ----------------------------------------------------------------------
>> optimized [] in Glorp.VWDatabaseAccessor>>executeCommandBound:
>> Receiver:
>>     an UndefinedObject
>> Temporaries:
>>     .self = a Glorp.VWDatabaseAccessor
>>     .aCommand = a Glorp.QuerySelectCommand(a SimpleQuery for
>> StoreBundle)
>>     statement = a Glorp.GlorpPreparedStatement
>>     cursor = nil
>> Context PC = 22
>>
>> ----------------------------------------------------------------------
>> Time class>>microsecondsToRun:
>> Receiver:
>>     a Time class
>> Instance Variables:
>>     superclass = Magnitude
>>     methodDict = a MethodDictionary[31]
>>     format = 16387
>>     subclasses = nil
>>     instanceVariables = an Array[3]
>>     organization = ('comparing' #< #= #hash)
>> ('accessing' #hours #milliseconds #minutes #seconds)
>> ('arithmetic' #addSeconds: #addTime: #subtractSeconds: #subtractTime:)
>> ('printing' #glorpPadToTwoDigits: #glorpPrintSQLOn: #longPrintString
>> #printOn: #shortPrintString #storeOn:)
>> ('converting' #asDuration #asSeconds #asTimestamp)
>> ('private' #hours: #hours:minutes:seconds: #isCompatibleWithDuration
>> #literalArrayEncoding #printOn:policy:format:)
>> ('private-spin-button' #spinBy:boundedBy:)
>> ('double dispatch' #equalFromDuration: #equalFromTime:
>> #lessFromDuration: #lessFromTime:)
>> ('private-oracle' #oracleConversion)
>>
>>     name = #Time
>>     classPool = a NameSpaceOfClass[0]
>>     environment = a NameSpace[243]
>> Arguments:
>>     timedBlock = BlockClosure [] in
>> Glorp.VWDatabaseAccessor>>executeCommandBound:
>> Temporaries:
>>     initialMicroseconds = 3459576683441564
>> Context PC = 7
>>
>> ----------------------------------------------------------------------
>> Time class>>millisecondsToRun:
>> Receiver:
>>     a Time class
>> Instance Variables:
>>     superclass = Magnitude
>>     methodDict = a MethodDictionary[31]
>>     format = 16387
>>     subclasses = nil
>>     instanceVariables = an Array[3]
>>     organization = ('comparing' #< #= #hash)
>> ('accessing' #hours #milliseconds #minutes #seconds)
>> ('arithmetic' #addSeconds: #addTime: #subtractSeconds: #subtractTime:)
>> ('printing' #glorpPadToTwoDigits: #glorpPrintSQLOn: #longPrintString
>> #printOn: #shortPrintString #storeOn:)
>> ('converting' #asDuration #asSeconds #asTimestamp)
>> ('private' #hours: #hours:minutes:seconds: #isCompatibleWithDuration
>> #literalArrayEncoding #printOn:policy:format:)
>> ('private-spin-button' #spinBy:boundedBy:)
>> ('double dispatch' #equalFromDuration: #equalFromTime:
>> #lessFromDuration: #lessFromTime:)
>> ('private-oracle' #oracleConversion)
>>
>>     name = #Time
>>     classPool = a NameSpaceOfClass[0]
>>     environment = a NameSpace[243]
>> Arguments:
>>     timedBlock = BlockClosure [] in
>> Glorp.VWDatabaseAccessor>>executeCommandBound:
>> Context PC = 5
>>
>> ----------------------------------------------------------------------
>> Glorp.VWDatabaseAccessor>>executeCommandBound:
>> Receiver:
>>     a Glorp.VWDatabaseAccessor
>> Instance Variables:
>>     connection = an OracleConnection( hsvcctx = 47D8DA8 )
>>     currentLogin = a Login(a Glorp.OraclePlatform, 'store',
>> 'store771', 'store')
>>     logging = false
>>     reusePreparedStatements = true
>>     deniedCommands = nil
>>     mutex = a Semaphore[0]
>>     dependents = nil
>>     driverSession = an OracleSession( hstmt = 4C60A80 )
>>     preparedStatements = a Glorp.CacheManager
>> Arguments:
>>     aCommand = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
>> Temporaries:
>>     statement = a Glorp.GlorpPreparedStatement
>>     cursor = nil
>>     time = nil
>>     block = BlockClosure [] in
>> Glorp.VWDatabaseAccessor>>executeCommandBound:
>> Context PC = 19
>>
>> ----------------------------------------------------------------------
>> Glorp.QuerySelectCommand(Glorp.DatabaseCommand)>>executeBoundIn:
>> Receiver:
>>     a Glorp.QuerySelectCommand
>> Instance Variables:
>>     useBinding = true
>>     stream = nil
>>     sqlString = 'SELECT t1.primaryKey, t1.name...tamp = ?) AND
>> (t1.name = ?))'
>>     session = a Glorp.GlorpSession
>>     parameters = an Array[0]
>>     blockFactor = 1
>>     query = a SimpleQuery for StoreBundle
>>     boundExpressions = an OrderedCollection[2]
>> Arguments:
>>     anAccessor = a Glorp.VWDatabaseAccessor
>> Context PC = 4
>>
>> ----------------------------------------------------------------------
>> optimized [] in [] in
>> Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>> Receiver:
>>     an UndefinedObject
>> Temporaries:
>>     .self = a Glorp.VWDatabaseAccessor
>>     .command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
>> Context PC = 15
>>
>> ----------------------------------------------------------------------
>> BlockClosure>>on:do:
>> Receiver:
>>     a BlockClosure
>> Instance Variables:
>>     method = CompiledBlock [] in [] in
>> Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>>     outerContext = nil
>>     copiedValues = an Array[2]
>> Arguments:
>>     anExceptionSelector = Error
>>     handlerBlock = BlockClosure [] in [] in
>> Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>> Context PC = 18
>>
>> ----------------------------------------------------------------------
>> optimized [] in Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>> Receiver:
>>     an UndefinedObject
>> Temporaries:
>>     result = nil
>>     .self = a Glorp.VWDatabaseAccessor
>>     .command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
>>     .aBoolean = true
>> Context PC = 21
>>
>> ----------------------------------------------------------------------
>> BlockClosure>>ensure:
>> Receiver:
>>     a BlockClosure
>> Instance Variables:
>>     method = CompiledBlock [] in
>> Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>>     outerContext = nil
>>     copiedValues = an Array[3]
>> Arguments:
>>     aBlock = BlockClosure [] in Semaphore>>critical:
>> Temporaries:
>>     result = nil
>> Context PC = 4
>>
>> ----------------------------------------------------------------------
>> Semaphore>>critical:
>> Receiver:
>>     a Semaphore
>> Instance Variables:
>>     firstLink = nil
>>     lastLink = nil
>>     excessSignals = 0
>> Arguments:
>>     mutuallyExcludedBlock = BlockClosure [] in
>> Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>> Context PC = 10
>>
>> ----------------------------------------------------------------------
>> Glorp.VWDatabaseAccessor(Glorp.DatabaseAccessor)>>executeCommand:returnCursor:
>>
>> Receiver:
>>     a Glorp.VWDatabaseAccessor
>> Instance Variables:
>>     connection = an OracleConnection( hsvcctx = 47D8DA8 )
>>     currentLogin = a Login(a Glorp.OraclePlatform, 'store',
>> 'store771', 'store')
>>     logging = false
>>     reusePreparedStatements = true
>>     deniedCommands = nil
>>     mutex = a Semaphore[0]
>>     dependents = nil
>>     driverSession = an OracleSession( hstmt = 4C60A80 )
>>     preparedStatements = a Glorp.CacheManager
>> Arguments:
>>     command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
>>     aBoolean = true
>> Context PC = 10
>>
>> ----------------------------------------------------------------------
>> optimized [] in Glorp.SimpleQuery>>rowsFromDatabaseWithParameters:
>> Receiver:
>>     an UndefinedObject
>> Temporaries:
>>     .self = a SimpleQuery for StoreBundle
>>     .command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
>> Context PC = 9
>>
>> ----------------------------------------------------------------------
>> BlockClosure>>on:do:
>> Receiver:
>>     a BlockClosure
>> Instance Variables:
>>     method = CompiledBlock [] in
>> Glorp.SimpleQuery>>rowsFromDatabaseWithParameters:
>>     outerContext = nil
>>     copiedValues = an Array[2]
>> Arguments:
>>     anExceptionSelector = Glorp.GlorpDatabaseReadError
>>     handlerBlock = BlockClosure [] in
>> Glorp.SimpleQuery>>rowsFromDatabaseWithParameters:
>> Context PC = 18
>>
>> ----------------------------------------------------------------------
>> Glorp.SimpleQuery>>rowsFromDatabaseWithParameters:
>> Receiver:
>>     a Glorp.SimpleQuery
>> Instance Variables:
>>     session = a Glorp.GlorpSession
>>     prepared = true
>>     expectedRows = 1
>>     collectionType = nil
>>     ordering = nil
>>     maximumLobSizeToRetrieveDirectly = 32768
>>     readsOneObject = true
>>     groupBy = nil
>>     resultClass = Store.Glorp.StoreBundle
>>     whereClause = Base(Store.Glorp.StoreBundle).timestamp = February
>> 7, 2008 9:50:20 AM AND Base(Store.Glorp.StoreBundle).name = 'Base
>> VisualWorks'
>>     base = Base(Store.Glorp.StoreBundle)
>>     limit = 1
>>     offset = nil
>>     proxyType = nil
>>     shouldRefresh = false
>>     tracing = a Glorp.Tracing
>>     builders = an Array[1]
>>     fields = an OrderedCollection[9]
>>     joins = an OrderedCollection[0]
>>     tablePrefix = nil
>>     customCommand = nil
>>     tablesToPrint = a SortedCollection[1]
>> Arguments:
>>     anArray = an Array[0]
>> Temporaries:
>>     alreadyTriedAction = true
>>     command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
>> Context PC = 43
>>
>> ----------------------------------------------------------------------
>> Glorp.SimpleQuery(Glorp.AbstractReadQuery)>>readFromDatabaseWithParameters:
>>
>> Receiver:
>>     a Glorp.SimpleQuery
>> Instance Variables:
>>     session = a Glorp.GlorpSession
>>     prepared = true
>>     expectedRows = 1
>>     collectionType = nil
>>     ordering = nil
>>     maximumLobSizeToRetrieveDirectly = 32768
>>     readsOneObject = true
>>     groupBy = nil
>>     resultClass = Store.Glorp.StoreBundle
>>     whereClause = Base(Store.Glorp.StoreBundle).timestamp = February
>> 7, 2008 9:50:20 AM AND Base(Store.Glorp.StoreBundle).name = 'Base
>> VisualWorks'
>>     base = Base(Store.Glorp.StoreBundle)
>>     limit = 1
>>     offset = nil
>>     proxyType = nil
>>     shouldRefresh = false
>>     tracing = a Glorp.Tracing
>>     builders = an Array[1]
>>     fields = an OrderedCollection[9]
>>     joins = an OrderedCollection[0]
>>     tablePrefix = nil
>>     customCommand = nil
>>     tablesToPrint = a SortedCollection[1]
>> Arguments:
>>     anArray = an Array[0]
>> Temporaries:
>>     answerStream = nil
>>     result = nil
>> Context PC = 5
>>
>> ----------------------------------------------------------------------
>> Glorp.SimpleQuery(Glorp.AbstractReadQuery)>>executeWithParameters:in:
>> Receiver:
>>     a Glorp.SimpleQuery
>> Instance Variables:
>>     session = a Glorp.GlorpSession
>>     prepared = true
>>     expectedRows = 1
>>     collectionType = nil
>>     ordering = nil
>>     maximumLobSizeToRetrieveDirectly = 32768
>>     readsOneObject = true
>>     groupBy = nil
>>     resultClass = Store.Glorp.StoreBundle
>>     whereClause = Base(Store.Glorp.StoreBundle).timestamp = February
>> 7, 2008 9:50:20 AM AND Base(Store.Glorp.StoreBundle).name = 'Base
>> VisualWorks'
>>     base = Base(Store.Glorp.StoreBundle)
>>     limit = 1
>>     offset = nil
>>     proxyType = nil
>>     shouldRefresh = false
>>     tracing = a Glorp.Tracing
>>     builders = an Array[1]
>>     fields = an OrderedCollection[9]
>>     joins = an OrderedCollection[0]
>>     tablePrefix = nil
>>     customCommand = nil
>>     tablesToPrint = a SortedCollection[1]
>> Arguments:
>>     parameterArray = an Array[0]
>>     aSession = a Glorp.GlorpSession
>> Context PC = 35
>>
>> ----------------------------------------------------------------------
>> Glorp.GlorpSession>>execute:
>> Receiver:
>>     a Glorp.GlorpSession
>> Instance Variables:
>>     system = a Store.Glorp.Store74DescriptorSystem
>>     currentUnitOfWork = nil
>>     cache = a Glorp.CacheManager
>>     accessor = a Glorp.VWDatabaseAccessor
>>     applicationData = nil
>>     reaper = nil
>>     errorAction = nil
>>     modificationTracker = nil
>> Arguments:
>>     aQuery = a SimpleQuery for StoreBundle
>> Context PC = 5
>>
>> ----------------------------------------------------------------------
>> Glorp.GlorpSession>>readOneOf:where:
>> Receiver:
>>     a Glorp.GlorpSession
>> Instance Variables:
>>     system = a Store.Glorp.Store74DescriptorSystem
>>     currentUnitOfWork = nil
>>     cache = a Glorp.CacheManager
>>     accessor = a Glorp.VWDatabaseAccessor
>>     applicationData = nil
>>     reaper = nil
>>     errorAction = nil
>>     modificationTracker = nil
>> Arguments:
>>     aClass = Store.Glorp.StoreBundle
>>     aBlock = BlockClosure [] in
>> Store.Glorp.StorePundleWriter>>readPreviousVersion
>> Context PC = 8
>>
>> ----------------------------------------------------------------------
>> Store.Glorp.StorePundleWriter>>readPreviousVersion
>> Receiver:
>>     a Store.Glorp.StorePundleWriter
>> Instance Variables:
>>     pundle = StoreBundle(Base VisualWorks,vw771-sps0)
>>     newPundle = nil
>>     previousVersionInTargetDatabase = an Object
>>     targetSession = a Glorp.GlorpSession
>>     preWriteAction = nil
>>     splitPundles = true
>>     notificationQueue = nil
>> Context PC = 12
>>
>> ----------------------------------------------------------------------
>> Store.Glorp.StorePundleWriter>>previousVersionInTargetDatabase
>> Receiver:
>>     a Store.Glorp.StorePundleWriter
>> Instance Variables:
>>     pundle = StoreBundle(Base VisualWorks,vw771-sps0)
>>     newPundle = nil
>>     previousVersionInTargetDatabase = an Object
>>     targetSession = a Glorp.GlorpSession
>>     preWriteAction = nil
>>     splitPundles = true
>>     notificationQueue = nil
>> Context PC = 18
>>
>> ----------------------------------------------------------------------
>> Store.Glorp.StorePundleWriter>>isPreviousVersionPresent
>> Receiver:
>>     a Store.Glorp.StorePundleWriter
>> Instance Variables:
>>     pundle = StoreBundle(Base VisualWorks,vw771-sps0)
>>     newPundle = nil
>>     previousVersionInTargetDatabase = an Object
>>     targetSession = a Glorp.GlorpSession
>>     preWriteAction = nil
>>     splitPundles = true
>>     notificationQueue = nil
>> Context PC = 4
>>
>> ----------------------------------------------------------------------
>> Store.Glorp.StorePundleWriter>>writePundlePhase1:withChangesBasedOn:using:
>>
>> Receiver:
>>     a Store.Glorp.StorePundleWriter
>> Instance Variables:
>>     pundle = StoreBundle(Base VisualWorks,vw771-sps0)
>>     newPundle = nil
>>     previousVersionInTargetDatabase = an Object
>>     targetSession = a Glorp.GlorpSession
>>     preWriteAction = nil
>>     splitPundles = true
>>     notificationQueue = nil
>> Arguments:
>>     aPundle = StoreBundle(Base VisualWorks,vw771-sps0)
>>     anImagePundle = {Base VisualWorks}
>>     aCollection = an OrderedCollection[117]
>> Context PC = 11
>>
>> ----------------------------------------------------------------------
>> Store.Glorp.StorePundleWriter>>writePundle:withChangesBasedOn:using:
>> Receiver:
>>     a Store.Glorp.StorePundleWriter
>> Instance Variables:
>>     pundle = StoreBundle(Base VisualWorks,vw771-sps0)
>>     newPundle = nil
>>     previousVersionInTargetDatabase = an Object
>>     targetSession = a Glorp.GlorpSession
>>     preWriteAction = nil
>>     splitPundles = true
>>     notificationQueue = nil
>> Arguments:
>>     aPundle = StoreBundle(Base VisualWorks,vw771-sps0)
>>     anImagePundle = {Base VisualWorks}
>>     aCollection = an OrderedCollection[117]
>> Context PC = 7
>>
>> ----------------------------------------------------------------------
>> optimized [] in [] in Store.PublishSpecificationList>>publishSilently
>> Receiver:
>>     an UndefinedObject
>> Temporaries:
>>     .self = a Store.PublishSpecificationList[117]
>>     newPundle = nil
>>     targetPundles = an OrderedCollection[117]
>> Context PC = 16
>>
>> ----------------------------------------------------------------------
>> BlockClosure>>on:do:
>> Receiver:
>>     a BlockClosure
>> Instance Variables:
>>     method = CompiledBlock [] in [] in
>> Store.PublishSpecificationList>>publishSilently
>>     outerContext = nil
>>     copiedValues = an Array[2]
>> Arguments:
>>     anExceptionSelector = Glorp.GlorpDatabaseWriteError
>>     handlerBlock = BlockClosure [] in [] in
>> Store.PublishSpecificationList>>publishSilently
>> Context PC = 18
>>
>> ----------------------------------------------------------------------
>> [] in Store.PublishSpecificationList>>publishSilently
>> Receiver:
>>     a Store.PublishSpecificationList
>> Instance Variables:
>>     dependents = a SequenceView
>>     collection = an Array[192]
>>     limit = 117
>>     collectionSize = 192
>>     publisher = a Store.Glorp.StorePundleWriter
>>     notificationQueue = nil
>> Temporaries:
>>     .self = a Store.PublishSpecificationList[117]
>>     newPundle = nil
>>     targetPundles = an OrderedCollection[117]
>> Context PC = 17
>>
>> ----------------------------------------------------------------------
>> Store.PublishSpecificationList>>publishSilently
>> Receiver:
>>     a Store.PublishSpecificationList
>> Instance Variables:
>>     dependents = a SequenceView
>>     collection = an Array[192]
>>     limit = 117
>>     collectionSize = 192
>>     publisher = a Store.Glorp.StorePundleWriter
>>     notificationQueue = nil
>> Temporaries:
>>     newPundle = nil
>>     targetPundles = an OrderedCollection[117]
>> Context PC = 29
>>
>> ----------------------------------------------------------------------
>> Store.PublishSpecificationList>>publishPundle
>> Receiver:
>>     a Store.PublishSpecificationList
>> Instance Variables:
>>     dependents = a SequenceView
>>     collection = an Array[192]
>>     limit = 117
>>     collectionSize = 192
>>     publisher = a Store.Glorp.StorePundleWriter
>>     notificationQueue = nil
>> Temporaries:
>>     pundle = nil
>> Context PC = 8
>>
>> ----------------------------------------------------------------------
>> optimized [] in Store.PublishPundleDialog>>accept
>> Receiver:
>>     an UndefinedObject
>> Temporaries:
>>     .self = a Store.PublishPundleDialog
>> Context PC = 7
>>
>> ----------------------------------------------------------------------
>> optimized [] in Store.StoreProgressOverlay class>>subsumeAll:while:
>> Receiver:
>>     an UndefinedObject
>> Temporaries:
>>     .windowsToSubsume = an Array[1]
>>     .self = Store.StoreProgressOverlay
>>     overlays = an Array[1]
>>     .aBlock = BlockClosure [] in Store.PublishPundleDialog>>accept
>> Context PC = 14
>>
>> ----------------------------------------------------------------------
>> BlockClosure>>ensure:
>> Receiver:
>>     a BlockClosure
>> Instance Variables:
>>     method = CompiledBlock [] in Store.StoreProgressOverlay
>> class>>subsumeAll:while:
>>     outerContext = nil
>>     copiedValues = an Array[4]
>> Arguments:
>>     aBlock = BlockClosure [] in Store.StoreProgressOverlay
>> class>>subsumeAll:while:
>> Temporaries:
>>     result = nil
>> Context PC = 4
>>
>> ----------------------------------------------------------------------
>> Store.StoreProgressOverlay class>>subsumeAll:while:
>> Receiver:
>>     a Store.StoreProgressOverlay class
>> Instance Variables:
>>     superclass = Panel
>>     methodDict = a MethodDictionary[12]
>>     format = 16394
>>     subclasses = nil
>>     instanceVariables = an Array[3]
>>     organization = ('initialize-release' #addProgressView
>> #initializeLayoutAlgorithm #restoreOriginal #subsume:)
>> ('private' #backdrop #dropdownGradient #dropdownRectangle
>> #progressView #regularView #washOutBackdropImage)
>> ('displaying' #displayDropdownOn: #displayPart:on:)
>>
>>     name = #StoreProgressOverlay
>>     classPool = a NameSpaceOfClass[0]
>>     environment = a NameSpace[313]
>> Arguments:
>>     aWindowCollection = an Array[1]
>>     aBlock = BlockClosure [] in Store.PublishPundleDialog>>accept
>> Temporaries:
>>     overlays = an Array[1]
>>     windowsToSubsume = an Array[1]
>> Context PC = 22
>>
>> ----------------------------------------------------------------------
>> Store.StoreProgressOverlay class>>subsume:while:
>> Receiver:
>>     a Store.StoreProgressOverlay class
>> Instance Variables:
>>     superclass = Panel
>>     methodDict = a MethodDictionary[12]
>>     format = 16394
>>     subclasses = nil
>>     instanceVariables = an Array[3]
>>     organization = ('initialize-release' #addProgressView
>> #initializeLayoutAlgorithm #restoreOriginal #subsume:)
>> ('private' #backdrop #dropdownGradient #dropdownRectangle
>> #progressView #regularView #washOutBackdropImage)
>> ('displaying' #displayDropdownOn: #displayPart:on:)
>>
>>     name = #StoreProgressOverlay
>>     classPool = a NameSpaceOfClass[0]
>>     environment = a NameSpace[313]
>> Arguments:
>>     aWindowOrNil = a ScheduledWindow 7626
>>     aBlock = BlockClosure [] in Store.PublishPundleDialog>>accept
>> Context PC = 9
>>
>> ----------------------------------------------------------------------
>> Store.PublishPundleDialog>>accept
>> Receiver:
>>     a Store.PublishPundleDialog
>> Instance Variables:
>>     dependents = a ScheduledWindow 7626
>>     builder = an UIBuilder
>>     uiSession = a ControlManager
>>     eventHandlers = nil
>>     list = a SelectionInList
>>     disturbed = a ValueHolder on: false
>>     subBuilder = an UIBuilder
>>     items = a SelectionInList
>>     blessingLevel = a ValueHolder on: 99
>>     blessingComment = a ValueHolder on: Text for 'From the Cincom
>> release cd'
>>     publish = a ValueHolder on: true
>>     versionString = a ValueHolder on: 'vw771-sps0'
>>     binarySave = a ValueHolder on: false
>>     parcelSave = a ValueHolder on: false
>>     bundleStructure = a ValueHolder on: false
>>     databaseLinks = a ValueHolder on: false
>>     parcelDirectory = a ValueHolder on: 'Base VisualWorks'
>>     parcelSaveSource = a ValueHolder on: true
>>     parcelHideSource = a ValueHolder on: false
>>     parcelPadded = a ValueHolder on: false
>>     parcelRepublish = a ValueHolder on: false
>>     parcelBackup = a ValueHolder on: false
>>     parcelOverwrite = a ValueHolder on: false
>>     parcelWarningMessage = ''
>>     labelDict = a Dictionary[117]
>>     offsets = an Array[4]
>>     callBackBlock = nil
>>     retry = false
>>     files = a SelectionInList
>>     publishFile = nil
>>     parcelVersionString = a ValueHolder on: 'vw77'
>> Temporaries:
>>     navigatorClass = nil
>> Context PC = 32
>>
>> ----------------------------------------------------------------------
>> optimized [] in ApplicationModel>>actionFor:
>> Receiver:
>>     an UndefinedObject
>> Temporaries:
>>     .self = a Store.PublishPundleDialog
>>     .aKey = #accept
>> Context PC = 7
>>
>> ----------------------------------------------------------------------
>> optimized [] in ActionButtonSpec>>typeConvert:
>> Receiver:
>>     an UndefinedObject
>> Arguments:
>>     b = a ValueHolder on: nil
>>     v = true
>> Temporaries:
>>     .aValue = BlockClosure [] in ApplicationModel>>actionFor:
>> Context PC = 5
>>
>> ----------------------------------------------------------------------
>> PluggableAdaptor>>setValue:
>> Receiver:
>>     a PluggableAdaptor
>> Instance Variables:
>>     dependents = a WinXPActionButtonView
>>     model = a ValueHolder on: nil
>>     getBlock = BlockClosure [] in ActionButtonSpec>>typeConvert:
>>     putBlock = BlockClosure [] in ActionButtonSpec>>typeConvert:
>>     updateBlock = BlockClosure [] in ActionButtonSpec>>typeConvert:
>> Arguments:
>>     newValue = true
>> Context PC = 6
>>
>> ----------------------------------------------------------------------
>> PluggableAdaptor(ValueModel)>>value:
>> Receiver:
>>     a PluggableAdaptor
>> Instance Variables:
>>     dependents = a WinXPActionButtonView
>>     model = a ValueHolder on: nil
>>     getBlock = BlockClosure [] in ActionButtonSpec>>typeConvert:
>>     putBlock = BlockClosure [] in ActionButtonSpec>>typeConvert:
>>     updateBlock = BlockClosure [] in ActionButtonSpec>>typeConvert:
>> Arguments:
>>     newValue = true
>> Context PC = 5
>>
>> ----------------------------------------------------------------------
>> WinXPTriggerButtonController(TriggerButtonController)>>pressAction
>> Receiver:
>>     a WinXPTriggerButtonController
>> Instance Variables:
>>     model = a PluggableAdaptor
>>     view = a WinXPActionButtonView
>>     sensor = a TranslatingSensor
>>     keyboardHook = nil
>>     dispatcher = nil
>> Context PC = 17
>>
>> ----------------------------------------------------------------------
>> TriggerButtonTracker(BasicButtonTracker)>>finishSelectionFor:
>> Receiver:
>>     a TriggerButtonTracker
>> Instance Variables:
>>     controller = a WinXPTriggerButtonController
>>     inside = true
>> Arguments:
>>     aPoint = 51 @ 9
>> Context PC = 8
>>
>> ----------------------------------------------------------------------
>> TriggerButtonTracker>>finishSelectionFor:
>> Receiver:
>>     a TriggerButtonTracker
>> Instance Variables:
>>     controller = a WinXPTriggerButtonController
>>     inside = true
>> Arguments:
>>     aPoint = 51 @ 9
>> Context PC = 11
>>
>> ----------------------------------------------------------------------
>> TriggerButtonTracker(SelectionTracker)>>redButtonReleasedEvent:
>> Receiver:
>>     a TriggerButtonTracker
>> Instance Variables:
>>     controller = a WinXPTriggerButtonController
>>     inside = true
>> Arguments:
>>     aMouseButtonEvent = a RedButtonReleasedEvent
>> Context PC = 13
>>
>> ----------------------------------------------------------------------
>> RedButtonReleasedEvent>>dispatchTo:
>> Receiver:
>>     a RedButtonReleasedEvent
>> Instance Variables:
>>     time = 8718359
>>     initiator = an EventDispatcher
>>     window = a ScheduledWindow 7626
>>     state = 0
>>     x = 336
>>     y = 524
>>     gx = 701
>>     gy = 746
>>     buttonNumber = 1
>> Arguments:
>>     anObject = a TriggerButtonTracker
>> Context PC = 4
>>
>> ----------------------------------------------------------------------
>> TriggerButtonTracker(SelectionTracker)>>handleEvent:
>> Receiver:
>>     a TriggerButtonTracker
>> Instance Variables:
>>     controller = a WinXPTriggerButtonController
>>     inside = true
>> Arguments:
>>     anEvent = a RedButtonReleasedEvent
>> Context PC = 4
>>
>> ----------------------------------------------------------------------
>> EventDispatcher>>dispatch:to:
>> Receiver:
>>     an EventDispatcher
>> Instance Variables:
>>     windowController = an ApplicationStandardSystemController
>>     currentMouseConsumer = nil
>>     grabbingMouse = false
>>     lastControlObject = nil
>>     trapList = nil
>>     state = nil
>>     repairDamageWhenDebugging = true
>>     flushQueueAfterError = true
>>     distributeEventsWhenDebugging = true
>>     dragDropInProgress = false
>>     dragDropTracker = nil
>>     dispatchUnknownEvents = false
>> Arguments:
>>     event = a RedButtonReleasedEvent
>>     object = a TriggerButtonTracker
>> Temporaries:
>>     tmp = nil
>> Context PC = 10
>>
>> ----------------------------------------------------------------------
>> [] in EventDispatcher>>dispatchEvent:
>> Receiver:
>>     an EventDispatcher
>> Instance Variables:
>>     windowController = an ApplicationStandardSystemController
>>     currentMouseConsumer = nil
>>     grabbingMouse = false
>>     lastControlObject = nil
>>     trapList = nil
>>     state = nil
>>     repairDamageWhenDebugging = true
>>     flushQueueAfterError = true
>>     distributeEventsWhenDebugging = true
>>     dragDropInProgress = false
>>     dragDropTracker = nil
>>     dispatchUnknownEvents = false
>> Temporaries:
>>     .self = an EventDispatcher
>>     .event = a RedButtonReleasedEvent
>> Context PC = 9
>>
>> ----------------------------------------------------------------------
>> BlockClosure>>on:do:
>> Receiver:
>>     a BlockClosure
>> Instance Variables:
>>     method = CompiledBlock [] in EventDispatcher>>dispatchEvent:
>>     outerContext = EventDispatcher>>dispatchEvent:
>>     copiedValues = an Array[2]
>> Arguments:
>>     anExceptionSelector = ClosedWindowNotification
>>     handlerBlock = BlockClosure [] in EventDispatcher>>dispatchEvent:
>> Context PC = 18
>>
>> ----------------------------------------------------------------------
>> EventDispatcher>>dispatchEvent:
>> Receiver:
>>     an EventDispatcher
>> Instance Variables:
>>     windowController = an ApplicationStandardSystemController
>>     currentMouseConsumer = nil
>>     grabbingMouse = false
>>     lastControlObject = nil
>>     trapList = nil
>>     state = nil
>>     repairDamageWhenDebugging = true
>>     flushQueueAfterError = true
>>     distributeEventsWhenDebugging = true
>>     dragDropInProgress = false
>>     dragDropTracker = nil
>>     dispatchUnknownEvents = false
>> Arguments:
>>     event = a RedButtonReleasedEvent
>> Temporaries:
>>     objectWantingControl = nil
>>     targetKeyboardProcessor = nil
>> Context PC = 68
>>
>> ----------------------------------------------------------------------
>> RedButtonReleasedEvent(Event)>>dispatch
>> Receiver:
>>     a RedButtonReleasedEvent
>> Instance Variables:
>>     time = 8718359
>>     initiator = an EventDispatcher
>>     window = a ScheduledWindow 7626
>>     state = 0
>>     x = 336
>>     y = 524
>>     gx = 701
>>     gy = 746
>>     buttonNumber = 1
>> Context PC = 16
>>
>> ----------------------------------------------------------------------
>> RedButtonReleasedEvent(Event)>>dispatchForWindowManager:
>> Receiver:
>>     a RedButtonReleasedEvent
>> Instance Variables:
>>     time = 8718359
>>     initiator = an EventDispatcher
>>     window = a ScheduledWindow 7626
>>     state = 0
>>     x = 336
>>     y = 524
>>     gx = 701
>>     gy = 746
>>     buttonNumber = 1
>> Arguments:
>>     aWinMgr = a WindowManager
>> Context PC = 4
>>
>> ----------------------------------------------------------------------
>> optimized [] in WindowManager>>safelyDispatchForWindowManager:
>> Receiver:
>>     an UndefinedObject
>> Temporaries:
>>     .event = a RedButtonReleasedEvent
>>     .self = a WindowManager
>> Context PC = 6
>>
>> ----------------------------------------------------------------------
>> BlockClosure>>on:do:
>> Receiver:
>>     a BlockClosure
>> Instance Variables:
>>     method = CompiledBlock [] in
>> WindowManager>>safelyDispatchForWindowManager:
>>     outerContext = nil
>>     copiedValues = an Array[2]
>> Arguments:
>>     anExceptionSelector = BadControllerError
>>     handlerBlock = BlockClosure [] in
>> WindowManager>>safelyDispatchForWindowManager:
>> Context PC = 18
>>
>> ----------------------------------------------------------------------
>> WindowManager>>safelyDispatchForWindowManager:
>> Receiver:
>>     a WindowManager
>> Instance Variables:
>>     windows = an OrderedCollection[2]
>>     activeController = nil
>>     interruptLock = false
>>     outstandingMetaOrDamage = false
>>     openInProgress = false
>>     eventQueue = an EventQueue
>>     baseProcess = a Process in Semaphore>>waitIfCurtailedSignal
>>     dontFilterEvents = false
>> Arguments:
>>     event = a RedButtonReleasedEvent
>> Context PC = 13
>>
>> ----------------------------------------------------------------------
>> WindowManager>>processNextEvent
>> Receiver:
>>     a WindowManager
>> Instance Variables:
>>     windows = an OrderedCollection[2]
>>     activeController = nil
>>     interruptLock = false
>>     outstandingMetaOrDamage = false
>>     openInProgress = false
>>     eventQueue = an EventQueue
>>     baseProcess = a Process in Semaphore>>waitIfCurtailedSignal
>>     dontFilterEvents = false
>> Temporaries:
>>     event = a RedButtonReleasedEvent
>> Context PC = 9
>>
>> ----------------------------------------------------------------------
>> optimized [] in [] in WindowManager>>newProcess
>> Receiver:
>>     an UndefinedObject
>> Temporaries:
>>     .self = a WindowManager
>> Context PC = 13
>>
>> ----------------------------------------------------------------------
>> BlockClosure>>on:do:
>> Receiver:
>>     a BlockClosure
>> Instance Variables:
>>     method = CompiledBlock [] in [] in WindowManager>>newProcess
>>     outerContext = nil
>>     copiedValues = a WindowManager
>> Arguments:
>>     anExceptionSelector = TerminateException
>>     handlerBlock = BlockClosure [] in [] in WindowManager>>newProcess
>> Context PC = 18
>>
>> ----------------------------------------------------------------------
>> optimized [] in WindowManager>>newProcess
>> Receiver:
>>     an UndefinedObject
>> Temporaries:
>>     .self = a WindowManager
>> Context PC = 15
>>
>> ----------------------------------------------------------------------
>> BlockClosure>>on:do:
>> Receiver:
>>     a BlockClosure
>> Instance Variables:
>>     method = CompiledBlock [] in WindowManager>>newProcess
>>     outerContext = nil
>>     copiedValues = a WindowManager
>> Arguments:
>>     anExceptionSelector = TerminateException
>>     handlerBlock = BlockClosure [] in [] in Process
>> class>>forBlock:priority:
>> Context PC = 18
>>
>> ----------------------------------------------------------------------
>> optimized [] in Process class>>forBlock:priority:
>> Receiver:
>>     an UndefinedObject
>> Temporaries:
>>     .aBlock = BlockClosure [] in WindowManager>>newProcess
>> Context PC = 9
>>  
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> vwnc mailing list
>> [hidden email]
>> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
>>  
>>
>
>
>


--
*********************************************************************

Dit e-mailbericht is alleen bestemd voor de geadresseerde(n).

Gebruik door anderen is niet toegestaan. Indien u niet degeadresseerde(n) bent wordt u verzocht de verzender hiervan op de hoogte te stellen en het bericht te verwijderen. Door de elektronische verzending kunnen aan de inhoud van dit bericht geen rechten worden ontleend.

Soops B.V. is gevestigd te Amsterdam, Nederland, en is geregistreerd bij de Kamer van Koophandel onder nummer 33240368.
Soops B.V. levert volgens de Fenit voorwaarden, gedeponeerd te Den Haag op 8 december 1994 onder nummer 1994/189.
**********************************************************************

This e-mail message is intended to be exclusively for the addressee.

If you are not the intended recipient you are kindly requested not to make any use whatsoever of the contents and to notify the sender immediately by returning this e-mail message. No rights can be derived from this message.

Soops B.V. is a private limited liability company and has its seat at Amsterdam, The Netherlands and is registered with the Trade Registry of the Chamber of Commerce and Industry under number 33240368.
Soops B.V. delivers according to the General Terms and Conditions of Business of Fenit, registered at The Hague, The Netherlands on December 8th, 1994, under number 1994/189
**********************************************************************


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: ORA-01000: maximum open cursors exceeded (was [7.7.1] Publishing base fails)

Alan Knight-2
So, the issue in that is likely that Glorp sessions are holding on to too many prepared statements. The way that StoreGlorp works it does not keep around a single Glorp session, but rather creates them as needed and then discards them. If you don't explicitly issue a #reset when discarding the session, then it may hold on to Oracle resources until it is garbage collected and finalization releases them. It's not clear to me why that would be happening in the case that you describe, and that's not something that we've seen, but the cause is fairly clear - we have too many Oracle resources that haven't been released yet.

One place we did run into this was introducing an optimization into reconciliation where we used a separate session for each package and discarded them, thus removing the need to clean up weak references in the cache. But that optimization was only introduced in the 7.8 builds.

So, a specific solution is to make sure that you do a session reset before discarding a Glorp session. That might be the fix you got from support. There are a number of possible more general solutions.
  - Increase your resource limit on Oracle :-)
  - In StoreLoginFactory>>currentStoreSession, modify it to send "reusePreparedStatements: false". This will remove one of the caching optimizations it uses for these resources. It may make things a bit slower. It also may not fix the problem, I haven't tried it, but I suspect that's the critical resource.
  - Most easily, use StoreForThreadedOracle. Again, I haven't tried this, although it's what I use by default. This makes Store use a THAPI connection to Oracle so that the image does not block during database calls. This might slow down the database operations slightly by needing to make THAPI calls, though I suspect the overall throughput is likely to be at least as good. But it lets the image run while those calls are in progress, which is more likely to give the finalization processes the opportunity to run.

At 12:20 PM 2010-08-19, Reinout Heeck wrote:
Niall Ross wrote:
> Dear Reinout,
>    on all occasions when I get this error, I find that walking up the
> stack slightly and restarting lets the operation complete fine. 
> Hardly the ideal workaround but it does mean you can get the operation
> completed.  On one occasion (when I was doing a massive database GC
> taking several hours), I got it twice but each time was able to walk
> up the stack a little, restart and carry on.

Thats what I did of course - I love smalltalk ;-)

For my situation it was necessary that the db connection was broken and
re-established, but that worked out alright in this case..

We received a patch instruction from Cincom support, but I'll have to
review that coming week -- at first blush it seems this patch only fixes
this problem in the Store reconciliation code and not generically....



Thanks!

Reinout
-------


>
> (If anyone finds this workaround does _not_ let them continue OK, that
> would be of interest.)
>
>          Yours faithfully
>             Niall Ross
>
>> We received the vw7.7.1 CD today, so I started to publish it into our
>> Store repository.
>>
>> Publishing Base Visualworks generates an error (ORA-01000: maximum
>> open cursors exceeded).
>>
>> I retried the operation but that gave the same result, stack dump
>> attached.
>>
>> Steps I took:
>> --copied our 7.6 repository (and changed the repository identifier).
>> --load StoreForOracle
>> --ran update77 and update 771
>> --'switch databases' to reconcile
>> --publish Base VisualWorks bundle
>>
>> Reinout
>> -------
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>> Unhandled exception:  ORA-01000: maximum open cursors exceeded
>>
>> Glorp.GlorpDatabaseReadError(Glorp.GlorpError)>>signal
>> Glorp.VWDatabaseAccessor(Glorp.DatabaseAccessor)>>handleError:for:
>> optimized [] in [] in
>> Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>> BlockClosure>>cull:
>> UnableToExecuteSQL(GenericException)>>performHandler:
>> UnableToExecuteSQL(GenericException)>>propagatePrivateFrom:
>> UnableToExecuteSQL(GenericException)>>propagateFrom:
>> UnableToExecuteSQL(GenericException)>>propagate
>> UnableToExecuteSQL(GenericException)>>raiseSignal
>> UnableToExecuteSQL class(GenericException class)>>raiseWith:errorString:
>> OracleSession>>resultsExternal
>> OracleSession>>executeExternal
>> optimized [] in ExternalDatabaseSession>>execute
>> BlockClosure>>ifCurtailed:
>> OracleSession(ExternalDatabaseSession)>>execute
>> Glorp.VWDatabaseAccessor>>executeCommand:inDBSession:
>> optimized [] in Glorp.VWDatabaseAccessor>>executeCommandBound:
>> Time class>>microsecondsToRun:
>> Time class>>millisecondsToRun:
>> Glorp.VWDatabaseAccessor>>executeCommandBound:
>> Glorp.QuerySelectCommand(Glorp.DatabaseCommand)>>executeBoundIn:
>> optimized [] in [] in
>> Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>> BlockClosure>>on:do:
>> optimized [] in Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>> BlockClosure>>ensure:
>> Semaphore>>critical:
>> Glorp.VWDatabaseAccessor(Glorp.DatabaseAccessor)>>executeCommand:returnCursor:
>>
>> optimized [] in Glorp.SimpleQuery>>rowsFromDatabaseWithParameters:
>> BlockClosure>>on:do:
>> Glorp.SimpleQuery>>rowsFromDatabaseWithParameters:
>> Glorp.SimpleQuery(Glorp.AbstractReadQuery)>>readFromDatabaseWithParameters:
>>
>> Glorp.SimpleQuery(Glorp.AbstractReadQuery)>>executeWithParameters:in:
>> Glorp.GlorpSession>>execute:
>> Glorp.GlorpSession>>readOneOf:where:
>> Store.Glorp.StorePundleWriter>>readPreviousVersion
>> Store.Glorp.StorePundleWriter>>previousVersionInTargetDatabase
>> Store.Glorp.StorePundleWriter>>isPreviousVersionPresent
>> Store.Glorp.StorePundleWriter>>writePundlePhase1:withChangesBasedOn:using:
>>
>> Store.Glorp.StorePundleWriter>>writePundle:withChangesBasedOn:using:
>> optimized [] in [] in Store.PublishSpecificationList>>publishSilently
>> BlockClosure>>on:do:
>> [] in Store.PublishSpecificationList>>publishSilently
>> Store.PublishSpecificationList>>publishSilently
>> Store.PublishSpecificationList>>publishPundle
>> optimized [] in Store.PublishPundleDialog>>accept
>> optimized [] in Store.StoreProgressOverlay class>>subsumeAll:while:
>> BlockClosure>>ensure:
>> Store.StoreProgressOverlay class>>subsumeAll:while:
>> Store.StoreProgressOverlay class>>subsume:while:
>> Store.PublishPundleDialog>>accept
>> optimized [] in ApplicationModel>>actionFor:
>> optimized [] in ActionButtonSpec>>typeConvert:
>> PluggableAdaptor>>setValue:
>> PluggableAdaptor(ValueModel)>>value:
>> WinXPTriggerButtonController(TriggerButtonController)>>pressAction
>> TriggerButtonTracker(BasicButtonTracker)>>finishSelectionFor:
>> TriggerButtonTracker>>finishSelectionFor:
>> TriggerButtonTracker(SelectionTracker)>>redButtonReleasedEvent:
>> RedButtonReleasedEvent>>dispatchTo:
>> TriggerButtonTracker(SelectionTracker)>>handleEvent:
>> EventDispatcher>>dispatch:to:
>> [] in EventDispatcher>>dispatchEvent:
>> BlockClosure>>on:do:
>> EventDispatcher>>dispatchEvent:
>> RedButtonReleasedEvent(Event)>>dispatch
>> RedButtonReleasedEvent(Event)>>dispatchForWindowManager:
>> optimized [] in WindowManager>>safelyDispatchForWindowManager:
>> BlockClosure>>on:do:
>> WindowManager>>safelyDispatchForWindowManager:
>> WindowManager>>processNextEvent
>> optimized [] in [] in WindowManager>>newProcess
>> BlockClosure>>on:do:
>> optimized [] in WindowManager>>newProcess
>> BlockClosure>>on:do:
>> optimized [] in Process class>>forBlock:priority:
>>
>> ----------------------------------------------------------------------
>> Glorp.GlorpDatabaseReadError(Glorp.GlorpError)>>signal
>> Receiver:
>>     a Glorp.GlorpDatabaseReadError
>> Instance Variables:
>>     messageText = ' ORA-01000: maximum open cursors exceeded
>> '
>>     originator = a Glorp.GlorpDatabaseReadError
>>     initialContext =
>> Glorp.GlorpDatabaseReadError(Glorp.GlorpError)>>signal
>>     firstUnwindContext = BlockClosure>>ifCurtailed:
>>     handlerContext = nil
>>     parameter = nil
>>     proceedBlock = nil
>>     isResumable = true
>>     signal = nil
>>     searchContext = Glorp.SimpleQuery>>rowsFromDatabaseWithParameters:
>>     command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
>>     databaseError = an UnableToExecuteSQL
>>     accessor = a Glorp.VWDatabaseAccessor
>> Context PC = 7
>>
>> ----------------------------------------------------------------------
>> Glorp.VWDatabaseAccessor(Glorp.DatabaseAccessor)>>handleError:for:
>> Receiver:
>>     a Glorp.VWDatabaseAccessor
>> Instance Variables:
>>     connection = an OracleConnection( hsvcctx = 47D8DA8 )
>>     currentLogin = a Login(a Glorp.OraclePlatform, 'store',
>> 'store771', 'store')
>>     logging = false
>>     reusePreparedStatements = true
>>     deniedCommands = nil
>>     mutex = a Semaphore[0]
>>     dependents = nil
>>     driverSession = an OracleSession( hstmt = 4C60A80 )
>>     preparedStatements = a Glorp.CacheManager
>> Arguments:
>>     exception = an UnableToExecuteSQL
>>     command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
>> Temporaries:
>>     errorClass = Glorp.GlorpDatabaseReadError
>>     error = a Glorp.GlorpDatabaseReadError
>> Context PC = 28
>>
>> ----------------------------------------------------------------------
>> optimized [] in [] in
>> Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>> Receiver:
>>     an UndefinedObject
>> Arguments:
>>     ex = an UnableToExecuteSQL
>> Temporaries:
>>     .self = a Glorp.VWDatabaseAccessor
>>     .command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
>> Context PC = 8
>>
>> ----------------------------------------------------------------------
>> BlockClosure>>cull:
>> Receiver:
>>     a BlockClosure
>> Instance Variables:
>>     method = CompiledBlock [] in [] in
>> Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>>     outerContext = nil
>>     copiedValues = an Array[2]
>> Arguments:
>>     anObject = an UnableToExecuteSQL
>> Context PC = 15
>>
>> ----------------------------------------------------------------------
>> UnableToExecuteSQL(GenericException)>>performHandler:
>> Receiver:
>>     an UnableToExecuteSQL
>> Instance Variables:
>>     messageText = ' ORA-01000: maximum open cursors exceeded
>> '
>>     originator = an OracleSession( hstmt = 4C5F62C )
>>     initialContext = OracleSession>>resultsExternal
>>     firstUnwindContext = BlockClosure>>ifCurtailed:
>>     handlerContext = BlockClosure>>on:do:
>>     parameter = an Array[1]
>>     proceedBlock = nil
>>     isResumable = false
>>     signal = nil
>>     searchContext = OracleSession>>resultsExternal
>> Arguments:
>>     aContext = BlockClosure>>on:do:
>> Temporaries:
>>     result = nil
>>     oldHandler = BlockClosure>>on:do:
>> Context PC = 39
>>
>> ----------------------------------------------------------------------
>> UnableToExecuteSQL(GenericException)>>propagatePrivateFrom:
>> Receiver:
>>     an UnableToExecuteSQL
>> Instance Variables:
>>     messageText = ' ORA-01000: maximum open cursors exceeded
>> '
>>     originator = an OracleSession( hstmt = 4C5F62C )
>>     initialContext = OracleSession>>resultsExternal
>>     firstUnwindContext = BlockClosure>>ifCurtailed:
>>     handlerContext = BlockClosure>>on:do:
>>     parameter = an Array[1]
>>     proceedBlock = nil
>>     isResumable = false
>>     signal = nil
>>     searchContext = OracleSession>>resultsExternal
>> Arguments:
>>     aContext = OracleSession>>resultsExternal
>> Temporaries:
>>     handler = BlockClosure>>on:do:
>> Context PC = 13
>>
>> ----------------------------------------------------------------------
>> UnableToExecuteSQL(GenericException)>>propagateFrom:
>> Receiver:
>>     an UnableToExecuteSQL
>> Instance Variables:
>>     messageText = ' ORA-01000: maximum open cursors exceeded
>> '
>>     originator = an OracleSession( hstmt = 4C5F62C )
>>     initialContext = OracleSession>>resultsExternal
>>     firstUnwindContext = BlockClosure>>ifCurtailed:
>>     handlerContext = BlockClosure>>on:do:
>>     parameter = an Array[1]
>>     proceedBlock = nil
>>     isResumable = false
>>     signal = nil
>>     searchContext = OracleSession>>resultsExternal
>> Arguments:
>>     startContext = OracleSession>>resultsExternal
>> Context PC = 9
>>
>> ----------------------------------------------------------------------
>> UnableToExecuteSQL(GenericException)>>propagate
>> Receiver:
>>     an UnableToExecuteSQL
>> Instance Variables:
>>     messageText = ' ORA-01000: maximum open cursors exceeded
>> '
>>     originator = an OracleSession( hstmt = 4C5F62C )
>>     initialContext = OracleSession>>resultsExternal
>>     firstUnwindContext = BlockClosure>>ifCurtailed:
>>     handlerContext = BlockClosure>>on:do:
>>     parameter = an Array[1]
>>     proceedBlock = nil
>>     isResumable = false
>>     signal = nil
>>     searchContext = OracleSession>>resultsExternal
>> Context PC = 5
>>
>> ----------------------------------------------------------------------
>> UnableToExecuteSQL(GenericException)>>raiseSignal
>> Receiver:
>>     an UnableToExecuteSQL
>> Instance Variables:
>>     messageText = ' ORA-01000: maximum open cursors exceeded
>> '
>>     originator = an OracleSession( hstmt = 4C5F62C )
>>     initialContext = OracleSession>>resultsExternal
>>     firstUnwindContext = BlockClosure>>ifCurtailed:
>>     handlerContext = BlockClosure>>on:do:
>>     parameter = an Array[1]
>>     proceedBlock = nil
>>     isResumable = false
>>     signal = nil
>>     searchContext = OracleSession>>resultsExternal
>> Context PC = 16
>>
>> ----------------------------------------------------------------------
>> UnableToExecuteSQL class(GenericException class)>>raiseWith:errorString:
>> Receiver:
>>     an UnableToExecuteSQL class
>> Instance Variables:
>>     superclass = ExternalDatabaseException
>>     methodDict = a MethodDictionary[1]
>>     format = 16394
>>     subclasses = an Array[5]
>>     instanceVariables = an Array[0]
>>     organization = ('printing' #defaultMessageText)
>>
>>     name = #UnableToExecuteSQL
>>     classPool = a NameSpaceOfClass[0]
>>     environment = a NameSpace[130]
>>     notifierString = nil
>> Arguments:
>>     parameter = an Array[1]
>>     aStringOrValuable = ' ORA-01000: maximum open cursors exceeded
>> '
>> Context PC = 26
>>
>> ----------------------------------------------------------------------
>> OracleSession>>resultsExternal
>> Receiver:
>>     an OracleSession
>> Instance Variables:
>>     stateHolder = a ValueHolder on: #executing
>>     traceStream = nil
>>     traceLevel = 0
>>     participants = a WeakArray[0]
>>     participantsSemaphore = a RecursionLock
>>     connection = an OracleConnection( hsvcctx = 47D8DA8 )
>>     query = 'SELECT t1.primaryKey, t1.name...tamp = ?) AND (t1.name =
>> ?))'
>>     queryFragments = an OrderedCollection[5]
>>     bindInput = an OrderedCollection[2]
>>     bindTemplate = an OrderedCollection[2]
>>     bindOutput = nil
>>     useNamedOutputBinding = false
>>     bindValues = an IdentityDictionary[2]
>>     resultTemplate = nil
>>     allocateForEachRow = true
>>     blockFactor = 1
>>     numColumns = nil
>>     columnDescriptions = nil
>>     rowAdaptors = nil
>>     rowBuffersHolder = a ValueHolder on: nil
>>     bufferIndex = nil
>>     answerStream = nil
>>     currentRow = nil
>>     scrollable = false
>>     needBinding = true
>>     resultsCache = nil
>>     hstmtHolder = a ValueHolder on: a CCompositePointer {04C5F62C}
>> (struct __OCIStmt * )
>>     herrHolder = a ValueHolder on: a CCompositePointer {047D82A4}
>> (struct __OCIError * )
>>     bindValuePointersHolder = a ValueHolder on: IdentityDictionary (1
>> -> an OracleBuffer 2 -> an OracleBuffer )
>>     maxLongBytes = 32768
>>     queryIsPLSQL = false
>>     currentRowIndex = nil
>>     totalRows = nil
>>     rowsInBlock = nil
>>     dependentLobs = a WeakDictionary[0]
>>     sqlPointerHolder = a ValueHolder on: a CPointer {00EEDF60}
>> (unsigned char * )
>>     maxBindSize = 1
>>     answerLobProxy = false
>>     defaultDisplayLobSize = 32768
>>     isReleasedFromCacheHolder = a ValueHolder on: true
>>     lobBufferSize = 32768
>>     reuseColumnBuffers = false
>>     definePointerHolder = a ValueHolder on: nil
>>     bindPointerHolder = a ValueHolder on: a CPointer {06658870}
>> (struct __OCIBind * * )
>> Temporaries:
>>     errs = an OrderedCollection[1]
>>     errorParameter = an Array[1]
>>     error = an OracleError
>>     signal = UnableToExecuteSQL
>>     connClass = OracleConnection
>> Context PC = 63
>>
>> ----------------------------------------------------------------------
>> OracleSession>>executeExternal
>> Receiver:
>>     an OracleSession
>> Instance Variables:
>>     stateHolder = a ValueHolder on: #executing
>>     traceStream = nil
>>     traceLevel = 0
>>     participants = a WeakArray[0]
>>     participantsSemaphore = a RecursionLock
>>     connection = an OracleConnection( hsvcctx = 47D8DA8 )
>>     query = 'SELECT t1.primaryKey, t1.name...tamp = ?) AND (t1.name =
>> ?))'
>>     queryFragments = an OrderedCollection[5]
>>     bindInput = an OrderedCollection[2]
>>     bindTemplate = an OrderedCollection[2]
>>     bindOutput = nil
>>     useNamedOutputBinding = false
>>     bindValues = an IdentityDictionary[2]
>>     resultTemplate = nil
>>     allocateForEachRow = true
>>     blockFactor = 1
>>     numColumns = nil
>>     columnDescriptions = nil
>>     rowAdaptors = nil
>>     rowBuffersHolder = a ValueHolder on: nil
>>     bufferIndex = nil
>>     answerStream = nil
>>     currentRow = nil
>>     scrollable = false
>>     needBinding = true
>>     resultsCache = nil
>>     hstmtHolder = a ValueHolder on: a CCompositePointer {04C5F62C}
>> (struct __OCIStmt * )
>>     herrHolder = a ValueHolder on: a CCompositePointer {047D82A4}
>> (struct __OCIError * )
>>     bindValuePointersHolder = a ValueHolder on: IdentityDictionary (1
>> -> an OracleBuffer 2 -> an OracleBuffer )
>>     maxLongBytes = 32768
>>     queryIsPLSQL = false
>>     currentRowIndex = nil
>>     totalRows = nil
>>     rowsInBlock = nil
>>     dependentLobs = a WeakDictionary[0]
>>     sqlPointerHolder = a ValueHolder on: a CPointer {00EEDF60}
>> (unsigned char * )
>>     maxBindSize = 1
>>     answerLobProxy = false
>>     defaultDisplayLobSize = 32768
>>     isReleasedFromCacheHolder = a ValueHolder on: true
>>     lobBufferSize = 32768
>>     reuseColumnBuffers = false
>>     definePointerHolder = a ValueHolder on: nil
>>     bindPointerHolder = a ValueHolder on: a CPointer {06658870}
>> (struct __OCIBind * * )
>> Temporaries:
>>     rtval = -1
>>     xif = an OracleNTInterface
>>     hsvcctx = a CCompositePointer {047D8DA8} (struct __OCISvcCtx * )
>>     hstmt = a CCompositePointer {04C5F62C} (struct __OCIStmt * )
>>     herr = a CCompositePointer {047D82A4} (struct __OCIError * )
>>     iterations = 0
>>     rowOffset = 0
>>     mode = 32
>> Context PC = 180
>>
>> ----------------------------------------------------------------------
>> optimized [] in ExternalDatabaseSession>>execute
>> Receiver:
>>     an UndefinedObject
>> Temporaries:
>>     .self = an OracleSession( hstmt = 4C5F62C )
>> Context PC = 13
>>
>> ----------------------------------------------------------------------
>> BlockClosure>>ifCurtailed:
>> Receiver:
>>     a BlockClosure
>> Instance Variables:
>>     method = CompiledBlock [] in ExternalDatabaseSession>>execute
>>     outerContext = nil
>>     copiedValues = an OracleSession( hstmt = 4C5F62C )
>> Arguments:
>>     terminationBlock = BlockClosure [] in
>> ExternalDatabaseSession>>execute
>> Context PC = 4
>>
>> ----------------------------------------------------------------------
>> OracleSession(ExternalDatabaseSession)>>execute
>> Receiver:
>>     an OracleSession
>> Instance Variables:
>>     stateHolder = a ValueHolder on: #executing
>>     traceStream = nil
>>     traceLevel = 0
>>     participants = a WeakArray[0]
>>     participantsSemaphore = a RecursionLock
>>     connection = an OracleConnection( hsvcctx = 47D8DA8 )
>>     query = 'SELECT t1.primaryKey, t1.name...tamp = ?) AND (t1.name =
>> ?))'
>>     queryFragments = an OrderedCollection[5]
>>     bindInput = an OrderedCollection[2]
>>     bindTemplate = an OrderedCollection[2]
>>     bindOutput = nil
>>     useNamedOutputBinding = false
>>     bindValues = an IdentityDictionary[2]
>>     resultTemplate = nil
>>     allocateForEachRow = true
>>     blockFactor = 1
>>     numColumns = nil
>>     columnDescriptions = nil
>>     rowAdaptors = nil
>>     rowBuffersHolder = a ValueHolder on: nil
>>     bufferIndex = nil
>>     answerStream = nil
>>     currentRow = nil
>>     scrollable = false
>>     needBinding = true
>>     resultsCache = nil
>>     hstmtHolder = a ValueHolder on: a CCompositePointer {04C5F62C}
>> (struct __OCIStmt * )
>>     herrHolder = a ValueHolder on: a CCompositePointer {047D82A4}
>> (struct __OCIError * )
>>     bindValuePointersHolder = a ValueHolder on: IdentityDictionary (1
>> -> an OracleBuffer 2 -> an OracleBuffer )
>>     maxLongBytes = 32768
>>     queryIsPLSQL = false
>>     currentRowIndex = nil
>>     totalRows = nil
>>     rowsInBlock = nil
>>     dependentLobs = a WeakDictionary[0]
>>     sqlPointerHolder = a ValueHolder on: a CPointer {00EEDF60}
>> (unsigned char * )
>>     maxBindSize = 1
>>     answerLobProxy = false
>>     defaultDisplayLobSize = 32768
>>     isReleasedFromCacheHolder = a ValueHolder on: true
>>     lobBufferSize = 32768
>>     reuseColumnBuffers = false
>>     definePointerHolder = a ValueHolder on: nil
>>     bindPointerHolder = a ValueHolder on: a CPointer {06658870}
>> (struct __OCIBind * * )
>> Context PC = 34
>>
>> ----------------------------------------------------------------------
>> Glorp.VWDatabaseAccessor>>executeCommand:inDBSession:
>> Receiver:
>>     a Glorp.VWDatabaseAccessor
>> Instance Variables:
>>     connection = an OracleConnection( hsvcctx = 47D8DA8 )
>>     currentLogin = a Login(a Glorp.OraclePlatform, 'store',
>> 'store771', 'store')
>>     logging = false
>>     reusePreparedStatements = true
>>     deniedCommands = nil
>>     mutex = a Semaphore[0]
>>     dependents = nil
>>     driverSession = an OracleSession( hstmt = 4C60A80 )
>>     preparedStatements = a Glorp.CacheManager
>> Arguments:
>>     aCommand = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
>>     aSession = an OracleSession( hstmt = 4C5F62C )
>> Temporaries:
>>     answerStream = nil
>>     cursor = nil
>> Context PC = 3
>>
>> ----------------------------------------------------------------------
>> optimized [] in Glorp.VWDatabaseAccessor>>executeCommandBound:
>> Receiver:
>>     an UndefinedObject
>> Temporaries:
>>     .self = a Glorp.VWDatabaseAccessor
>>     .aCommand = a Glorp.QuerySelectCommand(a SimpleQuery for
>> StoreBundle)
>>     statement = a Glorp.GlorpPreparedStatement
>>     cursor = nil
>> Context PC = 22
>>
>> ----------------------------------------------------------------------
>> Time class>>microsecondsToRun:
>> Receiver:
>>     a Time class
>> Instance Variables:
>>     superclass = Magnitude
>>     methodDict = a MethodDictionary[31]
>>     format = 16387
>>     subclasses = nil
>>     instanceVariables = an Array[3]
>>     organization = ('comparing' #< #= #hash)
>> ('accessing' #hours #milliseconds #minutes #seconds)
>> ('arithmetic' #addSeconds: #addTime: #subtractSeconds: #subtractTime:)
>> ('printing' #glorpPadToTwoDigits: #glorpPrintSQLOn: #longPrintString
>> #printOn: #shortPrintString #storeOn:)
>> ('converting' #asDuration #asSeconds #asTimestamp)
>> ('private' #hours: #hours:minutes:seconds: #isCompatibleWithDuration
>> #literalArrayEncoding #printOn:policy:format:)
>> ('private-spin-button' #spinBy:boundedBy:)
>> ('double dispatch' #equalFromDuration: #equalFromTime:
>> #lessFromDuration: #lessFromTime:)
>> ('private-oracle' #oracleConversion)
>>
>>     name = #Time
>>     classPool = a NameSpaceOfClass[0]
>>     environment = a NameSpace[243]
>> Arguments:
>>     timedBlock = BlockClosure [] in
>> Glorp.VWDatabaseAccessor>>executeCommandBound:
>> Temporaries:
>>     initialMicroseconds = 3459576683441564
>> Context PC = 7
>>
>> ----------------------------------------------------------------------
>> Time class>>millisecondsToRun:
>> Receiver:
>>     a Time class
>> Instance Variables:
>>     superclass = Magnitude
>>     methodDict = a MethodDictionary[31]
>>     format = 16387
>>     subclasses = nil
>>     instanceVariables = an Array[3]
>>     organization = ('comparing' #< #= #hash)
>> ('accessing' #hours #milliseconds #minutes #seconds)
>> ('arithmetic' #addSeconds: #addTime: #subtractSeconds: #subtractTime:)
>> ('printing' #glorpPadToTwoDigits: #glorpPrintSQLOn: #longPrintString
>> #printOn: #shortPrintString #storeOn:)
>> ('converting' #asDuration #asSeconds #asTimestamp)
>> ('private' #hours: #hours:minutes:seconds: #isCompatibleWithDuration
>> #literalArrayEncoding #printOn:policy:format:)
>> ('private-spin-button' #spinBy:boundedBy:)
>> ('double dispatch' #equalFromDuration: #equalFromTime:
>> #lessFromDuration: #lessFromTime:)
>> ('private-oracle' #oracleConversion)
>>
>>     name = #Time
>>     classPool = a NameSpaceOfClass[0]
>>     environment = a NameSpace[243]
>> Arguments:
>>     timedBlock = BlockClosure [] in
>> Glorp.VWDatabaseAccessor>>executeCommandBound:
>> Context PC = 5
>>
>> ----------------------------------------------------------------------
>> Glorp.VWDatabaseAccessor>>executeCommandBound:
>> Receiver:
>>     a Glorp.VWDatabaseAccessor
>> Instance Variables:
>>     connection = an OracleConnection( hsvcctx = 47D8DA8 )
>>     currentLogin = a Login(a Glorp.OraclePlatform, 'store',
>> 'store771', 'store')
>>     logging = false
>>     reusePreparedStatements = true
>>     deniedCommands = nil
>>     mutex = a Semaphore[0]
>>     dependents = nil
>>     driverSession = an OracleSession( hstmt = 4C60A80 )
>>     preparedStatements = a Glorp.CacheManager
>> Arguments:
>>     aCommand = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
>> Temporaries:
>>     statement = a Glorp.GlorpPreparedStatement
>>     cursor = nil
>>     time = nil
>>     block = BlockClosure [] in
>> Glorp.VWDatabaseAccessor>>executeCommandBound:
>> Context PC = 19
>>
>> ----------------------------------------------------------------------
>> Glorp.QuerySelectCommand(Glorp.DatabaseCommand)>>executeBoundIn:
>> Receiver:
>>     a Glorp.QuerySelectCommand
>> Instance Variables:
>>     useBinding = true
>>     stream = nil
>>     sqlString = 'SELECT t1.primaryKey, t1.name...tamp = ?) AND
>> (t1.name = ?))'
>>     session = a Glorp.GlorpSession
>>     parameters = an Array[0]
>>     blockFactor = 1
>>     query = a SimpleQuery for StoreBundle
>>     boundExpressions = an OrderedCollection[2]
>> Arguments:
>>     anAccessor = a Glorp.VWDatabaseAccessor
>> Context PC = 4
>>
>> ----------------------------------------------------------------------
>> optimized [] in [] in
>> Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>> Receiver:
>>     an UndefinedObject
>> Temporaries:
>>     .self = a Glorp.VWDatabaseAccessor
>>     .command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
>> Context PC = 15
>>
>> ----------------------------------------------------------------------
>> BlockClosure>>on:do:
>> Receiver:
>>     a BlockClosure
>> Instance Variables:
>>     method = CompiledBlock [] in [] in
>> Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>>     outerContext = nil
>>     copiedValues = an Array[2]
>> Arguments:
>>     anExceptionSelector = Error
>>     handlerBlock = BlockClosure [] in [] in
>> Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>> Context PC = 18
>>
>> ----------------------------------------------------------------------
>> optimized [] in Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>> Receiver:
>>     an UndefinedObject
>> Temporaries:
>>     result = nil
>>     .self = a Glorp.VWDatabaseAccessor
>>     .command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
>>     .aBoolean = true
>> Context PC = 21
>>
>> ----------------------------------------------------------------------
>> BlockClosure>>ensure:
>> Receiver:
>>     a BlockClosure
>> Instance Variables:
>>     method = CompiledBlock [] in
>> Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>>     outerContext = nil
>>     copiedValues = an Array[3]
>> Arguments:
>>     aBlock = BlockClosure [] in Semaphore>>critical:
>> Temporaries:
>>     result = nil
>> Context PC = 4
>>
>> ----------------------------------------------------------------------
>> Semaphore>>critical:
>> Receiver:
>>     a Semaphore
>> Instance Variables:
>>     firstLink = nil
>>     lastLink = nil
>>     excessSignals = 0
>> Arguments:
>>     mutuallyExcludedBlock = BlockClosure [] in
>> Glorp.DatabaseAccessor>>executeCommand:returnCursor:
>> Context PC = 10
>>
>> ----------------------------------------------------------------------
>> Glorp.VWDatabaseAccessor(Glorp.DatabaseAccessor)>>executeCommand:returnCursor:
>>
>> Receiver:
>>     a Glorp.VWDatabaseAccessor
>> Instance Variables:
>>     connection = an OracleConnection( hsvcctx = 47D8DA8 )
>>     currentLogin = a Login(a Glorp.OraclePlatform, 'store',
>> 'store771', 'store')
>>     logging = false
>>     reusePreparedStatements = true
>>     deniedCommands = nil
>>     mutex = a Semaphore[0]
>>     dependents = nil
>>     driverSession = an OracleSession( hstmt = 4C60A80 )
>>     preparedStatements = a Glorp.CacheManager
>> Arguments:
>>     command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
>>     aBoolean = true
>> Context PC = 10
>>
>> ----------------------------------------------------------------------
>> optimized [] in Glorp.SimpleQuery>>rowsFromDatabaseWithParameters:
>> Receiver:
>>     an UndefinedObject
>> Temporaries:
>>     .self = a SimpleQuery for StoreBundle
>>     .command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
>> Context PC = 9
>>
>> ----------------------------------------------------------------------
>> BlockClosure>>on:do:
>> Receiver:
>>     a BlockClosure
>> Instance Variables:
>>     method = CompiledBlock [] in
>> Glorp.SimpleQuery>>rowsFromDatabaseWithParameters:
>>     outerContext = nil
>>     copiedValues = an Array[2]
>> Arguments:
>>     anExceptionSelector = Glorp.GlorpDatabaseReadError
>>     handlerBlock = BlockClosure [] in
>> Glorp.SimpleQuery>>rowsFromDatabaseWithParameters:
>> Context PC = 18
>>
>> ----------------------------------------------------------------------
>> Glorp.SimpleQuery>>rowsFromDatabaseWithParameters:
>> Receiver:
>>     a Glorp.SimpleQuery
>> Instance Variables:
>>     session = a Glorp.GlorpSession
>>     prepared = true
>>     expectedRows = 1
>>     collectionType = nil
>>     ordering = nil
>>     maximumLobSizeToRetrieveDirectly = 32768
>>     readsOneObject = true
>>     groupBy = nil
>>     resultClass = Store.Glorp.StoreBundle
>>     whereClause = Base(Store.Glorp.StoreBundle).timestamp = February
>> 7, 2008 9:50:20 AM AND Base(Store.Glorp.StoreBundle).name = 'Base
>> VisualWorks'
>>     base = Base(Store.Glorp.StoreBundle)
>>     limit = 1
>>     offset = nil
>>     proxyType = nil
>>     shouldRefresh = false
>>     tracing = a Glorp.Tracing
>>     builders = an Array[1]
>>     fields = an OrderedCollection[9]
>>     joins = an OrderedCollection[0]
>>     tablePrefix = nil
>>     customCommand = nil
>>     tablesToPrint = a SortedCollection[1]
>> Arguments:
>>     anArray = an Array[0]
>> Temporaries:
>>     alreadyTriedAction = true
>>     command = a Glorp.QuerySelectCommand(a SimpleQuery for StoreBundle)
>> Context PC = 43
>>
>> ----------------------------------------------------------------------
>> Glorp.SimpleQuery(Glorp.AbstractReadQuery)>>readFromDatabaseWithParameters:
>>
>> Receiver:
>>     a Glorp.SimpleQuery
>> Instance Variables:
>>     session = a Glorp.GlorpSession
>>     prepared = true
>>     expectedRows = 1
>>     collectionType = nil
>>     ordering = nil
>>     maximumLobSizeToRetrieveDirectly = 32768
>>     readsOneObject = true
>>     groupBy = nil
>>     resultClass = Store.Glorp.StoreBundle
>>     whereClause = Base(Store.Glorp.StoreBundle).timestamp = February
>> 7, 2008 9:50:20 AM AND Base(Store.Glorp.StoreBundle).name = 'Base
>> VisualWorks'
>>     base = Base(Store.Glorp.StoreBundle)
>>     limit = 1
>>     offset = nil
>>     proxyType = nil
>>     shouldRefresh = false
>>     tracing = a Glorp.Tracing
>>     builders = an Array[1]
>>     fields = an OrderedCollection[9]
>>     joins = an OrderedCollection[0]
>>     tablePrefix = nil
>>     customCommand = nil
>>     tablesToPrint = a SortedCollection[1]
>> Arguments:
>>     anArray = an Array[0]
>> Temporaries:
>>     answerStream = nil
>>     result = nil
>> Context PC = 5
>>
>> ----------------------------------------------------------------------
>> Glorp.SimpleQuery(Glorp.AbstractReadQuery)>>executeWithParameters:in:
>> Receiver:
>>     a Glorp.SimpleQuery
>> Instance Variables:
>>     session = a Glorp.GlorpSession
>>     prepared = true
>>     expectedRows = 1
>>     collectionType = nil
>>     ordering = nil
>>     maximumLobSizeToRetrieveDirectly = 32768
>>     readsOneObject = true
>>     groupBy = nil
>>     resultClass = Store.Glorp.StoreBundle
>>     whereClause = Base(Store.Glorp.StoreBundle).timestamp = February
>> 7, 2008 9:50:20 AM AND Base(Store.Glorp.StoreBundle).name = 'Base
>> VisualWorks'
>>     base = Base(Store.Glorp.StoreBundle)
>>     limit = 1
>>     offset = nil
>>     proxyType = nil
>>     shouldRefresh = false
>>     tracing = a Glorp.Tracing
>>     builders = an Array[1]
>>     fields = an OrderedCollection[9]
>>     joins = an OrderedCollection[0]
>>     tablePrefix = nil
>>     customCommand = nil
>>     tablesToPrint = a SortedCollection[1]
>> Arguments:
>>     parameterArray = an Array[0]
>>     aSession = a Glorp.GlorpSession
>> Context PC = 35
>>
>> ----------------------------------------------------------------------
>> Glorp.GlorpSession>>execute:
>> Receiver:
>>     a Glorp.GlorpSession
>> Instance Variables:
>>     system = a Store.Glorp.Store74DescriptorSystem
>>     currentUnitOfWork = nil
>>     cache = a Glorp.CacheManager
>>     accessor = a Glorp.VWDatabaseAccessor
>>     applicationData = nil
>>     reaper = nil
>>     errorAction = nil
>>     modificationTracker = nil
>> Arguments:
>>     aQuery = a SimpleQuery for StoreBundle
>> Context PC = 5
>>
>> ----------------------------------------------------------------------
>> Glorp.GlorpSession>>readOneOf:where:
>> Receiver:
>>     a Glorp.GlorpSession
>> Instance Variables:
>>     system = a Store.Glorp.Store74DescriptorSystem
>>     currentUnitOfWork = nil
>>     cache = a Glorp.CacheManager
>>     accessor = a Glorp.VWDatabaseAccessor
>>     applicationData = nil
>>     reaper = nil
>>     errorAction = nil
>>     modificationTracker = nil
>> Arguments:
>>     aClass = Store.Glorp.StoreBundle
>>     aBlock = BlockClosure [] in
>> Store.Glorp.StorePundleWriter>>readPreviousVersion
>> Context PC = 8
>>
>> ----------------------------------------------------------------------
>> Store.Glorp.StorePundleWriter>>readPreviousVersion
>> Receiver:
>>     a Store.Glorp.StorePundleWriter
>> Instance Variables:
>>     pundle = StoreBundle(Base VisualWorks,vw771-sps0)
>>     newPundle = nil
>>     previousVersionInTargetDatabase = an Object
>>     targetSession = a Glorp.GlorpSession
>>     preWriteAction = nil
>>     splitPundles = true
>>     notificationQueue = nil
>> Context PC = 12
>>
>> ----------------------------------------------------------------------
>> Store.Glorp.StorePundleWriter>>previousVersionInTargetDatabase
>> Receiver:
>>     a Store.Glorp.StorePundleWriter
>> Instance Variables:
>>     pundle = StoreBundle(Base VisualWorks,vw771-sps0)
>>     newPundle = nil
>>     previousVersionInTargetDatabase = an Object
>>     targetSession = a Glorp.GlorpSession
>>     preWriteAction = nil
>>     splitPundles = true
>>     notificationQueue = nil
>> Context PC = 18
>>
>> ----------------------------------------------------------------------
>> Store.Glorp.StorePundleWriter>>isPreviousVersionPresent
>> Receiver:
>>     a Store.Glorp.StorePundleWriter
>> Instance Variables:
>>     pundle = StoreBundle(Base VisualWorks,vw771-sps0)
>>     newPundle = nil
>>     previousVersionInTargetDatabase = an Object
>>     targetSession = a Glorp.GlorpSession
>>     preWriteAction = nil
>>     splitPundles = true
>>     notificationQueue = nil
>> Context PC = 4
>>
>> ----------------------------------------------------------------------
>> Store.Glorp.StorePundleWriter>>writePundlePhase1:withChangesBasedOn:using:
>>
>> Receiver:
>>     a Store.Glorp.StorePundleWriter
>> Instance Variables:
>>     pundle = StoreBundle(Base VisualWorks,vw771-sps0)
>>     newPundle = nil
>>     previousVersionInTargetDatabase = an Object
>>     targetSession = a Glorp.GlorpSession
>>     preWriteAction = nil
>>     splitPundles = true
>>     notificationQueue = nil
>> Arguments:
>>     aPundle = StoreBundle(Base VisualWorks,vw771-sps0)
>>     anImagePundle = {Base VisualWorks}
>>     aCollection = an OrderedCollection[117]
>> Context PC = 11
>>
>> ----------------------------------------------------------------------
>> Store.Glorp.StorePundleWriter>>writePundle:withChangesBasedOn:using:
>> Receiver:
>>     a Store.Glorp.StorePundleWriter
>> Instance Variables:
>>     pundle = StoreBundle(Base VisualWorks,vw771-sps0)
>>     newPundle = nil
>>     previousVersionInTargetDatabase = an Object
>>     targetSession = a Glorp.GlorpSession
>>     preWriteAction = nil
>>     splitPundles = true
>>     notificationQueue = nil
>> Arguments:
>>     aPundle = StoreBundle(Base VisualWorks,vw771-sps0)
>>     anImagePundle = {Base VisualWorks}
>>     aCollection = an OrderedCollection[117]
>> Context PC = 7
>>
>> ----------------------------------------------------------------------
>> optimized [] in [] in Store.PublishSpecificationList>>publishSilently
>> Receiver:
>>     an UndefinedObject
>> Temporaries:
>>     .self = a Store.PublishSpecificationList[117]
>>     newPundle = nil
>>     targetPundles = an OrderedCollection[117]
>> Context PC = 16
>>
>> ----------------------------------------------------------------------
>> BlockClosure>>on:do:
>> Receiver:
>>     a BlockClosure
>> Instance Variables:
>>     method = CompiledBlock [] in [] in
>> Store.PublishSpecificationList>>publishSilently
>>     outerContext = nil
>>     copiedValues = an Array[2]
>> Arguments:
>>     anExceptionSelector = Glorp.GlorpDatabaseWriteError
>>     handlerBlock = BlockClosure [] in [] in
>> Store.PublishSpecificationList>>publishSilently
>> Context PC = 18
>>
>> ----------------------------------------------------------------------
>> [] in Store.PublishSpecificationList>>publishSilently
>> Receiver:
>>     a Store.PublishSpecificationList
>> Instance Variables:
>>     dependents = a SequenceView
>>     collection = an Array[192]
>>     limit = 117
>>     collectionSize = 192
>>     publisher = a Store.Glorp.StorePundleWriter
>>     notificationQueue = nil
>> Temporaries:
>>     .self = a Store.PublishSpecificationList[117]
>>     newPundle = nil
>>     targetPundles = an OrderedCollection[117]
>> Context PC = 17
>>
>> ----------------------------------------------------------------------
>> Store.PublishSpecificationList>>publishSilently
>> Receiver:
>>     a Store.PublishSpecificationList
>> Instance Variables:
>>     dependents = a SequenceView
>>     collection = an Array[192]
>>     limit = 117
>>     collectionSize = 192
>>     publisher = a Store.Glorp.StorePundleWriter
>>     notificationQueue = nil
>> Temporaries:
>>     newPundle = nil
>>     targetPundles = an OrderedCollection[117]
>> Context PC = 29
>>
>> ----------------------------------------------------------------------
>> Store.PublishSpecificationList>>publishPundle
>> Receiver:
>>     a Store.PublishSpecificationList
>> Instance Variables:
>>     dependents = a SequenceView
>>     collection = an Array[192]
>>     limit = 117
>>     collectionSize = 192
>>     publisher = a Store.Glorp.StorePundleWriter
>>     notificationQueue = nil
>> Temporaries:
>>     pundle = nil
>> Context PC = 8
>>
>> ----------------------------------------------------------------------
>> optimized [] in Store.PublishPundleDialog>>accept
>> Receiver:
>>     an UndefinedObject
>> Temporaries:
>>     .self = a Store.PublishPundleDialog
>> Context PC = 7
>>
>> ----------------------------------------------------------------------
>> optimized [] in Store.StoreProgressOverlay class>>subsumeAll:while:
>> Receiver:
>>     an UndefinedObject
>> Temporaries:
>>     .windowsToSubsume = an Array[1]
>>     .self = Store.StoreProgressOverlay
>>     overlays = an Array[1]
>>     .aBlock = BlockClosure [] in Store.PublishPundleDialog>>accept
>> Context PC = 14
>>
>> ----------------------------------------------------------------------
>> BlockClosure>>ensure:
>> Receiver:
>>     a BlockClosure
>> Instance Variables:
>>     method = CompiledBlock [] in Store.StoreProgressOverlay
>> class>>subsumeAll:while:
>>     outerContext = nil
>>     copiedValues = an Array[4]
>> Arguments:
>>     aBlock = BlockClosure [] in Store.StoreProgressOverlay
>> class>>subsumeAll:while:
>> Temporaries:
>>     result = nil
>> Context PC = 4
>>
>> ----------------------------------------------------------------------
>> Store.StoreProgressOverlay class>>subsumeAll:while:
>> Receiver:
>>     a Store.StoreProgressOverlay class
>> Instance Variables:
>>     superclass = Panel
>>     methodDict = a MethodDictionary[12]
>>     format = 16394
>>     subclasses = nil
>>     instanceVariables = an Array[3]
>>     organization = ('initialize-release' #addProgressView
>> #initializeLayoutAlgorithm #restoreOriginal #subsume:)
>> ('private' #backdrop #dropdownGradient #dropdownRectangle
>> #progressView #regularView #washOutBackdropImage)
>> ('displaying' #displayDropdownOn: #displayPart:on:)
>>
>>     name = #StoreProgressOverlay
>>     classPool = a NameSpaceOfClass[0]
>>     environment = a NameSpace[313]
>> Arguments:
>>     aWindowCollection = an Array[1]
>>     aBlock = BlockClosure [] in Store.PublishPundleDialog>>accept
>> Temporaries:
>>     overlays = an Array[1]
>>     windowsToSubsume = an Array[1]
>> Context PC = 22
>>
>> ----------------------------------------------------------------------
>> Store.StoreProgressOverlay class>>subsume:while:
>> Receiver:
>>     a Store.StoreProgressOverlay class
>> Instance Variables:
>>     superclass = Panel
>>     methodDict = a MethodDictionary[12]
>>     format = 16394
>>     subclasses = nil
>>     instanceVariables = an Array[3]
>>     organization = ('initialize-release' #addProgressView
>> #initializeLayoutAlgorithm #restoreOriginal #subsume:)
>> ('private' #backdrop #dropdownGradient #dropdownRectangle
>> #progressView #regularView #washOutBackdropImage)
>> ('displaying' #displayDropdownOn: #displayPart:on:)
>>
>>     name = #StoreProgressOverlay
>>     classPool = a NameSpaceOfClass[0]
>>     environment = a NameSpace[313]
>> Arguments:
>>     aWindowOrNil = a ScheduledWindow 7626
>>     aBlock = BlockClosure [] in Store.PublishPundleDialog>>accept
>> Context PC = 9
>>
>> ----------------------------------------------------------------------
>> Store.PublishPundleDialog>>accept
>> Receiver:
>>     a Store.PublishPundleDialog
>> Instance Variables:
>>     dependents = a ScheduledWindow 7626
>>     builder = an UIBuilder
>>     uiSession = a ControlManager
>>     eventHandlers = nil
>>     list = a SelectionInList
>>     disturbed = a ValueHolder on: false
>>     subBuilder = an UIBuilder
>>     items = a SelectionInList
>>     blessingLevel = a ValueHolder on: 99
>>     blessingComment = a ValueHolder on: Text for 'From the Cincom
>> release cd'
>>     publish = a ValueHolder on: true
>>     versionString = a ValueHolder on: 'vw771-sps0'
>>     binarySave = a ValueHolder on: false
>>     parcelSave = a ValueHolder on: false
>>     bundleStructure = a ValueHolder on: false
>>     databaseLinks = a ValueHolder on: false
>>     parcelDirectory = a ValueHolder on: 'Base VisualWorks'
>>     parcelSaveSource = a ValueHolder on: true
>>     parcelHideSource = a ValueHolder on: false
>>     parcelPadded = a ValueHolder on: false
>>     parcelRepublish = a ValueHolder on: false
>>     parcelBackup = a ValueHolder on: false
>>     parcelOverwrite = a ValueHolder on: false
>>     parcelWarningMessage = ''
>>     labelDict = a Dictionary[117]
>>     offsets = an Array[4]
>>     callBackBlock = nil
>>     retry = false
>>     files = a SelectionInList
>>     publishFile = nil
>>     parcelVersionString = a ValueHolder on: 'vw77'
>> Temporaries:
>>     navigatorClass = nil
>> Context PC = 32
>>
>> ----------------------------------------------------------------------
>> optimized [] in ApplicationModel>>actionFor:
>> Receiver:
>>     an UndefinedObject
>> Temporaries:
>>     .self = a Store.PublishPundleDialog
>>     .aKey = #accept
>> Context PC = 7
>>
>> ----------------------------------------------------------------------
>> optimized [] in ActionButtonSpec>>typeConvert:
>> Receiver:
>>     an UndefinedObject
>> Arguments:
>>     b = a ValueHolder on: nil
>>     v = true
>> Temporaries:
>>     .aValue = BlockClosure [] in ApplicationModel>>actionFor:
>> Context PC = 5
>>
>> ----------------------------------------------------------------------
>> PluggableAdaptor>>setValue:
>> Receiver:
>>     a PluggableAdaptor
>> Instance Variables:
>>     dependents = a WinXPActionButtonView
>>     model = a ValueHolder on: nil
>>     getBlock = BlockClosure [] in ActionButtonSpec>>typeConvert:
>>     putBlock = BlockClosure [] in ActionButtonSpec>>typeConvert:
>>     updateBlock = BlockClosure [] in ActionButtonSpec>>typeConvert:
>> Arguments:
>>     newValue = true
>> Context PC = 6
>>
>> ----------------------------------------------------------------------
>> PluggableAdaptor(ValueModel)>>value:
>> Receiver:
>>     a PluggableAdaptor
>> Instance Variables:
>>     dependents = a WinXPActionButtonView
>>     model = a ValueHolder on: nil
>>     getBlock = BlockClosure [] in ActionButtonSpec>>typeConvert:
>>     putBlock = BlockClosure [] in ActionButtonSpec>>typeConvert:
>>     updateBlock = BlockClosure [] in ActionButtonSpec>>typeConvert:
>> Arguments:
>>     newValue = true
>> Context PC = 5
>>
>> ----------------------------------------------------------------------
>> WinXPTriggerButtonController(TriggerButtonController)>>pressAction
>> Receiver:
>>     a WinXPTriggerButtonController
>> Instance Variables:
>>     model = a PluggableAdaptor
>>     view = a WinXPActionButtonView
>>     sensor = a TranslatingSensor
>>     keyboardHook = nil
>>     dispatcher = nil
>> Context PC = 17
>>
>> ----------------------------------------------------------------------
>> TriggerButtonTracker(BasicButtonTracker)>>finishSelectionFor:
>> Receiver:
>>     a TriggerButtonTracker
>> Instance Variables:
>>     controller = a WinXPTriggerButtonController
>>     inside = true
>> Arguments:
>>     aPoint = 51 @ 9
>> Context PC = 8
>>
>> ----------------------------------------------------------------------
>> TriggerButtonTracker>>finishSelectionFor:
>> Receiver:
>>     a TriggerButtonTracker
>> Instance Variables:
>>     controller = a WinXPTriggerButtonController
>>     inside = true
>> Arguments:
>>     aPoint = 51 @ 9
>> Context PC = 11
>>
>> ----------------------------------------------------------------------
>> TriggerButtonTracker(SelectionTracker)>>redButtonReleasedEvent:
>> Receiver:
>>     a TriggerButtonTracker
>> Instance Variables:
>>     controller = a WinXPTriggerButtonController
>>     inside = true
>> Arguments:
>>     aMouseButtonEvent = a RedButtonReleasedEvent
>> Context PC = 13
>>
>> ----------------------------------------------------------------------
>> RedButtonReleasedEvent>>dispatchTo:
>> Receiver:
>>     a RedButtonReleasedEvent
>> Instance Variables:
>>     time = 8718359
>>     initiator = an EventDispatcher
>>     window = a ScheduledWindow 7626
>>     state = 0
>>     x = 336
>>     y = 524
>>     gx = 701
>>     gy = 746
>>     buttonNumber = 1
>> Arguments:
>>     anObject = a TriggerButtonTracker
>> Context PC = 4
>>
>> ----------------------------------------------------------------------
>> TriggerButtonTracker(SelectionTracker)>>handleEvent:
>> Receiver:
>>     a TriggerButtonTracker
>> Instance Variables:
>>     controller = a WinXPTriggerButtonController
>>     inside = true
>> Arguments:
>>     anEvent = a RedButtonReleasedEvent
>> Context PC = 4
>>
>> ----------------------------------------------------------------------
>> EventDispatcher>>dispatch:to:
>> Receiver:
>>     an EventDispatcher
>> Instance Variables:
>>     windowController = an ApplicationStandardSystemController
>>     currentMouseConsumer = nil
>>     grabbingMouse = false
>>     lastControlObject = nil
>>     trapList = nil
>>     state = nil
>>     repairDamageWhenDebugging = true
>>     flushQueueAfterError = true
>>     distributeEventsWhenDebugging = true
>>     dragDropInProgress = false
>>     dragDropTracker = nil
>>     dispatchUnknownEvents = false
>> Arguments:
>>     event = a RedButtonReleasedEvent
>>     object = a TriggerButtonTracker
>> Temporaries:
>>     tmp = nil
>> Context PC = 10
>>
>> ----------------------------------------------------------------------
>> [] in EventDispatcher>>dispatchEvent:
>> Receiver:
>>     an EventDispatcher
>> Instance Variables:
>>     windowController = an ApplicationStandardSystemController
>>     currentMouseConsumer = nil
>>     grabbingMouse = false
>>     lastControlObject = nil
>>     trapList = nil
>>     state = nil
>>     repairDamageWhenDebugging = true
>>     flushQueueAfterError = true
>>     distributeEventsWhenDebugging = true
>>     dragDropInProgress = false
>>     dragDropTracker = nil
>>     dispatchUnknownEvents = false
>> Temporaries:
>>     .self = an EventDispatcher
>>     .event = a RedButtonReleasedEvent
>> Context PC = 9
>>
>> ----------------------------------------------------------------------
>> BlockClosure>>on:do:
>> Receiver:
>>     a BlockClosure
>> Instance Variables:
>>     method = CompiledBlock [] in EventDispatcher>>dispatchEvent:
>>     outerContext = EventDispatcher>>dispatchEvent:
>>     copiedValues = an Array[2]
>> Arguments:
>>     anExceptionSelector = ClosedWindowNotification
>>     handlerBlock = BlockClosure [] in EventDispatcher>>dispatchEvent:
>> Context PC = 18
>>
>> ----------------------------------------------------------------------
>> EventDispatcher>>dispatchEvent:
>> Receiver:
>>     an EventDispatcher
>> Instance Variables:
>>     windowController = an ApplicationStandardSystemController
>>     currentMouseConsumer = nil
>>     grabbingMouse = false
>>     lastControlObject = nil
>>     trapList = nil
>>     state = nil
>>     repairDamageWhenDebugging = true
>>     flushQueueAfterError = true
>>     distributeEventsWhenDebugging = true
>>     dragDropInProgress = false
>>     dragDropTracker = nil
>>     dispatchUnknownEvents = false
>> Arguments:
>>     event = a RedButtonReleasedEvent
>> Temporaries:
>>     objectWantingControl = nil
>>     targetKeyboardProcessor = nil
>> Context PC = 68
>>
>> ----------------------------------------------------------------------
>> RedButtonReleasedEvent(Event)>>dispatch
>> Receiver:
>>     a RedButtonReleasedEvent
>> Instance Variables:
>>     time = 8718359
>>     initiator = an EventDispatcher
>>     window = a ScheduledWindow 7626
>>     state = 0
>>     x = 336
>>     y = 524
>>     gx = 701
>>     gy = 746
>>     buttonNumber = 1
>> Context PC = 16
>>
>> ----------------------------------------------------------------------
>> RedButtonReleasedEvent(Event)>>dispatchForWindowManager:
>> Receiver:
>>     a RedButtonReleasedEvent
>> Instance Variables:
>>     time = 8718359
>>     initiator = an EventDispatcher
>>     window = a ScheduledWindow 7626
>>     state = 0
>>     x = 336
>>     y = 524
>>     gx = 701
>>     gy = 746
>>     buttonNumber = 1
>> Arguments:
>>     aWinMgr = a WindowManager
>> Context PC = 4
>>
>> ----------------------------------------------------------------------
>> optimized [] in WindowManager>>safelyDispatchForWindowManager:
>> Receiver:
>>     an UndefinedObject
>> Temporaries:
>>     .event = a RedButtonReleasedEvent
>>     .self = a WindowManager
>> Context PC = 6
>>
>> ----------------------------------------------------------------------
>> BlockClosure>>on:do:
>> Receiver:
>>     a BlockClosure
>> Instance Variables:
>>     method = CompiledBlock [] in
>> WindowManager>>safelyDispatchForWindowManager:
>>     outerContext = nil
>>     copiedValues = an Array[2]
>> Arguments:
>>     anExceptionSelector = BadControllerError
>>     handlerBlock = BlockClosure [] in
>> WindowManager>>safelyDispatchForWindowManager:
>> Context PC = 18
>>
>> ----------------------------------------------------------------------
>> WindowManager>>safelyDispatchForWindowManager:
>> Receiver:
>>     a WindowManager
>> Instance Variables:
>>     windows = an OrderedCollection[2]
>>     activeController = nil
>>     interruptLock = false
>>     outstandingMetaOrDamage = false
>>     openInProgress = false
>>     eventQueue = an EventQueue
>>     baseProcess = a Process in Semaphore>>waitIfCurtailedSignal
>>     dontFilterEvents = false
>> Arguments:
>>     event = a RedButtonReleasedEvent
>> Context PC = 13
>>
>> ----------------------------------------------------------------------
>> WindowManager>>processNextEvent
>> Receiver:
>>     a WindowManager
>> Instance Variables:
>>     windows = an OrderedCollection[2]
>>     activeController = nil
>>     interruptLock = false
>>     outstandingMetaOrDamage = false
>>     openInProgress = false
>>     eventQueue = an EventQueue
>>     baseProcess = a Process in Semaphore>>waitIfCurtailedSignal
>>     dontFilterEvents = false
>> Temporaries:
>>     event = a RedButtonReleasedEvent
>> Context PC = 9
>>
>> ----------------------------------------------------------------------
>> optimized [] in [] in WindowManager>>newProcess
>> Receiver:
>>     an UndefinedObject
>> Temporaries:
>>     .self = a WindowManager
>> Context PC = 13
>>
>> ----------------------------------------------------------------------
>> BlockClosure>>on:do:
>> Receiver:
>>     a BlockClosure
>> Instance Variables:
>>     method = CompiledBlock [] in [] in WindowManager>>newProcess
>>     outerContext = nil
>>     copiedValues = a WindowManager
>> Arguments:
>>     anExceptionSelector = TerminateException
>>     handlerBlock = BlockClosure [] in [] in WindowManager>>newProcess
>> Context PC = 18
>>
>> ----------------------------------------------------------------------
>> optimized [] in WindowManager>>newProcess
>> Receiver:
>>     an UndefinedObject
>> Temporaries:
>>     .self = a WindowManager
>> Context PC = 15
>>
>> ----------------------------------------------------------------------
>> BlockClosure>>on:do:
>> Receiver:
>>     a BlockClosure
>> Instance Variables:
>>     method = CompiledBlock [] in WindowManager>>newProcess
>>     outerContext = nil
>>     copiedValues = a WindowManager
>> Arguments:
>>     anExceptionSelector = TerminateException
>>     handlerBlock = BlockClosure [] in [] in Process
>> class>>forBlock:priority:
>> Context PC = 18
>>
>> ----------------------------------------------------------------------
>> optimized [] in Process class>>forBlock:priority:
>> Receiver:
>>     an UndefinedObject
>> Temporaries:
>>     .aBlock = BlockClosure [] in WindowManager>>newProcess
>> Context PC = 9
>> 
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> vwnc mailing list
>> [hidden email]
>> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
>> 
>>
>
>
>


--
*********************************************************************

Dit e-mailbericht is alleen bestemd voor de geadresseerde(n).

Gebruik door anderen is niet toegestaan. Indien u niet degeadresseerde(n) bent wordt u verzocht de verzender hiervan op de hoogte te stellen en het bericht te verwijderen. Door de elektronische verzending kunnen aan de inhoud van dit bericht geen rechten worden ontleend.

Soops B.V. is gevestigd te Amsterdam, Nederland, en is geregistreerd bij de Kamer van Koophandel onder nummer 33240368.
Soops B.V. levert volgens de Fenit voorwaarden, gedeponeerd te Den Haag op 8 december 1994 onder nummer 1994/189.
**********************************************************************

This e-mail message is intended to be exclusively for the addressee.

If you are not the intended recipient you are kindly requested not to make any use whatsoever of the contents and to notify the sender immediately by returning this e-mail message. No rights can be derived from this message.

Soops B.V. is a private limited liability company and has its seat at Amsterdam, The Netherlands and is registered with the Trade Registry of the Chamber of Commerce and Industry under number 33240368.
Soops B.V. delivers according to the General Terms and Conditions of Business of Fenit, registered at The Hague, The Netherlands on December 8th, 1994, under number 1994/189
**********************************************************************


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc

--
Alan Knight [|], Engineering Manager, Cincom Smalltalk

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: ORA-01000: maximum open cursors exceeded (was [7.7.1] Publishing base fails)

Alan Knight-2
In reply to this post by Niall Ross
So, the issue in that is likely that Glorp sessions are holding on to too many prepared statements. The way that StoreGlorp works it does not keep around a single Glorp session, but rather creates them as needed and then discards them. If you don't explicitly issue a #reset when discarding the session, then it may hold on to Oracle resources until it is garbage collected and finalization releases them. It's not clear to me why that would be happening in the case that you describe, and that's not something that we've seen, but the cause is fairly clear - we have too many Oracle resources that haven't been released yet.

One place we did run into this was introducing an optimization into reconciliation where we used a separate session for each package and discarded them, thus removing the need to clean up weak references in the cache. But that optimization was only introduced in the 7.8 builds.

So, a specific solution is to make sure that you do a session reset before discarding a Glorp session. That might be the fix you got from support. There are a number of possible more general solutions.
  - Increase your resource limit on Oracle :-)
  - In StoreLoginFactory>>currentStoreSession, modify it to send "reusePreparedStatements: false". This will remove one of the caching optimizations it uses for these resources. It may make things a bit slower. It also may not fix the problem, I haven't tried it, but I suspect that's the critical resource.
  - Most easily, use StoreForThreadedOracle. Again, I haven't tried this, although it's what I use by default. This makes Store use a THAPI connection to Oracle so that the image does not block during database calls. This might slow down the database operations slightly by needing to make THAPI calls, though I suspect the overall throughput is likely to be at least as good. But it lets the image run while those calls are in progress, which is more likely to give the finalization processes the opportunity to run.

At 12:20 PM 2010-08-19, Reinout Heeck wrote:
Niall Ross wrote:
> Dear Reinout,
>    on all occasions when I get this error, I find that walking up the
> stack slightly and restarting lets the operation complete fine. 
> Hardly the ideal workaround but it does mean you can get the operation
> completed.  On one occasion (when I was doing a massive database GC
> taking several hours), I got it twice but each time was able to walk
> up the stack a little, restart and carry on.

Thats what I did of course - I love smalltalk ;-)

For my situation it was necessary that the db connection was broken and
re-established, but that worked out alright in this case..

We received a patch instruction from Cincom support, but I'll have to
review that coming week -- at first blush it seems this patch only fixes
this problem in the Store reconciliation code and not generically....



Thanks!

Reinout
-------


--
Alan Knight [|], Engineering Manager, Cincom Smalltalk

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [7.7.1] Publishing base fails

Alan Knight-2
In reply to this post by Reinout Heeck-2
Ah, that explains it, and registers my earlier speculations pointless. That will teach me to go through my email backwards. The resolution mentioned in another email wouldn't be helpful, because it's related to the stuff I talked about earlier, not to getting the server timestamp.

There are actually two places that might generate such queries. One is in DBObject, the other is in GlorpSession>>currentServerUTCTimestampOrNil. The first one is only going to be used, I believe, when creating blessings, and possibly not even then, in 7.7.1. So that might suggest the second one. But as Glorp does attempt to re-use cursors, that more suggests the first. But it's not obvious to me why either would be leaving cursors around. But the symptom is pretty clear, so we can investigate.

At 07:29 AM 2010-08-18, Reinout Heeck wrote:
Some more info:

I went by our dba, it turns out that many (hundreds of) cursors are
created that are all running the same sql statement:
   select sys_extract_utc(current_timestamp) from dual
most of these cursors are marked with 'paused' state.


We surmise that many of those same queries can only be generated by
resetting connections (because otherwise the cached timestamp info will
be used by the Store code - no db query).


Resetting the timestamp happens in DBObject class>>session.

Note however that it will also reset this timestamp information while a
session is connected. This is because #isSessionValid:  also rejects
sessions that are in connected mode.

The code in DBObject class>>session does not clean up the 'invalid'
session, however it does remove the cached timestamp info.
We guess this interaction creates many cursors (for obtaining the DB
system time) that do not get cleaned up...


Upping the amount of available cursors at the DB side seems futile given
the above, so any other suggestions to proceed are welcome...

Reinout
-------




Reinout Heeck wrote:
> We received the vw7.7.1 CD today, so I started to publish it into our
> Store repository.
>
> Publishing Base Visualworks generates an error (ORA-01000: maximum
> open cursors exceeded).
>
> I retried the operation but that gave the same result, stack dump
> attached.
>
> Steps I took:
> --copied our 7.6 repository (and changed the repository identifier).
> --load StoreForOracle
> --ran update77 and update 771
> --'switch databases' to reconcile
> --publish Base VisualWorks bundle
>
> Reinout
> -------
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> vwnc mailing list
> [hidden email]
> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc

--
*********************************************************************

Dit e-mailbericht is alleen bestemd voor de geadresseerde(n).

Gebruik door anderen is niet toegestaan. Indien u niet degeadresseerde(n) bent wordt u verzocht de verzender hiervan op de hoogte te stellen en het bericht te verwijderen. Door de elektronische verzending kunnen aan de inhoud van dit bericht geen rechten worden ontleend.

Soops B.V. is gevestigd te Amsterdam, Nederland, en is geregistreerd bij de Kamer van Koophandel onder nummer 33240368.
Soops B.V. levert volgens de Fenit voorwaarden, gedeponeerd te Den Haag op 8 december 1994 onder nummer 1994/189.
**********************************************************************

This e-mail message is intended to be exclusively for the addressee.

If you are not the intended recipient you are kindly requested not to make any use whatsoever of the contents and to notify the sender immediately by returning this e-mail message. No rights can be derived from this message.

Soops B.V. is a private limited liability company and has its seat at Amsterdam, The Netherlands and is registered with the Trade Registry of the Chamber of Commerce and Industry under number 33240368.
Soops B.V. delivers according to the General Terms and Conditions of Business of Fenit, registered at The Hague, The Netherlands on December 8th, 1994, under number 1994/189
**********************************************************************


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc

--
Alan Knight [|], Engineering Manager, Cincom Smalltalk

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [7.7.1] Publishing base fails

Alan Knight-2
OK, try the following. The issue is that with Glorp, things that were being executed as straight SQL, not through the O/R scheme, were getting the ExternalDatabaseAnswerStream closed, but the session did not get disconnected. I don't know why that would result in Oracle having an open cursor, but it seems to. So in VWDatabaseAccessor>>basicExecuteSQLString:returnResult:binding:doing:  replace the statement "newPreparedStatementFor: command" with "preparedStatementFor: command".

At 03:42 PM 2010-08-19, Alan Knight wrote:
Ah, that explains it, and registers my earlier speculations pointless. That will teach me to go through my email backwards. The resolution mentioned in another email wouldn't be helpful, because it's related to the stuff I talked about earlier, not to getting the server timestamp.

There are actually two places that might generate such queries. One is in DBObject, the other is in GlorpSession>>currentServerUTCTimestampOrNil. The first one is only going to be used, I believe, when creating blessings, and possibly not even then, in 7.7.1. So that might suggest the second one. But as Glorp does attempt to re-use cursors, that more suggests the first. But it's not obvious to me why either would be leaving cursors around. But the symptom is pretty clear, so we can investigate.

At 07:29 AM 2010-08-18, Reinout Heeck wrote:
Some more info:

I went by our dba, it turns out that many (hundreds of) cursors are
created that are all running the same sql statement:
   select sys_extract_utc(current_timestamp) from dual
most of these cursors are marked with 'paused' state.


We surmise that many of those same queries can only be generated by
resetting connections (because otherwise the cached timestamp info will
be used by the Store code - no db query).


Resetting the timestamp happens in DBObject class>>session.

Note however that it will also reset this timestamp information while a
session is connected. This is because #isSessionValid:  also rejects
sessions that are in connected mode.

The code in DBObject class>>session does not clean up the 'invalid'
session, however it does remove the cached timestamp info.
We guess this interaction creates many cursors (for obtaining the DB
system time) that do not get cleaned up...


Upping the amount of available cursors at the DB side seems futile given
the above, so any other suggestions to proceed are welcome...

Reinout
-------




Reinout Heeck wrote:
> We received the vw7.7.1 CD today, so I started to publish it into our
> Store repository.
>
> Publishing Base Visualworks generates an error (ORA-01000: maximum
> open cursors exceeded).
>
> I retried the operation but that gave the same result, stack dump
> attached.
>
> Steps I took:
> --copied our 7.6 repository (and changed the repository identifier).
> --load StoreForOracle
> --ran update77 and update 771
> --'switch databases' to reconcile
> --publish Base VisualWorks bundle
>
> Reinout
> -------
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> vwnc mailing list
> [hidden email]
> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc

--
*********************************************************************

Dit e-mailbericht is alleen bestemd voor de geadresseerde(n).

Gebruik door anderen is niet toegestaan. Indien u niet degeadresseerde(n) bent wordt u verzocht de verzender hiervan op de hoogte te stellen en het bericht te verwijderen. Door de elektronische verzending kunnen aan de inhoud van dit bericht geen rechten worden ontleend.

Soops B.V. is gevestigd te Amsterdam, Nederland, en is geregistreerd bij de Kamer van Koophandel onder nummer 33240368.
Soops B.V. levert volgens de Fenit voorwaarden, gedeponeerd te Den Haag op 8 december 1994 onder nummer 1994/189.
**********************************************************************

This e-mail message is intended to be exclusively for the addressee.

If you are not the intended recipient you are kindly requested not to make any use whatsoever of the contents and to notify the sender immediately by returning this e-mail message. No rights can be derived from this message.

Soops B.V. is a private limited liability company and has its seat at Amsterdam, The Netherlands and is registered with the Trade Registry of the Chamber of Commerce and Industry under number 33240368.
Soops B.V. delivers according to the General Terms and Conditions of Business of Fenit, registered at The Hague, The Netherlands on December 8th, 1994, under number 1994/189
**********************************************************************


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc

--
Alan Knight [|], Engineering Manager, Cincom Smalltalk
[hidden email]
[hidden email]
http://www.cincom.com/smalltalk
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc

--
Alan Knight [|], Engineering Manager, Cincom Smalltalk

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc