ORA-13019: coordinates out of bounds (9i only, not 8.1.7)

hi there,
In my application, I face an error when using a 9i DB
that I didn't have in 8.1.6 or 8.1.7. The error is the following:
ORA-29902: error in executing ODCIIndexStart() routine
ORA-13213: failed to generate spatial index for window object
ORA-13019: coordinates out of bounds
ORA-06512: at "MDSYS.SDO_INDEX_METHOD_9I", line 232
ORA-06512: at line 1
My feeling is that Spatial generates this error when I post an
sdo_filter query that is near the frontiers of my layer's real
extent (not the extent in USER_SDO_GEOM_METADATA that I have
grown in order to avoid the error, without success).
any idea ?
Thanks in advance,
Ali

As far as I don't have any SRID, I guess Spatial in 9i consider that
I'm in the case of a geodetic layer right ? No. If you have no SRID in user_sdo_geom_metadata and no SDO_SRID
set in the geometry, then Oracle Spatial will assume you are in cartesian space.
Is there any limit like this if I use an SRID ? The only time there is a limit is when you use a geodetic SRID. Then the bounds
of the coordinate system have to be -180, 180 and -90, 90
I guess the only solution I have in the case of geodetic layers
is to change my queries in order to fit -180 180 -90 90, right ? If you are using geodetic layers then the bounds are -180, 180 and -90, 90.
That would be the correct way to use this layer if in fact the data is geodetic.
If it isn't geodetic, then you could adjust the bounds of the coordinate system
in user_sdo_geom_metadata. If you do that and have a quadtree index you
will need to reindex the data.
If you are using 9i, you should seriously consider using r-tree indexes (especially
if you've applied patch set 9.0.1.3). There are very few cases where r-trees aren't
at least as performant as quadtrees, and also use of r-tree indexes gets you use
of additional functionality that isn't available with quadtrees (like geodetic indexing
and use of sdo_batch_size with nearest neighbor queries for incremental nearest
neighbor processing).
Hope this helps,
Dan
thanks a lot in advance,
ALI

Similar Messages

  • ORA-13019: coordinates out of bounds

    Hi, I have the follow problem when I try to insert a shape with many coordinates in a shape column of a table:
    SQLException: insert strokeORA-29875: failed in the execution of the ODCIINDEXINSERT routine
    ORA-13019: coordinates out of bounds
    ORA-06512: at "MDSYS.SDO_IDX", line 161
    ORA-06512: at "MDSYS.SDO_INDEX_METHOD_10I", line 332
    I haven't the problem when I don't create the index with parameters sdo_numtiles and sdo_level.
    Can anyone help me?

    Oracle recommends that people use R-tree indexes in Oracle versions higher than 9i. In your 10g instance, R-tree indexes should (in almost every situation) have as good or better performance characteristics as the quadtree indexed you are trying to use.
    Oracle has gone so far as to remove quadtree indexing information from the standard documentation, because quadtree indexes require in-depth knowledge and understanding in order to tune and use them properly.
    In your case, you've set the bounds in your user_sdo_geom_metadata too small - the bounds do not encompass the data in your data set. This is only an issue for quadtree indexes, so you will not get this error when creating an R-tree index.
    There are many other potential issues when using quadtree indexes as well. While quadtree indexes work and perform well, R-tree indexes work as well or better, with almost none of the learning curve. If you want to continue using quadtree indexes, i'd suggest you do a detailed reading of the quadtree indexing manual.

  • Coordinate out of bound error in getting rgb value of a pixel

    hi
    in my motion detection algorithm i am using BufferedImage.getRGB(pixel) method to get integer pixel value of the rgb color model. I get the series of images from the web cam and create BufferedImage from it. But there is a error saying that coordinate out of bound exception. So please let me know how to over come this problem asap. i mentioned code segment below.
    for (int i = 0; i < objbufimg.getHeight(null) - 1; i++)
    for (int j =0; j < objbufimg.getWidth(null) - 1; j++)
    int rgb = 0;
    try
    rgb = objbufimg.getRGB(i, j);
    catch(Exception ex)
    System.out.println(ex.getMessage());
    if (objmodel != null)
    current[i][j] = (objmodel.getBlue(rgb) + objmodel.getRed(rgb) +
    objmodel.getGreen(rgb)) / 3;
    }

    inputListOfValues(Magnifier LOV where we will be loading thousand of row in search results table).
    If you load and scroll over thousands of VO rows, then the VO will load all these rows in memory if the VO has not been configured to do Range Paging, which may cause out of memory. By default, VOs are not configured to do Range Paging. Please, try with VO Range Paging in order to minimize VO's memory footprint. (When a VO is configured to do Range Paging, it will keep in memory only a couple of ranges of rows. The default range size is 25, so it will keep in memory a few tens of rows). UI does not need to be changed and the user will scroll over the rows in an <af:table> in the normal way as he/she used to.
    Right now Our JDev is configured with a Heap Space of 512MB.
    JDev's heap size does not matter. The heap that you should check (and maybe increase) is the Java heap of the Integrated Weblogic Server, where the application is deployed and run. The heap size of the Integrated WLS is configured in the file <JDev_Home>/jdeveloper/system.xx.xx.xx.xx/DefaultDomain/bin/setDomainEnv.cmd (or .sh).
    Please suggest any tools through which we can track the objects causing the Memory leak.
    You can try Java Mission Control + Flight Recorder (former Oracle JRockit Mission Control), which is an awesome tool.
    Dimitar

  • Array out of bounds - in Windows not in Mac

    I have an applet on my website which behaves perfectly when I view the page using my home Mac (iBook running Panther).
    When I view the same page with a Windows machine at my local library I get an Array Bounds error.
    'Advanced options' is disabled (and anyway I am not familiar with Windows) so I can't get any more specific information.
    Can anyone suggest what I should do next?
    To see the error go to www.hrat.btinternet.co.uk
    then click on Interactive EEG Atlas
    then click on Currently available EEG records
    finally pick any record eg. male age 58
    the Mac shows an 8 channel EEG record (wiggly lines)
    the Windows shows a grey rectangle and a brief flash of the error message
    HRT
    PS "Sources" is not quite up to date.

    Thanks for a really helpful reply!
    The relevant code is as follows:-
    First in the init() method of the main applet code
                             i.e.          public class dEEGDisplay extends Applet
                                            implements Runnable, ActionListener, ItemListener
    we have the following :-
              theEvents = new Events();
              theMontage = new Montage();
              theEvents.initialise();
              theMontage.initialise();
    I thought I might have a race condition with new threads being started (in some compilers)
    for the init() methods of the Events and Montage classes
    so I moved the extensive initialising code out of the built in init methods
    to a separate initialise() method to make sure it was executed by the main thread.
    now in the theMontage.initialise() method we have :-
              mNames = new String [N];     // N has been initialised to 0 and incremented in a loop
              mArrays = new Object [N];
              for (int j=0; j<N; j++)
                   mNames[j]=montageNames[j];
                   mArrays[j]=montageArrays[j];
              setBackupArrays();
              setupCurrentMontage(0);
              setupBaselines();
    and the error occurs in the first line of setupCurrentMontage(0) :-
         void setupCurrentMontage(int indx)
    Line 1053 > currentMontageArrays= (Object[]) mArrays[indx];
                   displayNChans= ((Integer)currentMontageArrays[0]).intValue();
                   blackLeadsArray= (int[]) currentMontageArrays[1];
                   whiteLeadsArray= (int[]) currentMontageArrays[2];
                   tagsArray= (boolean[]) currentMontageArrays[3];
                   gainsArray= (int[]) currentMontageArrays[4];
                   TCsArray= (int[]) currentMontageArrays[5];
                   HFsArray= (int[]) currentMontageArrays[6];
                   pagePlotter.baselineArray= (int[]) currentMontageArrays[7];
                   thePagePlotter.displayNChans= displayNChans;
                   // printMontageDetails();
    It seems unlikely that 'index' is the trouble since it is here called as an explicit (0) parameter.
    It is possible that N might still be 0 in which case mArrays[0] would be undefined.
    This could happen (I think only happen) if the following method did not function
    i.e. no word was found and the method exited with eof=true :-
         public void findWord(String theWord)
              do // skip until the parameter word is found
                   tok=readToken();
                   if (tok==theFileTokenizer.TT_EOF)
                   // System.out.println("eof in findword "+theWord);
                   eof=true;
                   return;
              } while (((tok!=theFileTokenizer.TT_WORD)
                   & (theFileTokenizer.sval!=theWord)));
              // System.out.println("Find "+theWord+" Tok "+tok+" word="+theFileTokenizer.sval);
    Class theFileTokenizer is set up on opening the file
         public void openMontagefile()
              URL url = null;
              try // sets up the Tokenizer
                   url = new URL (getCodeBase()+"EEGfolder/"+theMontagefolder+"/montages.txt");
                   URLConnection uc = url.openConnection();
                   uc.connect();
                   is = uc.getInputStream();
                        theFileTokenizer = new StreamTokenizer(is);
                        theFileTokenizer.eolIsSignificant(true);
                        theFileTokenizer.slashStarComments(true);
              catch (Exception e)
                   System.out.println("Can't read Montage data " + e);
              // System.out.println("Montage file opened");
    and my best guess so far is that in some Java VM implementations StreamTokenizer is wrongly
    (or differently) implemented.
    Does all this make sense?
    HRT

  • Array out of bound - weird

    Hi,
    I have spent quite sometime testing this but the result I am getting is not right and weird.
    I have an array of classes of size 5
    Table myTable = new Table[5];
    I then use a for loop to initialize myTable class as:
    for(int i=1; i<=myTable.length; i++)
    myTable[i] = new myTable(i);
    Is there anything wrong with that? For some reason I am getting array out of bound exception complaining that 5 is out of bound which is not.
    Can anybody tell me what is wrong with this?
    This is very simple and I am not even sure why I am getting this out of bound exception.
    Thanks.

    Abu_Muhammad wrote:
    Can you try to run this?
    int [] intarray = new int[6];
    for(int i=1; i<6; i++)
         System.out.println("value of i is " + i);
         intarray[i] = i;
         System.out.println("value of array is " + intarray);
    This doesnt give an exception nor does the index start from 0. Then why doesnt the other loop work or why this works?
    i < 6 means the loop will continue executing as long as i is less than 6. Once i reaches 5, the loop will break. If you used intarray.length there wouldn't be an ArrayIndexOutOfBounds exception, but nothing would happen to index 0, as you've missed it.
    Edited by: xcd on Mar 23, 2010 3:11 PM

  • Scrollview only releasing image data when scrolled out of bounds

    Hi all,
    I cannot understand why my memory isn't released.
    On my iPhone program I have a tableview with an image in each cell. When the images are loaded the I can see a thread in Instruments with ObjectAlloc, that calls CALayerPrepareCommit about 10 times -> CGContextDrawImage->some more stuff->ripc_AcquireImage->more stuff ->imgdatalock. I assume this is where the OS actually draws the Image on the screen. But the memory is never released! Only when I scroll the tableview out of bound is the memory released. Visually the tableview is the same and the images are still there after the scrolling. This is a lot of memory and I need to know why it isn't released.
    I set the image in the tableview here:
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
    cell.accessoryType = self.showDisclosureIndicators ? UITableViewCellAccessoryDisclosureIndicator : UITableViewCellAccessoryNone;
    //Clear previous content
    NSArray *subviews = cell.contentView.subviews;
    for (UIView *subview in subviews)
    [subview removeFromSuperview];
    //Set Image
    [cell.contentView addSubview:[thumbnails objectAtIndex:indexPath.row]];
    return cell;
    thumbnails is an array of views:
    while (thumbnailsRemaining && getThumbnails) {
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    UIView *containerView = [thumbnails objectAtIndex:nextThumbnail];
    UIImageView *imageView = [[containerView subviews] objectAtIndex:0];
    NSInvocationOperation* imageOp = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(getImageForImageView:) object:imageView];
    [imageQueue addOperation:imageOp];
    [imageOp release];
    [imageQueue waitUntilAllOperationsAreFinished];
    nextThumbnail++;
    [pool drain];
    and each image is loaded here:
    - (void) getImageForImageView:(UIImageView *)imageView {
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    UIImage *image = [UIImage imageWithData:imageData];
    [imageView setImage:image];
    thumbnailsRemaining--;
    [pool drain];
    I also have a scrollview with images and behaving exactly in the same way when scrolling out of bounds.
    I am really lost, so any help is appreciated.

    When a cell is scrolled out of the visible area, UITableView normally adds it to the reusable cell queue, so that's why you aren't seeing that memory released. I think the queued cells might get released under low memory conditions. You might want to try Hardware->Simulate Memory Warning on the Simulator.
    In any case, see if this link is helpful: [http://idevkit.com/forums/tutorials-code-samples-sdk/2-dynamic-content-loading -uitableview.html].
    \- Ray

  • Out of Bounds

    I am using Elements 9 in a quad core computer 8gig memory and everytime I try to use Out of Bounds in the Guided section my whole computer freezes after I click in Add a Frame.  Hope someone can help, thank you.

    I found the answer on another forum somewhere.  I am assuming you have Windows 7, but if you don't try this anyway:
    Go to the computers Control Panel, then to Appearance & Personalisation, choosing Change Theme.  Then change the theme to 'Windows 7 Basic'.  Go back to PSE 9 and try again.
    The forum I read suggested that if there's more than one user that as Adminstrator you may also have to temporarily disable other user's access, but as I'm the only user on my computer this hasn't proven necessary.
    Of course we shouldn't have to do this but until Adobe get off their backsides and do something about it .......
    Hope this helps.
    PS.  Just found the other forum entry. Follow this link  http://forums.adobe.com/thread/846633?tstart=30
    Message was edited by: outonalymm

  • Java.sql.SQLException: ORA-01002: fetch out of sequence

    We are getting 'Fetch out of sequence' error whrn we try to execute a 'for update' query.
    We are first inserting values into the DLX_ASSET table and if there is image to be inserted the particualr row is fetched using the query. The insert query inserts values into the database.
    'SELECT HIGH_RES_IMAGE FROM DLX_ASSET WHERE ASSET_ID ="+assetId+ " FOR UPDATE'. While executing this query we are getting this exception. This is not happening when we are trying it from our local machine. But its happening everywhere else where its deployed.
    We are using Websphere Application Server 6 and Oracle 9i. We have set autommit to false before the method is called and are commiting the transaction only after the whole set of queries are executed.
    Please see below the code snippet,
                                  /* UPDATE HIGH RESOLUTION IMAGE INTO DLX_ASSET TABLE */
                                  logger.logInfo("inside IF condition ,,,,,,,,,,,"+assetId);
                                  String query ="SELECT HIGH_RES_IMAGE FROM DLX_ASSET WHERE ASSET_ID ="+assetId+ " FOR UPDATE ";
                                  logger.logInfo("QUERY is...."+query);
                                  logger.logInfo("Connection closed:"+ con.isClosed());
                                  psHighResObj =(OraclePreparedStatement) con.prepareStatement(query);
                                  logger.logInfo("inside updating high res AFTER prepare statement"+psHighResObj);
                                  rsHighRes = (OracleResultSet) psHighResObj.executeQuery();                              logger.logInfo("inside updating high res image 1");
                                  while (rsHighRes.next()) {
                                       logger.logInfo("inside while high res image 2");
                                       highResImg =(OrdImage)rsHighRes.getCustomDatum(1,OrdImage.getFactory());
                                       highResImg.loadDataFromInputStream(assetCustomTo.getHighResolutionImageIn());
                                       assetCustomTo.getHighResolutionImageIn().close();
                                       logger.logInfo("before update high res");
                                       UPDATE_QRY = "UPDATE DLX_ASSET SET HIGH_RES_IMAGE = ? WHERE ASSET_ID=" + assetId;
                                       stmt1 =(OraclePreparedStatement) con.prepareCall(UPDATE_QRY);
                                       highResImg.setSource(assetCustomTo.getHighresFileType(),"",assetCustomTo.getSys_file_name1());
                                       highResImg.setContentLength(Integer.parseInt(assetCustomTo.getHighresFileSize()));
                                       highResImg.setProperties();
                                       logger.logInfo(" after update query asset id: " + assetId);
                                       logger.logInfo(" query high res:: " + UPDATE_QRY);
                                       stmt1.setCustomDatum(1, highResImg);
                                       stmt1.execute();
                                       logger.logInfo("after update high res");
                                  //checking if thumbnail is present: if bulk upload thumb nail won't be present
    the exception is occuring in the line 'rsHighRes = (OracleResultSet) psHighResObj.executeQuery();'
    This is exception trace
    java.sql.SQLException: ORA-01002: fetch out of sequence
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
    at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java(Inlined Compiled Code))
    at oracle.jdbc.ttc7.Oall7.receive(Oall7.java(Compiled Code))
    at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java(Compiled Code))
    at oracle.jdbc.ttc7.TTC7Protocol.fetch(TTC7Protocol.java:1198)
    at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2400)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2672)
    at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:589)
    at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:527)
    at com.deluxe.imax.dataaccess.impl.extended.TelevisionAssetCustomDAOImpl.createWebElectronicTrailersAsset(Unknown Source)
    at com.deluxe.imax.business.television.ejb.TelevisionFacadeJBean.createWebElectronicTrailersAsset(Unknown Source)
    at com.deluxe.imax.business.television.handler.TelevisionHandler.createWebElectronicTrailersAsset(Unknown Source)
    at com.deluxe.imax.business.television.action.WebNewAction.processExecute(Unknown Source)
    at com.deluxe.imax.business.framework.BaseAction.execute(Unknown Source)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1284)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1241)
    at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:136)
    at com.deluxe.imax.business.framework.security.SecurityFilter.doFilter(Unknown Source)
    at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:142)
    at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:121)
    at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:82)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:671)
    at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3003)
    at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:221)
    at com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:210)
    at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1958)
    at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:88)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:472)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.ja
    Please share your feedback.
    Thanks in advance!
    Edited by: Sanu Sasidharan on May 11, 2011 4:26 AM

    Hi Peter,
    We tried pointing to the same database from local as well as QA. Works from local but not from QA.
    assetId is the generated primary key in the same method.
    Yes the exception is thrown from execute statement itself. the logger put just after the execute is not coming.
    This is the method
    public boolean createWebElectronicTrailersAsset(TelevisionResultDTO[] teleResultDTO, OracleConnection con) throws DAOException {
              methodName ="createWebElectronicTrailersAsset(TelevisionResultDTO[] teleResultDTO,OracleConnection con) :: ";
              //Value to be returned by method
              boolean createInd = false;
              OraclePreparedStatement psHighResObj = null;
              OraclePreparedStatement psThumbnailObj = null;
              OracleResultSet rsHighRes = null;
              OracleResultSet rsThumbnail = null;
              PreparedStatement psmt = null;
              OraclePreparedStatement stmt1 = null;
              OraclePreparedStatement stmt2 = null;
              OrdImage highResImg = null;
              OrdImage thumbnailImg = null;
              ImaxGroupsTO groupsTO = null;
              try {
                   long tvAssetId = 0;
                   long assetId = 0;
                   long cst_dwnld_asset_id = 0;
                   AssetCustomTO assetCustomTo = null;
                   AssetCustomDownloadTO assetCustDwnldTO = null;
                   CustomTVAssetTO tvAssetTo = null;
                   String DLX_ASSET_QRY = "";
                   String UPDATE_QRY = "";
                   String DLX_ASSET_TV_QRY = "";
                   String DLX_CUSTOM_DOWNLOAD_ASSET = "";
                   int k = 1;
                   for (int iCount = 0; iCount < teleResultDTO.length; iCount++) {
                        tvAssetId = (int) OraclePKGenerator.getInstance().getKey(InternalConstants.TV_ASSET_SEQUENCE);
                        assetId =(long) OraclePKGenerator.getInstance().getKey(InternalConstants.ASSET_SEQUENCE);
                        assetCustomTo = teleResultDTO[iCount].getAssetCustomTO();
                        tvAssetTo = teleResultDTO[iCount].getTv_Asset();
                        groupsTO= teleResultDTO[iCount].getGroupsTO();
                        if (assetCustomTo.getHighResolutionImageIn() != null) {
                             DLX_ASSET_QRY ="INSERT INTO DLX_ASSET("
                                                      + "ASSET_ID,"
                                                      + "CREATED_BY,"
                                                      + "CREATED_DATE,"
                                                      + "REVISED_BY,"
                                                      + "REVISED_DATE,"
                                                      + "FILE_NAME,"
                                                      + "FILE_SIZE,"
                                                      + "FILE_TYPE,"
                                                      + "SYS_FILE_NAME,"
                                                      + "HIGH_RES_IMAGE,"
                                                      + "THUMBNAIL_IMAGE,"
                                                      + "ASSET_STATUS_ID,"
                                                      + "DMX_PART1_REF,"
                                                      + "DMX_PRODUCT_ID_REF,"
                                                      + "DMX_PRODUCT_DESC_REF,"
                                                      + "ASSET_AVAIL_1_IND,"
                                                      + "DMX_PART_2,"
                                                      + "DMX_PRODUCT_2,"
                                                      + "DMX_PRODUCT_DESC_2,"
                                                      + "ASSET_AVAIL_2_IND,"
                                                      + "EFFECTIVE_DATE,"
                                                      + "EXPIRATION_DATE,"
                                                      + "FILE_NAME1,"
                                                      + "SYS_FILE_NAME1,"
                                                      + "ASSET_TYPE_ID,"
                                                      + "MATERIALS_CATEGORY,"
                                                      + "PART_1_NOTES,"
                                                      + "PART_2_NOTES,"
                                                      + "PHY_ORDER_STATUS)"
                                                      + "VALUES (?,?,SYSDATE,?,SYSDATE,?,?,?,?,ORDSYS.ORDImage.init(),"
                                                      +" ORDSYS.ORDImage.init(),?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
                        }else if(){
    // condition if images are not uploaded
                             psmt = con.prepareStatement(DLX_ASSET_QRY);
                             k=1;
                             psmt.setLong(k++, assetId);
                             psmt.setString(k++, assetCustomTo.getCreated_by());
                             psmt.setString(k++, assetCustomTo.getRevised_by());
                             if(assetCustomTo.getAssetTextIn()!=null ){
                                  psmt.setString(k++, assetCustomTo.getFile_name());
                                  psmt.setString(k++, assetCustomTo.getFile_size());
                                  psmt.setString(k++, assetCustomTo.getFile_type());
                                  psmt.setString(k++, assetCustomTo.getSys_file_name());
                                  /* UPLOAD PREVIEW VIDEO FILE INTO FILE SYSTEM .....*/
                                  Util.upLoadFile(assetCustomTo.getAssetTextIn(),assetCustomTo.getSys_file_name());     
                             }else if(assetCustomTo.getAssetTextIn()==null && assetCustomTo.getSys_file_name() != null
                                            && assetCustomTo.getSys_file_name().trim().length() != 0){
                                       psmt.setString(k++, assetCustomTo.getFile_name());
                                       psmt.setString(k++, assetCustomTo.getFile_size());
                                       psmt.setString(k++, assetCustomTo.getFile_type());
                                       psmt.setString(k++, assetCustomTo.getSys_file_name());
                             } else{
                                  psmt.setNull(k++,Types.VARCHAR);
                                  psmt.setNull(k++,Types.VARCHAR);
                                  psmt.setNull(k++,Types.VARCHAR);
                                  psmt.setNull(k++,Types.VARCHAR);
                             psmt.setLong(k++, assetCustomTo.getAsset_status_id());
                             if(assetCustomTo.getDmx_product_desc_1()!=null && assetCustomTo.getDmx_product_desc_1().trim().length()!=0){
                                  psmt.setLong(k++, assetCustomTo.getDmx_part_1());
                                  psmt.setLong(k++, assetCustomTo.getDmx_productId_1());
                                  psmt.setString(k++, assetCustomTo.getDmx_product_desc_1());
                                  psmt.setString(k++, assetCustomTo.getAsset_order_status_1());                    
                             }else{
                                  psmt.setNull(k++,Types.INTEGER);
                                  psmt.setNull(k++,Types.INTEGER);
                                  psmt.setNull(k++,Types.VARCHAR);
                                  psmt.setNull(k++,Types.VARCHAR);
                             if(assetCustomTo.getDmx_product_desc_2()!=null && assetCustomTo.getDmx_product_desc_2().trim().length()!=0){
                                  psmt.setLong(k++, assetCustomTo.getDmx_part_2());
                                  psmt.setLong(k++, assetCustomTo.getDmx_productId_2());
                                  psmt.setString(k++, assetCustomTo.getDmx_product_desc_2());
                                  psmt.setString(k++, assetCustomTo.getAsset_order_status_2());                    
                             }else{
                                  psmt.setNull(k++,Types.INTEGER);
                                  psmt.setNull(k++,Types.INTEGER);
                                  psmt.setNull(k++,Types.VARCHAR);
                                  psmt.setNull(k++,Types.VARCHAR);
                             if(assetCustomTo.getEffectiveDate()!=null){
                                  psmt.setTimestamp(k++, assetCustomTo.getEffectiveDate());
                             }else{
                                  psmt.setNull(k++,Types.TIMESTAMP);
                             if(assetCustomTo.getExpirationDate()!=null){
                                  psmt.setTimestamp(k++, assetCustomTo.getExpirationDate());     
                             }else{
                                  psmt.setNull(k++,Types.TIMESTAMP);
                             psmt.setString(k++, assetCustomTo.getHighresFileName());     
                             if(assetCustomTo.getSys_file_name1()!=null && assetCustomTo.getSys_file_name1().trim().length()!=0){
                                  psmt.setString(k++, assetCustomTo.getSys_file_name1());
                             }else{
                                  psmt.setNull(k++, Types.VARCHAR);
                             psmt.setLong(k++, assetCustomTo.getAsset_type_id());
                             psmt.setLong(k++, assetCustomTo.getMaterialCategory());
                             if(assetCustomTo.getPart_notes_1()!=null && assetCustomTo.getPart_notes_1().trim().length()!=0){
                                  psmt.setString(k++, assetCustomTo.getPart_notes_1());
                             }else{
                                  psmt.setNull(k++,Types.VARCHAR);
                             if(assetCustomTo.getPart_notes_2()!=null && assetCustomTo.getPart_notes_2().trim().length()!=0){
                                  psmt.setString(k++, assetCustomTo.getPart_notes_2());
                             }else{
                                  psmt.setNull(k++,Types.VARCHAR);
                             if(assetCustomTo.getDmx_product_desc_1()!=null){
                                  psmt.setLong(k++,assetCustomTo.getPhy_asset_status());     
                             }else{
                                  psmt.setNull(k++,Types.INTEGER);
                             psmt.execute();
                             if (assetCustomTo.getHighResolutionImageIn() != null) {
                                  /* UPDATE HIGH RESOLUTION IMAGE INTO DLX_ASSET TABLE */
                                  logger.logInfo("inside IF condition ,,,,,,,,,,,"+assetId);
                                  String query ="SELECT HIGH_RES_IMAGE FROM DLX_ASSET WHERE ASSET_ID ="+assetId+ " FOR UPDATE ";
                                  psHighResObj =(OraclePreparedStatement) con.prepareStatement(query);
                                  logger.logInfo("inside updating high res AFTER prepare statement"+psHighResObj);
                                  rsHighRes = (OracleResultSet) psHighResObj.executeQuery();
                                  while (rsHighRes.next()) {
                                       highResImg =(OrdImage)rsHighRes.getCustomDatum(1,OrdImage.getFactory());
                                       highResImg.loadDataFromInputStream(assetCustomTo.getHighResolutionImageIn());
                                       assetCustomTo.getHighResolutionImageIn().close();
                                       UPDATE_QRY = "UPDATE DLX_ASSET SET HIGH_RES_IMAGE = ? WHERE ASSET_ID=" + assetId;
                                       stmt1 =(OraclePreparedStatement) con.prepareCall(UPDATE_QRY);
                                       highResImg.setSource(assetCustomTo.getHighresFileType(),"",assetCustomTo.getSys_file_name1());
                                       highResImg.setContentLength(Integer.parseInt(assetCustomTo.getHighresFileSize()));
                                       highResImg.setProperties();
                                       stmt1.setCustomDatum(1, highResImg);
                                       stmt1.execute();
    The connection in the method is passed from the service layer.
    Thanks
    Edited by: Sanu Sasidharan on May 12, 2011 2:30 AM

  • ORA-01002/ Fetch out of sequence on lazy loading

    Hello,
    We are facing an oracle SQLException (ORA-01002: fetch out of sequence)
    while we are trying to get a field (retrieved via lazy loading) from an
    object that was retrieved using a kodoquery.
    This error only occurs during performance testing under a heavy load.
    (100 concurrent users). For each thread we get a new persistencemanager
    from the factory. And we have put the multithreaded option to true.
    Can anyone help us with this problem?
    Thanks in advance,
    Kind Regards,
    Niels Soeffers
    Caused by: java.sql.SQLException: ORA-01002: fetch out of sequence
         at
    oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
         at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
         at
    oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
         at
    oracle.jdbc.driver.T4CPreparedStatement.fetch(T4CPreparedStatement.java:1027)
         at
    oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:291)
         at
    oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:213)
         at
    com.solarmetric.jdbc.DelegatingResultSet.next(DelegatingResultSet.java:97)
         at kodo.jdbc.sql.ResultSetResult.nextInternal(ResultSetResult.java:151)
         at kodo.jdbc.sql.AbstractResult.next(AbstractResult.java:123)
         at kodo.jdbc.sql.Select$SelectResult.next(Select.java:2236)
         at
    kodo.jdbc.meta.AbstractCollectionFieldMapping.load(AbstractCollectionFieldMapping.java:592)
         at kodo.jdbc.runtime.JDBCStoreManager.load(JDBCStoreManager.java:521)
         at
    kodo.runtime.DelegatingStoreManager.load(DelegatingStoreManager.java:133)
         at kodo.runtime.ROPStoreManager.load(ROPStoreManager.java:79)
         at kodo.runtime.StateManagerImpl.loadFields(StateManagerImpl.java:3166)
         at kodo.runtime.StateManagerImpl.loadField(StateManagerImpl.java:3265)
         at kodo.runtime.StateManagerImpl.isLoaded(StateManagerImpl.java:1386)
         at
    com.ardatis.ventouris.domain.OntvangstReeks.jdoGetontvangstTransacties(OntvangstReeks.java)
         at
    com.ardatis.ventouris.domain.OntvangstReeks.getStatus(OntvangstReeks.java:72)
         at
    com.ardatis.ventouris.service.financien.transfer.FinancienTOAssembler.getOntvangstReeksBaseTO(FinancienTOAssembler.java:71)
         at
    com.ardatis.ventouris.service.financien.transfer.FinancienTOAssembler.getOntvangstReeksBaseTOs(FinancienTOAssembler.java:84)
         at
    com.ardatis.ventouris.service.financien.FinancienManagerImpl.getOntvangstReeksBaseTOs(FinancienManagerImpl.java:241)
         at
    com.ardatis.ventouris.service.financien.ejb.FinancienManagerBean.getOntvangstReeksBaseTOs(FinancienManagerBean.java:62)
         at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
         at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.sun.enterprise.security.SecurityUtil$2.run(SecurityUtil.java:153)
         at java.security.AccessController.doPrivileged(Native Method)
         at
    com.sun.enterprise.security.application.EJBSecurityManager.doAsPrivileged(EJBSecurityManager.java:950)
         at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:158)
         at
    com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:128)
         at $Proxy31.getOntvangstReeksBaseTOs(Unknown Source)
         at sun.reflect.GeneratedMethodAccessor155.invoke(Unknown Source)
         at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at
    com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:123)

    We are using Oracle 10g and have tried multiple dirvers. (classes12.jar,
    ojdbc14.jar)
    Our kodo.properties ( actually the ra.xml we supply with the kodo.rar )
    <connector>
    <display-name>KodoJDO</display-name>
    <description>Resource Adapter for integration of the Kodo Java Data
    Objects (JDO) implementation with J2EE 1.3 compliant managed
    environments</description>
    <vendor-name>Solarmetric, Inc.</vendor-name>
    <spec-version>1.0</spec-version>
    <eis-type>jdo</eis-type>
    <version>1.0</version>
    <license>
    <description>
    See http://www.solarmetric.com for terms and license conditions.
    </description>
    <license-required>true</license-required>
    </license>
    <resourceadapter>
         <managedconnectionfactory-class>kodo.jdbc.ee.JDBCManagedConnectionFactory</managedconnectionfactory-class>
    <connectionfactory-interface>javax.resource.cci.ConnectionFactory</connectionfactory-interface>
    <connectionfactory-impl-class>kodo.jdbc.ee.JDBCConnectionFactory</connectionfactory-impl-class>
    <connection-interface>javax.resource.cci.Connection</connection-interface>
    <connection-impl-class>kodo.runtime.PersistenceManagerImpl</connection-impl-class>
    <transaction-support>XATransaction</transaction-support>
    <config-property>
    <description>A comma-separated list of query aggregate listeners
    to add to the default list of extensions. Each listener must implement
    the kodo.jdbc.query.JDBCAggregateListener interface.</description>
    <config-property-name>AggregateListeners</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>The kodo.jdbc.meta.ClassIndicator to use by default
    for new mappings. The class indicator is responsible for tracking the
    concrete class or subclass implemented by the object stored in each row of
    a table.</description>
    <config-property-name>ClassIndicator</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>in-class-name</config-property-value>
    </config-property>
    <config-property>
    <description>The kodo.util.ClassResolver implementation that
    should be used for JDO class resolution. Defaults to a JDO spec-compliant
    resolver.</description>
    <config-property-name>ClassResolver</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>spec</config-property-value>
    </config-property>
    <config-property>
    <description>Details about various compatibiity levels for the
    current environment.</description>
    <config-property-name>Compatibility</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>true</config-property-value>
    </config-property>
    <config-property>
    <description>The class name of either the JDBC java.sql.Driver, or
    an instance of a javax.sql.DataSource to use to connect to the non-XA data
    source.</description>
    <config-property-name>Connection2DriverName</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>The password for the user specified in
    Connection2UserName</description>
    <config-property-name>Connection2Password</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>A comma-separated list of properties to be passed to
    the non-XA JDBC Driver when obtaining a Connection. Properties are of the
    form "key=value". If the given JDBC Driver class is a DataSource, these
    properties will be used to configure the bean properties of the
    DataSource. </description>
    <config-property-name>Connection2Properties</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>The URL for the non-XA data source.</description>
    <config-property-name>Connection2URL</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>The username for the connection listed in
    Connection2URL.</description>
    <config-property-name>Connection2UserName</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>A comma-separated list of
    com.solarmetric.jdbc.ConnectionDecorator implementations to install on all
    connection pools.</description>
    <config-property-name>ConnectionDecorators</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>The class name of either the JDBC java.sql.Driver, or
    an instance of a javax.sql.DataSource to use to connect to the data
    source.</description>
    <config-property-name>ConnectionDriverName</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>The JNDI name of the connection factory to use for
    finding non-XA connections. If specified, this is the connection that
    will be used for obtaining sequence numbers.</description>
    <config-property-name>ConnectionFactory2Name</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
         <config-property-value>jdbc/VentourisNonXA</config-property-value>
    </config-property>
    <config-property>
    <description>A comma-separated list of properties used to
    configure the javax.sql.DataSource used as the non-XA ConnectionFactory.
    Each property should be of the form "key=value", where "key" is the name
    of some bean-like property of the data source.</description>
    <config-property-name>ConnectionFactory2Properties</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>The JNDI name of the connection factory to use for
    obtaining connections.</description>
    <config-property-name>ConnectionFactoryName</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
         <config-property-value>jdbc/Ventouris</config-property-value>
    </config-property>
    <config-property>
    <description>A comma-separated list of properties used to
    configure the javax.sql.DataSource used as the ConnectionFactory. Each
    property should be of the form "key=value", where "key" is the name of
    some bean-like property of the data source.</description>
    <config-property-name>ConnectionFactoryProperties</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>The password for the user specified in
    ConnectionUserName</description>
    <config-property-name>ConnectionPassword</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>A comma-separated list of properties to be passed to
    the JDBC Driver when obtaining a Connection. Properties are of the form
    "key=value". If the given JDBC Driver class is a DataSource, these
    properties will be used to configure the bean properties of the
    DataSource. </description>
    <config-property-name>ConnectionProperties</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>This property dictates when PersistenceManagers will
    retain and release data store connections. Available options are
    "on-demand" for retaining a connection only during pessimistic
    transactions and data store operations, "transaction" for retaining a
    connection for the life of each transaction, or "persistence-manager" to
    indicate that a persistence manager should retain and reuse a single
    connection for its entire lifespan.</description>
    <config-property-name>ConnectionRetainMode</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>transaction</config-property-value>
    </config-property>
    <config-property>
    <description>The URL for the data source.</description>
    <config-property-name>ConnectionURL</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>The username for the connection listed in
    ConnectionURL.</description>
    <config-property-name>ConnectionUserName</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>Set to true if you''d like Kodo to copy all object
    ids before returning them to your code. If you do not plan on modifying
    identity objects, you can set this property to false to avoid the copying
    overhead.</description>
    <config-property-name>CopyObjectIds</config-property-name>
    <config-property-type>java.lang.Boolean</config-property-type>
    <config-property-value>false</config-property-value>
    </config-property>
    <config-property>
    <description>Plugin used to cache data loaded from the data store.
    Must implement kodo.datacache.DataCache.</description>
    <config-property-name>DataCache</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>The number of milliseconds that data in the data
    cache is valid for. A value of 0 or less means that by default, cached
    data does not time out.</description>
    <config-property-name>DataCacheTimeout</config-property-name>
    <config-property-type>java.lang.Integer</config-property-type>
    <config-property-value>-1</config-property-value>
    </config-property>
    <config-property>
    <description>The type of data source in use. Available options
    are "local" for a standard data source under Kodo''s control, or
    "enlisted" for a data source managed by an application server and
    automatically enlisted in global transactions.</description>
    <config-property-name>DataSourceMode</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>enlisted</config-property-value>
    </config-property>
    <config-property>
    <description>The kodo.jdbc.sql.DBDictionary to use for database
    interaction. This is auto-detected based on the setting of
    javax.jdo.option.ConnectionURL, so you need only set this to override the
    default with your own custom dictionary or if you are using an
    unrecognized driver.</description>
    <config-property-name>DBDictionary</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>Whether to dynamically create custom structs to hold
    and transfer persistent state in the Kodo data cache and remote
    persistence manager frameworks. Dynamic structs can reduce data cache
    memory consumption, reduce the amount of data serialized back and forth
    under remote persistence managers, and improve the overall performance of
    these systems. However, they increase application warm-up time while the
    custom classes are generated and loaded into the JVM. Set to true to
    enable dynamic data structs.</description>
    <config-property-name>DynamicDataStructs</config-property-name>
    <config-property-type>java.lang.Boolean</config-property-type>
    <config-property-value>false</config-property-value>
    </config-property>
    <config-property>
    <description>Specifies the default eager fetch mode to use.
    Either "none" to never eagerly-load relations, "join" for selecting 1-1
    relations along with the target object using inner or outer joins, or
    "parallel" for selecting 1-1 relations via joins, and collections
    (including to-many relations) along with the target object using separate
    select statements executed in parallel.</description>
    <config-property-name>EagerFetchMode</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>parallel</config-property-value>
    </config-property>
    <config-property>
    <description>The number of rows that will be pre-fetched when an
    element in a Query result is accessed. Use -1 to pre-fetch all
    results.</description>
    <config-property-name>FetchBatchSize</config-property-name>
    <config-property-type>java.lang.Integer</config-property-type>
    <config-property-value>-1</config-property-value>
    </config-property>
    <config-property>
    <description>The name of the JDBC fetch direction to use.
    Standard values are "forward", "reverse", and "unknown".</description>
    <config-property-name>FetchDirection</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>forward</config-property-value>
    </config-property>
    <config-property>
    <description>A comma-separated list of fetch group names that
    PersistenceManagers will load by default when loading data from the data
    store.</description>
    <config-property-name>FetchGroups</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>A comma-separated list of query filter listeners to
    add to the default list of extensions. Each listener must implement the
    kodo.jdbc.query.JDBCFilterListener interface.</description>
    <config-property-name>FilterListeners</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>Whether or not Kodo should automatically flush
    modifications to the data store before executing queries.</description>
    <config-property-name>FlushBeforeQueries</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>with-connection</config-property-value>
    </config-property>
    <config-property>
    <description>If true, Kodo will order all SQL inserts, updates,
    and deletes to meet your schema''s foreign key constraints. Defaults to
    false.</description>
    <config-property-name>ForeignKeyConstraints</config-property-name>
    <config-property-type>java.lang.Boolean</config-property-type>
    <config-property-value>false</config-property-value>
    </config-property>
    <config-property>
    <description>If false, then the JDO implementation must consider
    modifications, deletions, and additions in the PersistenceManager
    transaction cache when executing a query inside a transaction. Else, the
    implementation is free to ignore the cache and execute the query directly
    against the data store.</description>
    <config-property-name>IgnoreCache</config-property-name>
    <config-property-type>java.lang.Boolean</config-property-type>
    <config-property-value>true</config-property-value>
    </config-property>
    <config-property>
    <description>Plugin used to manage inverse relations during flush.
    Set to true to use the default inverse manager. Custom inverse managers
    must extend kodo.runtime.InverseManager.</description>
    <config-property-name>InverseManager</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>false</config-property-value>
    </config-property>
    <config-property>
    <description>A comma-separated list of
    com.solarmetric.jdbc.JDBCListener implementations to install on all
    connection pools.</description>
    <config-property-name>JDBCListeners</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>The license key provided to you by SolarMetric. Keys
    are available at www.solarmetric.com</description>
    <config-property-name>LicenseKey</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value><KEY-REMOVED></config-property-value>
    </config-property>
    <config-property>
    <description>Plugin used to handle acquiring locks on persistent
    instances. Must implement kodo.runtime.LockManager.</description>
    <config-property-name>LockManager</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>pessimistic</config-property-value>
    </config-property>
    <config-property>
    <description>The number of milliseconds to wait for an object lock
    before throwing an exception, or -1 for no limit.</description>
    <config-property-name>LockTimeout</config-property-name>
    <config-property-type>java.lang.Integer</config-property-type>
    <config-property-value>-1</config-property-value>
    </config-property>
    <config-property>
    <description>LogFactory and configuration for Kodo''s logging
    needs.</description>
    <config-property-name>Log</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>kodo(DefaultLevel=WARN, Tool=WARN,
    Runtime=WARN, SQL=WARN)</config-property-value>
    </config-property>
    <config-property>
    <description>The mode to use for calculating the size of large
    result sets. Legal values are "unknown", "last", and "query".</description>
    <config-property-name>LRSSize</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>query</config-property-value>
    </config-property>
    <config-property>
    <description>Plugin used to integrate with an external transaction
    manager. Must implement kodo.runtime.ManagedRuntime.</description>
    <config-property-name>ManagedRuntime</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>auto</config-property-value>
    </config-property>
    <config-property>
    <description>Plugin used to configure management and profiling
    capabilities.</description>
    <config-property-name>ManagementConfiguration</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>none</config-property-value>
    </config-property>
    <config-property>
    <description>The kodo.jdbc.meta.MappingFactory that will provide
    the object-relational mapping information needed to map each persistent
    class to the database.</description>
    <config-property-name>MappingFactory</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>file</config-property-value>
    </config-property>
    <config-property>
    <description>Plugin used to create metadata about persistent
    types. Must implement kodo.meta.MetaDataLoader</description>
    <config-property-name>MetaDataLoader</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>jdo</config-property-value>
    </config-property>
    <config-property>
    <description>If true, then the application plans to have multiple
    threads simultaneously accessing a single PersistenceManager, so measures
    must be taken to ensure that the implementation is thread-safe. Otherwise,
    the implementation need not address thread safety.</description>
    <config-property-name>Multithreaded</config-property-name>
    <config-property-type>java.lang.Boolean</config-property-type>
    <config-property-value>true</config-property-value>
    </config-property>
    <config-property>
    <description>If true, then it is possible to read persistent data
    outside the context of a transaction. Otherwise, a transaction must be in
    progress in order read data.</description>
    <config-property-name>NontransactionalRead</config-property-name>
    <config-property-type>java.lang.Boolean</config-property-type>
    <config-property-value>true</config-property-value>
    </config-property>
    <config-property>
    <description>If true, then it is possible to write to fields of a
    persistent-nontransactional object when a transaction is not in progress.
    If false, such a write will result in a JDOUserException.</description>
    <config-property-name>NontransactionalWrite</config-property-name>
    <config-property-type>java.lang.Boolean</config-property-type>
    <config-property-value>false</config-property-value>
    </config-property>
    <config-property>
    <description>Determines the persistence manager's behavior in
    calls to getObjectById with a validate parameter of false. Use "check" to
    check that a database record exists for the object and load its fetch
    group fields. Use "hollow" to return a hollow instance.</description>
    <config-property-name>ObjectLookupMode</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>check</config-property-value>
    </config-property>
    <config-property>
    <description>Selects between optimistic and pessimistic (data
    store) transactional modes.</description>
    <config-property-name>Optimistic</config-property-name>
    <config-property-type>java.lang.Boolean</config-property-type>
    <config-property-value>true</config-property-value>
    </config-property>
    <config-property>
    <description>Action to take when Kodo discovers an orphaned key in
    the database. May be a custom action implementing
    kodo.event.OrphanedKeyAction.</description>
    <config-property-name>OrphanedKeyAction</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>log</config-property-value>
    </config-property>
    <config-property>
    <description>The name of the concrete implementation of
    javax.jdo.PersistenceManagerFactory that
    javax.jdo.JDOHelper.getPersistenceManagerFactory () should create. For
    Kodo JDO, this should be kodo.jdbc.runtime.JDBCPersistenceManagerFactory
    or a custom extension of this type.</description>
    <config-property-name>PersistenceManagerFactoryClass</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>kodo.jdbc.runtime.JDBCPersistenceManagerFactory</config-property-value>
    </config-property>
    <config-property>
    <description>Persistence manager plugin and properties. If you
    use a custom class, it must extend
    kodo.runtime.PersistenceManagerImpl.</description>
    <config-property-name>PersistenceManagerImpl</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>default</config-property-value>
    </config-property>
    <config-property>
    <description>Configure this persistence manager factory to service
    remote persistence managers.</description>
    <config-property-name>PersistenceManagerServer</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>false</config-property-value>
    </config-property>
    <config-property>
    <description>A comma-separated list of the class names of all
    persistent classes to register whenever a persistence manager is
    obtained.</description>
    <config-property-name>PersistentClasses</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>com.ardatis.ventouris.domain.KwartaalVerhoging,
    com.ardatis.ventouris.domain.Land, com.ardatis.ventouris.domain.Gemeente,
    com.ardatis.ventouris.domain.Adres,
    com.ardatis.ventouris.domain.ContactGegeven,
    com.ardatis.ventouris.domain.AdresContactGegeven,
    com.ardatis.ventouris.common.type.AdresType,
    com.ardatis.ventouris.domain.OntvangstTransactie,
    com.ardatis.ventouris.domain.OntvangstReeks,
    com.ardatis.ventouris.domain.Ontvangst,
    com.ardatis.ventouris.domain.Inkomen,
    com.ardatis.ventouris.domain.loopbaan.LoopbaanPeriode,
    com.ardatis.ventouris.common.type.InkomenSoort,
    com.ardatis.ventouris.common.type.INSZ,
    com.ardatis.ventouris.domain.Aangeslotene,
    com.ardatis.ventouris.domain.NatuurlijkePersoon,
    com.ardatis.ventouris.domain.Persoon, com.ardatis.ventouris.domain.Rol,
    com.ardatis.ventouris.domain.Dossier,
    com.ardatis.ventouris.common.type.Geslacht,
    com.ardatis.ventouris.common.type.Taal,
    com.ardatis.ventouris.common.type.Nationaliteit,
    com.ardatis.ventouris.common.type.KostType,
    com.ardatis.ventouris.domain.Verhoging,
    com.ardatis.ventouris.domain.Aanvraag,
    com.ardatis.ventouris.domain.AanvraagAansluitingSS,
    com.ardatis.ventouris.domain.AanvraagToestand,
    com.ardatis.ventouris.common.type.AanvraagToestandType,
    com.ardatis.ventouris.domain.Factuur,
    com.ardatis.ventouris.domain.TaakType, com.ardatis.ventouris.domain.Taak,
    com.ardatis.ventouris.domain.BijdrageBerekening,
    com.ardatis.ventouris.domain.calculationparameters.HerwaarderingsIndex,
    com.ardatis.ventouris.domain.integration.asis.TempInterneOntvangst,
    com.ardatis.ventouris.domain.calculationparameters.InkomenGrens,
    com.ardatis.ventouris.domain.calculationparameters.BijdrageCategorie,
    com.ardatis.ventouris.domain.calculationparameters.BijdrageCategorieGroep,
    com.ardatis.ventouris.domain.integration.asis.TempOntvangstKinderbijslag,
    com.ardatis.ventouris.domain.calculationparameters.JaarVerhogingParameter,
    com.ardatis.ventouris.domain.calculationparameters.KwartaalVerhogingParameter,
    com.ardatis.ventouris.domain.UitgaveReeks,
    com.ardatis.ventouris.domain.Uitgave,
    com.ardatis.ventouris.domain.Terugbetaling,
    com.ardatis.ventouris.domain.BedragTerugbetaald,
    com.ardatis.ventouris.domain.BijdrageSS</config-property-value>
    </config-property>
    <config-property>
    <description>Plugin used to proxy second class object fields of
    managed instances. Must implement kodo.util.ProxyManager.</description>
    <config-property-name>ProxyManager</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>default</config-property-value>
    </config-property>
    <config-property>
    <description>Plugin used to cache query results loaded from the
    data store. Must implement kodo.datacache.QueryCache.</description>
    <config-property-name>QueryCache</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>true</config-property-value>
    </config-property>
    <config-property>
    <description>Plugin used to cache query compilation data. Must
    implement java.util.Map. Does not need to be thread-safe -- it will be
    wrapped via the Collections.synchronizedMap() method if it does not extend
    kodo.util.CacheMap.</description>
    <config-property-name>QueryCompilationCache</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>true</config-property-value>
    </config-property>
    <config-property>
    <description>The default lock level to use when loading objects
    within non-optimistic transactions. Set to none, read, write, or the
    numeric value of the desired lock level for your lock
    manager.</description>
    <config-property-name>ReadLockLevel</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value>read</config-property-value>
    </config-property>
    <config-property>
    <description>Plugin used to communicate commit information among
    JVMs. Must implement kodo.event.RemoteCommitProvider.</description>
    <config-property-name>RemoteCommitProvider</config-property-name>
    <config-property-type>java.lang.String</config-property-type>
    <config-property-value></config-property-value>
    </config-property>
    <config-property>
    <description>Whether or not RemoteCommitEvents will include the
    object Ids of objects added during the transaction.</description>
    <config-property-name>RemoteCommitTransmitAddObjectIds</config-property-na

  • ORA-01461: can bind a LONG value only for insert into a LONG colu

    Hello - I have a variable defined in a package as VARCHAR2(32720). This is not a table column. I am building a string inside the vairable, loading in invoice data in sections one at a time. It seems that once I get a larger number of invoices (say 100+) to load in, I get the "ORA-01461: can bind a LONG value only for insert into a LONG column" error. I am not trying to insert into a table column; just stringing together data in this large variable.
    Why would I be getting this error ? And is there a workaround ? The variable is read back out iin 80 byte strings which are then loaded to a table column that is varchar2(80).
    Thanks !!
    Jim Ernst
    Invacare Corporation

    Here is the definition of the field:
    l_EDI820_Data VARCHAR2(32720);
    And here is the loop used to populate the field. As i mentioned, it seems that once the process gets over 100 invoices coming in that the field hits the error; seems as if we are hitting say 4000 characters or near it at that point...
    FOR r_INVOICE_DETAIL IN cr_INVOICE_DETAILS LOOP
    l_EDI820_Data := l_EDI820_Data
    ||l_RMR_Statement
    ||r_INVOICE_DETAIL.INVOICE_NUM
    ||'*PI*'
    ||LTRIM(TO_CHAR(NVL(r_INVOICE_DETAIL.PAYMENT_AMOUNT,0))) -- Net Amount to be applied
    ||'*'
    ||LTRIM(TO_CHAR(r_INVOICE_DETAIL.INVOICE_AMOUNT,'999999.99')) -- Gross Amount
    ||l_Delimiter;
    l_TOTAL_SEGMENTS := l_TOTAL_SEGMENTS + 1;
    END LOOP; -- r_INVOICE_DETAIL
    There are some other statements that are adding additional data onto l_EDI820_Data ; this one is the loop that is basedon the invoices coming in.
    This code writes it to the table (field EDI820_DATA in the table is VARCHAR2(94)):
    l_EDI820_String_Length := LENGTH(RTRIM(l_EDI820_Data));
    l_EDI820_SUBSTR_START := 1;
    l_RECORD_SEQ_NO := 1;
    WHILE SUBSTR(l_EDI820_Data, l_EDI820_SUBSTR_START, 80) <> ' ' LOOP
    INSERT INTO XXAP_NACHA_EDI820_GTEMP_TBL
    SELECTED_CHECK_ID
    ,EDI820_SEQ
    ,EDI820_DATA
    VALUES (
    r_CHECK_IDS.SELECTED_CHECK_ID
    ,l_RECORD_SEQ_NO
    ,'705'||SUBSTR(l_EDI820_Data, l_EDI820_SUBSTR_START, 80)
    -- * Increment starting point for substring and also record sequence number
    l_EDI820_SUBSTR_START := l_EDI820_SUBSTR_START + 80;
    l_RECORD_SEQ_NO := l_RECORD_SEQ_NO + 1;
    END LOOP; -- WHILE Loop

  • Array out of bounds Exception

    this code :
      public void clearAroundTile (int row, int col) {
            //Checks if a tile is visited, has a hint and hintvalue == adjacent flagged tiles
           if(tiles[row][col].isVisited() && tiles[row][col].isHint() && tiles[row][col].getHint()<= getNumFlagsAround(tiles[row][col])){
             if(!tileAt(tiles[row][col], Direction.N).isFlagged()){
                 visitTile(tileAt(tiles[row][col], Direction.N));
             if(!tileAt(tiles[row][col], Direction.NE).isFlagged()){
                 visitTile(tileAt(tiles[row][col], Direction.NE));
             if(!tileAt(tiles[row][col], Direction.E).isFlagged()){
                 visitTile(tileAt(tiles[row][col], Direction.E));visits all the tiles on a board, around a base tile, now the problem is that sometimes, when if checks aorund a tile that is near the edge of a board i get an out of bounds exeption, i know why this happens, but i dont know what type of if statments i should use to correct it, i was thinking.. do if(row-1)>0) then it does not go out of the board, but then how would i do it for the edge of the board that does not relate to zero? any ideas.
    thanks

      if(row > 0 && tiles[row][col].isBlank()  )
                if(!tiles[row-1][col].isVisited()){
                    clearAroundTile(row-1, col);
                    visitTile(tileAt(tiles[row][col], Direction.N));
            if(row -1 > 0 && col + 1 < cols && tiles[row][col].isBlank()  )
                if(!tiles[row-1][col+1].isVisited()){
                    clearAroundTile(row-1, col+1);
                    visitTile(tileAt(tiles[row][col], Direction.NE));
                }i am using this to automatically clear the tiles that are blank, that is only for 2 directions, i did it for all, and for some reason i keep getting a stack overflow, damn

  • String index out of bounds... issue regarding checking for non-integers

    okay. i have been racking my brain about this for the last couple of days. i looks like everything is alright, but i keep getting string index out of bounds exception: string index out of range 1.
    heres the code.
                   for(int x=0; x<size; ++x)
                        count=x+1;
                        System.out.println("Please enter value #"+count+(":"));
                        numnum=console.nextLine();
                        if(Character.isDigit(numnum.charAt(x)))
                             goodInput=true;
                        if(!goodInput)
                             System.out.print("Please Enter Only Integers!");
                        else
                             values[x]=Integer.parseInt(numnum);
    its probably something really stupid, but if someone can figure this out, id be most grateful.
    -thanks

    Be sure values contains data.
    Then make sure that size = values.length
    Either you don't have any data to iterate through, or the size variable is too big. So it's trying to search in parts of the array that don't exist.

  • Out of Bounds Memory Exception in Open JMS

    Hi Friends,
    I am currently using Open JMS version openjms-0.7.6.1 for a Java Swing based application for communication. But I got a memory out of bounds exception if I start the open JMS server for a long period of time and need to restart the open JMS server again. I tried increasing the Memory allocated in Open JMS configuration file but of no use( Only a few minutes more added to raised the exception)
    I have heard of Java Service Wrapper and can use it in the Open JMS server. Can any one help me out or provide me a solution or any link?Is Java Service Wrapper really helpful?If yes, how(Please post some code or an example)? I like to mention that if I go for JSW , I want it to work for both windows as well as Unix or Linux.
    Thanks in advance...

    java.lang.StringIndexOutOfBoundsException: String index out of range: 6
         at java.lang.String.substring(Unknown Source)
         at ImportOSTableModel.initVectors(ImportOSTableModel.java:49)
         at ImportOSTableModel.<init>(ImportOSTableModel.java:15)
         at ImportOSTable.<init>(ImportOSTable.java:19)
         at Main.main(Main.java:53)
    It printed 3 rows of data, and then runs into a null string. Shouldn't it just exit out of the while loop before hitting the exception? In any case, I'll input a check so that the loop doesn't exit if there is only one row of data missing, since there are empty lines in the report.

  • Java Array Out Of Bounds Problem

    In order to conduct an experiment in java array sorting algorithm efficiency, i am attempting to create and populate an empty array of 1000 elements with random, unique integers for sorting. I've been able to generate and populate an array with random integers but the problem is - for whatever size array I create, it only allows the range of numbers to populate it to be the size of the array, for instance, an array of size 3000 allows only the integer range of 0-3000 to populate it with or I get an out of bounds exception during runtime. How can you specify an integer range of say 0-5000 for an array of size < 5000? Any help is appreciated.

    Another approach is to fill the array with an
    arithmetic sequence, maybe plus some random noise:
        array[i] = i * k + rand(k);or some such, so they are unique,
    and then permute the array (put the elements
    s in random order)
        for (i : array.length) {
    transpose(array, array[rand(i..length)]); }
    Along those lines, java.util.Collections.shuffle can be used to randomly shuffle a List (such as an ArrayList).  Create an ArrayList with numbers in whatever range is needed.  Then call java.util.Collections.shuffle(myArrayList). [It is static in Collections--you don't need to [and can't] create a Collections object.]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • ORA-00257: archiver error. Connect internal only

    Hello everyone,
    On 10gR2, if we face the above error, the system would hang for some time. During this time no one will be able to connect. SYSDBA session will hang and wont give you SQL prompt quickly.
    I want to know if there is any way to remove this time gap.
    thanks

    Hello,
    The ORA-00257 is likely due to a lack of space which prevent generating Archived redologs:
    ORA-00257: archiver error. Connect internal only, until freed.
    Cause: The archiver process received an error while trying to archive a redo log. If the problem
    is not resolved soon, the database will stop executing transactions. The most likely cause of this
    message is the destination device is out of space to store the redo log file.
    Action: Check archiver trace file for a detailed description of the problem. Also verify that the
    device specified in the initialization parameter ARCHIVE_LOG_DEST is set up properly for archiving.So check for a File System full and the use of the Flash Recovery Area (FRA).
    The following Note from MOS explains how to check the FRA and how to free space in it:
    How to Resolve ORA-00257: Archiver is Stuck Error in 10g? [ID 278308.1]
    The database hungs for some time even after clearing the archive log destination. And it is this time that I want to reduce.I think that the best way is to monitore the Archive destination so that you can clear the space before the Database hang.
    If you use EM Database Control, you may set some Alert Notification. More over, you have the specific Archive Full Metric:
    http://download.oracle.com/docs/cd/B19306_01/em.102/b25986/oracle_database.htm#sthref540
    Hope this help.
    Best regards,
    Jean-Valentin
    Edited by: Lubiez Jean-Valentin on Jul 24, 2011 10:46 PM

Maybe you are looking for