Does the CopyStorm Database Have Logging Tables?
Each time CopyStorm runs it records a variety of data into tables in the CopyStorm database:
- A summary of records written to the database and any exceptions.
- The content and structure of the tables will be familiar because they mimic what is displayed as progress within the CopyStorm GUI.
- Changes to field values (see CopyForceFieldHistory in this article).
- DDL statements (e.g. ALTER TABLE) that were issued against the CopyStorm database.
CopyStorm database logging tables were introduced starting with the 7.*.* version of CopyStorm.
The following tables are used for logging:
Table Name | Description |
---|---|
CopyForceJob | Contains a single record for each time CopyStorm runs. |
CopyForceJobTable | Contains a single record for each table modified in a CopyStorm run. |
CopyForceJobException | Contains a record of each exception (problem) encountered during a CopyStorm run. |
CopyForceDDLLog | Contains a record of all DDL type statements issued against the database. |
CopyForceFieldHistory | If field history tracking is enabled, this table will record the old and new value each time a field changes (except on record insert). |
CopyForceMedicJob | Contains a single record for every time a CopyStorm/Medic job runs. |
CopyForceMedicJobException | Contains a record of each exception (problem) encountered during a CopyStorm/Medic run. |
These logging tables are created automatically by CopyStorm. The only changes that should ever be performed by a customer is the deletion of log records — this should be done using CopyStorm/Medic.
The simplest way to view and manage CopyStorm log data is often the Log Manager tool in CopyStorm/Medic.
The remainder of this article describes the column structure for each table.
CopyForceJob
The CopyForceJob table contains one record for each time CopyStorm successfully connects to Salesforce, connects to the target database, and starts a copy.
The table contains these columns:
Column Name | Data Type | Description |
---|---|---|
jobId | integer | Unique ID for this job. This value is the job’s primary key. |
startTime | timestamp | The time when the job started. Note that this time will be slightly after the start of the CopyStorm executable because it takes a few seconds for CopyStorm to initialize and connect to its data sources. |
endTime | timestamp | The time when the job completed. This time is updated as each table finishes and after the entire job completes. |
nCopied | integer | The total number of records copied to the target database. |
nImagesCopied | integer | The total number of image records copied to the target database. |
nImagesRead | integer | The total number of image records read from the target Salesforce Org. |
nDeleted | integer | The total number of records deleted from the target database in accordance of the configured retention policies. |
nFieldHistory | integer | The total number of field history records inserted into the target database. |
nArchived | integer | The total number of record snapshots inserted into the target database via the Snapshot feature. |
nTransactions | integer | The number of Salesforce transactions used during the run. |
nExceptions | integer | The number of exceptions encountered during the run. If this value is non-zero then details for each exception will be recorded in the CopyStormJobException table. |
configFileName | string | The base name of the CopyStorm configuration file used for the run. This value will be NULL if there was no active configuration file. |
configFileDir | string | The directory containing the CopyStorm configuration file used for the run. |
copyStormVersion | string | The version of CopyStorm that created the log record (e.g. 7.34.1). |
copyStormDir | string | The directory in which CopyStorm was installed when the job ran. |
elapsedTime | float | The total number of seconds taken by the job to run. |
processId | integer | The system process id for the CopyStorm process. |
CopyForceJobTable
The CopyForceJobTable table contains one record for each table that was modified during a CopyStorm run.
The table contains these columns:
Column Name | Data Type | Description |
---|---|---|
jobId | integer | The unique ID of the job that modified the table. |
tableName | string | The Salesforce name of the modified table. |
startTime | timestamp | The time when CopyStorm started processing the table. |
endTime | timestamp | The time when CopyStorm finished processing the table. |
startTimestamp | timestamp | The timestamp of the first record copied from Salesforce when CopyStorm started processing the table. |
endTimestamp | timestamp | The timestamp of the last record read from Salesforce when CopyStorm finished processing the table. |
nRead | integer | The total number of records read from Salesforce. |
nCopied | integer | The number of records inserted or updated in the CopyStorm database. |
nSkipped | integer | The number of records read from Salesforce and skipped because they were already up to date in the CopyStorm database. |
nDeleted | integer | The number of records deleted from the CopyStorm database. |
nImagesCopied | integer | The total number of image records copied to the target database table. |
nImagesRead | integer | The total number of image records read from the target Salesforce Org. |
nFieldHistory | integer | The total number of field history records inserted into the target database for this table. |
nArchived | integer | The total number of record snapshots inserted into the target database for this table via the Snapshot feature. |
nPerMinute | integer | The average number of records processed per minute. |
elapsedTime | float | The total number of seconds used to process the table. |
startSize | integer | The size of the table in bytes when CopyStorm started processing the table. |
endSize | integer | The size of the table in bytes when CopyStorm finished processing the table. |
CopyForceJobException
The CopyForceJobException table contains one record for each exception that occurred during a CopyStorm run.
The table contains these columns:
Column Name | Data Type | Description |
---|---|---|
jobId | integer | The unique ID of the job where the exception occurred. |
exceptionId | string | Order in which the exception occurred (starting at 0). |
tableName | string | The name of the table being processed when the exception occurred. |
message | string | A short message describing the exception. |
traceback | string | The full traceback from the exception. |
exceptionTime | timestamp | The time when the exception occurred. |
CopyForceDDLLog
The CopyForceDDLLog table contains a record of each DDL statement ran against the CopyStorm database.
The table contains these columns:
Column Name | Data Type | Description |
---|---|---|
tableName | string | The name of the table addressed by the DDL statement. |
command | string | The full DDL command. |
traceback | string | If the DDL command failed, this field contains the full traceback from CopyStorm. |
applyDate | timestamp | The date on which the DDL was executed. |
CopyForceFieldHistory
The CopyForceFieldHistory table records changes to field value. This table will be empty unless field history tracking is explicitly enabled.
History records will be maintained even if the referenced table / field is modified or deleted in Salesforce.
The table contains these columns:
Column Name | Data Type | Description |
---|---|---|
id | string | The unique Salesforce record ID of the record that was the source of the data. |
tableName | string | The Salesforce API table name. |
fieldName | string | The Salesforce API field name. |
oldValue | string | The value of the field before it was updated. |
newValue | string | The updated value of the field. |
lastModifiedById | string | The unique Salesforce ID of the User that last modified the record. |
lastModifiedDate | timestamp | The date on which the record was last modified. |
createdDate | timestamp | The date on which the history record was created. |
CopyForceMedicJob Table
The CopyForceMedicJob table contains one record for each time a CopyStorm/Medic job runs.
The table contains these columns:
Column Name | Data Type | Description |
---|---|---|
jobId | integer | The unique ID of the job. |
startTime | timestamp | The time when the CopyStorm/Medic job started. |
endTime | timestamp | The time when the CopyStorm/Medic job finished. |
elapsedTime | float | The total number of seconds that the job ran. |
nTransactions | integer | The number of Salesforce transactions used by the job. |
nExceptions | integer | The number of Exceptions (problems) reported by the job. |
configFileName | string | The name of the configuration file used to start the job. |
configFileDir | string | The path to the configuration file used to start the job. |
medicVersion | string | The CopyStorm/Medic application version. |
processId | integer | The system process id for the CopyStorm/Medic process. |
toolName | string | The medic tool ran by the job. This corresponds to the value provided on the -tool command line switch. |
status | string | The job status – one of Pending, Running, Cancelled, Finished, or Error. |
output | CLOB | The job’s output. The format of this field will depend on the type of job that was ran. |
CopyForceMedicJobException
The CopyForceMedicJobException table contains one record for each exception that occurred during a CopyStorm/Medic run.
The table contains these columns:
Column Name | Data Type | Description |
---|---|---|
jobId | integer | The unique ID of the job where the exception occurred. |
exceptionId | integer | Order in which the exception occurred (starting at 0). |
message | string | A short message describing the exception. |
traceback | string | The full traceback from the exception. |
exceptionTime | timestamp | The time when the exception occurred. |