UNSOLVED

lmichel

updated

15 years ago

L

lmichel

1 Rookie

3 Posts

0

3070

June 29th, 2011 08:00

Problem reading 900Mo file (getting READ_BLOB -10209 error code)

Hello,

We have been using Centera for a while without problems, now we are trying to write and read larger file (eg 900Mo) and we get the following error :

An error in the generic stream occurred (transid='nr0u00
37/31/READ_BLOB')(-10209)

The documentation says :

-10209 : FP_STREAM_ERR : An error occurred in the generic stream. Check your
code.

The code has not been modified for more than a year and is working correctly on smaller files , does it mean that we may have encountered a size limitation somewhere ?

We are using the java SDK and the BlobRead function, searching in the forum I found that an alternative may be to use the BlobReadPartial function but I am not sure that would solve our probleme as we need to read the whole blob anyway.

Anyone has already meet this kind of problem ?

You will find the code written for the read method below :

public static ByteArrayOutputStream retrieveContent(String idCentera) throws CenteraOpersTechnicalException {

        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

        try {

            FPPool.RegisterApplication(CenteraOpersConstants.APP_NAME,CenteraOpersConstants.APP_VERSION);
            FPPool.setGlobalOption(    FPLibraryConstants.FP_OPTION_OPENSTRATEGY, FPLibraryConstants.FP_LAZY_OPEN);
            FPPool.setGlobalOption(    FPLibraryConstants.FP_OPTION_OPENSTRATEGY, FPLibraryConstants.FP_LAZY_OPEN);

            if (idCentera == null) {
                throw new CenteraOpersTechnicalException("Identifiant Centera non valide");
            }
           
            // Contact cluster to load C-Clip

            FPClip theClip = new FPClip(getThePool(), idCentera, FPLibraryConstants.FP_OPEN_FLAT);

            FPTag topTag = theClip.getTopTag();

            // check clip metadata to see if this is 'our' data format           
            if (!topTag.getTagName().equals(CenteraOpersConstants.TAG_NAME)) {
                throw new IllegalArgumentException("This clip was not written by the 'Store Content' sample.");
            }

            topTag.BlobRead(outputStream);
            outputStream.close();
            topTag.Close();
            theClip.Close();

            // Always close the Pool connection when finished.
            CenteraOperations.closePool();

        } catch (FPLibraryException e) {
            throw new CenteraOpersTechnicalException("Une erreur De la librairie de SDK Centera s'est produite : " + e.getMessage() + "(" + e.getErrorCode() + ")");
        } catch (IllegalArgumentException e) {
            throw new CenteraOpersTechnicalException("Une erreur IO est survenu pendant la lecture de l'element " + idCentera + " : " + e.getMessage());
        } catch (IOException e) {
            throw new CenteraOpersTechnicalException("Une erreur IO est survenu pendant la lecture de l'element " + idCentera + " : " + e.getMessage());
        }

        return outputStream;
    }

Regards,

Laurent