fayevalentine
Programmer
Hello, everyone, I hope you have the patient to read my problem.
Any advice would be greatly appreciated, thanks in advance.
I want to create a report in a java web application with primefaces, deployed in Glassfish v4.0,
I use poi-3.10 library to write to Excel File.
My query is very simple but has six UNION instructions, also have INNER JOIN with four tables
and LEFT join with other four tables, that make 8 tables where I get data.
So instead of making the query with (because it takes so long):
WHERE (e.dt_creation >= TRUNC (TO_DATE ('Initial Date','dd/mm/yyyy'))
AND e.dt_creation < TRUNC (TO_DATE ('Final Date','dd/mm/yyyy'))+1)
I do one query for each day using:
WHERE e.dt_creation = TO_DATE ('Every Day','dd/mm/yyyy')
After trying to run the code for one year I get the error:
WARN: WELD-000315: Failed to acquire conversation lock in 1,000 ms for Transient conversation
Looking for the error I found:
"apparently in your case, there's an existing request holding the lock for a relatively long time,
while another parallel request is executed under the same conversation."
But I do not fully understand what I have to check or how,
If you can help me with this o tell me about some documentation I would by deeply grateful,
because sincerely from this point I am lost.
testing from a console application the code works fine and one year period takes about 2 hours and half to create the excel file.
But can't get the code to work in web application.
my code is something like this:
Regards.
Bruce
Any advice would be greatly appreciated, thanks in advance.
I want to create a report in a java web application with primefaces, deployed in Glassfish v4.0,
I use poi-3.10 library to write to Excel File.
My query is very simple but has six UNION instructions, also have INNER JOIN with four tables
and LEFT join with other four tables, that make 8 tables where I get data.
So instead of making the query with (because it takes so long):
WHERE (e.dt_creation >= TRUNC (TO_DATE ('Initial Date','dd/mm/yyyy'))
AND e.dt_creation < TRUNC (TO_DATE ('Final Date','dd/mm/yyyy'))+1)
I do one query for each day using:
WHERE e.dt_creation = TO_DATE ('Every Day','dd/mm/yyyy')
After trying to run the code for one year I get the error:
WARN: WELD-000315: Failed to acquire conversation lock in 1,000 ms for Transient conversation
Looking for the error I found:
"apparently in your case, there's an existing request holding the lock for a relatively long time,
while another parallel request is executed under the same conversation."
But I do not fully understand what I have to check or how,
If you can help me with this o tell me about some documentation I would by deeply grateful,
because sincerely from this point I am lost.
testing from a console application the code works fine and one year period takes about 2 hours and half to create the excel file.
But can't get the code to work in web application.
my code is something like this:
Java:
String query = "SELECT something FROM some_tables WHERE some_date = 'b_date' "; --just for example
try (Statement stmt = con.createStatement()) {
while (InitialCalendar.getTime().compareTo(FinalDate) <= 0 )
{
--Here I replace date in query string so I can query the next day.
try(ResultSet rs = stmt.executeQuery(qry))
{
if (!rs.isBeforeFirst() ) {
--Write in Excel file there were no register this date
}
else
{
while (rs.next()) {
--Here I write all rows from ResulSet to Excel File, there are 26 columns
}
}
}
InitialCalendar.add(Calendar.DATE, 1); --Add one day to calendar
}
--After all I write all content to File
wb.write("Excel_File.xlsx");
} catch (SQLException e) {
--handle the exception
}
Regards.
Bruce