Willkommen
Gast
. Bitte
einloggen
oder
registrieren
.
23.05.12 - 16:35:36
News:
Schnellsuche:
Das Notes Forum
Lotus Notes / Domino Sonstiges
Java und .NET mit Notes/Domino
(Moderatoren:
Axel
,
m3
)
Java Agent "Error cleaning up agent threads"
« vorheriges
nächstes »
Seiten:
[
1
]
Autor
Thema: Java Agent "Error cleaning up agent threads" (Gelesen 4945 mal)
machineslave
Senior Mitglied
Offline
Geschlecht:
Beiträge: 272
Java Agent "Error cleaning up agent threads"
«
am:
19.12.05 - 17:31:04 »
Hallo,
Ich habe einen Java-Agenten, der über JDBC Daten aus einer DB2 liest und in einer Notes-DB speichert. Der Agent läuft einwandfrei durch, allerdings bekomme ich auf der Konsole die Meldung "Error cleaning up agent threads". Wenn ich den Agenten des öfteren laufen lasse, so bekomme ich irgendwann eine Out of Memory Fehlermeldung.
Ich habe auch schon die ganze Thematik bzgl. recycle() eingebaut, aber irgendwie komme ich da nicht weiter.
Hier mal eine (verkürzte) Version meiner Java-Klassen:
import lotus.domino.*;
import java.sql.*;
public class ImportAS400Data extends AgentBase {
Log log;
Session session;
Database db;
AgentContext agentContext;
Document styleDoc;
String username, system, password, library, param;
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
Log log = session.createLog("Photoalbum");
log.openNotesLog("HierStehtDerServername", "develop\log.nsf");
db = agentContext.getCurrentDatabase();
View configView = db.getView("Configuration");
View activeJobView = db.getView("Active Job");
View inboxView = db.getView("($Inbox)");
Document activeDoc = activeJobView.getFirstDocument();
Document as400Doc = configView.getDocumentByKey("AS400");
system = as400Doc.getItemValueString("AS400System");
username = as400Doc.getItemValueString("AS400User");
password = as400Doc.getItemValueString("AS400Password");
library = as400Doc.getItemValueString("AS400Library");
if (activeDoc == null) // Kein aktiver Job
{
activeDoc = inboxView.getFirstDocument();
if (activeDoc != null) // Neues Dokument gefunden
{
// Dokument in Job queue und ersten Agenten starten
activeDoc.removeFromFolder("($Inbox)");
activeDoc.putInFolder("Active Job");
activeDoc.replaceItemValue("Agent", "imp_clr");
activeDoc.replaceItemValue("Status", "active");
activeDoc.save(true, false);
param = activeDoc.getItemValueString("Subject");
log.logAction("Importing colors from AS/400: " + param);
ImportColors colors = new ImportColors(system, username, password, library, db, param);
log.logAction("Imported " + colors.getRecords() + " color records");
activeDoc.replaceItemValue("Status", "completed");
activeDoc.save(true, false);
activeDoc.recycle();
colors = null;
}
}
log.recycle();
configView.recycle();
activeJobView.recycle();
inboxView.recycle();
as400Doc.recycle();
db.recycle();
} catch (NotesException e1) {
e1.printStackTrace();
}
System.gc();
}
}
import java.sql.*;
import lotus.domino.AgentBase;
import lotus.domino.Database;
import lotus.domino.Document;
import lotus.domino.NotesException;
public class ImportColors extends AgentBase{
public int records;
public ImportColors (String system, String username, String password, String collectionName, Database db, String param) {
try {
DriverManager
.registerDriver(new com.ibm.as400.access.AS400JDBCDriver());
Connection connection = DriverManager.getConnection("jdbc:as400://"
+ system, username, password);
DatabaseMetaData dmd = connection.getMetaData();
// Execute the query.
Statement select = connection.createStatement();
String tableName = "SGEEANP";
ResultSet rs = select.executeQuery("SELECT * FROM "
+ collectionName + dmd.getCatalogSeparator() + tableName + " WHERE SEPARM='" + param + "'");
int x = 0;
while (rs.next()) {
try {
Document doc = db.createDocument();
doc.replaceItemValue("Form", "SGSCLRP");
doc.replaceItemValue("SFSSEA", rs.getString("SESSEA"));
doc.replaceItemValue("SFYEAR", rs.getString("SEYEAR"));
doc.replaceItemValue("SFDIV", rs.getString("SEDIV"));
doc.replaceItemValue("SFSTYL", rs.getString("SESTYL"));
doc.replaceItemValue("SFSCLR", rs.getString("SESCLR"));
doc.replaceItemValue("SFCDSC", rs.getString("SECDSC"));
doc.replaceItemValue("param", param);
doc.save(true, false);
x = x + 1;
} catch (NotesException e2) {
e2.printStackTrace();
}
}
setRecords(x);
rs.close();
select.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Ich hoffe, hier gibt es ein paar Notes/Java-Cracks
Gruß
Stefan
Gespeichert
Stefan
Das Leben ist ein Scheiß Spiel, aber die Grafik ist geil
Pitiyankee
Gold Platin u.s.w. member:)
Offline
Beiträge: 2859
Re: Java Agent "Error cleaning up agent threads"
«
Antworten #1 am:
19.12.05 - 17:54:08 »
1. Du schliesst zwar die dein Statement-Objekt und dein Resultset. Das eigentlich wichtige (connection) aber nicht. Mach am Ende connection.close(); Bei moderneren Treibern werden Statement und Resultset mitgeschlossen.
Hab das lange nicht mehr mit Domino gemacht. Es kann sein, dass du den DriverManager wg. irgendwelchen JDBC-Notes Security kommen sich in die Quere issues anders instantiieren mußt. Bin mir aber nicht so sicher, ob das noch gilt. Rose Kelleher hat damals darüber geschrieben.
(
: Das ist möglicherweise der originale Thread, in dem das Problem erstmals besprochen wurde:
http://www-10.lotus.com/ldd/46forum.nsf/0/9D47C1F9E82455F785256614001FDFF6?OpenDocument
)
2. VERWENDE PreparedStatement und nicht Statement. Die Art wie du die Statements zusammenbastelst ist unsicher. Jemand könnte vielleicht sowas in das Feld param schreiben:
Code:
und tschüss"; delete from veryImportantTable
Mit PreparedStatement kann sowas nicht passieren.
Mach dir PreparedStatement zu einer Gewohnheit. Ist nicht so schwierig.
http://java.sun.com/docs/books/tutorial/jdbc/basics/prepared.html
3. Du solltest mit try-catch-try-catch arbeiten, wenn du schon mit raw JDBC hantierst (mit Notes gehen glaub ich andere Sachen gar nicht).
Bsp:
Code:
Connection connection = null;
try {
connection = deinZeugs
[...]
connection.close();
connection = null;
}
catch (SQLException sqle) {
try {
if (connection != null) connection.close();
} catch (SQLException sqle) {}
Wenn in dem Bereich wo die 3 Punkte sind ein Fehler auftritt, bleibt die Connection offen. Das ist nicht so gut.
Im übrigen könntest du dein SQLException Handling verbessern. Aber das schüttel ich auch nicht so einfach aus dem Ärmel. In SQLException stecken eine Menge weiterer Informationen wie allgemeiner oder Datenbankspezifischer SQL-Errorcode etc.
Denke, dass sich da noch einiges optimieren lässt.
Warum generierst du pro Dokument einen Remote Call gegen die DB?
In SQL gibt es sowas wie
Code:
where wert in (a, b, c, d, e);
Es dürfte performanter sein, dir ein Resultset zu holen und damit zu arbeiten.
oder so ähnlich.
«
Letzte Änderung: 19.12.05 - 18:14:24 von kennwort
»
Gespeichert
As far as Connections goes, I consider it as a much more "classic" IBM software. Much like Websphere Portal when portals were the hype. Very powerfull but very complex, very demanding on infrastructure to set up and often sold for the wrong reasons and then a strong deception for customers.
Michael Bourak
---
Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)
Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile
Ralf_M_Petter
Gold Platin u.s.w. member:)
Offline
Geschlecht:
Beiträge: 1489
Jeder ist seines eigenen Glückes Schmied
Re: Java Agent "Error cleaning up agent threads"
«
Antworten #2 am:
19.12.05 - 18:27:32 »
Zusätzlich zu den Sachen die Axel bereits angeführt hat ist mir noch aufgefallen, dass die ImportColors von AgentBase abgeleitet ist, was in diesem Fall falsch ist, da das kein eigener Agent. Du solltest diese Klasse meiner Meinung nach von Object ableiten. Weiters aufgrund von deinem Source gehe ich davon aus, dass du das auf einer AS/400 (I/5) laufen lässt. Ich bevorzuge in diesem Umfeld eigentlich meistens dass man den Java Code extern in der JVM von der I/5 laufen lässt und über den Job Scheduler aufruft. Dann kann man nämlich auch neuere JDK Version bis 1.5 (5.0) verwenden. Das läuft wirklich sehr gu Das geht natürlich nicht, wenn du den Agenten einen anderen Trigger als Zeitplan hast.
Dein Code ist auch ziemlich unvollständig, es fehlen teilweise Methoden wie colors.getRecords(). Gehe aber mal davon aus, dass du das gerade hier herausgenommen hast. Was mir weiter nicht besonders gut gefällt ist, dass du für jeden Durchlauf eine neue Connection aufbaust. Ich würde die Connection zur DB/2 einmal aufbauen, dass SQL Statement Preparen und die Performance wird extrem besser sein, da vor allem bei der DB/2 auf der I/5 ein Prepare eine sehr teure Operation ist. Ebenso natürlich das Connecten.
Übrigens in der While Schleife in ImportColors fehlt das recycle des Dokuments bei jedem Durchlauf. Keine Ahnung wie oft die Schleife durchlaufen werden kann, aber das kann schon zu einen Out of Memory führen.
Dafür kannst du dir aber die vielen Recycles in deiner Main sparen. Ein Recyceln der Datenbank recycelt auch alle abhängigen Objekte.
Falls du noch Fragen hast, gerne.
Grüße
Ralf
Gespeichert
Neu Mein Blog:
Lotus Notes Java & Co.
Pitiyankee
Gold Platin u.s.w. member:)
Offline
Beiträge: 2859
Re: Java Agent "Error cleaning up agent threads"
«
Antworten #3 am:
19.12.05 - 18:38:32 »
Zitat von: Ralf_M_Petter am 19.12.05 - 18:27:32
Ich würde die Connection zur DB/2 einmal aufbauen, dass SQL Statement Preparen und die Performance wird extrem besser sein, da vor allem bei der DB/2 auf der I/5 ein Prepare eine sehr teure Operation ist. Ebenso natürlich das Connecten.
Geht natürlich auch. Wobei man - wie bereits gesagt - PreparedStatements schon allein aus Security Gründen benutzt (kann nicht oft genug gesagt werden).
Ich bin übrigens der Meinung, dass man mit einem Resultset auskommt und das dies noch performanter ist. Einfach den oben angesprochenen in (werta, wertb, ...) benutzen und gegebenenfalls die wichtigen Werte der NotesDocumentCollection in einer HashMap zwischenspeichern.
Vielleicht fehlt auch DriverManager.deregisterDriver()
«
Letzte Änderung: 19.12.05 - 18:40:11 von kennwort
»
Gespeichert
As far as Connections goes, I consider it as a much more "classic" IBM software. Much like Websphere Portal when portals were the hype. Very powerfull but very complex, very demanding on infrastructure to set up and often sold for the wrong reasons and then a strong deception for customers.
Michael Bourak
---
Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)
Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile
machineslave
Senior Mitglied
Offline
Geschlecht:
Beiträge: 272
Re: Java Agent "Error cleaning up agent threads"
«
Antworten #4 am:
20.12.05 - 15:33:38 »
Hallo,
also ich habe mal connection.close() und DriverManager.deregisterDriver() eingebaut.
Jetzt bekomme ich direkt beim zweiten Aufruf des Agenten folgenden Fehler:
AMgr: Agent ('ImportMonitor' in 'stefan/photoalbumImportInterface.nsf') error message: Exception
12/20/2005 15:34:40 AMgr: Agent ('ImportMonitor' in 'stefan/photoalbumImportInterface.nsf') error message: in thread "main"
12/20/2005 15:34:40 AMgr: Agent ('ImportMonitor' in 'stefan/photoalbumImportInterface.nsf') error message: java.lang.OutOfMemoryError
12/20/2005 15:34:40 AMgr: Agent ('ImportMonitor' in 'stefan/photoalbumImportInterface.nsf') error message: <<no stack trace available>>
12/20/2005 15:34:40 JVM: The addAttachment (Ljava/lang/String;[B)V() method failed.
Das merkwürdige an der ganzen Geschichte ist, dass der Agent komplett auf dem Client durchläuft, ohne zu mucken.
Gespeichert
Stefan
Das Leben ist ein Scheiß Spiel, aber die Grafik ist geil
Ralf_M_Petter
Gold Platin u.s.w. member:)
Offline
Geschlecht:
Beiträge: 1489
Jeder ist seines eigenen Glückes Schmied
Re: Java Agent "Error cleaning up agent threads"
«
Antworten #5 am:
20.12.05 - 15:39:49 »
Verbessere mal das Errorhandling und fang zumindest mal alle Exceptions ab, dann kannst du nämlich theoretisch einen Stacktrace ausgeben und siehst an welcher Stelle er den Fehler macht. Weiters wäre es nett, wenn du mal ein echtes Testcase machst und dann diesen Code postest, sonst ist es nämlich ein wenig Kaffeesatzlesen.
Grüße
Ralf
Gespeichert
Neu Mein Blog:
Lotus Notes Java & Co.
hwenck
Junior Mitglied
Offline
Beiträge: 58
Re: Java Agent "Error cleaning up agent threads"
«
Antworten #6 am:
20.12.05 - 15:43:48 »
doc.recycle();
in ImportColors fehlt
---> Speicherproblem
z.B.
JavaMaxHeapSize=512MB
JavaMinHeapSize=256MB
Gespeichert
Ralf_M_Petter
Gold Platin u.s.w. member:)
Offline
Geschlecht:
Beiträge: 1489
Jeder ist seines eigenen Glückes Schmied
Re: Java Agent "Error cleaning up agent threads"
«
Antworten #7 am:
20.12.05 - 15:46:34 »
Ohne Böse zu sein, dass das doc.recycle() fehlt, habe ich schon geschrieben, aber leider ist machineslave nicht darauf eingegangen, wie auch auf die meisten anderen Hinweise von mir. Aber na ja, vielleicht hilft es ja jemand anderen.
Grüße
Ralf
Gespeichert
Neu Mein Blog:
Lotus Notes Java & Co.
machineslave
Senior Mitglied
Offline
Geschlecht:
Beiträge: 272
Re: Java Agent "Error cleaning up agent threads"
«
Antworten #8 am:
20.12.05 - 15:57:54 »
Zitat von: Ralf_M_Petter am 20.12.05 - 15:46:34
Ohne Böse zu sein, dass das doc.recycle() fehlt, habe ich schon geschrieben, aber leider ist machineslave nicht darauf eingegangen, wie auch auf die meisten anderen Hinweise von mir. Aber na ja, vielleicht hilft es ja jemand anderen.
Grüße
Ralf
Ehm sorry... hatte ich vergessen zu erwähnen; das doc.recycle() ist ebenfalls eingefügt.
Am Errorhandling habe ich noch nichts gemacht, aber wenn er an irgendeiner Stelle auf die Nase fällt, dann bekomme ich doch zumindest die "wilden" Fehlermeldungen auf der Konsole und kann zumindest "ahnen", wo der Fehler ist.
Ich werd mal die Konfig bzgl. Speicher aktualisieren (JavaMaxHeapSize=512MB , JavaMinHeapSize=256MB)
Der Form halber ist hier nochmal die geänderte ImportColors Klasse:
public class ImportColors{
public int records;
public ImportColors (String system, String username, String password, String collectionName, Database db, String param) {
try {
DriverManager
.registerDriver(new com.ibm.as400.access.AS400JDBCDriver());
Connection connection = DriverManager.getConnection("jdbc:as400://"
+ system, username, password);
DatabaseMetaData dmd = connection.getMetaData();
// Execute the query.
Statement select = connection.createStatement();
String tableName = "SGEEANP";
System.out.println("SELECT * FROM "
+ collectionName + dmd.getCatalogSeparator() + tableName + " WHERE SEPARM='" + param + "'");
ResultSet rs = select.executeQuery("SELECT * FROM "
+ collectionName + dmd.getCatalogSeparator() + tableName + " WHERE SEPARM='" + param + "'");
int x = 0;
while (rs.next()) {
try {
Document doc = db.createDocument();
doc.replaceItemValue("Form", "SGSCLRP");
doc.replaceItemValue("SFSSEA", rs.getString("SESSEA"));
doc.replaceItemValue("SFYEAR", rs.getString("SEYEAR"));
doc.replaceItemValue("SFDIV", rs.getString("SEDIV"));
doc.replaceItemValue("SFSTYL", rs.getString("SESTYL"));
doc.replaceItemValue("SFSCLR", rs.getString("SESCLR"));
doc.replaceItemValue("SFCDSC", rs.getString("SECDSC"));
doc.replaceItemValue("param", param);
doc.save(true, false);
x = x + 1;
doc.recycle();
} catch (NotesException e2) {
e2.printStackTrace();
}
}
setRecords(x);
rs.close();
select.close();
connection.close();
connection = null;
DriverManager.deregisterDriver(null);
} catch (SQLException e) {
e.printStackTrace();
}
}
public int getRecords() {
return records;
}
public void setRecords(int records) {
this.records = records;
}
}
Gruß
Stefan
Gespeichert
Stefan
Das Leben ist ein Scheiß Spiel, aber die Grafik ist geil
machineslave
Senior Mitglied
Offline
Geschlecht:
Beiträge: 272
Re: Java Agent "Error cleaning up agent threads"
«
Antworten #9 am:
20.12.05 - 16:39:16 »
boah ... langsam verzweifel ich.
Der kommt immer mit neuen Fehlern. Jetzt meint er auf einmal, connection.close() würde ihm nicht passen.
Das merkwürdigste dabei: Wenn ich die ganze Choose auf dem Client laufen lasse, läuft der Agent komplett durch.
Nun ja, ich werd auf jeden Fall morgen mal noch ein bischen mit dem Errorhandling experimentieren, und wenn's nicht hilft ... <ggrrrrr>
Gruß und bis jetzt schonmal vielen Dank für die Mühe.
Stefan
PS:
Aber ich hab da noch ne ander Idee: Eventuell das Teil als eigenständiges Java-Programm auf nem Windows Server laufen lassen. Da habe ich wenigstens auch nicht unbedingt das Problem mit der Laufzeit des Agenten (kann gut sein, dass der Agent, je nach Datenmenge, bis zu 2 Std .)
Ich musste das eh schon in mehrere (10) Agenten splitten.
Gespeichert
Stefan
Das Leben ist ein Scheiß Spiel, aber die Grafik ist geil
Ralf_M_Petter
Gold Platin u.s.w. member:)
Offline
Geschlecht:
Beiträge: 1489
Jeder ist seines eigenen Glückes Schmied
Re: Java Agent "Error cleaning up agent threads"
«
Antworten #10 am:
20.12.05 - 17:12:32 »
Warum auf einem Windowsserver laufen lassen. Man kann es doch so gut Native auf der I/5 laufen lassen. Über den Jobscheduler von OS/400 kann man die Jobs auch gut planen.
Moment da komme ich gerade auf was, wie hast du den den JDBC Treiber der I/5 DB2 eingebunden, über importieren oder ?
Da gibt es nämlich ein bekanntes Problem. Schreib mal wie du es gemacht hast, vielleicht sind wir jetzt auf dem richtigen Weg.
Grüße
Ralf
P.S. Übrigens zu der Performance habe ich auch schon was geschrieben. Ich bin sicher wenn du meine Tipps dazu implentierst, dann wird die Laufzeit des Agenten radikal kürzer.
Gespeichert
Neu Mein Blog:
Lotus Notes Java & Co.
Pitiyankee
Gold Platin u.s.w. member:)
Offline
Beiträge: 2859
Re: Java Agent "Error cleaning up agent threads"
«
Antworten #11 am:
20.12.05 - 18:06:24 »
Ich hab das noch nie so gesehen.
Zitat von: machineslave am 20.12.05 - 15:57:54
Code:
DriverManager
.registerDriver(new com.ibm.as400.access.AS400JDBCDriver());
Connection connection = DriverManager.getConnection("jdbc:as400://"
+ system, username, password);
Warum nicht einfach:
Code:
Driver drv = (Driver)Class.forName("com.imaginary.sql.msql.MsqlDriver").newInstance();
Connection connection = drv.getConnection("jdbc:as400://"
+ system, username, password);
[...]
Und unten vielleicht:
drv = null;
Diese Zeile ist auch überflüssig:
Code:
DatabaseMetaData dmd = connection.getMetaData();
«
Letzte Änderung: 20.12.05 - 18:08:47 von kennwort
»
Gespeichert
As far as Connections goes, I consider it as a much more "classic" IBM software. Much like Websphere Portal when portals were the hype. Very powerfull but very complex, very demanding on infrastructure to set up and often sold for the wrong reasons and then a strong deception for customers.
Michael Bourak
---
Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)
Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile
machineslave
Senior Mitglied
Offline
Geschlecht:
Beiträge: 272
Re: Java Agent "Error cleaning up agent threads"
«
Antworten #12 am:
21.12.05 - 08:10:13 »
Ich kenn mich leider nicht wirklich auf der AS/400 Welt aus (und es gibt bei uns leider auch niemanden, der schonmal was mit Java auf der AS/400 gemacht hat.)
Zitat von: Ralf_M_Petter am 20.12.05 - 17:12:32
Warum auf einem Windowsserver laufen lassen. Man kann es doch so gut Native auf der I/5 laufen lassen. Über den Jobscheduler von OS/400 kann man die Jobs auch gut planen.
Den JDBC-Treiber habe ich importiert.
Zitat von: Ralf_M_Petter am 20.12.05 - 17:12:32
Moment da komme ich gerade auf was, wie hast du den den JDBC Treiber der I/5 DB2 eingebunden, über importieren oder ?
Das habe ich von nem Beispielcode (wie greife ich auf DB/2-Daten auf der AS/400 zu)
Zitat von: kennwort am 20.12.05 - 18:06:24
Ich hab das noch nie so gesehen.
DriverManager
.registerDriver(new com.ibm.as400.access.AS400JDBCDriver());
Connection connection = DriverManager.getConnection("jdbc:as400://"
+ system, username, password);
Gespeichert
Stefan
Das Leben ist ein Scheiß Spiel, aber die Grafik ist geil
Pitiyankee
Gold Platin u.s.w. member:)
Offline
Beiträge: 2859
Re: Java Agent "Error cleaning up agent threads"
«
Antworten #13 am:
21.12.05 - 08:14:43 »
Hast du mal meinen Alternativ-Code versucht?
Gespeichert
As far as Connections goes, I consider it as a much more "classic" IBM software. Much like Websphere Portal when portals were the hype. Very powerfull but very complex, very demanding on infrastructure to set up and often sold for the wrong reasons and then a strong deception for customers.
Michael Bourak
---
Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)
Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile
Ralf_M_Petter
Gold Platin u.s.w. member:)
Offline
Geschlecht:
Beiträge: 1489
Jeder ist seines eigenen Glückes Schmied
Re: Java Agent "Error cleaning up agent threads"
«
Antworten #14 am:
21.12.05 - 08:23:21 »
Hallo!
Lies dir mal den Thread
http://atnotes.de/index.php?topic=22558.20
durch. Da kommt zum Schluß heraus, bei dem selben Problem, dass es daran liegt, dass der JDBC Treiber nicht importiert werden darf, sondern entweder über JavaUserClasses in der Notes.ini des Servers oder in dieses spezielle Lib Verzeichnis der JVM. Tut mir leide, dass ich erst jetzt daran gedacht habe. Ist aber wirklich genau das selbe Problem wie deines und ich denke, dass wird sicher funktionieren.
Aber ich würde trotzdem noch die Performancesachen und vor allem das preparedStatement machen. Sonst bist du wie Axel schon gesagt hast, schwer gefährdet für SQL Injection.
Grüße
Ralf
Gespeichert
Neu Mein Blog:
Lotus Notes Java & Co.
Ralf_M_Petter
Gold Platin u.s.w. member:)
Offline
Geschlecht:
Beiträge: 1489
Jeder ist seines eigenen Glückes Schmied
Re: Java Agent "Error cleaning up agent threads"
«
Antworten #15 am:
21.12.05 - 16:13:36 »
Und läuft es jetzt. Bin einfach neugierig.
Grüße
Ralf
Gespeichert
Neu Mein Blog:
Lotus Notes Java & Co.
Ralf_M_Petter
Gold Platin u.s.w. member:)
Offline
Geschlecht:
Beiträge: 1489
Jeder ist seines eigenen Glückes Schmied
Re: Java Agent "Error cleaning up agent threads"
«
Antworten #16 am:
22.12.05 - 17:03:47 »
Jetzt haben wir uns so geplagt machineslave zu helfen und er sagt nicht mal ob es geholfen hat.
Gespeichert
Neu Mein Blog:
Lotus Notes Java & Co.
machineslave
Senior Mitglied
Offline
Geschlecht:
Beiträge: 272
Re: Java Agent "Error cleaning up agent threads"
«
Antworten #17 am:
22.12.05 - 18:34:39 »
Hallo,
ich bitte vielmals um Entschuldigung, dass ich mich erst jetzt wieder melde
Also hier ist der aktuelle Stand der Dinge:
Ich habe die Java Klassen so umgeschrieben, dass sie jetzt auf jeder x-beliebigen Maschine laufen können (Windows). Da ich das alles bis morgen fertig haben muss, schien mir dies die schnellste (wenn vielleicht auch nicht die sauberste) Lösung meines Problems zu sein.
Aber ich möchte mich trotzdem vielmals bei Euch für Eure Hilfe bedanken. Ich habe auf jeden Fall einiges an guten Tipps hier mitnehmen können, die mir in Zukunft bei der Java-Programmierung behilflich sein werden.
Danke und schonmal ein schönes Weihnachtsfest und nen guten Rutsch.
Stefan
Gespeichert
Stefan
Das Leben ist ein Scheiß Spiel, aber die Grafik ist geil
Pitiyankee
Gold Platin u.s.w. member:)
Offline
Beiträge: 2859
Re: Java Agent "Error cleaning up agent threads"
«
Antworten #18 am:
22.12.05 - 19:16:28 »
Ralf hatte aber glaub ich recht.
Du mußt einfach die Treiber-jar in das Verzeichnis
%Domino_server_Programm_Verz%/jvm/lib/ext
legen.
Wir hatten das schon einmal.
Frohe Weihnachten und guten Rutsch
Axel
Gespeichert
As far as Connections goes, I consider it as a much more "classic" IBM software. Much like Websphere Portal when portals were the hype. Very powerfull but very complex, very demanding on infrastructure to set up and often sold for the wrong reasons and then a strong deception for customers.
Michael Bourak
---
Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)
Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile
Thomator
Senior Mitglied
Offline
Geschlecht:
Beiträge: 353
Re: Java Agent "Error cleaning up agent threads"
«
Antworten #19 am:
01.02.06 - 16:52:04 »
Das gleiche Problem (Error cleanup agent threds) hatte ich übrigens mit Java-Agenten, die über Corba Remote-Zugriffe machen, auch schon.
Und zwar unter R5 und R6.
Seit der Serverversion 6.5.4 tritt das Problem einfach nicht mehr auf.
Stichwort Bugfixing...
Nachtigall, ick hör dir trapsen!!
Gespeichert
+++To be human is more important than to be important!+++
Seiten:
[
1
]
« vorheriges
nächstes »
Gehe zu:
Bitte wählen Sie ein Ziel:
-----------------------------
ATNOTES TEAM
-----------------------------
=> Neuigkeiten - Wichtiges
===> Archiv
-----------------------------
Lotus Notes / Domino 8
-----------------------------
=> ND8: Administration & Userprobleme
=> ND8: Entwicklung
=> ND8: Entwicklung - XPages
-----------------------------
Lotus Notes / Domino 7
-----------------------------
=> ND7: Administration & Userprobleme
=> ND7: Entwicklung
-----------------------------
Lotus Notes / Domino 6
-----------------------------
=> ND6: Administration & Userprobleme
=> ND6: Entwicklung
-----------------------------
Domino 5 und frühere Versionen
-----------------------------
=> Administration & Userprobleme
=> Entwicklung
-----------------------------
Lotus Notes / Domino Sonstiges
-----------------------------
=> Tipps und Tricks
=> Tools & Downloads
=> Projekt Bereich
===> Help-Desk Applikation !!Help!!
=> Java und .NET mit Notes/Domino
=> Companion Products
=> OLE/COM-Programmierung
=> Aus- und Weiterbildung
-----------------------------
Best Practices
-----------------------------
=> At Notes Best Practices
=> Diskussionen zu Best Practices
-----------------------------
Sonstiges
-----------------------------
=> Offtopic
=> Kritik & Vorschläge
=> Infrastruktur
=> Job Suche/Angebote
1 Stunde
1 Tag
1 Woche
1 Monat
Immer
Einloggen mit Benutzername, Passwort und Sitzungslänge
Powered by SMF 1.1.16
|
SMF © 2006, Simple Machines
Impressum Atnotes.de -
Powered by Syslords Solutions -
Datenschutz
| Partner:
Tinte / Toner günstig