Sleuth Kit Java Bindings (JNI)
4.11.1
Java bindings for using The Sleuth Kit
|
Public Member Functions | |
void | commit () throws TskCoreException |
void | rollback () throws TskCoreException |
Allows callers to execute multiple database operations in a single transaction. The usual motivations for this are for speed and atomicity.
WARNING: You need to be very careful when using this because it is easy to get the system into a deadlock when using a SQLite database. For example, if you get this transaction, perform some inserts (and you therefore have a write lock on the DB), and then need to query the database from the same thread. If your query does not use this transaction, then it will get a new connection and will be blocked by the connection that is held by the transaction.
If you are using CaseDbTransaction, you need to use only DB methods that also take in a transaction. We recommend that you preprocess as much as possible before getting the transaction to:
Note that this class does not implement the Transaction interface because that sort of flexibility and its associated complexity is not needed. Also, TskCoreExceptions are thrown to be consistent with the outer SleuthkitCase class. This class will automatically acquire the single user case write lock and release it when the transaction is closed. Otherwise we risk deadlock because this transaction can lock up SQLite and make it "busy" and another thread may get a write lock to the DB, but not be able to do anything because the DB is busy.
Definition at line 13702 of file SleuthkitCase.java.
void org.sleuthkit.datamodel.SleuthkitCase.CaseDbTransaction.commit | ( | ) | throws TskCoreException |
Commits the transaction on the case database that was begun when this object was constructed.
TskCoreException |
Definition at line 13833 of file SleuthkitCase.java.
References org.sleuthkit.datamodel.SleuthkitCase.close(), and org.sleuthkit.datamodel.ScoreChange.getDataSourceObjectId().
Referenced by org.sleuthkit.datamodel.CommunicationsManager.addAccountType(), org.sleuthkit.datamodel.SleuthkitCase.addCarvedFiles(), org.sleuthkit.datamodel.TaggingManager.addContentTag(), org.sleuthkit.datamodel.SleuthkitCase.addDerivedFile(), org.sleuthkit.datamodel.SleuthkitCase.addFileSystemFile(), org.sleuthkit.datamodel.SleuthkitJNI.addImageToDatabase(), org.sleuthkit.datamodel.SleuthkitCase.addLayoutFile(), org.sleuthkit.datamodel.SleuthkitCase.addLayoutFiles(), org.sleuthkit.datamodel.SleuthkitCase.addLocalDirectory(), org.sleuthkit.datamodel.SleuthkitCase.addLocalFile(), org.sleuthkit.datamodel.CommunicationsManager.addRelationships(), org.sleuthkit.datamodel.TaggingManager.addTagSet(), org.sleuthkit.datamodel.SleuthkitCase.addVirtualDirectory(), org.sleuthkit.datamodel.CaseDbAccessManager.alterTable(), org.sleuthkit.datamodel.CaseDbAccessManager.columnExists(), org.sleuthkit.datamodel.Blackboard.deleteAnalysisResult(), org.sleuthkit.datamodel.SleuthkitCase.deleteBlackboardArtifactTag(), org.sleuthkit.datamodel.SleuthkitCase.deleteContentTag(), org.sleuthkit.datamodel.HostManager.deleteHost(), org.sleuthkit.datamodel.TaggingManager.deleteTagSet(), org.sleuthkit.datamodel.Blackboard.getOrAddArtifactType(), org.sleuthkit.datamodel.Blackboard.getOrAddAttributeType(), org.sleuthkit.datamodel.CaseDbAccessManager.insert(), org.sleuthkit.datamodel.CaseDbAccessManager.insertOrUpdate(), org.sleuthkit.datamodel.HostManager.mergeHosts(), org.sleuthkit.datamodel.Report.newAnalysisResult(), org.sleuthkit.datamodel.AbstractContent.newAnalysisResult(), org.sleuthkit.datamodel.BlackboardArtifact.newAnalysisResult(), org.sleuthkit.datamodel.Blackboard.newAnalysisResult(), org.sleuthkit.datamodel.Blackboard.newDataArtifact(), org.sleuthkit.datamodel.HostManager.newHost(), org.sleuthkit.datamodel.OsAccountManager.newWindowsOsAccount(), org.sleuthkit.datamodel.AbstractFile.save(), org.sleuthkit.datamodel.CaseDbAccessManager.tableExists(), org.sleuthkit.datamodel.CaseDbAccessManager.update(), org.sleuthkit.datamodel.OsAccountManager.updateCoreWindowsOsAccountAttributes(), org.sleuthkit.datamodel.SleuthkitCase.updateDerivedFile(), and org.sleuthkit.datamodel.OsAccountManager.updateStandardOsAccountAttributes().
void org.sleuthkit.datamodel.SleuthkitCase.CaseDbTransaction.rollback | ( | ) | throws TskCoreException |
Rolls back the transaction on the case database that was begun when this object was constructed.
TskCoreException |
Definition at line 13872 of file SleuthkitCase.java.
References org.sleuthkit.datamodel.SleuthkitCase.close().
Referenced by org.sleuthkit.datamodel.CommunicationsManager.addAccountType(), org.sleuthkit.datamodel.SleuthkitCase.addCarvedFiles(), org.sleuthkit.datamodel.TaggingManager.addContentTag(), org.sleuthkit.datamodel.SleuthkitCase.addDerivedFile(), org.sleuthkit.datamodel.SleuthkitCase.addFileSystemFile(), org.sleuthkit.datamodel.SleuthkitJNI.addImageToDatabase(), org.sleuthkit.datamodel.SleuthkitCase.addLayoutFile(), org.sleuthkit.datamodel.SleuthkitCase.addLayoutFiles(), org.sleuthkit.datamodel.SleuthkitCase.addLocalDirectory(), org.sleuthkit.datamodel.SleuthkitCase.addLocalFile(), org.sleuthkit.datamodel.CommunicationsManager.addRelationships(), org.sleuthkit.datamodel.TaggingManager.addTagSet(), org.sleuthkit.datamodel.SleuthkitCase.addVirtualDirectory(), org.sleuthkit.datamodel.CaseDbAccessManager.alterTable(), org.sleuthkit.datamodel.CaseDbAccessManager.columnExists(), org.sleuthkit.datamodel.Blackboard.deleteAnalysisResult(), org.sleuthkit.datamodel.SleuthkitCase.deleteBlackboardArtifactTag(), org.sleuthkit.datamodel.SleuthkitCase.deleteContentTag(), org.sleuthkit.datamodel.HostManager.deleteHost(), org.sleuthkit.datamodel.TaggingManager.deleteTagSet(), org.sleuthkit.datamodel.Blackboard.getOrAddArtifactType(), org.sleuthkit.datamodel.Blackboard.getOrAddAttributeType(), org.sleuthkit.datamodel.CaseDbAccessManager.insert(), org.sleuthkit.datamodel.CaseDbAccessManager.insertOrUpdate(), org.sleuthkit.datamodel.HostManager.mergeHosts(), org.sleuthkit.datamodel.Report.newAnalysisResult(), org.sleuthkit.datamodel.AbstractContent.newAnalysisResult(), org.sleuthkit.datamodel.BlackboardArtifact.newAnalysisResult(), org.sleuthkit.datamodel.Blackboard.newAnalysisResult(), org.sleuthkit.datamodel.Blackboard.newDataArtifact(), org.sleuthkit.datamodel.HostManager.newHost(), org.sleuthkit.datamodel.OsAccountManager.newWindowsOsAccount(), org.sleuthkit.datamodel.AbstractFile.save(), org.sleuthkit.datamodel.CaseDbAccessManager.tableExists(), org.sleuthkit.datamodel.CaseDbAccessManager.update(), org.sleuthkit.datamodel.OsAccountManager.updateCoreWindowsOsAccountAttributes(), org.sleuthkit.datamodel.SleuthkitCase.updateDerivedFile(), and org.sleuthkit.datamodel.OsAccountManager.updateStandardOsAccountAttributes().
Copyright © 2011-2021 Brian Carrier. (carrier -at- sleuthkit -dot- org)
This work is licensed under a
Creative Commons Attribution-Share Alike 3.0 United States License.