Hallo,
ich programmiere gerade eine JSF Webanwendung, die eine derby datenbank benutzt und habe dabei ein kleines problemchen...
Ich lasse alle Datenbankzugriffe über eine Klasse "DatabaseHandler" laufen. Diese Klasse hat eine Methode "getData", die eine beliebige SQL Query ausführt und das resultierende ResultSet zurückgibt.
Aus anderen Klassen rufe ich die getData Methode aus dem DatabaseHandler dann auf und nehme das ResultSet entgegen und verarbeite es weiter. Im Codebeispiel unten geht es dabei um eine Benutzerverwaltung.
Das funktioniert auch soweit, d.h. ich bekomme die richtigen ergebnisse für meine abfragen. Gleichzeitig bekomme ich aber unmengen an exceptions dieser art: "org.apache.derby.client.am.DisconnectException: Netzprotokollausnahme: Der tatsächliche Codepunkt 4.692 stimmt nicht mit dem erwarteten Codepunkt 9.224 überein. Die Verbindung wurde beendet."
Ich kann mit dieser Fehlerbeschreibung leider überhaupt nichts anfangen und kann mir auch nicht erklären wieso dieser fehler auftritt. Unten seht ihr die quellcodes und eine kopie der consolenausgabe der fehler.
Hat vielleicht jemand einen tip woher das kommen könnte und/oder wie ich das beheben kann?
Wäre echt super!
Vielen dank schonmal!
Klasse DatabaseHandler
Methode aus aufrufender Klasse
Konsolen-Ausgabe
ich programmiere gerade eine JSF Webanwendung, die eine derby datenbank benutzt und habe dabei ein kleines problemchen...
Ich lasse alle Datenbankzugriffe über eine Klasse "DatabaseHandler" laufen. Diese Klasse hat eine Methode "getData", die eine beliebige SQL Query ausführt und das resultierende ResultSet zurückgibt.
Aus anderen Klassen rufe ich die getData Methode aus dem DatabaseHandler dann auf und nehme das ResultSet entgegen und verarbeite es weiter. Im Codebeispiel unten geht es dabei um eine Benutzerverwaltung.
Das funktioniert auch soweit, d.h. ich bekomme die richtigen ergebnisse für meine abfragen. Gleichzeitig bekomme ich aber unmengen an exceptions dieser art: "org.apache.derby.client.am.DisconnectException: Netzprotokollausnahme: Der tatsächliche Codepunkt 4.692 stimmt nicht mit dem erwarteten Codepunkt 9.224 überein. Die Verbindung wurde beendet."
Ich kann mit dieser Fehlerbeschreibung leider überhaupt nichts anfangen und kann mir auch nicht erklären wieso dieser fehler auftritt. Unten seht ihr die quellcodes und eine kopie der consolenausgabe der fehler.
Hat vielleicht jemand einen tip woher das kommen könnte und/oder wie ich das beheben kann?
Wäre echt super!
Vielen dank schonmal!
Klasse DatabaseHandler
Java:
public class DatabaseHandler
{
String dbURL = "jdbc:derby://localhost:1527/myDB;create=true;user=xxxxxx;password=xxxxxx";
Connection conn = null;
Statement stmt = null;
private void shutdown()
{
try
{
if (conn != null)
{
DriverManager.getConnection(dbURL + ";shutdown=true");
conn.close();
}
}
catch (SQLException sqlExcept)
{
}
}
private void createConnection()
{
try
{
Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
//Get a connection
conn = DriverManager.getConnection(dbURL);
}
catch (Exception except)
{
except.printStackTrace();
}
}
public ResultSet getData(String query)
{
createConnection();
try
{
stmt = conn.createStatement();
ResultSet results = stmt.executeQuery(query);
shutdown();
return results;
}
catch (SQLException sqlExcept)
{
sqlExcept.printStackTrace();
shutdown();
return null;
}
}
}
Methode aus aufrufender Klasse
Java:
public Benutzer[] getAll(){
results = dbh.getData("Select * From Benutzer");
benutzerList = new LinkedList<Benutzer>();
try{
while (results.next()) {
benutzerList.add(new Benutzer(
results.getInt(1),
results.getString(2),
results.getInt(4),
results.getString(5),
results.getString(6)
));
}
}
catch (SQLException sqlExcept){
sqlExcept.printStackTrace();
}
return lectureList.toArray(new Benutzer[benutzerList.size()]);
}
Konsolen-Ausgabe
Code:
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:110)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.derby.client.am.DisconnectException: Netzprotokollausnahme: Der tatsächliche Codepunkt 4.692 stimmt nicht mit dem erwarteten Codepunkt 9.224 überein. Die Verbindung wurde beendet.
at org.apache.derby.client.net.Reply.parseLengthAndMatchCodePoint(Unknown Source)
at org.apache.derby.client.net.NetConnectionReply.parseSQLCARD(Unknown Source)
at org.apache.derby.client.net.NetConnectionReply.parseRDBCMMreply(Unknown Source)
at org.apache.derby.client.net.NetConnectionReply.readLocalCommit(Unknown Source)
at org.apache.derby.client.net.ConnectionReply.readLocalCommit(Unknown Source)
at org.apache.derby.client.net.NetConnection.readLocalCommit_(Unknown Source)
at org.apache.derby.client.am.Connection.readCommit(Unknown Source)
at org.apache.derby.client.am.Connection.flowCommit(Unknown Source)
at org.apache.derby.client.am.Connection.flowAutoCommit(Unknown Source)
at org.apache.derby.client.am.Statement.resultSetCommitting(Unknown Source)
at org.apache.derby.client.am.Statement.resultSetCommitting(Unknown Source)
at org.apache.derby.client.am.ResultSet.nextX(Unknown Source)
... 45 more
java.sql.SQLException: Netzprotokollausnahme: Der tatsächliche Codepunkt 4.692 stimmt nicht mit dem erwarteten Codepunkt 9.224 überein. Die Verbindung wurde beendet.
at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
at org.apache.derby.client.am.ResultSet.next(Unknown Source)
at coreservlets.LectureManager.getAllLectures(LectureManager.java:88)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
at org.apache.el.parser.AstValue.getValue(AstValue.java:118)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:102)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:190)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:178)
at javax.faces.component.UIData.getValue(UIData.java:551)
at javax.faces.component.UIData.getDataModel(UIData.java:1239)
at javax.faces.component.UIData.setRowIndex(UIData.java:444)
at javax.faces.component.UIData.iterate(UIData.java:1348)
at javax.faces.component.UIData.processDecodes(UIData.java:971)
at javax.faces.component.UIForm.processDecodes(UIForm.java:213)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1042)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1042)
at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:940)
at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.derby.client.am.DisconnectException: Netzprotokollausnahme: Der tatsächliche Codepunkt 4.692 stimmt nicht mit dem erwarteten Codepunkt 9.224 überein. Die Verbindung wurde beendet.
at org.apache.derby.client.net.Reply.parseLengthAndMatchCodePoint(Unknown Source)
at org.apache.derby.client.net.NetConnectionReply.parseSQLCARD(Unknown Source)
at org.apache.derby.client.net.NetConnectionReply.parseRDBCMMreply(Unknown Source)
at org.apache.derby.client.net.NetConnectionReply.readLocalCommit(Unknown Source)
at org.apache.derby.client.net.ConnectionReply.readLocalCommit(Unknown Source)
at org.apache.derby.client.net.NetConnection.readLocalCommit_(Unknown Source)
at org.apache.derby.client.am.Connection.readCommit(Unknown Source)
at org.apache.derby.client.am.Connection.flowCommit(Unknown Source)
at org.apache.derby.client.am.Connection.flowAutoCommit(Unknown Source)
at org.apache.derby.client.am.Statement.resultSetCommitting(Unknown Source)
at org.apache.derby.client.am.Statement.resultSetCommitting(Unknown Source)
at org.apache.derby.client.am.ResultSet.nextX(Unknown Source)
... 39 more
java.sql.SQLException: Netzprotokollausnahme: Der tatsächliche Codepunkt 4.692 stimmt nicht mit dem erwarteten Codepunkt 9.224 überein. Die Verbindung wurde beendet.
at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
at org.apache.derby.client.am.ResultSet.next(Unknown Source)
at coreservlets.LectureManager.getAllLectures(LectureManager.java:88)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
at org.apache.el.parser.AstValue.getValue(AstValue.java:118)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:102)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:190)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:178)
at javax.faces.component.UIData.getValue(UIData.java:551)
at javax.faces.component.UIData.getDataModel(UIData.java:1239)
at javax.faces.component.UIData.setRowIndex(UIData.java:444)
at javax.faces.component.UIData.iterate(UIData.java:1364)
at javax.faces.component.UIData.processDecodes(UIData.java:971)
at javax.faces.component.UIForm.processDecodes(UIForm.java:213)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1042)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1042)
at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:940)
at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.derby.client.am.DisconnectException: Netzprotokollausnahme: Der tatsächliche Codepunkt 4.692 stimmt nicht mit dem erwarteten Codepunkt 9.224 überein. Die Verbindung wurde beendet.
at org.apache.derby.client.net.Reply.parseLengthAndMatchCodePoint(Unknown Source)
at org.apache.derby.client.net.NetConnectionReply.parseSQLCARD(Unknown Source)
at org.apache.derby.client.net.NetConnectionReply.parseRDBCMMreply(Unknown Source)
at org.apache.derby.client.net.NetConnectionReply.readLocalCommit(Unknown Source)
at org.apache.derby.client.net.ConnectionReply.readLocalCommit(Unknown Source)
at org.apache.derby.client.net.NetConnection.readLocalCommit_(Unknown Source)
at org.apache.derby.client.am.Connection.readCommit(Unknown Source)
at org.apache.derby.client.am.Connection.flowCommit(Unknown Source)
at org.apache.derby.client.am.Connection.flowAutoCommit(Unknown Source)
at org.apache.derby.client.am.Statement.resultSetCommitting(Unknown Source)
at org.apache.derby.client.am.Statement.resultSetCommitting(Unknown Source)
at org.apache.derby.client.am.ResultSet.nextX(Unknown Source)
... 39 more
java.sql.SQLException: Netzprotokollausnahme: Der tatsächliche Codepunkt 4.692 stimmt nicht mit dem erwarteten Codepunkt 9.224 überein. Die Verbindung wurde beendet.
at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
at org.apache.derby.client.am.ResultSet.next(Unknown Source)
at coreservlets.LectureManager.getAllLectures(LectureManager.java:88)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
at org.apache.el.parser.AstValue.getValue(AstValue.java:118)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:102)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:190)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:178)
at javax.faces.component.UIData.getValue(UIData.java:551)
at javax.faces.component.UIData.getDataModel(UIData.java:1239)
at javax.faces.component.UIData.setRowIndex(UIData.java:444)
at javax.faces.component.UIData.iterate(UIData.java:1399)
at javax.faces.component.UIData.processDecodes(UIData.java:971)
at javax.faces.component.UIForm.processDecodes(UIForm.java:213)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1042)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1042)
at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:940)
at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.derby.client.am.DisconnectException: Netzprotokollausnahme: Der tatsächliche Codepunkt 4.692 stimmt nicht mit dem erwarteten Codepunkt 9.224 überein. Die Verbindung wurde beendet.
at org.apache.derby.client.net.Reply.parseLengthAndMatchCodePoint(Unknown Source)
at org.apache.derby.client.net.NetConnectionReply.parseSQLCARD(Unknown Source)
at org.apache.derby.client.net.NetConnectionReply.parseRDBCMMreply(Unknown Source)
at org.apache.derby.client.net.NetConnectionReply.readLocalCommit(Unknown Source)
at org.apache.derby.client.net.ConnectionReply.readLocalCommit(Unknown Source)
at org.apache.derby.client.net.NetConnection.readLocalCommit_(Unknown Source)
at org.apache.derby.client.am.Connection.readCommit(Unknown Source)
at org.apache.derby.client.am.Connection.flowCommit(Unknown Source)
at org.apache.derby.client.am.Connection.flowAutoCommit(Unknown Source)
at org.apache.derby.client.am.Statement.resultSetCommitting(Unknown Source)
at org.apache.derby.client.am.Statement.resultSetCommitting(Unknown Source)
at org.apache.derby.client.am.ResultSet.nextX(Unknown Source)
... 39 more