• Domino Server crashes when reading multiple value field with to many values

    By Tobias Arnold 1 decade ago

    Hello,

    I'm using JDBC Acces for Lotus Domino to show Notes Views in BIRT-Reports. In one of my Views i have a multiple values field with more than 30 names in it. When i try to read this field in a BIRT-Report the Domino Server crashes and i get the following Error Message:

     

    org.eclipse.birt.data.engine.odaconsumer.OdaDataException: Cannot fetch the next data row.
    
        org.eclipse.birt.report.data.oda.jdbc.JDBCException: Cannot move down to next row in the result set.
    
    SQL error #1:null
    
     ;
    
        java.sql.SQLException
    
     
    
    at org.eclipse.birt.data.engine.odaconsumer.ExceptionHandler.newException(ExceptionHandler.java:52)
    
    at org.eclipse.birt.data.engine.odaconsumer.ExceptionHandler.throwException(ExceptionHandler.java:108)
    
    at org.eclipse.birt.data.engine.odaconsumer.ExceptionHandler.throwException(ExceptionHandler.java:84)
    
    at org.eclipse.birt.data.engine.odaconsumer.ResultSet.fetch(ResultSet.java:143)
    
    at org.eclipse.birt.data.engine.executor.cache.OdiAdapter.fetch(OdiAdapter.java:214)
    
    at org.eclipse.birt.data.engine.executor.cache.RowResultSet.doNext(RowResultSet.java:113)
    
    at org.eclipse.birt.data.engine.executor.cache.RowResultSet.next(RowResultSet.java:91)
    
    at org.eclipse.birt.data.engine.executor.cache.ExpandableRowResultSet.next(ExpandableRowResultSet.java:63)
    
    at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.populateData(SmartCacheHelper.java:316)
    
    at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.initInstance(SmartCacheHelper.java:285)
    
    at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.initOdaResult(SmartCacheHelper.java:154)
    
    at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.getResultSetCache(SmartCacheHelper.java:79)
    
    at org.eclipse.birt.data.engine.executor.cache.SmartCache.<init>(SmartCache.java:57)
    
    at org.eclipse.birt.data.engine.executor.transform.pass.PassUtil.populateOdiResultSet(PassUtil.java:99)
    
    at org.eclipse.birt.data.engine.executor.transform.pass.PassUtil.pass(PassUtil.java:62)
    
    at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.doSinglePass(PassManager.java:170)
    
    at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.prepareDataSetResultSet(PassManager.java:94)
    
    at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.pass(PassManager.java:134)
    
    at org.eclipse.birt.data.engine.executor.transform.pass.PassManager.populateResultSet(PassManager.java:74)
    
    at org.eclipse.birt.data.engine.executor.transform.ResultSetPopulator.populateResultSet(ResultSetPopulator.java:198)
    
    at org.eclipse.birt.data.engine.executor.transform.CachedResultSet.<init>(CachedResultSet.java:97)
    
    at org.eclipse.birt.data.engine.executor.DataSourceQuery.execute(DataSourceQuery.java:1025)
    
    at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery$OdaDSQueryExecutor.executeOdiQuery(PreparedOdaDSQuery.java:428)
    
    at org.eclipse.birt.data.engine.impl.QueryExecutor.execute(QueryExecutor.java:1134)
    
    at org.eclipse.birt.data.engine.impl.ServiceForQueryResults.executeQuery(ServiceForQueryResults.java:232)
    
    at org.eclipse.birt.data.engine.impl.QueryResults.getResultIterator(QueryResults.java:177)
    
    at org.eclipse.birt.report.engine.api.impl.ExtractionResults.nextResultIterator(ExtractionResults.java:74)
    
    at org.eclipse.birt.report.designer.data.ui.dataset.DataSetPreviewer.preview(DataSetPreviewer.java:70)
    
    at org.eclipse.birt.report.designer.data.ui.dataset.ResultSetPreviewPage$5.run(ResultSetPreviewPage.java:337)
    
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
    
    Caused by: org.eclipse.birt.report.data.oda.jdbc.JDBCException: Cannot move down to next row in the result set.
    
    SQL error #1:null
    
     ;
    
        java.sql.SQLException
    
     
    
    at org.eclipse.birt.report.data.oda.jdbc.ResultSet.next(ResultSet.java:197)
    
    at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaResultSet.next(OdaResultSet.java:180)
    
    at org.eclipse.birt.data.engine.odaconsumer.ResultSet.fetch(ResultSet.java:138)
    
    ... 26 more
    
     
    
    Caused by: java.sql.SQLException
    
    at com.ibm.domino.domsql.remote.client.ClientObject.newSQLException(ClientObject.java:42)
    
    at com.ibm.domino.domsql.remote.client.ClientResultSet.next(ClientResultSet.java:975)
    
    at org.eclipse.birt.report.data.oda.jdbc.ResultSet.next(ResultSet.java:188)
    
    ... 28 more
    
     
    
    Caused by: java.rmi.UnmarshalException: Error unmarshaling return header; nested exception is: 
    
    java.net.SocketException: Connection reset
    
    at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
    
    at sun.rmi.server.UnicastRef.invoke(Unknown Source)
    
    at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(Unknown Source)
    
    at java.rmi.server.RemoteObjectInvocationHandler.invoke(Unknown Source)
    
    at $Proxy4._next(Unknown Source)
    
    at com.ibm.domino.domsql.remote.client.ClientResultSet.next(ClientResultSet.java:964)
    
    ... 29 more
    
     
    
    Caused by: java.net.SocketException: Connection reset
    
     
    
    at java.net.SocketInputStream.read(Unknown Source)
    
    at java.net.SocketInputStream.read(Unknown Source)
    
    at java.io.BufferedInputStream.fill(Unknown Source)
    
    at java.io.BufferedInputStream.read(Unknown Source)
    
    at java.io.DataInputStream.readByte(Unknown Source)
    
    ... 35 more
    
     
    

    When i reduse the number of values to less than 25 it works perfectly. I think it's a specific problem when using multiple value fields because a normal text field with much more text is working without any problems.

    I hope someone can help me.

    Thanks in advance!

     

    • Hum,seems an buffer issue

      By Philippe Riand 1 decade ago

      Although I can't see any hard coded buffer size in the code. Do you also have an exception on the server side, because this should be where the problem occurred?

      Can you send me a reproducible use case?

      • nsf to reproduce the error

        By Tobias Arnold 1 decade ago

        Sorry for the late reply. I didn't worked with it the last weeks.

        I attached an nsf with which you can reproduce the error.

        When i execute this SQL Command: "SELECT  * FROM Test_View" the server crashes.

        I found these three lines in the log file:

         

        [0BD4:0038-0E48]  Thread=[0BD4:0038-0E48]
        
        [0BD4:0038-0E48] Stack base=0x23770088, Stack size = 7148 bytes
        
        [0BD4:0038-0E48] PANIC: Process C:\Lotus\Domino\ndots.EXE (1424/0x590) has terminated abnormally
        

        Thanks for your help!

        • My time to be a little bit late (!)

          By Philippe Riand 1 decade ago

          But I found and fix the issue. It will be in the next build, coming out soon, with a better handling of multiple value fields!

          • Solved my Problem

            By Tobias Arnold 1 decade ago

            Thanks for the update! I just tested it and it solved my problem.