[Java] fout MySQL connectie

Pagina: 1
Acties:
  • 680 views sinds 30-01-2008
  • Reageer

  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02 14:52
Ik draai een applicatie onder JBoss 4.0.2 en maak gebruik van een local-tx-datasource om een verbinding met MySQL te maken. In de ontwikkelomgeving draait alles prima, WinXP, jdk1.4.2, Jboss 4.0.2, MySQL Connector/J 3.1.12 met een MySQL 4.1 server die draait op een win2k bak.

Wanneer dit naar de productieomgeving gaat (FreeBSD, MySQL 4.1.16, jdk1.4.2, MySQL Connector/J 3.1.12) krijgen we een erg vage fout:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
15:24:37,381 WARN  [JBossManagedConnectionPool] Throwable while attempting to get a new connection: null
org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: 

** BEGIN NESTED EXCEPTION ** 

java.io.EOFException

STACKTRACE:

java.io.EOFException
    at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1905)
    at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:483)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:965)
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:2558)
    at com.mysql.jdbc.Connection.<init>(Connection.java:1485)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
    at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:151)

Ik heb inmiddels flink wat gegoogled, en vind behoorlijk wat mensen met hetzelfde probleem, maar nog niet echt een oplossing. Iemand eerder deze fout gehad? Ik krijg het niet voor elkaar dezelfde fout onder Windows te produceren.

De MySQL server draait wel. Er is een andere site die gebruikt maakt van dezelfde server, en die draait wel (php site).

Any help is greatly appreciated.

[edit] We hebben de db net omgezet naar MySQL. Hiervoor draaide het op PostgreSQL, en toen draaide het perfect, zowel op de ontwikkel- als op de productieomgeving.

[edit2] nog even de verbinding:
code:
1
2
3
4
5
6
7
8
9
<local-tx-datasource>
  <jndi-name>dataSource</jndi-name>
  <connection-url>jdbc:mysql://127.0.0.1:3306/database</connection-url>
  <driver-class>com.mysql.jdbc.Driver</driver-class>
  <min-pool-size>4</min-pool-size>
  <max-pool-size>64</max-pool-size>
  <user-name>user</user-name>
  <password>pass</password>
</local-tx-datasource>

[ Voor 15% gewijzigd door zneek op 16-03-2006 11:03 ]


  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Je maakt blijkbaar gebruik van connection pooling.

Wat gebeurd er als je expliciet een nieuwe connectie maakt voor de aanroep van je statement?
edit:
Ohja, de allerlaatste nightly-build mysql connector al geprobeerd? Is sinds kort een van de eerste dingen dat ik probeer wanneer ik vage mysql problemen tegenkom en lost ze in veel gevallen ook gelijk op

[ Voor 43% gewijzigd door -FoX- op 16-03-2006 12:18 ]


  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02 14:52
-FoX- schreef op donderdag 16 maart 2006 @ 12:16:
Je maakt blijkbaar gebruik van connection pooling.

Wat gebeurd er als je expliciet een nieuwe connectie maakt voor de aanroep van je statement?
edit:
Ohja, de allerlaatste nightly-build mysql connector al geprobeerd? Is sinds kort een van de eerste dingen dat ik probeer wanneer ik vage mysql problemen tegenkom en lost ze in veel gevallen ook gelijk op
Daar kom ik niet eens. Het starten van Jboss gaat al hopeloos fout.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
15:24:37,097 INFO  [Binder] Mapping collection: application.menu.MenuItem.submenuItemList -> a_Menu
15:24:37,097 INFO  [Configuration] processing one-to-one association property references
15:24:37,097 INFO  [Configuration] processing foreign key constraints
15:24:37,132 INFO  [Dialect] Using dialect: net.sf.hibernate.dialect.MySQLDialect
15:24:37,156 INFO  [SettingsFactory] Maximim outer join fetch depth: 2
15:24:37,156 INFO  [SettingsFactory] Use outer join fetching: true
15:24:37,159 INFO  [ConnectionProviderFactory] Initializing connection provider: org.springframework.orm.hibernate.LocalDataSourceConnectionProvider
15:24:37,166 INFO  [TransactionManagerLookupFactory] No TransactionManagerLookup configured (in JTA environment, use of process level read-write cache is not recommended)
15:24:37,381 WARN  [JBossManagedConnectionPool] Throwable while attempting to get a new connection: null
org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: 

<knip veel stack trace>

15:24:37,410 INFO  [SettingsFactory] Use scrollable result sets: false
15:24:37,410 INFO  [SettingsFactory] Use JDBC3 getGeneratedKeys(): false
15:24:37,410 INFO  [SettingsFactory] Optimize cache for minimal puts: false
15:24:37,410 INFO  [SettingsFactory] echoing all SQL to stdout
15:24:37,410 INFO  [SettingsFactory] Query language substitutions: {}
15:24:37,411 INFO  [SettingsFactory] cache provider: net.sf.hibernate.cache.EhCacheProvider
15:24:37,417 INFO  [Configuration] instantiating and configuring caches
15:24:37,793 WARN  [Configurator] No configuration found. Configuring ehcache from ehcache-failsafe.xml found in the classpath: jar:file:/usr/local/jboss4/server/default/deploy/app.war/WEB-INF/lib/ehcache-0.7.jar!/ehcache-failsafe.xml
15:24:38,008 INFO  [SessionFactoryImpl] building session factory
15:24:38,898 INFO  [SessionFactoryObjectFactory] Not binding factory to JNDI, no JNDI name configured
15:24:38,901 INFO  [DefaultListableBeanFactory] Creating shared instance of singleton bean 'transactionManager'
15:24:38,937 INFO  [HibernateTransactionManager] Using DataSource [org.jboss.resource.adapter.jdbc.WrapperDataSource@8809ce] of Hibernate SessionFactory for HibernateTransactionManager

Wanneer ik lokaal draai ziet dit er zo uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
12:41:43,593 INFO  [Binder] Mapping collection: application.menu.MenuItem.submenuItemList -> a_Menu
12:41:43,593 INFO  [Configuration] processing one-to-one association property references
12:41:43,593 INFO  [Configuration] processing foreign key constraints
12:41:43,624 INFO  [Dialect] Using dialect: net.sf.hibernate.dialect.MySQLDialect
12:41:43,624 INFO  [SettingsFactory] Maximim outer join fetch depth: 2
12:41:43,640 INFO  [SettingsFactory] Use outer join fetching: true
12:41:43,640 INFO  [ConnectionProviderFactory] Initializing connection provider: org.springframework.orm.hibernate.LocalDataSourceConnectionProvider
12:41:43,640 INFO  [TransactionManagerLookupFactory] No TransactionManagerLookup configured (in JTA environment, use of process level read-write cache is not recommended)
12:41:44,390 INFO  [SettingsFactory] Use scrollable result sets: true
12:41:44,390 INFO  [SettingsFactory] Use JDBC3 getGeneratedKeys(): true
12:41:44,390 INFO  [SettingsFactory] Optimize cache for minimal puts: false
12:41:44,390 INFO  [SettingsFactory] echoing all SQL to stdout
12:41:44,390 INFO  [SettingsFactory] Query language substitutions: {}
12:41:44,390 INFO  [SettingsFactory] cache provider: net.sf.hibernate.cache.EhCacheProvider
12:41:44,390 INFO  [Configuration] instantiating and configuring caches
12:41:44,405 WARN  [Configurator] No configuration found. Configuring ehcache from ehcache-failsafe.xml found in the classpath: jar:file:/C:/Data/JBoss4.02/server/default/deploy/app.wa
12:41:44,561 INFO  [SessionFactoryImpl] building session factory
12:41:44,936 INFO  [SessionFactoryObjectFactory] Not binding factory to JNDI, no JNDI name configured
12:41:44,936 INFO  [DefaultListableBeanFactory] Creating shared instance of singleton bean 'transactionManager'
12:41:44,983 INFO  [HibernateTransactionManager] Using DataSource [org.jboss.resource.adapter.jdbc.WrapperDataSource@18c6982] of Hibernate SessionFactory for HibernateTransactionManager

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 01:51
Heb je de JDBC driver jar in server\default\lib staan?

Roomba E5 te koop


  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02 14:52
sig69 schreef op donderdag 16 maart 2006 @ 12:59:
Heb je de JDBC driver jar in server\default\lib staan?
Zekerz. Anders zou de fout zijn: "Class not found: com.mysql.jdb.Driver", ik heb expliciet getest zonder de .jar. Adres en poort server zijn ook correct, anders is de foutmelding: connection refused. Mochten de logingevens fout zijn dan is de foutmelding: invalid login user@host

  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Dat is vaak een probleem met Hibernate, omdat die de libraries uit je project niet gebruikt, maar ze uit de lib map van je J2EE server haalt.

Overigens moet default wel de serverconfiguratie zijn die je draait. Dat kun je in de opstartlog zien:

code:
1
13:28:02,062 INFO  [Server] Server Name: default


Je jar moet in /server/[servername]/lib/

Fat Pizza's pizza, they are big and they are cheezy


  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02 14:52
JKVA schreef op donderdag 16 maart 2006 @ 13:34:
Dat is vaak een probleem met Hibernate, omdat die de libraries uit je project niet gebruikt, maar ze uit de lib map van je J2EE server haalt.

Overigens moet default wel de serverconfiguratie zijn die je draait. Dat kun je in de opstartlog zien:

code:
1
13:28:02,062 INFO  [Server] Server Name: default


Je jar moet in /server/[servername]/lib/
Klopt, en dit staat ook goed.

  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

En wat voor JDBC driver heb je?

Fat Pizza's pizza, they are big and they are cheezy


  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02 14:52
JKVA schreef op donderdag 16 maart 2006 @ 13:46:
En wat voor JDBC driver heb je?
zneek schreef op donderdag 16 maart 2006 @ 11:00:
Ik draai een applicatie onder JBoss 4.0.2 en maak gebruik van een local-tx-datasource om een verbinding met MySQL te maken. In de ontwikkelomgeving draait alles prima, WinXP, jdk1.4.2, Jboss 4.0.2, MySQL Connector/J 3.1.12 met een MySQL 4.1 server die draait op een win2k bak.

Wanneer dit naar de productieomgeving gaat (FreeBSD, MySQL 4.1.16, jdk1.4.2, MySQL Connector/J 3.1.12) krijgen we een erg vage fout:
3.1.12 dus, de nieuwste. Ik heb ook getest met 3.1.10 en 3.0.17

  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

True, maar ik doelde vooral op het soort driver; type 2, 3 of 4. Volgens de site lijkt het een JDBC type 3 driver.
Ik heb daar in mijn MyEclipse Database Explorer ook weleens problemen mee gehad. Misschien is het een idee om een type 2 of 4 driver te proberen.

Fat Pizza's pizza, they are big and they are cheezy


Verwijderd

in de conf/xmlbestand.xml kan je JBoss op debug zetten wilt wel eens helpen. misschien gooit ie wat zinnigs naar buiten.

Ik zit nu op mijn werk dus ik jan het niet goed opzoeken

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 01-12 20:19

Gerco

Professional Newbie

Staat networking wel aan in my.cnf?

Default staat dat namelijk uit op *nix OSen (zoals FreeBSD). PHP maakt verbinding via een unix socket en JBoss niet.

[edit]
In mijn /etc/mysql/my.cnf staat namelijk:
code:
1
2
3
4
#security:
#using "localhost" in connects use sockets by default
#skip-networking
bind-address                            = 127.0.0.1


Default staat die # er niet voor (maakt er commentaar van), die moet je er dus even bijzetten als dat nog niet het geval was. Zorg iig wel dat je als bind-address 127.0.0.1 invult, anders staat MySQL open voor connecties van buiten de server.

Kijk hier voor meer informatie over deze optie.

[ Voor 78% gewijzigd door Gerco op 16-03-2006 15:23 ]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02 14:52
Gerco schreef op donderdag 16 maart 2006 @ 15:18:
Staat networking wel aan in my.cnf?

Default staat dat namelijk uit op *nix OSen (zoals FreeBSD). PHP maakt verbinding via een unix socket en JBoss niet.
Hoe zet je dat aan? Heb je een voorbeeld config regel waaraan ik kan zien dat ie uit staat?

[edit] stond wel aan.

[ Voor 4% gewijzigd door zneek op 16-03-2006 15:31 ]


  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Je localhost wordt misschien geblokkeerd; kijk eens of volgende regel in /etc/hosts.allow voorkomt:
code:
1
127.0.0.1

Anders zet je hem er.. and try again...

Autoreconnect staat op true?

[ Voor 9% gewijzigd door -FoX- op 16-03-2006 15:49 ]


  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02 14:52
-FoX- schreef op donderdag 16 maart 2006 @ 15:47:
Je localhost wordt misschien geblokkeerd; kijk eens of volgende regel in /etc/hosts.allow voorkomt:
code:
1
127.0.0.1

Anders zet je hem er.. and try again...

Autoreconnect staat op true?
We hebben de hoop inmiddels opgegeven. Terug naar PostgreSQL .... grmbl......

  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Waarom was de keuze van PostgreSQL -> mySQL feitelijk gemaakt?

  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02 14:52
-FoX- schreef op donderdag 16 maart 2006 @ 20:27:
Waarom was de keuze van PostgreSQL -> mySQL feitelijk gemaakt?
Als ik met PostgreSQL werk krijg ik een algemeen vies gevoel. Tooling is extreem bagger, en veel dingen die met MS SQL en MySQL in 5 minuten gepiept zijn kosten me met PostgreSQL uren. Het is dus voornamelijk een irritatieverlagende keuze geweest. Ware het niet dat kennelijk de combinatie FreeBSD, Java en MySQL nog krakkemikkiger is :)

  • bodiam
  • Registratie: December 2001
  • Laatst online: 31-12-2024
zneek schreef op donderdag 16 maart 2006 @ 22:42:
Als ik met PostgreSQL werk krijg ik een algemeen vies gevoel. Tooling is extreem bagger, en veel dingen die met MS SQL en MySQL in 5 minuten gepiept zijn kosten me met PostgreSQL uren. Het is dus voornamelijk een irritatieverlagende keuze geweest. Ware het niet dat kennelijk de combinatie FreeBSD, Java en MySQL nog krakkemikkiger is :)
Niet van die rare dingen gaan posten he? Er is niets mis met BSD+Java+MySQL, maar wellicht dat JBoss enige irritatie veroorzaakt. Overigens gebruiken wij hier ook de zelfde combinatie, inclusief JBoss en BSD, en dat werkt feiloos (*kuch, voor zover mogelijk...het werkt in ieder geval*). Als je een config file wil zien ofzo, laat maar weten, maar ik kan je helaas niet 1,2,3 helpen met dit probleem, aangezien mijn JBoss ervaring 0,0 is... nouja, 0,1 ofzo.

  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

zneek schreef op donderdag 16 maart 2006 @ 22:42:
[...]


Als ik met PostgreSQL werk krijg ik een algemeen vies gevoel. Tooling is extreem bagger, en veel dingen die met MS SQL en MySQL in 5 minuten gepiept zijn kosten me met PostgreSQL uren. Het is dus voornamelijk een irritatieverlagende keuze geweest. Ware het niet dat kennelijk de combinatie FreeBSD, Java en MySQL nog krakkemikkiger is :)
Dat vind ik wel apart. Met jouw punt over slechte tooling ben ik het wel eens, maar als je dingen in MySQL zo gedaan hebt en in Postgres niet, ben ik wel benieuwd wat voor dingen jij doet, want als ik de features van Postgres en MySQL vergelijk, is Postgres toch wel veel geavanceerder.

Uiteindelijk is het allemaal een kwestie van SQL. En dat is niet MySQL's sterkste kant.

Fat Pizza's pizza, they are big and they are cheezy


  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02 14:52
JKVA schreef op vrijdag 17 maart 2006 @ 14:53:
[...]


Dat vind ik wel apart. Met jouw punt over slechte tooling ben ik het wel eens, maar als je dingen in MySQL zo gedaan hebt en in Postgres niet, ben ik wel benieuwd wat voor dingen jij doet, want als ik de features van Postgres en MySQL vergelijk, is Postgres toch wel veel geavanceerder.

Uiteindelijk is het allemaal een kwestie van SQL. En dat is niet MySQL's sterkste kant.
Ik zeg niet dat PostgreSQL slecht is, ik wordt er niet blij van, dat is wat anders :)

Ik red me wel met PostgreSQL, maar dat is wat anders als met MySQL of MSSQL, waarbij ik het gevoel heb dat ik ook 100% controle heb over wat ik aan het doen ben.

Nu we het er toch over hebben, is er een goede beheerstool voor PostgreSQL? Waar een beetje makkelijk tabellen en relaties e.d. te maken en wijzigen zijn? Ow nee, wacht, dat mag niet meer in dit subforum... ;)

  • matthijsln
  • Registratie: Augustus 2002
  • Laatst online: 27-11 13:24
pgAdmin III?

Kom op zeg

  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Ik gebruik altijd PGAdmin, verder geen ervaring met andere tools. Eigenlijk nooit naar gezocht, ondanks dat ik het een rottool vind. 8)7

Fat Pizza's pizza, they are big and they are cheezy


  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02 14:52
nou, ik vroeg of er een goede tool is. Niet 1 waarbij je na een uur gebruik spontaan uit je oren begint te bloeden...

[edit] dit lijkt me trouwens meer op zijn plaats in Development Tools & Environments zie hier: [rml][ PostgreSQL] pgAdmin III of is er iets beters?[/rml]

[ Voor 27% gewijzigd door zneek op 17-03-2006 19:57 ]

Pagina: 1