← Back to team overview

dhis2-devs team mailing list archive

Re: Troubles with database communication

 

On 24 June 2010 13:53, Orvalho Augusto <orvaquim@xxxxxxxxx> wrote:
> 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.

Don't believe everything you read on google :-)  The simple fact is
that a jdbc connection will always use tcp and never use unix domain
sockets.  So I think the locahost vs 127.0.0.1 thing is probably
another red herring.

>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.

Now that sounds more interesting.  Please let us know how the
consequences of this turn out.

Regards
Bob

>
> 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
>> >> >> Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
>> >> >> Unsubscribe : https://launchpad.net/~dhis2-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
>> >> > Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
>> >> > Unsubscribe : https://launchpad.net/~dhis2-devs
>> >> > More help   : https://help.launchpad.net/ListHelp
>> >> >
>> >
>> >
>> >
>
>
>
>



Follow ups

References