Return-Path: Delivered-To: apmail-openjpa-users-archive@minotaur.apache.org Received: (qmail 82259 invoked from network); 19 Mar 2009 08:20:12 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 19 Mar 2009 08:20:12 -0000 Received: (qmail 41304 invoked by uid 500); 19 Mar 2009 08:20:11 -0000 Delivered-To: apmail-openjpa-users-archive@openjpa.apache.org Received: (qmail 41277 invoked by uid 500); 19 Mar 2009 08:20:11 -0000 Mailing-List: contact users-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@openjpa.apache.org Delivered-To: mailing list users@openjpa.apache.org Received: (qmail 41266 invoked by uid 99); 19 Mar 2009 08:20:11 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 19 Mar 2009 01:20:11 -0700 X-ASF-Spam-Status: No, hits=0.2 required=10.0 tests=SPF_HELO_PASS,SPF_PASS,WHOIS_MYPRIVREG X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of lists+1214986160035-208411@n2.nabble.com designates 216.139.236.158 as permitted sender) Received: from [216.139.236.158] (HELO kuber.nabble.com) (216.139.236.158) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 19 Mar 2009 08:20:03 +0000 Received: from tervel.nabble.com ([192.168.236.150]) by kuber.nabble.com with esmtp (Exim 4.63) (envelope-from ) id 1LkDTa-0005CG-NS for users@openjpa.apache.org; Thu, 19 Mar 2009 01:19:42 -0700 Message-ID: <1237450782721-2501684.post@n2.nabble.com> Date: Thu, 19 Mar 2009 01:19:42 -0700 (PDT) From: Shubbis To: users@openjpa.apache.org Subject: Re: Slow performance with OpenJPA when selecting from a ManyToMany relation. In-Reply-To: <89c0c52c0903180946u9ae743bw7188abe572e5b8@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Nabble-From: marius.jones@broadpark.no References: <1236860524615-2466994.post@n2.nabble.com> <1236893446537-2470215.post@n2.nabble.com> <1237283760827-2490419.post@n2.nabble.com> <1237283840925-2490426.post@n2.nabble.com> <1237285058828-2490519.post@n2.nabble.com> <1237300057977-2491667.post@n2.nabble.com> <1237306184790-2492297.post@n2.nabble.com> <1237314632982-2493009.post@n2.nabble.com> <61BBA329F6969F41B79EF9E92114FEA70642C31D@PROSRV0001.proteans.local> <89c0c52c0903180946u9ae743bw7188abe572e5b8@mail.gmail.com> X-Virus-Checked: Checked by ClamAV on apache.org Hi, thanks for the suggestion, but we are aware of that, and we have turned it off on EclipseLink to even the playingfield. Today we found a new problem with OpenJPA. When running the following method we get a similar type of performance hit and an Exception after the first run. Note: This exception is the same one we get when running the ManyToMany test in a loop. The method: public void insertDeliveryCompany(int iterations) throws Exception{ log.setMethod(iterations); for (int i = 0; i < 10; i++) { // DeliveryCompany med contactinfo, adress, areacode og country IDeliveryCompanyDAO dcDao = daoFactory.getDeliveryCompanyDAO(); DeliveryCompany deliveryCompany; ArrayList deliveryCompanies = new ArrayList(); // Fyller DeliveryCompany listen for(int interval = 0; interval < iterations; interval++){ // Region Region region = new Region(); region.setRegion("insertDeliveryCompanyRegion"); // Country Country country = new Country(); country.setCountry("insertDeliveryCompanyCountry"); country.setRegion(region); // AreaCode AreaCode areaCode = new AreaCode(); areaCode.setArea("insertDeliveryCompanyAreaCode"); areaCode.setCountry(country); // Address Address address = new Address(); address.setAddress("insertDeliveryCompanyAddress"); address.setAreaCode(areaCode); // ContactInfo ContactInfo contactInfo = new ContactInfo(); contactInfo.setAddress(address); contactInfo.setEmail("insertDeliveryCompanyEmail"); contactInfo.setPhoneNr("insertDeliveryCompanyPhoneNr"); // Fyller DeliveryCompany listen deliveryCompany = new DeliveryCompany(); deliveryCompany.setCompanyName("insertDeliveryCompany"); deliveryCompany.setContactInfo(contactInfo); deliveryCompanies.add(deliveryCompany); } log.registerStart(); daoFactory.beginTransaction(); for (int j = 1; j <= iterations; j++) { dcDao.save(deliveryCompanies.get(j-1)); log.registerIteration(j + 1); } daoFactory.commitTransaction(); // daoFactory.resetEntityManager(); log.registerEnd(); } log.endMethod(); } And the console dump: 94 OpenJPAPU INFO [main] openjpa.Runtime - Starting OpenJPA 1.2.0 172 OpenJPAPU INFO [main] openjpa.jdbc.JDBC - Using dictionary class "org.apache.openjpa.jdbc.sql.MySQLDictionary". OPENJPA (insertDeliveryCompany): 43500 0 OpenJPAPU INFO [main] openjpa.Runtime - Starting OpenJPA 1.2.0 0 OpenJPAPU INFO [main] openjpa.jdbc.JDBC - Using dictionary class "org.apache.openjpa.jdbc.sql.MySQLDictionary". org.apache.openjpa.persistence.PersistenceException: Communications link failure Last packet sent to the server was 0 ms ago. at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4238) at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4203) at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:102) at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:88) at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:64) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.connect(JDBCStoreManager.java:868) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.getConnection(JDBCStoreManager.java:229) at org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:371) at org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:325) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.getInitializeStateResult(JDBCStoreManager.java:441) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initializeState(JDBCStoreManager.java:321) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initialize(JDBCStoreManager.java:277) at org.apache.openjpa.kernel.DelegatingStoreManager.initialize(DelegatingStoreManager.java:111) at org.apache.openjpa.kernel.ROPStoreManager.initialize(ROPStoreManager.java:57) at org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:894) at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:852) at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:774) at org.apache.openjpa.kernel.BrokerImpl.isDetached(BrokerImpl.java:4286) at org.apache.openjpa.kernel.SingleFieldManager.persist(SingleFieldManager.java:257) at org.apache.openjpa.kernel.StateManagerImpl.cascadePersist(StateManagerImpl.java:2893) at org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2457) at org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2280) at org.apache.openjpa.kernel.DelegatingBroker.persist(DelegatingBroker.java:1021) at org.apache.openjpa.persistence.EntityManagerImpl.persist(EntityManagerImpl.java:645) at project.ojpa.dao.DeliveryCompanyDAO.save(DeliveryCompanyDAO.java:55) at project.tests.InsertManager.insertDeliveryCompany(InsertManager.java:233) at project.client.AnalyticsClient.main(AnalyticsClient.java:67) Caused by: com.mysql.jdbc.CommunicationsException: Communications link failure Last packet sent to the server was 0 ms ago. at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1070) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2120) at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:723) at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:298) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282) at org.apache.openjpa.jdbc.schema.SimpleDriverDataSource.getConnection(SimpleDriverDataSource.java:81) at org.apache.openjpa.jdbc.schema.SimpleDriverDataSource.getConnection(SimpleDriverDataSource.java:76) at org.apache.openjpa.lib.jdbc.DelegatingDataSource.getConnection(DelegatingDataSource.java:113) at org.apache.openjpa.lib.jdbc.DecoratingDataSource.getConnection(DecoratingDataSource.java:93) at org.apache.openjpa.lib.jdbc.DelegatingDataSource.getConnection(DelegatingDataSource.java:113) at org.apache.openjpa.jdbc.schema.DataSourceFactory$DefaultsDataSource.getConnection(DataSourceFactory.java:305) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.connectInternal(JDBCStoreManager.java:879) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.connect(JDBCStoreManager.java:864) ... 21 more Caused by: com.mysql.jdbc.CommunicationsException: The driver was unable to create a connection due to an inability to establish the client portion of a socket. This is usually caused by a limit on the number of sockets imposed by the operating system. This limit is usually configurable. For Unix-based platforms, see the manual page for the 'ulimit' command. Kernel or system reconfiguration may also be required. For Windows-based platforms, see Microsoft Knowledge Base Article 196271 (Q196271). at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1070) at com.mysql.jdbc.MysqlIO.(MysqlIO.java:335) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2043) ... 32 more Caused by: java.net.BindException: Address already in use: connect at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(Unknown Source) at java.net.PlainSocketImpl.connectToAddress(Unknown Source) at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.SocksSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.(Unknown Source) at java.net.Socket.(Unknown Source) at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:253) at com.mysql.jdbc.MysqlIO.(MysqlIO.java:284) ... 33 more Kevin Sutter wrote: > > One other interesting bit of information... I just heard that EclipseLink > runs with a data cache enabled by default, while OpenJPA and Hibernate do > not. Although this setting may not get us completely out of this > ManyToMany > performance hole, it is something to be aware of as these performance > benchmarks are done... > -- View this message in context: http://n2.nabble.com/Slow-performance-with-OpenJPA-when-selecting-from-a-ManyToMany-relation.-tp2466994p2501684.html Sent from the OpenJPA Users mailing list archive at Nabble.com.