XBSAwriter
Purpose:
The purpose of this utility is to measure how fast the Storage Manager can receive data through the XBSA protocol. The current XBSA protocol has a hard coded block size of ~64K this may limit the Storage Managers throughput capabilities. By running this utility you can measure the top speed in which a backup can be taken.

How To Use:
To use this utility you must first compile the C code to an executable. The suggested usage for running this utility is the following:
./xbsawriter -o informix -v 0 -n NUMBER_OF_64K_BLOCKS_TO SEND -c FILENAME
Options:
-o Owner name (should be informix as user informix will usually be the one erformaing the onbar backups)
-v Verbose mode. With verbose mode set to 0, the utility will dump the return values of some XBSA system call as well as the time it took for the entire data transferr to occur. It is suggestsed that you use the -v 0 flag.
-n Number of 64K block to send to the storage manager.
-r Degree of randomness. Values from 0 to 255. By default the XBSAwriter sends empty buffers to the storage manager. If your storage manager uses compression, then the throuput number can be skewed. An empty buffer can be compressed very quickly and will not be indicitive of the data that it be receiving from Informix. To increase the randomness of the data being sent over, you can increase that parameter as high as 255. Values of around 200 are more like what Informix is send to the storage manager.
-c The copyfile. This will create (or append to) a file which contains 2 unique identifiers called copyid1 and copyid2. These identifiers can be used within the storage manager to seek out the objects which this utility sent to the storage manager. Once found they can be removed from the storage manager and the space can be reused. Besure to save the number in this copyfile if as you will need it if you plan on using the XBSAReader Utility.
Sample session
$ ./xbsawriter -o informix -n 512 -c copyfile -v 0
Directory name is   `/tmp'
File name is        `test'
Owner is            `informix'
Copyid file name is `copyfile'
Blocksize is        `63488'
Number of blocks is `512'
BSAQueryApiVersion:
BSAInit:        Success
BSABeginTxn:    Success
BSACreateObject:        Success
BSAEndData:             Success
BSAEndTxn:              Success
Transfer rate after 512 writes
31744.0000 Kbytes in 9 seconds is 3527.1111 Kbytes/sec
BSATerminate:           Success
To use this utility simulate what onbar is doing you can create a script which will kick off a number of these process in parallel.

Warning:
This utility will send data to the storage manager. To remove that data so that you can reuse the space you must save the copyids (-c option) and use those as identifiers to reclaim that space.

Download:
XBSAwriter.tar
Not available yet. Please Email tiller@informix.com for an advanced copy.




Compiling the Source:
You must compile the source code to an executable. On Solaris platforms the complie line will look like the following:
cc xt_store.c xt_error.c xt_xrtns.c /usr/lib/ibsad001.so -o xbsawriter
Note: If you do not have a library called /usr/lib/ibsad001.so, then replace that library with what you have in the onconfig file for BAR_BSALIB_PATH parameter. 1