Announcement Announcement Module
Collapse
No announcement yet.
where this error come from??? Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • where this error come from???

    Hi everyone!

    My full Stack: MySql 6 | Lucene | Hibernate | Spring | Flex
    Remoting Server is BlazeDS and web Server is Tomcat 6.
    Database Sch: A 1..* B
    One record Size : < 2ko
    Main table size A : 1,2M Records

    Everything was working fine until we made the full index yesterday, 550Mo , i'm not sure that it's related to our problem but everything was okay before! I get results by 10 from the database and they are explicitly paginated with Lucene. Starting the navigation with flex component, the application crashes after few requests and the throughouptput on AMF channels is getting higher i don't know why (i thought all requests have the same size, but it seems a cumulative size here) . This screenshots from the BlazeDs Administration Console:
    (Sorry , comments are in french ^^')
    1) http://img268.imageshack.us/img268/9...oughoutput.png
    and then
    2) http://img3.imageshack.us/img3/4137/throughoutput2.png

    JUnit tests are okay!
    Can this be a mapping error? or it is a blazeDS issue? or something else i'm not seeing?
    here is the full error stack:
    Code:
    [BlazeDS]Java heap space
    java.lang.OutOfMemoryError: Java heap space
    	at com.mysql.jdbc.Buffer.getBytes(Buffer.java:198)
    	at com.mysql.jdbc.Buffer.readLenByteArray(Buffer.java:318)
    	at com.mysql.jdbc.MysqlIO.nextRow(MysqlIO.java:1375)
    	at com.mysql.jdbc.MysqlIO.readSingleRowSet(MysqlIO.java:2369)
    	at com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:451)
    	at com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:2076)
    	at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:1451)
    	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1787)
    	at com.mysql.jdbc.Connection.execSQL(Connection.java:3283)
    	at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1332)
    	at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1467)
    	at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208)
    	at org.hibernate.loader.Loader.getResultSet(Loader.java:1808)
    	at org.hibernate.loader.Loader.doQuery(Loader.java:697)
    	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
    	at org.hibernate.loader.Loader.loadCollection(Loader.java:2015)
    and then this error appear :
    Code:
    [BlazeDS]null
    java.lang.StackOverflowError
    	at org.apache.log4j.Category.callAppenders(Category.java:215)
    	at org.apache.log4j.Category.forcedLog(Category.java:391)
    	at org.apache.log4j.Category.log(Category.java:856)
    	at org.slf4j.impl.Log4jLoggerAdapter.debug(Log4jLoggerAdapter.java:173)
    	at org.hibernate.jdbc.AbstractBatcher.logOpenPreparedStatement(AbstractBatcher.java:410)
    	at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:160)
    	at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1573)
    	at org.hibernate.loader.Loader.doQuery(Loader.java:696)
    	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
    	at org.hibernate.loader.Loader.loadCollection(Loader.java:2015)
    	at org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java:59)
    	at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:587)
    	at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:83)
    	at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1743)
    	at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:366)
    	at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:108)
    	at org.hibernate.collection.PersistentSet.toArray(PersistentSet.java:194)
    	at java.util.ArrayList.<init>(Unknown Source)
    	at flex.messaging.io.ArrayCollection.<init>(ArrayCollection.java:44)
    Tkx in advance

  • #2
    Doesn't look to me like a BlazeDS problem. If the size of the payloads is growing significantly, I would think perhaps you are loading more data than you realize. Either that or you've got lazy Hibernate collections that are getting initialized during the AMF serialization process (though for that to even work without getting immediate errors, you would have to be using something like the OpenSessionInViewFilter). Given though that the error looks to specifically be occurring when the JDBC driver is executing your queries, I would lean towards the first suggestion.

    Comment


    • #3
      I'm looking now in this same issue you mentioned. Actually the data scheme ( that i didn't care that much in first sight) may be the cause of this problem!
      Actually the association between A and B is many to many relation. (a Person may have many organism and organism may contain many Person). Okay, wanna try something else: Can you give me an advice on tuning my JVM, if my pc (WINDOWS XP) has 3GB of RAM and is fully dedicated to this work, what would be the best configuration for me?

      Comment

      Working...
      X