← Back to team overview

dhis2-devs team mailing list archive

Re: Troubles with database communication

 

Thanks for these very clarifying answers. I have googled and actually there
are lot of people with this.

And one of the suggestions to cope, it was exactly the 127.0.0.1 thing. Yes
I had two versions of JDBC driver for MySQL, one inside de java_home and
another on lib of DHIS2. I removed this one. And now I am waiting for the
famous error.

Caveman


On Wed, Jun 23, 2010 at 7:29 PM, Bob Jolliffe <bobjolliffe@xxxxxxxxx> wrote:

> On 23 June 2010 18:00, Orvalho Augusto <orvaquim@xxxxxxxxx> wrote:
> > Sorry for my laziness on this.
> >
> > My hibernate.properties
> >
> > hibernate.dialect = org.hibernate.dialect.MySQLDialect
> > hibernate.connection.driver_class = com.mysql.jdbc.Driver
> > ##hibernate.connection.url =
> > jdbc:mysql://localhost/dhis2_pub?useUnicode=true&characterEncoding=UTF-8
> > hibernate.connection.url =
> > jdbc:mysql://localhost/dhis204?useUnicode=true&characterEncoding=UTF-8
> > hibernate.connection.username = dhis
> > hibernate.connection.password = dhis
> > hibernate.hbm2ddl.auto = update
> >
> > By this you are right. I am using unix socket when setting with localhost
> on
> > URL. I must write 127.0.0.1.
> >
> > I have changed and I am waiting to see it again.
>
> The unix domain socket is a bit of a distraction as java does not
> support unix domain sockets so the hibernate connection will always be
> tcp anyway.  So waiting will not help :-)
>
> >
> > This happened not only with importing and etc... it happened on the login
> > too.
>
> I have seen reports of certain mixtures of jdbc drivers and versions
> causing problems.  You might want to check that against other
> experiences on google.
>
> Regards
> Bob
>
> >
> > Thank you
> > Caveman
> >
> >
> > On Wed, Jun 23, 2010 at 9:01 AM, Bob Jolliffe <bobjolliffe@xxxxxxxxx>
> wrote:
> >>
> >> I can see from the status message that unix domain sockets are being
> >> used by the mysql client.  Your hibernate connection will use tcp/ip.
> >>
> >> The problem seems definitely to be with the transport layer -
> >> "Expected to read 4 bytes, read 0 bytes before connection was
> >> unexpectedly lost".  So the socket channel definitely goes bad on you
> >> :-(
> >>
> >> Orvalho is this problem completely random or can you think is there
> >> any pattern to it?  For example I have seen a problem with mysql if
> >> you are doing a very large import and the size of the mysql packet
> >> (with all the multiple inserts) exceeds a hard limit - there is a
> >> setting to increase this.  But from what you are saying (from time to
> >> time) I don't think this is the case here.
> >>
> >> Is the mysql server on the same machine as the dhis web server?
> >>
> >> What is the server os and version?
> >>
> >> Regards
> >> Bob
> >>
> >> On 23 June 2010 07:09, Jason Pickering <jason.p.pickering@xxxxxxxxx>
> >> wrote:
> >> > Can you send your hibernate.properties file (otherwise privately)?
> >> >
> >> > Is you MySQL TCP/IP sockets available on 127.0.0.1 (not Unix pipes)?
> >> >
> >> > Regards,
> >> > Jason
> >> >
> >> >
> >> > On Wed, Jun 23, 2010 at 5:32 AM, Orvalho Augusto <orvaquim@xxxxxxxxx>
> >> > wrote:
> >> >> >From time to time my DHIS stalls and report me this:
> >> >> =========================================================
> >> >> Jun 23, 2010 5:15:53 AM org.apache.catalina.core.StandardWrapperValve
> >> >> invoke
> >> >> SEVERE: Servlet.service() for servlet default threw exception
> >> >> org.springframework.transaction.CannotCreateTransactionException:
> Could
> >> >> not
> >> >> open Hibernate Session for transaction; nested exception is
> >> >> org.hibernate.TransactionException: JDBC beg
> >> >> in failed:
> >> >>         at
> >> >>
> >> >>
> org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:599)
> >> >>         at
> >> >>
> >> >>
> org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:374)
> >> >>         at
> >> >>
> >> >>
> org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:263)
> >> >>         at
> >> >>
> >> >>
> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:101)
> >> >>         at
> >> >>
> >> >>
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
> >> >>         at
> >> >>
> >> >>
> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
> >> >>         at $Proxy72.loadUserByUsername(Unknown Source)
> >> >>         at
> >> >>
> >> >>
> org.springframework.security.providers.dao.DaoAuthenticationProvider.retrieveUser(DaoAuthenticationProvider.java:83)
> >> >>         at
> >> >>
> >> >>
> org.springframework.security.providers.dao.AbstractUserDetailsAuthenticationProvider.authenticate(AbstractUserDetailsAuthenticationProvider.java:121)
> >> >>         at
> >> >>
> >> >>
> org.springframework.security.providers.ProviderManager.doAuthentication(ProviderManager.java:188)
> >> >>         at
> >> >>
> >> >>
> org.springframework.security.AbstractAuthenticationManager.authenticate(AbstractAuthenticationManager.java:46)
> >> >>         at
> >> >>
> >> >>
> org.springframework.security.ui.webapp.AuthenticationProcessingFilter.attemptAuthentication(AuthenticationProcessingFilter.java:82)
> >> >>         at
> >> >>
> >> >>
> org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:259)
> >> >>         at
> >> >>
> >> >>
> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
> >> >>         at
> >> >>
> >> >>
> org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
> >> >>         at
> >> >>
> >> >>
> org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
> >> >>         at
> >> >>
> >> >>
> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
> >> >>         at
> >> >>
> >> >>
> org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
> >> >>         at
> >> >>
> >> >>
> org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:175)
> >> >>         at
> >> >>
> >> >>
> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
> >> >>         at
> >> >>
> >> >>
> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
> >> >>         at
> >> >>
> >> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> >> >>         at
> >> >>
> >> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> >> >>         at
> >> >>
> >> >>
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
> >> >>         at
> >> >>
> >> >>
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> >> >>         at
> >> >>
> >> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> >> >>         at
> >> >>
> >> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> >> >>         at
> >> >>
> >> >>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> >> >>         at
> >> >>
> >> >>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> >> >>         at
> >> >>
> >> >>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
> >> >>         at
> >> >>
> >> >>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> >> >>         at
> >> >>
> >> >>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> >> >>         at
> >> >>
> >> >>
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
> >> >>         at
> >> >>
> >> >>
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
> >> >>         at
> >> >>
> >> >>
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
> >> >>         at
> >> >>
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
> >> >>         at java.lang.Thread.run(Thread.java:636)
> >> >> Caused by: org.hibernate.TransactionException: JDBC begin failed:
> >> >>         at
> >> >>
> >> >>
> org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:68)
> >> >>         at
> >> >>
> org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1326)
> >> >>         at
> >> >>
> >> >>
> org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:558)
> >> >>         ... 36 more
> >> >> Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:
> >> >> Communications link failure
> >> >>
> >> >> Last packet sent to the server was 0 ms ago.
> >> >>         at
> >> >> sun.reflect.GeneratedConstructorAccessor151.newInstance(Unknown
> >> >> Source)
> >> >>         at
> >> >>
> >> >>
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> >> >>         at
> >> >> java.lang.reflect.Constructor.newInstance(Constructor.java:532)
> >> >>         at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
> >> >>         at
> >> >>
> >> >>
> com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
> >> >>         at
> com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2985)
> >> >>         at
> com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2871)
> >> >>         at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3414)
> >> >>         at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
> >> >>         at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
> >> >>         at
> >> >> com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536)
> >> >>         at
> >> >> com.mysql.jdbc.ConnectionImpl.setAutoCommit(ConnectionImpl.java:4874)
> >> >>         at
> >> >>
> >> >>
> com.mchange.v2.c3p0.impl.NewProxyConnection.setAutoCommit(NewProxyConnection.java:881)
> >> >>         at
> >> >>
> >> >>
> org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:63)
> >> >>         ... 38 more
> >> >> Caused by: java.io.EOFException: Can not read response from server.
> >> >> Expected
> >> >> to read 4 bytes, read 0 bytes before connection was unexpectedly
> lost.
> >> >>         at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2431)
> >> >>         at
> com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2882)
> >> >>         ... 46 more
> >> >>
> >> >> =========================================================
> >> >>
> >> >> And without any action it starts to work by itself.
> >> >>
> >> >> MySQL is fine. I have checked it with dhis user and in fact there is
> a
> >> >> dhis
> >> >> user connected:
> >> >>
> >> >> =========================================================
> >> >> [root@DhisServer tomcat6]# mysql -u dhis -p
> >> >>
> >> >> Welcome to the MySQL monitor.  Commands end with ; or \g.
> >> >> Your MySQL connection id is 1346
> >> >> Server version: 5.1.30-log MySQL Community Server (GPL)
> >> >>
> >> >> Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
> >> >>
> >> >> mysql> status
> >> >> --------------
> >> >> mysql  Ver 14.14 Distrib 5.1.30, for unknown-linux-gnu (x86_64) using
> >> >> readline 5.1
> >> >>
> >> >> Connection id:        1346
> >> >> Current database:
> >> >> Current user:        dhis@localhost
> >> >> SSL:            Not in use
> >> >> Current pager:        stdout
> >> >> Using outfile:        ''
> >> >> Using delimiter:    ;
> >> >> Server version:        5.1.30-log MySQL Community Server (GPL)
> >> >> Protocol version:    10
> >> >> Connection:        Localhost via UNIX socket
> >> >> Server characterset:    utf8
> >> >> Db     characterset:    utf8
> >> >> Client characterset:    latin1
> >> >> Conn.  characterset:    latin1
> >> >> UNIX socket:        /var/lib/mysql/mysql.sock
> >> >> Uptime:            10 days 18 hours 4 min 44 sec
> >> >>
> >> >> Threads: 3  Questions: 141592  Slow queries: 0  Opens: 1220  Flush
> >> >> tables:
> >> >> 1  Open tables: 511  Queries per second avg: 0.152
> >> >> --------------
> >> >>
> >> >> mysql> show processlist;
> >> >>
> >> >>
> +------+------+-----------------+---------+---------+------+-------+------------------+
> >> >> | Id   | User | Host            | db      | Command | Time | State |
> >> >> Info             |
> >> >>
> >> >>
> +------+------+-----------------+---------+---------+------+-------+------------------+
> >> >> | 1341 | dhis | localhost:58090 | dhis204 | Sleep   |  540 |       |
> >> >> NULL             |
> >> >> | 1342 | dhis | localhost:41792 | dhis204 | Sleep   |  540 |       |
> >> >> NULL             |
> >> >> | 1346 | dhis | localhost       | NULL    | Query   |    0 | NULL  |
> >> >> show
> >> >> processlist |
> >> >>
> >> >>
> +------+------+-----------------+---------+---------+------+-------+------------------+
> >> >> 3 rows in set (0.00 sec)
> >> >>
> >> >> ===================================================
> >> >>
> >> >>
> >> >> I am using the last stable DHIS war file (2.0.4).
> >> >> My JAVA_OPTS="-Xms128m -Xmx700m -XX:MaxPermSize=256m"
> >> >>
> >> >> I am on Fedora Linux: Fedora release 10 (Cambridge)
> >> >> And Tomcat 6.0.18.
> >> >>
> >> >> Can you help me guys?
> >> >>
> >> >> Caveman
> >> >>
> >> >>
> >> >> _______________________________________________
> >> >> Mailing list: https://launchpad.net/~dhis2-devs<https://launchpad.net/%7Edhis2-devs>
> >> >> Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
> >> >> Unsubscribe : https://launchpad.net/~dhis2-devs<https://launchpad.net/%7Edhis2-devs>
> >> >> More help   : https://help.launchpad.net/ListHelp
> >> >>
> >> >>
> >> >
> >> >
> >> >
> >> > --
> >> > --
> >> > Jason P. Pickering
> >> > email: jason.p.pickering@xxxxxxxxx
> >> > tel:+260968395190
> >> >
> >> > _______________________________________________
> >> > Mailing list: https://launchpad.net/~dhis2-devs<https://launchpad.net/%7Edhis2-devs>
> >> > Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
> >> > Unsubscribe : https://launchpad.net/~dhis2-devs<https://launchpad.net/%7Edhis2-devs>
> >> > More help   : https://help.launchpad.net/ListHelp
> >> >
> >
> >
> >
>

Follow ups

References