Thank you! On Sep 22, 2010, at 2:42 PM, Evan Leonard wrote:
> > I think he meant "Load Balancer" by LB.... > > > On Sep 22, 2010, at 3:37 PM, Joaquin Valdez wrote: > >> Thank you Nikolaos for the great information and response! >> >> I will get those exceptions and get them to you in a bit. >> >> When I began using c3po and began to notice the oddities. I began to >> look around and see what else is out there. I too found bonecp and >> will investigate using that. >> >> What is an LB ? >> >> Thanks! >> Joaquin >> >> >> >> On Sep 22, 2010, at 1:33 PM, Nikolaos Giannopoulos wrote: >> >>> Joaquin, >>> >>> You really need to get a copy of those Exceptions... broken pipe on a >>> web / app server typically is quite normal as it can be as simple as >>> someone hitting the stop or the refresh button on their web browser >>> while the server was trying to process a request. >>> >>> Also it may be a consequence of the fact that your application is >>> losing >>> database connectivity... broken pages... people hitting refresh >>> repeatedly... etc... . So if this is as frequent as you state then >>> simply put together some of the stack traces and send that out. >>> >>> c3p0 has a number of settings that set out how many times it will >>> retry, >>> the interval it will wait between retries and / or how long it will >>> retry before giving up, etc... and if IIRC some settings had to go >>> in a >>> c3p0 properties file and NOT just in the persistence.xml (in fact in >>> the >>> XML file they would be ignored). Just google things and you should >>> find >>> some pretty useful docs... . I imagine this is your config problem >>> though this doesn't address why your connections are breaking in the >>> 1st >>> place. >>> >>> BTW is there a hardware LB in the picture? Those are notorious for >>> chopping connections that remain idle for what is pretty much standard >>> at around 16 seconds. This isn't an issue under low load as >>> connections >>> simply get recycled at a high frequency... but get yourself up to >>> 10K-30K connections and voila log jam... the pool spends more time >>> trying to create connections than it can use and you end up with >>> something like 5000 TCP connections on the server. Not fun indeed. >>> But >>> ever so common on high end systems. >>> >>> Lastly, as far as Connection Pool is concerned I have to say I have >>> done >>> a fair amount of research and am quite disappointed that either >>> projects >>> have been abandoned or not updated despite known issues... IIRC there >>> were some synchronization bugs in c3p0 that can come up... so for >>> now we >>> ended up looking at BoneCP and use that for now although I'm not sure >>> how well it can recover broken connections. >>> >>> Oh... and I almost forgot... 2 reasons I imagine that Connection >>> Pooling >>> projects have been more and more stale are b/c i) App Servers these >>> days >>> have built in connection pooling functionality that should be pretty >>> good and ii) some consider them finished and sufficient for their >>> purposes... despite the growing list of possibly "rarer" issues, >>> RFE's, >>> etc... >>> >>> --Nikolaos >>> >>> >>> >>> >>> Joaquin Valdez wrote: >>>> Hello! >>>> >>>> I am wondering what the proper way of handling a database connection >>>> pool when it looses connection to the database. My application will >>>> run fine for 2 weeks then it will start throwing broken pipe errors. >>>> I don't have the exact error but that is what the error says. I >>>> use a >>>> postgres database and the c3po hibernate connection pool. How do I >>>> ensure connectivity is maintained? >>>> >>>> Maybe a database connection interceptor? Just an idea..... >>>> >>>> Here is my persistence.xml file: >>>> >>>> <?xml version="1.0" encoding="UTF-8"?> >>>> <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/ >>>> persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>>> xsi:schemaLocation="http://java.sun.com/xml/ns/persistence >>>> http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd >>>> "> >>>> <persistence-unit name="loginPU" transaction- >>>> type="RESOURCE_LOCAL"> >>>> <provider>org.hibernate.ejb.HibernatePersistence</provider> >>>> <exclude-unlisted-classes>false</exclude-unlisted-classes> >>>> <properties> >>>> <property name="hibernate.cache.provider_class" >>>> value="org.hibernate.cache.NoCacheProvider"/> >>>> <property name="hibernate.archive.autodetection" >>>> value="class"/> >>>> <property name="hibernate.dialect" >>>> value="org.hibernate.dialect.PostgreSQLDialect"/> >>>> <property name="jdbc.batch_size" value="0"/> >>>> <!-- Testing DB --> >>>> <!-- Fiveish DB --> >>>> <!-- <property name="hibernate.connection.username" >>>> value="xxxxxxxx"/> >>>> <property name="hibernate.connection.password" >>>> value="xxxxxxxxx"/> >>>> <property name="hibernate.connection.url" >>>> value="jdbc:postgresql://localhost/cheapdb"/> --> >>>> <!-- configuration connection pool via c3p0--> >>>> <property name="c3p0.acquire_increment" value="1"/> >>>> <property name="c3p0.idle_test_period" value="3000"/> >>>> <!-- seconds --> >>>> <property name="c3p0.max_size" value="20"/> >>>> <property name="c3p0.max_statements" value="50"/> >>>> <property name="c3p0.min_size" value="5"/> >>>> <property name="c3p0.timeout" value="100"/> >>>> <property name="hibernate.show_sql" value="true"/> >>>> <property name="hibernate.connection.driver_class" >>>> value="org.postgresql.Driver"/> >>>> >>>> <!-- Dev --> >>>> >>>> <property name="hibernate.connection.username" >>>> value="xxxxxxxx"/> >>>> <property name="hibernate.connection.password" >>>> value="xxxxxxxx"/> >>>> <property name="hibernate.connection.url" >>>> value="jdbc:postgresql://localhost/postgres"/> >>>> >>>> >>>> <!-- Production --> >>>> >>>> >>>> <!-- <property name="hibernate.connection.username" >>>> value="xxxxxxxx"/> >>>> <property name="hibernate.connection.password" >>>> value="xxxxxxxxxx"/> >>>> <property name="hibernate.connection.url" >>>> value="jdbc:postgresql://localhost/joaquinv_cheap"/> --> >>>> >>>> >>>> >>>> >>>> <property name="hibernate.hbm2ddl.auto" value="update"/> >>>> </properties> >>>> </persistence-unit> >>>> </persistence> >>>> >>>> >>>> >>>> Thanks! >>>> Joaquin >>>> >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> Start uncovering the many advantages of virtual appliances >>>> and start using them to simplify application deployment and >>>> accelerate your shift to cloud computing. >>>> http://p.sf.net/sfu/novell-sfdev2dev >>>> _______________________________________________ >>>> Stripes-users mailing list >>>> Stripes-users@lists.sourceforge.net >>>> https://lists.sourceforge.net/lists/listinfo/stripes-users >>>> >>>> >>> >>> >>> -- >>> Nikolaos Giannopoulos >>> Director, BrightMinds Software Inc. >>> e. nikol...@brightminds.org >>> w. www.brightminds.org >>> t. 1.613.822.1700 >>> c. 1.613.797.0036 >>> f. 1.613.822.1915 >>> >>> >>> ------------------------------------------------------------------------------ >>> Start uncovering the many advantages of virtual appliances >>> and start using them to simplify application deployment and >>> accelerate your shift to cloud computing. >>> http://p.sf.net/sfu/novell-sfdev2dev >>> _______________________________________________ >>> Stripes-users mailing list >>> Stripes-users@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/stripes-users >> >> >> ------------------------------------------------------------------------------ >> Start uncovering the many advantages of virtual appliances >> and start using them to simplify application deployment and >> accelerate your shift to cloud computing. >> http://p.sf.net/sfu/novell-sfdev2dev >> _______________________________________________ >> Stripes-users mailing list >> Stripes-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/stripes-users > > > ------------------------------------------------------------------------------ > Start uncovering the many advantages of virtual appliances > and start using them to simplify application deployment and > accelerate your shift to cloud computing. > http://p.sf.net/sfu/novell-sfdev2dev > _______________________________________________ > Stripes-users mailing list > Stripes-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/stripes-users Joaquin Valdez joaquinfval...@gmail.com ------------------------------------------------------------------------------ Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing. http://p.sf.net/sfu/novell-sfdev2dev _______________________________________________ Stripes-users mailing list Stripes-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/stripes-users