private void deleteAndUnlockPersistentStream ( StreamInfo sinfo , ArrayList valueTicks ) throws MessageStoreException , SIRollbackException , SIConnectionLostException , SIIncorrectCallException , SIResourceException , SIErrorException { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . entry ( tc , "deleteAndUnlockPersistentStream" , new Object [ ] { sinfo , valueTicks } ) ; // create a transaction, and delete all AOValue ticks, unlock the persistent locks, // and then remove sinfo.itemStream, and sinfo.item LocalTransaction tran = getLocalTransaction ( ) ; cleanupTicks ( sinfo , tran , valueTicks ) ; Transaction msTran = mp . resolveAndEnlistMsgStoreTransaction ( tran ) ; sinfo . itemStream . lockItemIfAvailable ( controlItemLockID ) ; // will always be available sinfo . itemStream . remove ( msTran , controlItemLockID ) ; if ( sinfo . item != null ) { sinfo . item . lockItemIfAvailable ( controlItemLockID ) ; // will always be available sinfo . item . remove ( msTran , controlItemLockID ) ; } tran . commit ( ) ; if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( tc , "deleteAndUnlockPersistentStream" ) ; }
remove the persistent ticks and the itemstream and started - flush item