Here is a recap of all the things I tried. It has been tough to
pinpoint the problem because I have been unable to duplicate the
problem in any of my three computers. In our team of 10, five of the
10 HP laptops got the error.

- First I had everything in one large database - 24GB in size and I
used the standard jdbc:h2:<path> connection
- I split the data into three databases (15GB, 7GB, 3GB). The
computers could establish a connection to the other two but not the
15GB one.
- I switched to using jdbc:h2:zip:
- I switched to using jdbc:h2:split:
- I switched to using jdbc:h2:tcp:
(In all of the above tests the application worked fine on the other
machines but the same five failed with identical error.)
- I split and trimmed the data further (into five databases) so now
the largest database is only 6GB in size and I went back to using
jdbc:h2:split. This is currently the working version now on all the
machines.


> - What is your database URL?
These are the connections I tried:
//        connection = DriverManager.getConnection("jdbc:h2:tcp://
localhost/" + path + ";CACHE_SIZE=512000", "sa", "");
//        connection = DriverManager.getConnection("jdbc:h2:" + path +
";CACHE_SIZE=512000", "sa", "");
//        connection = DriverManager.getConnection("jdbc:h2:zip:" +
path + ";CACHE_SIZE=512000", "sa", "");
        connection = DriverManager.getConnection("jdbc:h2:split:" +
path + ";CACHE_SIZE=512000", "sa", "");

> - Did the application run out of memory (once, or multiple times)?
application did not run out of memory. I have code to close the
application when a database connection cannot be established.

> - How did you start the Java process (java -Xmx... and so on)?
from a batch file:
java -Xms256m -Xmx900m -jar EvoClient.jar

> - Is it (or was it at some point) a networked file system?
The laptops are on our corporate network with some mapped drives, but
all the database files were copied onto the local drives.

> - How big is the database (file sizes)?
So far the largest ...h2.db was 24GB. I also know that 15GB was still
too large but that 7GB works.

> - How much heap memory does the Java process have?
Initial allocation is 256MB and maximum is set to 900MB

> - Are there any other exceptions (maybe in the .trace.db file)?
This is the only exception in the trace.db file:
12-10 09:43:46 database: opening C:\SAClient\data\IBMPROD.SA
org.h2.jdbc.JdbcSQLException: IO Exception: "java.io.IOException:
Insufficient system resources exist to complete the requested
service"; "C:\SAClient\data\IBMPROD.SA.h2.db" [90031-124]
        at org.h2.message.Message.getSQLException(Message.java:111)
        at org.h2.message.Message.convertIOException(Message.java:329)
        at org.h2.store.FileStore.readFully(FileStore.java:286)
        at org.h2.store.PageStore.readPage(PageStore.java:969)
        at org.h2.store.PageStore.getPage(PageStore.java:490)
        at org.h2.store.PageStore.getFreeList(PageStore.java:802)
        at org.h2.store.PageStore.allocatePage(PageStore.java:864)
        at org.h2.store.PageStore.allocatePage(PageStore.java:856)
        at org.h2.index.PageDataLeaf.split(PageDataLeaf.java:352)
        at org.h2.index.PageDataNode.addRowTry(PageDataNode.java:153)
        at org.h2.index.PageDataNode.addRowTry(PageDataNode.java:145)
        at org.h2.index.PageDataIndex.addTry(PageDataIndex.java:149)
        at org.h2.index.PageDataIndex.add(PageDataIndex.java:122)
        at org.h2.table.TableData.addRow(TableData.java:130)
        at org.h2.store.PageStore.redo(PageStore.java:1196)
        at org.h2.store.PageLog.recover(PageLog.java:285)
        at org.h2.store.PageStore.recover(PageStore.java:1051)
        at org.h2.store.PageStore.openExisting(PageStore.java:310)
        at org.h2.store.PageStore.open(PageStore.java:268)
        at org.h2.engine.Database.getPageStore(Database.java:2305)
        at org.h2.engine.Database.open(Database.java:624)
        at org.h2.engine.Database.openDatabase(Database.java:227)
        at org.h2.engine.Database.<init>(Database.java:221)
        at org.h2.engine.Engine.openSession(Engine.java:58)
        at org.h2.engine.Engine.openSession(Engine.java:142)
        at org.h2.engine.Engine.getSession(Engine.java:122)
        at org.h2.engine.SessionFactoryEmbedded.createSession
(SessionFactoryEmbedded.java:17)
        at org.h2.engine.SessionRemote.connectEmbeddedOrServer
(SessionRemote.java:245)
        at org.h2.engine.SessionRemote.createSession(SessionRemote.java:223)
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:110)
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:94)
        at org.h2.Driver.connect(Driver.java:58)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at com.sps.sa.services.H2Service.startDB(H2Service.java:49)
        at com.sps.sa.services.SADBService.startDB(SADBService.java:53)
        at com.sps.sa.db.SADBServiceManager.startDataBases
(SADBServiceManager.java:45)
        at com.sps.sa.views.MainFrame.jbInit(MainFrame.java:176)
        at com.sps.sa.views.MainFrame.<init>(MainFrame.java:72)
        at com.sps.sa.views.MainFrame.<clinit>(MainFrame.java:42)
        at com.sps.sa.views.SAClient.<init>(SAClient.java:47)
        at com.sps.sa.views.SAClient.main(SAClient.java:130)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at com.sps.sa.views.SplashScreen.<init>(SplashScreen.java:64)
        at com.sps.sa.views.SplashScreen.main(SplashScreen.java:86)
Caused by: java.io.IOException: Insufficient system resources exist to
complete the requested service
        at java.io.RandomAccessFile.readBytes(Native Method)
        at java.io.RandomAccessFile.read(Unknown Source)
        at java.io.RandomAccessFile.readFully(Unknown Source)
        at org.h2.store.FileStore.readFully(FileStore.java:284)
        ... 45 more
12-10 09:45:21 database: opening C:\SAClient\data\IBMPROD.SA
org.h2.jdbc.JdbcSQLException: IO Exception: "java.io.IOException:
Insufficient system resources exist to complete the requested
service"; "C:\SAClient\data\IBMPROD.SA.h2.db" [90031-124]
        at org.h2.message.Message.getSQLException(Message.java:111)
        at org.h2.message.Message.convertIOException(Message.java:329)
        at org.h2.store.FileStore.readFully(FileStore.java:286)
        at org.h2.store.PageStore.readPage(PageStore.java:969)
        at org.h2.store.PageStore.getPage(PageStore.java:490)
        at org.h2.store.PageStore.getFreeList(PageStore.java:802)
        at org.h2.store.PageStore.allocatePage(PageStore.java:864)
        at org.h2.store.PageStore.allocatePage(PageStore.java:856)
        at org.h2.index.PageDataLeaf.split(PageDataLeaf.java:352)
        at org.h2.index.PageDataNode.addRowTry(PageDataNode.java:153)
        at org.h2.index.PageDataNode.addRowTry(PageDataNode.java:145)
        at org.h2.index.PageDataIndex.addTry(PageDataIndex.java:149)
        at org.h2.index.PageDataIndex.add(PageDataIndex.java:122)
        at org.h2.table.TableData.addRow(TableData.java:130)
        at org.h2.store.PageStore.redo(PageStore.java:1196)
        at org.h2.store.PageLog.recover(PageLog.java:285)
        at org.h2.store.PageStore.recover(PageStore.java:1051)
        at org.h2.store.PageStore.openExisting(PageStore.java:310)
        at org.h2.store.PageStore.open(PageStore.java:268)
        at org.h2.engine.Database.getPageStore(Database.java:2305)
        at org.h2.engine.Database.open(Database.java:624)
        at org.h2.engine.Database.openDatabase(Database.java:227)
        at org.h2.engine.Database.<init>(Database.java:221)
        at org.h2.engine.Engine.openSession(Engine.java:58)
        at org.h2.engine.Engine.openSession(Engine.java:142)
        at org.h2.engine.Engine.getSession(Engine.java:122)
        at org.h2.engine.SessionFactoryEmbedded.createSession
(SessionFactoryEmbedded.java:17)
        at org.h2.engine.SessionRemote.connectEmbeddedOrServer
(SessionRemote.java:245)
        at org.h2.engine.SessionRemote.createSession(SessionRemote.java:223)
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:110)
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:94)
        at org.h2.Driver.connect(Driver.java:58)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at com.sps.sa.services.H2Service.startDB(H2Service.java:49)
        at com.sps.sa.services.SADBService.startDB(SADBService.java:53)
        at com.sps.sa.db.SADBServiceManager.startDataBases
(SADBServiceManager.java:45)
        at com.sps.sa.views.MainFrame.jbInit(MainFrame.java:176)
        at com.sps.sa.views.MainFrame.<init>(MainFrame.java:72)
        at com.sps.sa.views.MainFrame.<clinit>(MainFrame.java:42)
        at com.sps.sa.views.SAClient.<init>(SAClient.java:47)
        at com.sps.sa.views.SAClient.main(SAClient.java:130)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at com.sps.sa.views.SplashScreen.<init>(SplashScreen.java:64)
        at com.sps.sa.views.SplashScreen.main(SplashScreen.java:86)
Caused by: java.io.IOException: Insufficient system resources exist to
complete the requested service
        at java.io.RandomAccessFile.readBytes(Native Method)
        at java.io.RandomAccessFile.read(Unknown Source)
        at java.io.RandomAccessFile.readFully(Unknown Source)
        at org.h2.store.FileStore.readFully(FileStore.java:284)
        ... 45 more
>     Could you send them please?

> - After how long do you usually get this problem?
I put in debug statements right before the getconnection and right
after. I'm not exactly sure how long as I did not timestamp the
statements. But it seems about couple seconds into establishing the
connection. The second debug statement obviously does not get written
when the failure occurs.

> Could you provide the link where you found this information, except
> for the one you aleady sent?
I don't have any other links. I saw that last link as well. I can't
say for certain that the non paged Kernel is the issue. It is just
something we found in common with the failed machines. All 'good'
machines had a larger total Kernel and non paged whereas the failed
machines were all smaller in that regard. It is totally possible that
it could be something totally else and that is just a coincidence.

--

You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/h2-database?hl=en.


Reply via email to