/** * Close the scan. * * @see GenericScanController#newRowLocationTemplate */ public void close() throws StandardException { super.close(); if (base_cc_for_locking != null) { base_cc_for_locking.close(); base_cc_for_locking = null; } }
/** * Initialize the scan for use. * * <p>Any changes to this method may have to be reflected in close as well. * * <p>The btree init opens the container (super.init), and stores away the state of the * qualifiers. The actual searching for the first position is delayed until the first next() call. * * @exception StandardException Standard exception policy. */ public void init( TransactionManager xact_manager, Transaction rawtran, int open_mode, int lock_level, LockingPolicy locking_policy, int isolation_level, boolean open_for_locking, FormatableBitSet scanColumnList, B2I conglomerate, B2IUndo undo) throws StandardException { // open and lock the base table. int base_open_mode = open_mode | TransactionController.OPENMODE_FOR_LOCK_ONLY; // open the base conglomerate - just to get lock base_cc_for_locking = xact_manager.openConglomerate( conglomerate.baseConglomerateId, false, base_open_mode, lock_level, isolation_level); BTreeLockingPolicy b2i_locking_policy = conglomerate.getBtreeLockingPolicy( rawtran, lock_level, open_mode, isolation_level, base_cc_for_locking, this); super.init( xact_manager, rawtran, false, open_mode, lock_level, b2i_locking_policy, scanColumnList, (DataValueDescriptor[]) null, // no start position supported ScanController.NA, // no start position supported (Qualifier[][]) null, // no qualifier supported (DataValueDescriptor[]) null, // no stop position supported ScanController.NA, // no stop position supported conglomerate, undo, (StaticCompiledOpenConglomInfo) null, (DynamicCompiledOpenConglomInfo) null); }