Process 10000 XML Files / Verify And Insert Data Into Database - Java Heap Memory Error
Oct 12, 2013
I need to process 10000 xml files and verify and insert the data into database. I am loading all the files in the file object and iterating one by one. I am getting the memory issue. How to handle this?
i have to write more than 100000 rows in a excel sheet (file size more than 20 MB) via java.
when i use XSSF, i am getting below Error.
java.lang.OutOfMemoryError: Java heap space at org.apache.xmlbeans.impl.store.Saver$TextSaver.resize(Saver.java:1592) at org.apache.xmlbeans.impl.store.Saver$TextSaver.preEmit(Saver.java:1223) at org.apache.xmlbeans.impl.store.Saver$TextSaver.emit(Saver.java:1144)
[Code]....
when i use HSSF , i am getting the below Error. java.lang.OutOfMemoryError: Java heap space
I have tried increasing the java heap size , by giving upto -Xms1500m -Xmx2048m
I want to create an application wich can handle xml files ( display xml files's data on a html page) + insert those data into an oracle database.
I'm new to that, it a project for my internship. wich API is the most appropriate for that ( Jdom or Xstream or other), wich framework i can use ( there is only 3 IHM : connexion, upload file, display data, confirmation insertion data)?
Given a string, compute a new string where identical chars that are adjacent in the original string are separated from each other by a "*". My implementation :
package com.tcs.dash; public class StringBuild { public String edit(String userIp){ StringBuilder builder = new StringBuilder(userIp); String replaceText = ""; for(int i = 0; i < builder.length() - 1; i++){ if(builder.charAt(i) == builder.charAt(i+1)){ replaceText = builder.charAt(i) + "*" + builder.charAt(i+1); builder = builder.replace(i, i+1, replaceText); } } return builder.toString(); } }
I am getting error at line 13. An exception actually.
I/P given = aaaa
Console:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Unknown Source) at java.lang.AbstractStringBuilder.expandCapacity(Unknown Source) at java.lang.AbstractStringBuilder.ensureCapacityInternal(Unknown Source) at java.lang.AbstractStringBuilder.replace(Unknown Source) at java.lang.StringBuilder.replace(Unknown Source) at com.tcs.dash.StringBuild.edit(StringBuild.java:13) at com.tcs.dash.StringBuildExample.main(StringBuildExample.java:14)
I was wondering where is the memory allocated for an applet; by the browser; by the JVM; some applet specific java option? I get an out of memory error when running my applet (loading pictures).
When there is a out-of-memory exception a heap dump is automatically generated by the JVM. But it seems that the heap dump permisions are set to read-write for owner only (600).
When I create files then they have by default read-write for owner and group/all read access (644).
$ ls -l total 795432 -rw------- 1 bamboop bamboo 811322265 Apr 14 09:18 java_pid337.hprof -rw-r--r-- 1 bamboop bamboo 6 Apr 14 12:57 test
Here the umask set for the server running the Java processes
I can insert data to table by using JSP Scriptlet easily but I have a hard time with servlet.
public class UsertToDatabase() { public boolean inserUser(String name, String email, String pwd) throws SQLException { PreparedStatement pstmt = null; boolean flag = false; System.out.println("start"); openConn(); System.out.println("start_1"); if(conn == null) {
[code]....
I am positive that the above code function fine. The problem is whenever I call UserToDB() class inside the servlet, and I got this error: java.lang.ClassNotFoundException: org.postgresql.
Driver which mean that my conn (connection) is not connected to the database but I have ensure to do so by calling openConn() before start the transaction.
I need my java program to insert data into my access database. I get no errors in my code, but it never inserts, deletes the data in my database. Here is my code:
import java.awt.*; import java.awt.event.*; import java.sql.*; public class INS extends Frame implements ActionListener{ Frame f; Label l1, l2; TextField t1, t2; Button b1, b2, b3, b4, b5; Connection c;
I have tried this code to insert into datbase if not exists but i get an Exception in thread "main" com.mysql.jdbc. exceptions.jdbc4. MySQL SyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE NOT EXISTS (SELECT teamName FROM Teams WHERE teamName = teamName) LIMIT 1' at line 1
stmt.executeUpdate("INSERT INTO Teams(teamId,teamName,league) VALUES ("+i+",'"+loser+"','"+league2+"')WHERE NOT EXISTS (SELECT teamId,teamName,league FROM Teams WHERE teamName = teamName) LIMIT 1;");
I need getting detailed examples about how I can read/insert into database using JSF code for its different components. I am a beginner in JSF and I have the basics, however, I need the best source which it has useful, easy and detailed steps to understand the techniques for connecting to the DB and how to insert or read data from the database.
I tried to search, but I found the lessons are not useful or not described in details.
I am trying to insert a record to a table in my database . I used the same syntax for 2 tables, one does work and the other does not work . I could not find any explanation for this error
"INSERT INTO CustomerRecord (Name, Number, Adress)" +" VALUES(?,?,?)"; //first table working well ps.setString(1,r.getCustomerName()); ps.setString(2,r.getCustomerNumber());
[Code] ....
For some reason one does work but the other does not work it says syntax error near order (table name). I am using sqlite db ...
I have two unix systems in which on one system I installed sun solaris jdk and on another system I installed IBM jdk.
Java programs which consume more heap memory are getting failed on sun solaris jdk system where as same programs are successfully getting executed on IBM jdk system .
My question is does sun solaris 64 bit jdk needs more heap than IBM 64 bit jdk ??
I have a simple JavaFX Application that open a Browser and shows google page. After exit the Application and free all objects, I can see that the JavaFX objects like Scene, Stage, WebView and WebEngine are alive in the heap memory after call GC. I can see this objects with JProfiler and other Profiler tools.
This is my Test code: import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javafx.application.Application; import javafx.application.Platform;
To test the application click on Start Button to show google web page, click on Stop Button to stop the application, run a Profiler tool, and call gc, the JavaFX classes are alive. I am using java version "1.7.0_51" and windows 8.1 Is there something wrong in my code? Or this is the normal behavior?
I am not a java developer, but I am using a java code that was available online to convert a large XML file to CSV file. The input file size is big, it is around 3GB. I got an error that it is out of memory, it is expectedly due to the large input file that i am trying to convert. Splitting of this file is not possible,
This is what I ran : xml2csv-conv data.xml data.csv
Error:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at com.sun.org.apache.xerces.internal.dom.DeferredDoc umentImpl.createChunk(Unknown Source) at com.sun.org.apache.xerces.internal.dom.DeferredDoc umentImpl.ensureCapacity(Unknown Source) at com.sun.org.apache.xerces.internal.dom.DeferredDoc umentImpl.createNode(Unknown Source) at com.sun.org.apache.xerces.internal.dom.DeferredDoc umentImpl.createDeferredTextNode(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.Abstrac tDOMParser.character
[code]....
Additional information: I am running this from a Windows8 64 bit machine with 8GB physical RAM.
I'm just starting out with learning how to process/parse XML data in Java, following online code/tutorials. I am currently only printing out "catalog."
I am developing my first Java application and the database I use is MySQL. I have created two separate buttons; one to insert new data into my database and the other to update the database when changes are made.
Each button is working perfectly, but I now want to combine both functions into just the save button. Thus, whether I am entering new data or modifying existing data, the save button should use an IF ELSE condition to decide whether to use the INSERT or UPDATE command.
My problem is, how do I write this IF ELSE statement? What should be the condition? For example;
IF(what? ){ String sql ="Insert into Table1 (classID,className,counselorID,startDate,endDate) values (?,?,?,?,?)"; }ELSE{ String sql2 = "update Table1 set classID = '"+value1+"',className='"+value2+"',counselorID='"+value3+"',startDate='"+value4+"',endDate='"+value5+"' where classID = '"+value1+"'"; }
I have my code in 3 different files using encapsulation (Data hiding) and i have 1 problem at the very end of my code in my if and else statement (very bottom) when trying to call the classes from the other 2 documents. I will put the code in 1st document to 3rd document.
// FIRST DOCUMENT public class CollegeCourse { //class name //variables String deptName; int courseNum; int credits = 3; double fee;
[Code] ....
UPDATE: error message is
UseCourse.java:24: error: cannot find symbol LabCourse lc = new LabCourse(department, course, Credits); ^ symbol: variable department location: class UseCourse UseCourse.java:24: error: cannot find symbol LabCourse lc = new LabCourse(department, course, Credits);
We need to process (read and parse) big xml files (500 Mo to 1 or 2 Go). What's the best framework or Java library to use for this requirement ? Then what's a good OXM (in this case xml to object mapping) solution for this kind of file ?
Can we cance/stop a long running database query execution instantly so that we can do any another task.
As i know swing uses a single thread i,e Event Dispatch Thread (EDT), But at the same time we can use Swingworker class for better use of UI. When we use Swingworker class the process goes to a different thread and our basic UI is not Frozen. Infact we can do another task. But what I want is I want to stop of cancel the execution of swingworker thread ( Because I that thread takes long time to execute). How can I do that??
I used ProgressMonitor and in the cancel option i canceled the task ( worker.cancel(true) also i closed the connection and statement for executing the database query using stmt.close() and conn.close() methods.
But it does not work. How to cancel a long running database background process in a Java Swing Program.
I am trying to write a program that read from a csv file called matches.csv.
A single football match can end with a win or a draw: in first case the winner team get 3 points and the loser none, in the second case of draw each of the two teams get 1 point.
For example, the first line of the file matches.txt is as follow:
This means that a match has been played on the 17/08/2013 where Arsenal scored 1 goal while Aston Villa 3 goals: thus Arsenal got 0 points while Aston Villa 3 points.
How can I structure my output to make it make it read
Position Team Played Points 1 Aston Villa 2 3 2 Liverpool 1 3 3 Arsenal 1 0
import java.io.File;
import java.io.FileNotFoundException; import java.util.Scanner; public class Teams { public static void main(String[] args) { String fileName = "matches.csv"; File file = new File(fileName);
I am trying to write a program that read from a csv file called matches.csv.
A single football match can end with a win or a draw: in first case the winner team get 3 points and the loser none, in the second case of draw each of the two teams get 1 point.
For example, the first line of the file matches.txt is as follow:
In the file it contains the following data.
17/08/2013 Arsenal Aston Villa 1 3 24/08/2013 Aston Villa Liverpool 0 1
This means that a match has been played on the 17/08/2013 where Arsenal scored 1 goal while Aston Villa 3 goals: thus Arsenal got 0 points while Aston Villa 3 points.
How can I structure my output to make it make it read
Position Team Played Points
1 Aston Villa 2 3 2 Liverpool 1 3 3 Arsenal 1 0
Java Code:
import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class Teams { public static void main(String[] args) { String fileName = "matches.csv";