Tomcat resource JNDI to mysql non default port, Spring Web app -


i have configured resource in server.xml:

<resource name="readconnection" auth="container" type="javax.sql.datasource"           username="user" password="pass"           url="jdbc:mysql://adresip:7777/database"           driverclassname="com.mysql.jdbc.driver"           initialsize="20" maxwait="5000"           maxactive="500" maxidle="50"           validationquery="select 1"           poolpreparedstatements="true"           removeabandoned="true" /> 

i'm using non-default port: 7777.

in front of mysql database there haproxy accept connection on port 7777 , forward connection mysql instance (on standard port, other ip)

problem is: - can connect mysql database via port 7777 using mysql workbanch - webapp cannot connect via 7777 if change in haproxy port 7777 3306 web app can connect database(via haproxy) - without changes in readconnection resource (?!)

configuration of datasource

    <bean id="readdatasource" class="org.springframework.jndi.jndiobjectfactorybean">     <property name="jndiname" value="readconnection" />      <property name="resourceref" value="true" />     <property name="lookuponstartup" value="true" />     <property name="cache" value="true" />     <property name="proxyinterface" value="javax.sql.datasource" />   </bean> 

its spring web app.

any ideas why web app cannot connect via non standard port?

exception 'standard': java.sql.sqlexception: cannot create poolableconnectionfactory

stack trace:

 29-may-2015 23:08:28.615 warning [main] org.apache.naming.namingcontext.lookup unexpected exception resolving reference  java.sql.sqlexception: cannot create poolableconnectionfactory (communications link failure  last packet sent server 0 milliseconds ago. driver has not received packets server.)     @ org.apache.tomcat.dbcp.dbcp2.basicdatasource.createpoolableconnectionfactory(basicdatasource.java:2152)     @ org.apache.tomcat.dbcp.dbcp2.basicdatasource.createdatasource(basicdatasource.java:1902)     @ org.apache.tomcat.dbcp.dbcp2.basicdatasource.getlogwriter(basicdatasource.java:1467)     @ org.apache.tomcat.dbcp.dbcp2.basicdatasourcefactory.createdatasource(basicdatasourcefactory.java:439)     @ org.apache.tomcat.dbcp.dbcp2.basicdatasourcefactory.getobjectinstance(basicdatasourcefactory.java:182)     @ org.apache.naming.factory.factorybase.getobjectinstance(factorybase.java:94)     @ javax.naming.spi.namingmanager.getobjectinstance(namingmanager.java:321)     @ org.apache.naming.namingcontext.lookup(namingcontext.java:841)     @ org.apache.naming.namingcontext.lookup(namingcontext.java:166)     @ org.apache.catalina.core.namingcontextlistener.addresource(namingcontextlistener.java:1084)     @ org.apache.catalina.core.namingcontextlistener.createnamingcontext(namingcontextlistener.java:663)     @ org.apache.catalina.core.namingcontextlistener.lifecycleevent(namingcontextlistener.java:256)     @ org.apache.catalina.util.lifecyclesupport.firelifecycleevent(lifecyclesupport.java:117)     @ org.apache.catalina.util.lifecyclebase.firelifecycleevent(lifecyclebase.java:90)     @ org.apache.catalina.core.standardserver.startinternal(standardserver.java:752)     @ org.apache.catalina.util.lifecyclebase.start(lifecyclebase.java:150)     @ org.apache.catalina.startup.catalina.start(catalina.java:625)     @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)     @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57)     @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43)     @ java.lang.reflect.method.invoke(method.java:606)     @ org.apache.catalina.startup.bootstrap.start(bootstrap.java:351)     @ org.apache.catalina.startup.bootstrap.main(bootstrap.java:485) caused by: com.mysql.jdbc.exceptions.jdbc4.communicationsexception: communications link failure  last packet sent server 0 milliseconds ago. driver has not received packets server.     @ sun.reflect.nativeconstructoraccessorimpl.newinstance0(native method)     @ sun.reflect.nativeconstructoraccessorimpl.newinstance(nativeconstructoraccessorimpl.java:57)     @ sun.reflect.delegatingconstructoraccessorimpl.newinstance(delegatingconstructoraccessorimpl.java:45)     @ java.lang.reflect.constructor.newinstance(constructor.java:526)     @ com.mysql.jdbc.util.handlenewinstance(util.java:406)     @ com.mysql.jdbc.sqlerror.createcommunicationsexception(sqlerror.java:1074)     @ com.mysql.jdbc.connectionimpl.createnewio(connectionimpl.java:2209)     @ com.mysql.jdbc.connectionimpl.<init>(connectionimpl.java:776)     @ com.mysql.jdbc.jdbc4connection.<init>(jdbc4connection.java:46)     @ sun.reflect.nativeconstructoraccessorimpl.newinstance0(native method)     @ sun.reflect.nativeconstructoraccessorimpl.newinstance(nativeconstructoraccessorimpl.java:57)     @ sun.reflect.delegatingconstructoraccessorimpl.newinstance(delegatingconstructoraccessorimpl.java:45)     @ java.lang.reflect.constructor.newinstance(constructor.java:526)     @ com.mysql.jdbc.util.handlenewinstance(util.java:406)     @ com.mysql.jdbc.connectionimpl.getinstance(connectionimpl.java:352)     @ com.mysql.jdbc.nonregisteringdriver.connect(nonregisteringdriver.java:284)     @ org.apache.tomcat.dbcp.dbcp2.driverconnectionfactory.createconnection(driverconnectionfactory.java:38)     @ org.apache.tomcat.dbcp.dbcp2.poolableconnectionfactory.makeobject(poolableconnectionfactory.java:204)     @ org.apache.tomcat.dbcp.dbcp2.basicdatasource.validateconnectionfactory(basicdatasource.java:2162)     @ org.apache.tomcat.dbcp.dbcp2.basicdatasource.createpoolableconnectionfactory(basicdatasource.java:2148)     ... 22 more caused by: com.mysql.jdbc.exceptions.jdbc4.communicationsexception: communications link failure  last packet sent server 0 milliseconds ago. driver has not received packets server.     @ sun.reflect.nativeconstructoraccessorimpl.newinstance0(native method)     @ sun.reflect.nativeconstructoraccessorimpl.newinstance(nativeconstructoraccessorimpl.java:57)     @ sun.reflect.delegatingconstructoraccessorimpl.newinstance(delegatingconstructoraccessorimpl.java:45)     @ java.lang.reflect.constructor.newinstance(constructor.java:526)     @ com.mysql.jdbc.util.handlenewinstance(util.java:406)     @ com.mysql.jdbc.sqlerror.createcommunicationsexception(sqlerror.java:1074)     @ com.mysql.jdbc.mysqlio.<init>(mysqlio.java:343)     @ com.mysql.jdbc.connectionimpl.createnewio(connectionimpl.java:2132)     ... 35 more caused by: java.net.connectexception: connection refused: connect     @ java.net.dualstackplainsocketimpl.connect0(native method)     @ java.net.dualstackplainsocketimpl.socketconnect(dualstackplainsocketimpl.java:79)     @ java.net.abstractplainsocketimpl.doconnect(abstractplainsocketimpl.java:339)     @ java.net.abstractplainsocketimpl.connecttoaddress(abstractplainsocketimpl.java:200)     @ java.net.abstractplainsocketimpl.connect(abstractplainsocketimpl.java:182)     @ java.net.plainsocketimpl.connect(plainsocketimpl.java:172)     @ java.net.sockssocketimpl.connect(sockssocketimpl.java:392)     @ java.net.socket.connect(socket.java:579)     @ java.net.socket.connect(socket.java:528)     @ java.net.socket.<init>(socket.java:425)     @ java.net.socket.<init>(socket.java:241)     @ com.mysql.jdbc.standardsocketfactory.connect(standardsocketfactory.java:253)     @ com.mysql.jdbc.mysqlio.<init>(mysqlio.java:292)     ... 36 more  29-may-2015 23:08:28.623 warning [main] org.apache.catalina.core.namingcontextlistener.addresource failed register in jmx: javax.naming.namingexception: cannot create poolableconnectionfactory (communications link failure  last packet sent server 0 milliseconds ago. driver has not received packets server.) 29-may-2015 23:08:29.706 warning [main] org.apache.naming.namingcontext.lookup unexpected exception resolving reference  java.sql.sqlexception: cannot create poolableconnectionfactory (communications link failure  last packet sent server 0 milliseconds ago. driver has not received packets server.)     @ org.apache.tomcat.dbcp.dbcp2.basicdatasource.createpoolableconnectionfactory(basicdatasource.java:2152)     @ org.apache.tomcat.dbcp.dbcp2.basicdatasource.createdatasource(basicdatasource.java:1902)     @ org.apache.tomcat.dbcp.dbcp2.basicdatasource.getlogwriter(basicdatasource.java:1467)     @ org.apache.tomcat.dbcp.dbcp2.basicdatasourcefactory.createdatasource(basicdatasourcefactory.java:439)     @ org.apache.tomcat.dbcp.dbcp2.basicdatasourcefactory.getobjectinstance(basicdatasourcefactory.java:182)     @ org.apache.naming.factory.factorybase.getobjectinstance(factorybase.java:94)     @ javax.naming.spi.namingmanager.getobjectinstance(namingmanager.java:321)     @ org.apache.naming.namingcontext.lookup(namingcontext.java:841)     @ org.apache.naming.namingcontext.lookup(namingcontext.java:166)     @ org.apache.catalina.core.namingcontextlistener.addresource(namingcontextlistener.java:1084)     @ org.apache.catalina.core.namingcontextlistener.createnamingcontext(namingcontextlistener.java:663)     @ org.apache.catalina.core.namingcontextlistener.lifecycleevent(namingcontextlistener.java:256)     @ org.apache.catalina.util.lifecyclesupport.firelifecycleevent(lifecyclesupport.java:117)     @ org.apache.catalina.util.lifecyclebase.firelifecycleevent(lifecyclebase.java:90)     @ org.apache.catalina.core.standardserver.startinternal(standardserver.java:752)     @ org.apache.catalina.util.lifecyclebase.start(lifecyclebase.java:150)     @ org.apache.catalina.startup.catalina.start(catalina.java:625)     @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)     @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57)     @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43)     @ java.lang.reflect.method.invoke(method.java:606)     @ org.apache.catalina.startup.bootstrap.start(bootstrap.java:351)     @ org.apache.catalina.startup.bootstrap.main(bootstrap.java:485) caused by: com.mysql.jdbc.exceptions.jdbc4.communicationsexception: communications link failure  last packet sent server 0 milliseconds ago. driver has not received packets server.     @ sun.reflect.nativeconstructoraccessorimpl.newinstance0(native method)     @ sun.reflect.nativeconstructoraccessorimpl.newinstance(nativeconstructoraccessorimpl.java:57)     @ sun.reflect.delegatingconstructoraccessorimpl.newinstance(delegatingconstructoraccessorimpl.java:45)     @ java.lang.reflect.constructor.newinstance(constructor.java:526)     @ com.mysql.jdbc.util.handlenewinstance(util.java:406)     @ com.mysql.jdbc.sqlerror.createcommunicationsexception(sqlerror.java:1074)     @ com.mysql.jdbc.connectionimpl.createnewio(connectionimpl.java:2209)     @ com.mysql.jdbc.connectionimpl.<init>(connectionimpl.java:776)     @ com.mysql.jdbc.jdbc4connection.<init>(jdbc4connection.java:46)     @ sun.reflect.nativeconstructoraccessorimpl.newinstance0(native method)     @ sun.reflect.nativeconstructoraccessorimpl.newinstance(nativeconstructoraccessorimpl.java:57)     @ sun.reflect.delegatingconstructoraccessorimpl.newinstance(delegatingconstructoraccessorimpl.java:45)     @ java.lang.reflect.constructor.newinstance(constructor.java:526)     @ com.mysql.jdbc.util.handlenewinstance(util.java:406)     @ com.mysql.jdbc.connectionimpl.getinstance(connectionimpl.java:352)     @ com.mysql.jdbc.nonregisteringdriver.connect(nonregisteringdriver.java:284)     @ org.apache.tomcat.dbcp.dbcp2.driverconnectionfactory.createconnection(driverconnectionfactory.java:38)     @ org.apache.tomcat.dbcp.dbcp2.poolableconnectionfactory.makeobject(poolableconnectionfactory.java:204)     @ org.apache.tomcat.dbcp.dbcp2.basicdatasource.validateconnectionfactory(basicdatasource.java:2162)     @ org.apache.tomcat.dbcp.dbcp2.basicdatasource.createpoolableconnectionfactory(basicdatasource.java:2148)     ... 22 more caused by: com.mysql.jdbc.exceptions.jdbc4.communicationsexception: communications link failure  last packet sent server 0 milliseconds ago. driver has not received packets server.     @ sun.reflect.nativeconstructoraccessorimpl.newinstance0(native method)     @ sun.reflect.nativeconstructoraccessorimpl.newinstance(nativeconstructoraccessorimpl.java:57)     @ sun.reflect.delegatingconstructoraccessorimpl.newinstance(delegatingconstructoraccessorimpl.java:45)     @ java.lang.reflect.constructor.newinstance(constructor.java:526)     @ com.mysql.jdbc.util.handlenewinstance(util.java:406)     @ com.mysql.jdbc.sqlerror.createcommunicationsexception(sqlerror.java:1074)     @ com.mysql.jdbc.mysqlio.<init>(mysqlio.java:343)     @ com.mysql.jdbc.connectionimpl.createnewio(connectionimpl.java:2132)     ... 35 more caused by: java.net.connectexception: connection refused: connect     @ java.net.dualstackplainsocketimpl.connect0(native method)     @ java.net.dualstackplainsocketimpl.socketconnect(dualstackplainsocketimpl.java:79)     @ java.net.abstractplainsocketimpl.doconnect(abstractplainsocketimpl.java:339)     @ java.net.abstractplainsocketimpl.connecttoaddress(abstractplainsocketimpl.java:200)     @ java.net.abstractplainsocketimpl.connect(abstractplainsocketimpl.java:182)     @ java.net.plainsocketimpl.connect(plainsocketimpl.java:172)     @ java.net.sockssocketimpl.connect(sockssocketimpl.java:392)     @ java.net.socket.connect(socket.java:579)     @ java.net.socket.connect(socket.java:528)     @ java.net.socket.<init>(socket.java:425)     @ java.net.socket.<init>(socket.java:241)     @ com.mysql.jdbc.standardsocketfactory.connect(standardsocketfactory.java:253)     @ com.mysql.jdbc.mysqlio.<init>(mysqlio.java:292)     ... 36 more 

besides of readconnetcion resource, have writeconnection resource similiar readconnection, point different port.

i checked sure - when changed port on haproxy side 3306 , run web app again (without changes in connection resources) working fine.


Comments

Popular posts from this blog

Java 3D LWJGL collision -

spring - SubProtocolWebSocketHandler - No handlers -

methods - python can't use function in submodule -