Skip to content

Commit c2c3d69

Browse files
committed
Added progress indicator
1 parent a6417f2 commit c2c3d69

File tree

6 files changed

+57
-31
lines changed

6 files changed

+57
-31
lines changed

bin/aix/mqsmfcsv

522 Bytes
Binary file not shown.

bin/linux/mqsmfcsv

72 Bytes
Binary file not shown.

bin/win/mqsmfcsv.exe

17.5 KB
Binary file not shown.

mqsmfcsv.doc

0 Bytes
Binary file not shown.

src/mqsmf.c

100644100755
Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@
5959
#include <errno.h>
6060
#include <time.h>
6161
#include <ctype.h>
62+
#include <sys/stat.h>
6263

6364
#ifdef _WIN32
6465
#include <io.h>
@@ -80,9 +81,9 @@ BOOL printHeaders = TRUE;
8081
BOOL sqlMode = FALSE;
8182
commonFields_t commonF = {0};
8283

83-
char headings[HEADINGS_LEN]; /* Ensure these are big enough for any line */
84+
char headings[HEADINGS_LEN]; /* Ensure these are big enough for any line*/
8485
char dataline[DATA_LEN];
85-
char tmpHead[64]; /* Working space for a column heading */
86+
char tmpHead[64]; /* Working space for a column heading*/
8687
unsigned int recordType;
8788

8889
/********************************************************************/
@@ -91,7 +92,7 @@ unsigned int recordType;
9192
static BOOL append = FALSE;
9293
static char *directory = NULL;
9394

94-
static unsigned int Count115[256] = {0}; /* Max subtype is 255 */
95+
static unsigned int Count115[256] = {0}; /* Max subtype is 255*/
9596
static unsigned int Count116[256] = {0};
9697

9798
/********************************************************************/
@@ -113,16 +114,18 @@ int main( int argc, char *argv[] )
113114

114115
SMFRecord_t *pSMFRecord;
115116
int ticker = DEFAULT_TICKER;
116-
int i,j; /* loop counters */
117-
char dataBuf[MAX_SMF_DATA]; /* Contains the SMF data */
118-
int bytesRead; /* Number of bytes from fread() */
119-
int offset; /* total number of bytes in a record*/
120-
unsigned int d[3]; /* used in date conversion */
121-
unsigned int ddd,year; /* day number and year number */
122-
unsigned int time; /* Copied from the SMF header */
117+
int i,j; /* loop counters */
118+
char dataBuf[MAX_SMF_DATA]; /* Contains the SMF data */
119+
int bytesRead; /* Number of bytes from fread() */
120+
int offset; /* total number of bytes in a record*/
121+
unsigned int d[3]; /* used in date conversion */
122+
unsigned int ddd,year; /* day number and year number */
123+
unsigned int time; /* Copied from the SMF header */
123124

124125
char *inputFile = NULL;
125126
FILE *fp;
127+
size_t totalFileSize = 0;
128+
struct stat statbuf;
126129
unsigned int totalRecords = 0;
127130
unsigned int maxRecords = 0xFFFFFFFF;
128131
unsigned int unknownCount = 0;
@@ -237,6 +240,9 @@ int main( int argc, char *argv[] )
237240
goto mod_exit;
238241
}
239242

243+
fstat(fileno(fp),&statbuf);
244+
totalFileSize = statbuf.st_size;
245+
240246
convInit(); /* Decide whether this is a big or little endian machine*/
241247

242248
/********************************************************************/
@@ -727,7 +733,11 @@ int main( int argc, char *argv[] )
727733
}
728734

729735
if (totalRecords % ticker == 0)
730-
printf("Processed %u records\n",totalRecords);
736+
{
737+
long pos;
738+
pos = ftell(fp);
739+
printf("Processed %u records [%5.2f%%]\n",totalRecords,(totalFileSize > 0)?((float)(100.0*pos)/totalFileSize):(float)0);
740+
}
731741

732742
} while (0 != bytesRead && totalRecords < maxRecords);
733743

testing/testdb2.bat

100644100755
Lines changed: 36 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,40 @@
1+
@echo off
2+
rem -----------------------------------------------------
3+
rem Note that this script tries to load tables that
4+
rem may not have not been created if that class of data was
5+
rem not collected. There may also be additional files created
6+
rem that are NOT in this list, again depending on classes
7+
rem collected. So review this list and compare it
8+
rem to the files actually created.
9+
rem
10+
rem A failure to load a non-existent file is not a real error.
11+
rem -----------------------------------------------------
12+
113
db2 connect to mydb
2-
db2 -tf c:\temp\smf\out\smf-mqtables.ddl
314

4-
db2 load client from c:\temp\smf\out\SMF-Q5ST.csv of del insert into mqsmf.Q5ST
5-
db2 load client from c:\temp\smf\out\SMF-QEST.csv of del insert into mqsmf.QEST
6-
db2 load client from c:\temp\smf\out\SMF-QIST.csv of del insert into mqsmf.QIST
15+
rem Where are the files located? Change this for your loads
16+
cd c:\temp\smf\out
17+
18+
db2 -tf smf-mqtables.ddl
19+
20+
db2 load client from SMF-Q5ST.csv of del insert into mqsmf.Q5ST
21+
db2 load client from SMF-QEST.csv of del insert into mqsmf.QEST
22+
db2 load client from SMF-QIST.csv of del insert into mqsmf.QIST
723

8-
db2 load client from c:\temp\smf\out\SMF-QJST.csv of del insert into mqsmf.QJST
9-
db2 load client from c:\temp\smf\out\SMF-QLST.csv of del insert into mqsmf.QLST
24+
db2 load client from SMF-QJST.csv of del insert into mqsmf.QJST
25+
db2 load client from SMF-QLST.csv of del insert into mqsmf.QLST
1026

11-
db2 load client from c:\temp\smf\out\SMF-QMAC.csv of del insert into mqsmf.QMAC
12-
db2 load client from c:\temp\smf\out\SMF-QMST.csv of del insert into mqsmf.QMST
13-
db2 load client from c:\temp\smf\out\SMF-QPST.csv of del insert into mqsmf.QPST
14-
db2 load client from c:\temp\smf\out\SMF-QSST.csv of del insert into mqsmf.QSST
15-
db2 load client from c:\temp\smf\out\SMF-QTST.csv of del insert into mqsmf.QTST
16-
db2 load client from c:\temp\smf\out\SMF-WQ.csv of del insert into mqsmf.WQ
17-
db2 load client from c:\temp\smf\out\SMF-WTAS.csv of del insert into mqsmf.WTAS
18-
db2 load client from c:\temp\smf\out\SMF-WTID.csv of del insert into mqsmf.WTID
19-
db2 load client from c:\temp\smf\out\SMF-QESD.csv of del insert into mqsmf.QESD
20-
db2 load client from c:\temp\smf\out\SMF-QCTDSP.csv of del insert into mqsmf.QCTDSP
21-
db2 load client from c:\temp\smf\out\SMF-QCTDNS.csv of del insert into mqsmf.QCTDNS
22-
db2 load client from c:\temp\smf\out\SMF-QCTADP.csv of del insert into mqsmf.QCTADP
23-
db2 load client from c:\temp\smf\out\SMF-QCST.csv of del insert into mqsmf.QCST
24-
db2 load client from c:\temp\smf\out\SMF-QCCT.csv of del insert into mqsmf.QCCT
27+
db2 load client from SMF-QMAC.csv of del insert into mqsmf.QMAC
28+
db2 load client from SMF-QMST.csv of del insert into mqsmf.QMST
29+
db2 load client from SMF-QPST.csv of del insert into mqsmf.QPST
30+
db2 load client from SMF-QSST.csv of del insert into mqsmf.QSST
31+
db2 load client from SMF-QTST.csv of del insert into mqsmf.QTST
32+
db2 load client from SMF-WQ.csv of del insert into mqsmf.WQ
33+
db2 load client from SMF-WTAS.csv of del insert into mqsmf.WTAS
34+
db2 load client from SMF-WTID.csv of del insert into mqsmf.WTID
35+
db2 load client from SMF-QESD.csv of del insert into mqsmf.QESD
36+
db2 load client from SMF-QCTDSP.csv of del insert into mqsmf.QCTDSP
37+
db2 load client from SMF-QCTDNS.csv of del insert into mqsmf.QCTDNS
38+
db2 load client from SMF-QCTADP.csv of del insert into mqsmf.QCTADP
39+
db2 load client from SMF-QCST.csv of del insert into mqsmf.QCST
40+
db2 load client from SMF-QCCT.csv of del insert into mqsmf.QCCT

0 commit comments

Comments
 (0)