Konuyu görüntüle
IUCODERS FORUM > Programlama > JAVA > programa bağlantı sorunu
Yazar
perihan


avatar
Ankara
Kayıt: 09.01.2006
30.04.2010-09:11 #68411
merhaba arkadaşlar;
yaptığımız program web sunucusunda çalışmakta. fakat belli aralıklarla sisteme giriş yapılamamktadır.Yani login ekranımız gelmekte fakat kullanıcı giriş butonuna bastığında aşağıdaki hata mesajı verilmektedir. Ancak apache servisini restrat ettiğimizde bu problem düzelmektetir.Fakat bi süre sonra (süre net değil 15 dk da da oluyor 3 saat vs de) tekrar kitlenmektedir.Sorun nerden kaynakalnıyo yardımcı olabilirmisiniz?



HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.dao.DataAccessResourceFailureException: could not execute query; nested exception is org.hibernate.exception.JDBCConnectionException: could not execute query
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:583)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
servlets.SpringServlet.service(SpringServlet.java:17)
filters.SecurityFilter.doFilter(SecurityFilter.java:38)
filters.LoginFilter.doFilter(LoginFilter.java:36)


root cause

org.springframework.dao.DataAccessResourceFailureException: could not execute query; nested exception is org.hibernate.exception.JDBCConnectionException: could not execute query
org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:627)
org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:424)
org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:921)
org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:917)
hibernate.TblkullaniciDAO.findByProperty(TblkullaniciDAO.java:100)
hibernate.TblkullaniciDAO.findByKullaniciAdi(TblkullaniciDAO.java:109)
business.login.LoginBusiness.kullaniciKontrol(LoginBusiness.java:25)
controllers.login.LoginController.handle(LoginController.java:29)
org.springframework.web.servlet.mvc.AbstractCommandController.handleRequestInternal(AbstractCommandController.java:84)
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
servlets.SpringServlet.service(SpringServlet.java:17)
filters.SecurityFilter.doFilter(SecurityFilter.java:38)
filters.LoginFilter.doFilter(LoginFilter.java:36)


root cause

org.hibernate.exception.JDBCConnectionException: could not execute query
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:74)
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
org.hibernate.loader.Loader.doList(Loader.java:2223)
org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
org.hibernate.loader.Loader.list(Loader.java:2099)
org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
org.springframework.orm.hibernate3.HibernateTemplate$30.doInHibernate(HibernateTemplate.java:930)
org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)
org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:921)
org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:917)
hibernate.TblkullaniciDAO.findByProperty(TblkullaniciDAO.java:100)
hibernate.TblkullaniciDAO.findByKullaniciAdi(TblkullaniciDAO.java:109)
business.login.LoginBusiness.kullaniciKontrol(LoginBusiness.java:25)
controllers.login.LoginController.handle(LoginController.java:29)
org.springframework.web.servlet.mvc.AbstractCommandController.handleRequestInternal(AbstractCommandController.java:84)
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
servlets.SpringServlet.service(SpringServlet.java:17)
filters.SecurityFilter.doFilter(SecurityFilter.java:38)
filters.LoginFilter.doFilter(LoginFilter.java:36)


root cause

java.sql.SQLException: G/Ç Hatası: Connection reset
oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:874)
oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1145)
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1267)
oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3449)
oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3493)
oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1203)
org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
org.hibernate.loader.Loader.doQuery(Loader.java:674)
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
org.hibernate.loader.Loader.doList(Loader.java:2220)
org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
org.hibernate.loader.Loader.list(Loader.java:2099)
org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
org.springframework.orm.hibernate3.HibernateTemplate$30.doInHibernate(HibernateTemplate.java:930)
org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)
org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:921)
org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:917)
hibernate.TblkullaniciDAO.findByProperty(TblkullaniciDAO.java:100)
hibernate.TblkullaniciDAO.findByKullaniciAdi(TblkullaniciDAO.java:109)
business.login.LoginBusiness.kullaniciKontrol(LoginBusiness.java:25)
controllers.login.LoginController.handle(LoginController.java:29)
org.springframework.web.servlet.mvc.AbstractCommandController.handleRequestInternal(AbstractCommandController.java:84)
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
servlets.SpringServlet.service(SpringServlet.java:17)
filters.SecurityFilter.doFilter(SecurityFilter.java:38)
filters.LoginFilter.doFilter(LoginFilter.java:36)


root cause

java.net.SocketException: Connection reset
java.net.SocketInputStream.read(Unknown Source)
oracle.net.ns.Packet.receive(Packet.java:282)
oracle.net.ns.DataPacket.receive(DataPacket.java:103)
oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:230)
oracle.net.ns.NetInputStream.read(NetInputStream.java:175)
oracle.net.ns.NetInputStream.read(NetInputStream.java:100)
oracle.net.ns.NetInputStream.read(NetInputStream.java:85)
oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:122)
oracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:78)
oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1179)
oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1155)
oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:279)
oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186)
oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:521)
oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:205)
oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:861)
oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1145)
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1267)
oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3449)
oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3493)
oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1203)
org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
org.hibernate.loader.Loader.doQuery(Loader.java:674)
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
org.hibernate.loader.Loader.doList(Loader.java:2220)
org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
org.hibernate.loader.Loader.list(Loader.java:2099)
org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
org.springframework.orm.hibernate3.HibernateTemplate$30.doInHibernate(HibernateTemplate.java:930)
org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)
org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:921)
org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:917)
hibernate.TblkullaniciDAO.findByProperty(TblkullaniciDAO.java:100)
hibernate.TblkullaniciDAO.findByKullaniciAdi(TblkullaniciDAO.java:109)
business.login.LoginBusiness.kullaniciKontrol(LoginBusiness.java:25)
controllers.login.LoginController.handle(LoginController.java:29)
org.springframework.web.servlet.mvc.AbstractCommandController.handleRequestInternal(AbstractCommandController.java:84)
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
servlets.SpringServlet.service(SpringServlet.java:17)
filters.SecurityFilter.doFilter(SecurityFilter.java:38)
filters.LoginFilter.doFilter(LoginFilter.java:36)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.20 logs.







Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
30.04.2010-09:15 #68412
Veritabanı bağlantısının tasarımı singleton ise bu yüzden olabilir. Belli bir süre geçince veritabanı bağlantısı kopabilir, bu durumu kontrol edip tekrar bağlanmalısınız.





The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com





Yazar
perihan


avatar
Ankara
Kayıt: 09.01.2006
30.04.2010-09:22 #68413
her tıkanıklıkta restart etmekten başka çözümümüz yok mu acaba.biz veri tabanı olarak başka bir firmanın bizim kurum için oluşturduğu veri tabanını kullanıyoruz.onların yaptığı bu veri tabanını kullanan başka bir programda bağlantı sorunu oluşmuyo.kendi programları her zaman çalışıyor.






Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
30.04.2010-09:55 #68414
perihan yazdi
 
her tıkanıklıkta restart etmekten başka çözümümüz yok mu acaba.biz veri tabanı olarak başka bir firmanın bizim kurum için oluşturduğu veri tabanını kullanıyoruz.onların yaptığı bu veri tabanını kullanan başka bir programda bağlantı sorunu oluşmuyo.kendi programları her zaman çalışıyor.


Şu şekilde çözebilirsiniz.

 private static Connection con = null;

    public static Connection getCon() throws Exception {
        // Con nesnesi null ise pool dan data alınır.

        if (con == null) {
            //Bağlantı nesnesi yok ise pool dan tekrar bağlantı istenir.
            con = my_connection.getConnection("local");
            if (con == null) {
                //Yinede bağlantı yoksa hata gönderilir.
                throw new Exception("Veritabanına Bağlanılamadı");
            }
        } else {
            if (con.isClosed()) {
                //Eğer bağlantı nesnesi var ama bağlantı kapanmış ise tekrar bağlanılır.
                con = my_connection.getConnection("local");
            }
        }
        if (con == null | con.isClosed()) {
            throw new Exception("Veritabanına Bağlanılamadı");
        }
        return con;
    }






The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com





Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
30.04.2010-18:52 #68417
hibernate config dosyanda connection pool ayarlarını yap c3po için daha sonra bu ayarlarda validation query var. onu select 1 from dual gibi bişey yap. yine pool daki connection ları test etmesi için bir zaman aralığı ver .





N/A
Yazar
perihan


avatar
Ankara
Kayıt: 09.01.2006
03.05.2010-11:06 #68453
extreme yazdi
 
Şu şekilde çözebilirsiniz.

 private static Connection con = null;

    public static Connection getCon() throws Exception {
        // Con nesnesi null ise pool dan data alınır.

        if (con == null) {
            //Bağlantı nesnesi yok ise pool dan tekrar bağlantı istenir.
            con = my_connection.getConnection("local");
            if (con == null) {
                //Yinede bağlantı yoksa hata gönderilir.
                throw new Exception("Veritabanına Bağlanılamadı");
            }
        } else {
            if (con.isClosed()) {
                //Eğer bağlantı nesnesi var ama bağlantı kapanmış ise tekrar bağlanılır.
                con = my_connection.getConnection("local");
            }
        }
        if (con == null | con.isClosed()) {
            throw new Exception("Veritabanına Bağlanılamadı");
        }
        return con;
    }

cevap için teşekkürler
bu kodu loginbusiness.java(kullanıcı adı ve şifrelerin kontrol edildiği) nın içine yazdım.fakat bu koda gitmiyor galiba.yanlış yere mi yazdım acaba.






Yazar
perihan


avatar
Ankara
Kayıt: 09.01.2006
03.05.2010-11:18 #68454
orhan yazdi
 
hibernate config dosyanda connection pool ayarlarını yap c3po için daha sonra bu ayarlarda validation query var. onu select 1 from dual gibi bişey yap. yine pool daki connection ları test etmesi için bir zaman aralığı ver .

hibernate.xml dosyası var.hibernate config dosyası yok sanırım.






Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
03.05.2010-13:36 #68457
perihan yazdi
 

hibernate.xml dosyası var.hibernate config dosyası yok sanırım.

config dosyası dediğim o zaten.

http://community.jboss.org/wiki/HowToconfiguretheC3P0connectionpool





N/A
Yazar
perihan


avatar
Ankara
Kayıt: 09.01.2006
03.05.2010-15:19 #68458
cevaplar için çok teşekkürler.






Yazar
idristas


avatar
istanbul
Kayıt: 26.02.2010
03.05.2010-17:13 #68465
<bean id="mySqlDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/eticaret?characterEncoding=utf8"/>
<property name="user" value="root"/>
<property name="password" value="pass"/>
<property name="minPoolSize" value="10"/>
<property name="initialPoolSize" value="10"/>
<property name="maxPoolSize" value="40"/>
<property name="maxStatements" value="100"/>
<!-- bi requestin timeout olması için beklettiği süre. -->
<property name="checkoutTimeout" value="10000"/>
<!-- database connectionları kapanmasın diye bu aralıklarla connectina request gönderirlir. -->
<property name="idleConnectionTestPeriod" value="60"/>
</bean>

bu applicationContext.xml'de benim kullandığım ayarlar. minPoolsize, initialPoolSize, maxPoolSize'ı kendi uygulamanıza göre artırın.

ben pek database hatalarıyla karşılaşmıyorum. belki işinize yarar.





Yazar
perihan


avatar
Ankara
Kayıt: 09.01.2006
04.05.2010-09:43 #68473
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="oracle.jdbc.OracleDriver">
</property>
<property name="url" value="jdbc:oracle:thin:@" ":1530:"">
</property>
<property name="username" value="username"></property>
<property name="password" value="password"></property>

<property name="c3p0.acquire_increment" value="1"></property>
<property name="c3p0.idle_test_period" value="100"></property> <!-- seconds -->
<property name="c3p0.max_size" value="100"></property>
<property name="c3p0.max_statements" value="0"></property>
<property name="c3p0.min_size" value="10"></property>
<property name="c3p0.timeout" value="100"></property> <!-- seconds -->

<property name="preferredTestQuery" value="select 1 from dual"></property>
</bean>

kodları ekleyince

http status 404 Yatirim is not available
hatası veriyor.






Yazar
perihan


avatar
Ankara
Kayıt: 09.01.2006
04.05.2010-10:17 #68474
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect
</prop>
<prop key="c3p0.max_size">100</prop>
<prop key="c3p0.idle_test_period">100</prop>
<prop key="c3p0.max_statements" >0</prop>
<prop key="c3p0.min_size" >10</prop>
<prop key="idleConnectionTestPeriod" >60</prop>
</props></property>

yazınca düzeldi sorun.






Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb