docHacker

updated

16 years ago

D

docHacker

3 Posts

0

3675

January 14th, 2011 07:00

.NET Centera with Stream override

I have a need to override Stream in my application because we write many files to Centera in the same blob.I have a Stream class that overrides system.io.stream, and it reads the files in sequence and supplies them to the wrapper Read function.

I have tried the regular FPStream( filename, intptr) and it works fine, but I tried to supply my stream to the FPGenericStream class. It kinda looks like this:

FPPool thePool = new FPPool(threadData.URL);

FPClip clipRef = new FPClip(thePool, "StreamClip");

FPTag fileTag = clipRef.AddTag("FileBlob");

MultiFileInputStream mfis = new MultifileInputStream( fileList); // this over-rides system.io.stream

FPGenericStream gfs = new FPGenericStream(mfis, userData);

fileTag.BlobWrite(gfs,FPMisc.OPTION_CLIENT_CALCID);

Where MultFileInputStream overrides system.io.Stream, so when FPGenericStream reads, it reads from mfis.

This seems to work great, I have traced  thru the .NET wrapper to the point where the info->mEOF is set to true, but then the Centera reports an error, and I get a Seek back to zero, and this continues in a tight loop.

I have attached a Centera log file, you can see that the data is transferred OK, then EOF is set, but at about line 409, we get an error:

message=BlobIDMismatchException: BlobIDMismatch on node 14977c10-1dd2-11b2-8f1e-8c434d072249 [0UM368STVC812AHAPLOSG9L6Q0, 09CG0HVCOO7EK7SGNOTIC0J079]

followed by a reset and Seek to zero.

any help would be appreciated.

dale@acuotech.com

1 Attachment