12. CLI Jobs Interface

The HammerDB CLI includes a jobs interface that stores the configuration, output, transaction count and timing data for a HammerDB workload that can be queried at a later point in time. This data is stored in a SQLite database called hammer.DB. The location of this is set in the generic.xml configuration file in the commandline section as sqlite_db, by default this area will be in the Temp directory. A flexible way to set the location is to set the TMP environment variable to a preferred location. For example on Linux.

export TMP=`pwd`/TMP

and on Windows.

C:\Program Files\HammerDB-5.0>set temp=C:\temp
C:\Program Files\HammerDB-5.0>hammerdbcli.exe
HammerDB CLI v5.0
Copyright © HammerDB Ltd hosted by tpc.org 2019-2025
Type "help" for a list of commands
Initialized Jobs on-disk database C:/temp/hammer.DB using existing tables (274,432 bytes)
hammerdb> 

The output of job related data can be formatted with the jobs format command that can be set to "text" or "JSON". By default the jobs output is returned in JSON list and dict format.

hammerdb>jobs format text
Setting jobs output format to text
hammerdb>jobs format JSON
Setting jobs output format to JSON

If jobs are enabled and the database is successfully initialized then a message such as follows will be shown on CLI startup.

Initialized Jobs on-disk database C:/Temp/hammer.DB using existing tables (274,432 bytes)

If manually deleted HammerDB will recreate a new jobs database.

If you do not want a jobs repository you can disable it as follows and then restart your database.

hammerdb>jobs disable 1
Disabling jobs repository, restart HammerDB to take effect

Any further jobs commands will receive the following message until re-enabled.

hammerdb>jobs
Error: Jobs Disabled: enable with command "jobs disable 0" and restart HammerDB
hammerdb>

When jobs are running all output will be stored in the local SQLite database and therefore if for example running "test" workloads with large volumes of output or establishing a configuration you may not wish to store jobs output at this time.

You can also individually disable job timing data only using the giset command to set xt_job_storage to 0.

hammerdb>giset timeprofile xt_job_storage 0
Changed timeprofile:xt_job_storage from 1 to 0 for generic

The jobs command has the following functionality:

Table 9.3. Jobs command

jobslist all jobs
jobs [jobid|joblist||result|timestamp]Query all jobs, list the VU output for the jobid, list the results for all jobs, list the timestamp for all jobs.
jobs format [ text|JSON]Format job output as text or JSON.
jobs disable [ 0 | 1 ]Disable or re-enable storage of job output after restart.
jobs profileid [ id ]Returns or sets the performance profile id
jobs profile [ id ]Returns the results for the performance profile id
jobs jobid [bm|db|delete|dict|metrics|result|status|system|tcount|timestamp|timing|vuid]Query an individual job, showing the full output, benchmark, database, delete the individual job, show the result, status, transaction count, timestamp, timing and limited output for a single vuid.
jobs jobid timing - Usage: jobs jobid timing vuidShow the timing data for an individual vuid.
jobs jobid getchart [result | timing | tcount | metrics | profile ]Generate html chart for TPROC-C/TPROC-H results, timing, transaction counts and performance profile

As an example of jobs functionality if we run the following script.

dbset db mssqls
diset tpcc mssqls_driver timed
diset tpcc mssqls_rampup 2
diset tpcc mssqls_duration 5
diset tpcc mssqls_timeprofile true
loadscript
vuset vu vcpu
vucreate
tcstart
set jobid [ vurun ]
tcstop
vudestroy
puts "jobid is $jobid"

It produces output as follows, the vurun command returns the jobid of the job it ran.

C:\Program Files\HammerDB-5.0>hammerdbcli.exe
HammerDB CLI v5.0
Copyright © HammerDB Ltd hosted by tpc.org 2019-2025
Type "help" for a list of commands
Initialized Jobs on-disk database C:/temp/hammer.DB using existing tables (319,488 bytes)
hammerdb>source clijob.tcl
Database set to MSSQLServer
Value timed for tpcc:mssqls_driver is the same as existing value timed, no change made
Value 2 for tpcc:mssqls_rampup is the same as existing value 2, no change made
Value 5 for tpcc:mssqls_duration is the same as existing value 5, no change made
Value true for tpcc:mssqls_timeprofile is the same as existing value true, no change made
Script loaded, Type "print script" to view
Vuser 1 created MONITOR - WAIT IDLE
Vuser 2 created - WAIT IDLE
Vuser 3 created - WAIT IDLE
Vuser 4 created - WAIT IDLE
Vuser 5 created - WAIT IDLE
Vuser 6 created - WAIT IDLE
Vuser 7 created - WAIT IDLE
Vuser 8 created - WAIT IDLE
Vuser 9 created - WAIT IDLE
Vuser 10 created - WAIT IDLE
Vuser 11 created - WAIT IDLE
Vuser 12 created - WAIT IDLE
Vuser 13 created - WAIT IDLE
Vuser 14 created - WAIT IDLE
Vuser 15 created - WAIT IDLE
Vuser 16 created - WAIT IDLE
Vuser 17 created - WAIT IDLE
Vuser 18 created - WAIT IDLE
Vuser 19 created - WAIT IDLE
Vuser 20 created - WAIT IDLE
Vuser 21 created - WAIT IDLE
Vuser 22 created - WAIT IDLE
Vuser 23 created - WAIT IDLE
Vuser 24 created - WAIT IDLE
Vuser 25 created - WAIT IDLE
Vuser 26 created - WAIT IDLE
Vuser 27 created - WAIT IDLE
Vuser 28 created - WAIT IDLE
Vuser 29 created - WAIT IDLE
Vuser 30 created - WAIT IDLE
Vuser 31 created - WAIT IDLE
Vuser 32 created - WAIT IDLE
Vuser 33 created - WAIT IDLE
Logging activated
to C:/temp/hammerdb.log
33 Virtual Users Created with Monitor VU
Transaction Counter Started
Vuser 1:RUNNING
Vuser 1:Initializing xtprof time profiler
Vuser 1:DBVersion:16.0.1135.2
Vuser 1:Beginning rampup time of 2 minutes
0 MSSQLServer tpm
Vuser 2:RUNNING
Vuser 2:Initializing xtprof time profiler
Vuser 2:Processing 10000000 transactions with output suppressed...
Vuser 3:RUNNING
Vuser 3:Initializing xtprof time profiler
Vuser 3:Processing 10000000 transactions with output suppressed...
Vuser 4:RUNNING
Vuser 4:Initializing xtprof time profiler
Vuser 4:Processing 10000000 transactions with output suppressed...
Vuser 5:RUNNING
Vuser 5:Initializing xtprof time profiler
Vuser 5:Processing 10000000 transactions with output suppressed...
Vuser 6:RUNNING
Vuser 6:Initializing xtprof time profiler
Vuser 6:Processing 10000000 transactions with output suppressed...
Vuser 7:RUNNING
Vuser 7:Initializing xtprof time profiler
Vuser 7:Processing 10000000 transactions with output suppressed...
Vuser 8:RUNNING
Vuser 8:Initializing xtprof time profiler
Vuser 8:Processing 10000000 transactions with output suppressed...
Vuser 9:RUNNING
Vuser 9:Initializing xtprof time profiler
Vuser 9:Processing 10000000 transactions with output suppressed...
Vuser 10:RUNNING
Vuser 10:Initializing xtprof time profiler
Vuser 10:Processing 10000000 transactions with output suppressed...
Vuser 11:RUNNING
Vuser 11:Initializing xtprof time profiler
Vuser 11:Processing 10000000 transactions with output suppressed...
Vuser 12:RUNNING
Vuser 12:Initializing xtprof time profiler
Vuser 12:Processing 10000000 transactions with output suppressed...
Vuser 13:RUNNING
Vuser 13:Initializing xtprof time profiler
Vuser 13:Processing 10000000 transactions with output suppressed...
Vuser 14:RUNNING
Vuser 14:Initializing xtprof time profiler
Vuser 14:Processing 10000000 transactions with output suppressed...
Vuser 15:RUNNING
Vuser 15:Initializing xtprof time profiler
Vuser 15:Processing 10000000 transactions with output suppressed...
Vuser 16:RUNNING
Vuser 16:Initializing xtprof time profiler
Vuser 16:Processing 10000000 transactions with output suppressed...
Vuser 17:RUNNING
Vuser 17:Initializing xtprof time profiler
Vuser 17:Processing 10000000 transactions with output suppressed...
Vuser 18:RUNNING
Vuser 18:Initializing xtprof time profiler
Vuser 18:Processing 10000000 transactions with output suppressed...
Vuser 19:RUNNING
Vuser 19:Initializing xtprof time profiler
Vuser 19:Processing 10000000 transactions with output suppressed...
Vuser 20:RUNNING
Vuser 20:Initializing xtprof time profiler
Vuser 20:Processing 10000000 transactions with output suppressed...
Vuser 21:RUNNING
Vuser 21:Initializing xtprof time profiler
Vuser 21:Processing 10000000 transactions with output suppressed...
339150 MSSQLServer tpm
Vuser 22:RUNNING
Vuser 22:Initializing xtprof time profiler
Vuser 22:Processing 10000000 transactions with output suppressed...
Vuser 23:RUNNING
Vuser 23:Initializing xtprof time profiler
Vuser 23:Processing 10000000 transactions with output suppressed...
Vuser 24:RUNNING
Vuser 24:Initializing xtprof time profiler
Vuser 24:Processing 10000000 transactions with output suppressed...
Vuser 25:RUNNING
Vuser 25:Initializing xtprof time profiler
Vuser 25:Processing 10000000 transactions with output suppressed...
Vuser 26:RUNNING
Vuser 26:Initializing xtprof time profiler
Vuser 26:Processing 10000000 transactions with output suppressed...
Vuser 27:RUNNING
Vuser 27:Initializing xtprof time profiler
Vuser 27:Processing 10000000 transactions with output suppressed...
Vuser 28:RUNNING
Vuser 28:Initializing xtprof time profiler
Vuser 28:Processing 10000000 transactions with output suppressed...
Vuser 29:RUNNING
Vuser 29:Initializing xtprof time profiler
Vuser 29:Processing 10000000 transactions with output suppressed...
Vuser 30:RUNNING
Vuser 30:Initializing xtprof time profiler
Vuser 30:Processing 10000000 transactions with output suppressed...
Vuser 31:RUNNING
Vuser 31:Initializing xtprof time profiler
Vuser 31:Processing 10000000 transactions with output suppressed...
Vuser 32:RUNNING
Vuser 32:Initializing xtprof time profiler
Vuser 32:Processing 10000000 transactions with output suppressed...
Vuser 33:RUNNING
Vuser 33:Initializing xtprof time profiler
Vuser 33:Processing 10000000 transactions with output suppressed...
614484 MSSQLServer tpm
1064040 MSSQLServer tpm
1410534 MSSQLServer tpm
1282674 MSSQLServer tpm
Vuser 1:Rampup 1 minutes complete ...
1210026 MSSQLServer tpm
989796 MSSQLServer tpm
1023936 MSSQLServer tpm
1010550 MSSQLServer tpm
947718 MSSQLServer tpm
1088958 MSSQLServer tpm
Vuser 1:Rampup 2 minutes complete ...
Vuser 1:Rampup complete, Taking start Transaction Count.
Vuser 1:Timing test period of 5 in minutes
1039332 MSSQLServer tpm
1153080 MSSQLServer tpm
993696 MSSQLServer tpm
1158546 MSSQLServer tpm
1136892 MSSQLServer tpm
1022838 MSSQLServer tpm
Vuser 1:1 ...,
1194792 MSSQLServer tpm
1225632 MSSQLServer tpm
1176918 MSSQLServer tpm
1186944 MSSQLServer tpm
1223154 MSSQLServer tpm
1013886 MSSQLServer tpm
Vuser 1:2 ...,
1124718 MSSQLServer tpm
911592 MSSQLServer tpm
823722 MSSQLServer tpm
1198896 MSSQLServer tpm
983700 MSSQLServer tpm
812712 MSSQLServer tpm
Vuser 1:3 ...,
976734 MSSQLServer tpm
807942 MSSQLServer tpm
727884 MSSQLServer tpm
925056 MSSQLServer tpm
740214 MSSQLServer tpm
666114 MSSQLServer tpm
Vuser 1:4 ...,
644070 MSSQLServer tpm
831732 MSSQLServer tpm
722484 MSSQLServer tpm
562362 MSSQLServer tpm
795462 MSSQLServer tpm
756942 MSSQLServer tpm
Vuser 1:5 ...,
Vuser 1:Test complete, Taking end Transaction Count.
Vuser 1:32 Active Virtual Users configured
Vuser 1:TEST RESULT : System achieved 400301 NOPM from 932861 SQL Server TPM
Vuser 1:Gathering timing data from Active Virtual Users...
Vuser 21:FINISHED SUCCESS
Vuser 25:FINISHED SUCCESS
Vuser 30:FINISHED SUCCESS
Vuser 17:FINISHED SUCCESS
Vuser 19:FINISHED SUCCESS
Vuser 20:FINISHED SUCCESS
Vuser 7:FINISHED SUCCESS
Vuser 6:FINISHED SUCCESS
Vuser 26:FINISHED SUCCESS
Vuser 8:FINISHED SUCCESS
Vuser 12:FINISHED SUCCESS
Vuser 5:FINISHED SUCCESS
Vuser 23:FINISHED SUCCESS
Vuser 22:FINISHED SUCCESS
Vuser 18:FINISHED SUCCESS
Vuser 14:FINISHED SUCCESS
Vuser 15:FINISHED SUCCESS
Vuser 3:FINISHED SUCCESS
Vuser 27:FINISHED SUCCESS
Vuser 33:FINISHED SUCCESS
Vuser 4:FINISHED SUCCESS
Vuser 2:FINISHED SUCCESS
Vuser 10:FINISHED SUCCESS
Vuser 11:FINISHED SUCCESS
Vuser 32:FINISHED SUCCESS
Vuser 28:FINISHED SUCCESS
Vuser 16:FINISHED SUCCESS
Vuser 9:FINISHED SUCCESS
Vuser 13:FINISHED SUCCESS
Vuser 24:FINISHED SUCCESS
Vuser 29:FINISHED SUCCESS
Vuser 31:FINISHED SUCCESS
Vuser 1:Calculating timings...
Vuser 1:Writing timing data to C:/temp/hdbxtprofile.log
457272 MSSQLServer tpm
12 MSSQLServer tpm
Vuser 1:FINISHED SUCCESS
ALL VIRTUAL USERS COMPLETE
Transaction Counter thread running with threadid:tid0000000000002254
Stopping Transaction Counter
vudestroy success
jobid is Benchmark Run jobid=67FD3C792EF803E253533323

Querying the job status will return all of the status messages from the Virtual Users showing that the job completed successfully.

hammerdb>job 67FD3C792EF803E253533323 status
[
  "0",
  "Vuser 1:RUNNING",
  "0",
  "Vuser 2:RUNNING",
  "0",
  "Vuser 3:RUNNING",
  "0",
  "Vuser 4:RUNNING",
  "0",
  "Vuser 5:RUNNING",
  "0",
  "Vuser 6:RUNNING",
  "0",
  "Vuser 7:RUNNING",
  "0",
  "Vuser 8:RUNNING",
  "0",
  "Vuser 9:RUNNING",
  "0",
  "Vuser 10:RUNNING",
  "0",
  "Vuser 11:RUNNING",
  "0",
  "Vuser 12:RUNNING",
  "0",
  "Vuser 13:RUNNING",
  "0",
  "Vuser 14:RUNNING",
  "0",
  "Vuser 15:RUNNING",
  "0",
  "Vuser 16:RUNNING",
  "0",
  "Vuser 17:RUNNING",
  "0",
  "Vuser 18:RUNNING",
  "0",
  "Vuser 19:RUNNING",
  "0",
  "Vuser 20:RUNNING",
  "0",
  "Vuser 21:RUNNING",
  "0",
  "Vuser 22:RUNNING",
  "0",
  "Vuser 23:RUNNING",
  "0",
  "Vuser 24:RUNNING",
  "0",
  "Vuser 25:RUNNING",
  "0",
  "Vuser 26:RUNNING",
  "0",
  "Vuser 27:RUNNING",
  "0",
  "Vuser 28:RUNNING",
  "0",
  "Vuser 29:RUNNING",
  "0",
  "Vuser 30:RUNNING",
  "0",
  "Vuser 31:RUNNING",
  "0",
  "Vuser 32:RUNNING",
  "0",
  "Vuser 33:RUNNING",
  "0",
  "Vuser 21:FINISHED SUCCESS",
  "0",
  "Vuser 25:FINISHED SUCCESS",
  "0",
  "Vuser 30:FINISHED SUCCESS",
  "0",
  "Vuser 17:FINISHED SUCCESS",
  "0",
  "Vuser 19:FINISHED SUCCESS",
  "0",
  "Vuser 20:FINISHED SUCCESS",
  "0",
  "Vuser 7:FINISHED SUCCESS",
  "0",
  "Vuser 6:FINISHED SUCCESS",
  "0",
  "Vuser 26:FINISHED SUCCESS",
  "0",
  "Vuser 8:FINISHED SUCCESS",
  "0",
  "Vuser 12:FINISHED SUCCESS",
  "0",
  "Vuser 5:FINISHED SUCCESS",
  "0",
  "Vuser 23:FINISHED SUCCESS",
  "0",
  "Vuser 22:FINISHED SUCCESS",
  "0",
  "Vuser 18:FINISHED SUCCESS",
  "0",
  "Vuser 14:FINISHED SUCCESS",
  "0",
  "Vuser 15:FINISHED SUCCESS",
  "0",
  "Vuser 3:FINISHED SUCCESS",
  "0",
  "Vuser 27:FINISHED SUCCESS",
  "0",
  "Vuser 33:FINISHED SUCCESS",
  "0",
  "Vuser 4:FINISHED SUCCESS",
  "0",
  "Vuser 2:FINISHED SUCCESS",
  "0",
  "Vuser 10:FINISHED SUCCESS",
  "0",
  "Vuser 11:FINISHED SUCCESS",
  "0",
  "Vuser 32:FINISHED SUCCESS",
  "0",
  "Vuser 28:FINISHED SUCCESS",
  "0",
  "Vuser 16:FINISHED SUCCESS",
  "0",
  "Vuser 9:FINISHED SUCCESS",
  "0",
  "Vuser 13:FINISHED SUCCESS",
  "0",
  "Vuser 24:FINISHED SUCCESS",
  "0",
  "Vuser 29:FINISHED SUCCESS",
  "0",
  "Vuser 31:FINISHED SUCCESS",
  "0",
  "Vuser 1:FINISHED SUCCESS",
  "0",
  "ALL VIRTUAL USERS COMPLETE"
]

We can also view the result of the job.

hammerdb>job 67FD3C792EF803E253533323 result
[
  "67FD3C792EF803E253533323",
  "2025-04-14 17:48:57",
  "32 Active Virtual Users configured",
  "TEST RESULT : System achieved 400301 NOPM from 932861 SQL Server TPM"
]

Querying the job with no further arguments returns the output from all Virtual Users. If a vuid is specified it returns the output from a single VU.

hammerdb>job 67FD3C792EF803E253533323
[
  "0",
  "Vuser 1:RUNNING",
  "1",
  "Initializing xtprof time profiler",
  "1",
  "DBVersion:16.0.1135.2",
  "1",
  "Beginning rampup time of 2 minutes",
  "0",
  "Vuser 2:RUNNING",
  "2",
  "Initializing xtprof time profiler",
  "2",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 3:RUNNING",
  "3",
  "Initializing xtprof time profiler",
  "3",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 4:RUNNING",
  "4",
  "Initializing xtprof time profiler",
  "4",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 5:RUNNING",
  "5",
  "Initializing xtprof time profiler",
  "5",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 6:RUNNING",
  "6",
  "Initializing xtprof time profiler",
  "6",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 7:RUNNING",
  "7",
  "Initializing xtprof time profiler",
  "7",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 8:RUNNING",
  "8",
  "Initializing xtprof time profiler",
  "8",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 9:RUNNING",
  "9",
  "Initializing xtprof time profiler",
  "9",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 10:RUNNING",
  "10",
  "Initializing xtprof time profiler",
  "10",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 11:RUNNING",
  "11",
  "Initializing xtprof time profiler",
  "11",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 12:RUNNING",
  "12",
  "Initializing xtprof time profiler",
  "12",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 13:RUNNING",
  "13",
  "Initializing xtprof time profiler",
  "13",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 14:RUNNING",
  "14",
  "Initializing xtprof time profiler",
  "14",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 15:RUNNING",
  "15",
  "Initializing xtprof time profiler",
  "15",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 16:RUNNING",
  "16",
  "Initializing xtprof time profiler",
  "16",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 17:RUNNING",
  "17",
  "Initializing xtprof time profiler",
  "17",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 18:RUNNING",
  "18",
  "Initializing xtprof time profiler",
  "18",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 19:RUNNING",
  "19",
  "Initializing xtprof time profiler",
  "19",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 20:RUNNING",
  "20",
  "Initializing xtprof time profiler",
  "20",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 21:RUNNING",
  "21",
  "Initializing xtprof time profiler",
  "21",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 22:RUNNING",
  "22",
  "Initializing xtprof time profiler",
  "22",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 23:RUNNING",
  "23",
  "Initializing xtprof time profiler",
  "23",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 24:RUNNING",
  "24",
  "Initializing xtprof time profiler",
  "24",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 25:RUNNING",
  "25",
  "Initializing xtprof time profiler",
  "25",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 26:RUNNING",
  "26",
  "Initializing xtprof time profiler",
  "26",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 27:RUNNING",
  "27",
  "Initializing xtprof time profiler",
  "27",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 28:RUNNING",
  "28",
  "Initializing xtprof time profiler",
  "28",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 29:RUNNING",
  "29",
  "Initializing xtprof time profiler",
  "29",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 30:RUNNING",
  "30",
  "Initializing xtprof time profiler",
  "30",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 31:RUNNING",
  "31",
  "Initializing xtprof time profiler",
  "31",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 32:RUNNING",
  "32",
  "Initializing xtprof time profiler",
  "32",
  "Processing 10000000 transactions with output suppressed...",
  "0",
  "Vuser 33:RUNNING",
  "33",
  "Initializing xtprof time profiler",
  "33",
  "Processing 10000000 transactions with output suppressed...",
  "1",
  "Rampup 1 minutes complete ...",
  "1",
  "Rampup 2 minutes complete ...",
  "1",
  "Rampup complete, Taking start Transaction Count.",
  "1",
  "Timing test period of 5 in minutes",
  "1",
  "1  ...,",
  "1",
  "2  ...,",
  "1",
  "3  ...,",
  "1",
  "4  ...,",
  "1",
  "5  ...,",
  "1",
  "Test complete, Taking end Transaction Count.",
  "1",
  "32 Active Virtual Users configured",
  "1",
  "TEST RESULT : System achieved 400301 NOPM from 932861 SQL Server TPM",
  "1",
  "Gathering timing data from Active Virtual Users...",
  "0",
  "Vuser 21:FINISHED SUCCESS",
  "0",
  "Vuser 25:FINISHED SUCCESS",
  "0",
  "Vuser 30:FINISHED SUCCESS",
  "0",
  "Vuser 17:FINISHED SUCCESS",
  "0",
  "Vuser 19:FINISHED SUCCESS",
  "0",
  "Vuser 20:FINISHED SUCCESS",
  "0",
  "Vuser 7:FINISHED SUCCESS",
  "0",
  "Vuser 6:FINISHED SUCCESS",
  "0",
  "Vuser 26:FINISHED SUCCESS",
  "0",
  "Vuser 8:FINISHED SUCCESS",
  "0",
  "Vuser 12:FINISHED SUCCESS",
  "0",
  "Vuser 5:FINISHED SUCCESS",
  "0",
  "Vuser 23:FINISHED SUCCESS",
  "0",
  "Vuser 22:FINISHED SUCCESS",
  "0",
  "Vuser 18:FINISHED SUCCESS",
  "0",
  "Vuser 14:FINISHED SUCCESS",
  "0",
  "Vuser 15:FINISHED SUCCESS",
  "0",
  "Vuser 3:FINISHED SUCCESS",
  "0",
  "Vuser 27:FINISHED SUCCESS",
  "0",
  "Vuser 33:FINISHED SUCCESS",
  "0",
  "Vuser 4:FINISHED SUCCESS",
  "0",
  "Vuser 2:FINISHED SUCCESS",
  "0",
  "Vuser 10:FINISHED SUCCESS",
  "0",
  "Vuser 11:FINISHED SUCCESS",
  "0",
  "Vuser 32:FINISHED SUCCESS",
  "0",
  "Vuser 28:FINISHED SUCCESS",
  "0",
  "Vuser 16:FINISHED SUCCESS",
  "0",
  "Vuser 9:FINISHED SUCCESS",
  "0",
  "Vuser 13:FINISHED SUCCESS",
  "0",
  "Vuser 24:FINISHED SUCCESS",
  "0",
  "Vuser 29:FINISHED SUCCESS",
  "0",
  "Vuser 31:FINISHED SUCCESS",
  "1",
  "Calculating timings...",
  "1",
  "Writing timing data to C:\/temp\/hdbxtprofile.log",
  "0",
  "Vuser 1:FINISHED SUCCESS",
  "0",
  "ALL VIRTUAL USERS COMPLETE"
]

We also store the configuration so can query the dict of the job that was run.

hammerdb>job 67FD3C792EF803E253533323 dict
{
  "connection": {
    "mssqls_server": "(local)",
    "mssqls_linux_server": "localhost",
    "mssqls_tcp": "false",
    "mssqls_port": "1433",
    "mssqls_azure": "false",
    "mssqls_authentication": "windows",
    "mssqls_msi_object_id": "null",
    "mssqls_linux_authent": "sql",
    "mssqls_odbc_driver": "ODBC Driver 18 for SQL Server",
    "mssqls_linux_odbc": "ODBC Driver 18 for SQL Server",
    "mssqls_uid": "sa",
    "mssqls_pass": "admin",
    "mssqls_encrypt_connection": "true",
    "mssqls_trust_server_cert": "true"
  },
  "tpcc": {
    "mssqls_count_ware": "10",
    "mssqls_num_vu": "4",
    "mssqls_dbase": "tpcc",
    "mssqls_imdb": "false",
    "mssqls_bucket": "1",
    "mssqls_durability": "SCHEMA_AND_DATA",
    "mssqls_use_bcp": "true",
    "mssqls_total_iterations": "10000000",
    "mssqls_raiseerror": "false",
    "mssqls_keyandthink": "false",
    "mssqls_checkpoint": "false",
    "mssqls_driver": "timed",
    "mssqls_rampup": "2",
    "mssqls_duration": "5",
    "mssqls_allwarehouse": "false",
    "mssqls_timeprofile": "true",
    "mssqls_async_scale": "false",
    "mssqls_async_client": "10",
    "mssqls_async_verbose": "false",
    "mssqls_async_delay": "1000",
    "mssqls_connect_pool": "false"
  }
}

If we ran the transaction counter we can retrieve the transaction count for the duration of the job.

hammerdb>job 67FD3C792EF803E253533323 tcount
{"MSSQLServer tpm": {
    "2025-04-14 17:48:58": "0",
    "2025-04-14 17:49:08": "339150",
    "2025-04-14 17:49:18": "614484",
    "2025-04-14 17:49:28": "1064040",
    "2025-04-14 17:49:38": "1410534",
    "2025-04-14 17:49:48": "1282674",
    "2025-04-14 17:49:58": "1210026",
    "2025-04-14 17:50:08": "989796",
    "2025-04-14 17:50:18": "1023936",
    "2025-04-14 17:50:28": "1010550",
    "2025-04-14 17:50:38": "947718",
    "2025-04-14 17:50:49": "1088958",
    "2025-04-14 17:50:59": "1039332",
    "2025-04-14 17:51:09": "1153080",
    "2025-04-14 17:51:19": "993696",
    "2025-04-14 17:51:29": "1158546",
    "2025-04-14 17:51:39": "1136892",
    "2025-04-14 17:51:49": "1022838",
    "2025-04-14 17:51:59": "1194792",
    "2025-04-14 17:52:09": "1225632",
    "2025-04-14 17:52:19": "1176918",
    "2025-04-14 17:52:30": "1186944",
    "2025-04-14 17:52:40": "1223154",
    "2025-04-14 17:52:50": "1013886",
    "2025-04-14 17:53:00": "1124718",
    "2025-04-14 17:53:10": "911592",
    "2025-04-14 17:53:20": "823722",
    "2025-04-14 17:53:30": "1198896",
    "2025-04-14 17:53:40": "983700",
    "2025-04-14 17:53:50": "812712",
    "2025-04-14 17:54:00": "976734",
    "2025-04-14 17:54:11": "807942",
    "2025-04-14 17:54:21": "727884",
    "2025-04-14 17:54:31": "925056",
    "2025-04-14 17:54:41": "740214",
    "2025-04-14 17:54:51": "666114",
    "2025-04-14 17:55:01": "644070",
    "2025-04-14 17:55:11": "831732",
    "2025-04-14 17:55:21": "722484",
    "2025-04-14 17:55:32": "562362",
    "2025-04-14 17:55:42": "795462",
    "2025-04-14 17:55:52": "756942",
    "2025-04-14 17:56:02": "457272",
    "2025-04-14 17:56:12": "12"
  }}

and similarly with the timing data.

job 67FD3C792EF803E253533323 timing
{
  "NEWORD": {
    "elapsed_ms": "413076.5",
    "calls": "5794244",
    "min_ms": "0.127",
    "avg_ms": "2.341",
    "max_ms": "4902.586",
    "total_ms": "13565138.315",
    "p99_ms": "94.607",
    "p95_ms": "1.355",
    "p50_ms": "0.46",
    "sd": "178433.881",
    "ratio_pct": "51.311"
  },
  "DELIVERY": {
    "elapsed_ms": "413076.5",
    "calls": "581370",
    "min_ms": "0.299",
    "avg_ms": "11.306",
    "max_ms": "4902.129",
    "total_ms": "6573183.111",
    "p99_ms": "187.942",
    "p95_ms": "101.552",
    "p50_ms": "0.799",
    "sd": "454595.109",
    "ratio_pct": "24.864"
  },
  "PAYMENT": {
    "elapsed_ms": "413076.5",
    "calls": "5790196",
    "min_ms": "0.093",
    "avg_ms": "0.813",
    "max_ms": "4900.899",
    "total_ms": "4707157.558",
    "p99_ms": "2.304",
    "p95_ms": "0.967",
    "p50_ms": "0.33",
    "sd": "81686.33",
    "ratio_pct": "17.805"
  },
  "OSTAT": {
    "elapsed_ms": "413076.5",
    "calls": "578388",
    "min_ms": "0.084",
    "avg_ms": "1.316",
    "max_ms": "2393.993",
    "total_ms": "761138.2",
    "p99_ms": "3.314",
    "p95_ms": "1.035",
    "p50_ms": "0.417",
    "sd": "111217.624",
    "ratio_pct": "2.879"
  },
  "SLEV": {
    "elapsed_ms": "413076.5",
    "calls": "578598",
    "min_ms": "0.25",
    "avg_ms": "1.154",
    "max_ms": "639.53",
    "total_ms": "667917.642",
    "p99_ms": "1.949",
    "p95_ms": "1.07",
    "p50_ms": "0.572",
    "sd": "93369.953",
    "ratio_pct": "2.526"
  }
}