Toon posts:

[JAVA / SQL] Zeer trage JDBC connectie met server

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo :) ,

Na goed zoeken ben ik nog niet tot een antwoord gekomen voor mijn probleem.
Hopelijk kan iemand me hiermee helpen.

Situatie:
Ik maak een ticketsysteem - pakket voor een organisatie die geschreven wordt met JAVA en gebruik maakt van een MySQL server (Linux bak).

Het pakket bestaat uit een gebruikersapplicatie voor het aanmaken van een ticket en een groot uitgebreid beheerdersapplicatie.
Beide applicaties maken gebruik van dezelfde DB waarbij de gebruikersversie maar 1 tabel gebruikt.

Tools:
Java SDK 5.0
MySQL J/Connector 3.1
PriDE plugin


Omgeving: Eclipse 3.2

Server: MySQL 4.1.2



Probleem:
De applicatie wordt gestart op een werkstation en maakt connectie met de mysql server die op een Linux server staat. Er zitten geen omwegen in de verbinding. Het is direct werkstation <-> server.
Als (laten we van de gebruiker applicatie uitgaan) de applicatie connectie maakt om een ticket INSERT query uit te voeren, duurt dit gemiddeld 8 seconden.

Let op: Er is wel verschil 'hoe' ik deze uitvoer. Run ik deze rechtstreeks vanuit Eclipse is er haast geen vertraging en gaat alles direct. Creeër ik een .EXE (m.g.v. Excelsior JET) dan zit ik met een vertraging.

Let op 2: Zet ik alles naar Localhost (even snel EasyPHP installen en DB overzetten) dan werkt het op beide manieren van uitvoeren zeer snel. Dus vanuit Eclipse en de Executable werken even snel zonder vertraging.

Ik heb wel gelezen dat het iets met AUTO_COMMIT kan zijn van de MySQL server.
Deze heb ik uitgezet in de my.ini van de server maar geen veranderingen.

Verwijderd

Topicstarter
Hier een stuk voorbeeld code vanuit de applicatie:

Java: test.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Connection conn = null;
  PreparedStatement ps = null;
  
  // Opzetten van de connectie met de database
  conn = DriverManager.getConnection( "jdbc:mysql://**.***.**.**:3306/*******helpdeskdb", "test", "****" );
  
  // Aanmaken van de query
  ps = conn.prepareStatement( "INSERT INTO helpdeskTicket (ticketID, userNaam) VALUES( ?, ? )" );
  
  // Elke statement een waarde meegeven die als parameter in de methode komt
  ps.setInt(1, ticketID);
  ps.setString( 2, userNaam );
     // De Query uitvoeren (INSERT)
     ps.executeUpdate();


Ik heb wel het IPadres etc gecensoreerd maar dat is toch niet relevant voor het probleem.