Ik heb een stukje code gemaakt om een Phorum 3.4.4 te migreren naar versie 5.
Maar nu kom ik het volgende probleem tegen. Het gaat van een PostgreSQL 7.4 naar een Mysql 4.2. Allebij spreek je ze aan via een connector. JDBC dat werkt allemaal. Ik kan data uit de 7.4 krijgen en in de mysql invoegen.
Maar nu kotm het probleem. Ik krijg het niet voor elkaar om de 2 tabellen via een SQL string ineens uit te lezen (130.000 topics). Op de een of andere manier lijkt het vanuit de console te time-outen.
Als ik dezelfde SQL string uitvoer op een pgadmin of iets dergelijks, dan gaat hij netjes zijn werk doen en haalt hij alles op. Het is allemaal vanaf een client. Ik zit niet op de Postgre server zelf. Dat betekent dat er iets met de connectie aan de hand is die java maakt.
Ik heb ergens iets gelezen dat er een time-out van 30 seconden zou zijn, maar dat kan ik nergens terug vinden. Als ik hetzelfde doe op een Mysql database dan doet hij gewoon wat ik wil (deze is overigens maat 15 records).
Ik gebruik de JDBC connector van PostgreSQL site. De code waarmee ik de connectie maak is als volgt:
En dit is de code voor de resultset:
Misschien dat ik zo voldoende heb beschreven wat ik allemaal gedaan heb. Als jullie meer info willen wil ik die graag geven.
Maar nu kom ik het volgende probleem tegen. Het gaat van een PostgreSQL 7.4 naar een Mysql 4.2. Allebij spreek je ze aan via een connector. JDBC dat werkt allemaal. Ik kan data uit de 7.4 krijgen en in de mysql invoegen.
Maar nu kotm het probleem. Ik krijg het niet voor elkaar om de 2 tabellen via een SQL string ineens uit te lezen (130.000 topics). Op de een of andere manier lijkt het vanuit de console te time-outen.
Als ik dezelfde SQL string uitvoer op een pgadmin of iets dergelijks, dan gaat hij netjes zijn werk doen en haalt hij alles op. Het is allemaal vanaf een client. Ik zit niet op de Postgre server zelf. Dat betekent dat er iets met de connectie aan de hand is die java maakt.
Ik heb ergens iets gelezen dat er een time-out van 30 seconden zou zijn, maar dat kan ik nergens terug vinden. Als ik hetzelfde doe op een Mysql database dan doet hij gewoon wat ik wil (deze is overigens maat 15 records).
Ik gebruik de JDBC connector van PostgreSQL site. De code waarmee ik de connectie maak is als volgt:
Java:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
| import java.io.*; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class LoadDriver1 { PrintWriter out = null; Connection conn; public Connection verbinden() { try { //Class.forName("org.postgresql.Driver"); Class.forName("org.postgresql.Driver").newInstance(); //"jdbc:postgresql://blaat.blaat.nl:22","blaat","nogmeerblaat"); conn = DriverManager.getConnection("jdbc:postgresql://000.000.000.000/netwerk?user=****&password=*****#"); out = new PrintWriter(new FileWriter("OutFile.txt")); } catch (IOException e) { System.err.println("Caught IOException: " + e.getMessage()); } catch(ClassNotFoundException e) { e.printStackTrace(); } catch (IllegalAccessException e) { System.out.println(e); } catch (InstantiationException e) { System.out.println(e); } catch (SQLException ex) { // handle any errors System.out.println("SQLException: " + ex.getMessage()); System.out.println("SQLState: " + ex.getSQLState()); System.out.println("VendorError: " + ex.getErrorCode()); } finally { if (out != null) { System.out.println("Closing Printwriter"); out.close(); } else { System.out.println("Printwriter not open"); } return conn; } } } |
En dit is de code voor de resultset:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
| String SELECT = "SELECT t1.id, t1.thread, t1.parent, t1.author, t1.subject, t1.msgid, t1.modifystamp, t2.body "; String FROM = "FROM " + forum + " AS t1, " +forum+ "_bodies AS t2 "; String WHERE = "WHERE t1.id='35' AND t1.id=t2.id;"; String QUERY = SELECT + FROM + WHERE; System.out.println(QUERY); // Create a scrollable ResultSet. stmt = conn2.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); rs = stmt.executeQuery(QUERY); |
Misschien dat ik zo voldoende heb beschreven wat ik allemaal gedaan heb. Als jullie meer info willen wil ik die graag geven.
[ Voor 5% gewijzigd door BSeB op 22-09-2005 08:23 ]