Domino 9 und frühere Versionen > ND6: Administration & Userprobleme
NSD bei Applet
Ralf_M_Petter:
Sorry aber der Codeteil nützt nicht besonders viel, da man nicht sieht in welcher Methode des Applets das aufgerufen wird. Poste doch etwas mehr, damit man einen Überblick bekommt.
Noch ne ander Frage verwendest du in deiner Schleife recycle(); Stürzt er beim ersten Durchlauf ab oder macht er die Schleife einige male?
Grüße
Ralf
Mandalor:
die Schleife läuft ca. 1000 - 1600 mal durch, er stützt bei einem zufälligen Doc ab (manchmal läuft er auc durch)
Ja recycle() wird verwendet
mehr Code:
private void initSlotData( PlanerOptions opt )
{
try
{
PlanerDatabase planerDb = opt.getDb() ;
Calendar calendar = Calendar.getInstance() ;
//calendar.setTimeZone(TimeZone.getTimeZone("GMT"));
Database dbNotes = null ;
View view = null;
Document doc = null, doc1 = null ;
System.out.println("OK 201") ;
dbNotes = session.getDatabase(applet.getParameter("Server"),
applet.getParameter("Database")) ;
this.initSlotKinds(dbNotes, planerDb);
view = dbNotes.getView("VResources") ;
doc = view.getFirstDocument() ;
while( doc != null )
{
String row = (String) doc.getColumnValues().elementAt(0) ;
if(planerDb.getRowNb(row)<0){
planerDb.addRow(row);
}
doc1 = doc ;
doc = view.getNextDocument(doc) ;
doc1.recycle();
}
view = dbNotes.getView("VData") ;
doc = view.getFirstDocument() ;
while( doc != null )
{ System.out.println("DOC ist da") ;
DateTime start = (DateTime)doc.getColumnValues().elementAt(0) ;
System.out.println("DOC ist da2") ;
DateTime end = (DateTime)doc.getColumnValues().elementAt(1) ;
Date notesDateStart = start.toJavaDate() ;
Date notesDateEnd = end.toJavaDate() ;
System.out.println("DOC ist da3") ;
String row = (String)doc.getColumnValues().elementAt(2) ;
String name = (String)doc.getColumnValues().elementAt(3) ;
//String creator ="leer";//(String)doc.getColumnValues().elementAt(8) ;
String cat = (String)doc.getColumnValues().elementAt(4) ;
System.out.println("DOC ist da4") ;
String target = (String)doc.getColumnValues().elementAt(5) ;
String purpose = "Test";//(String)doc.getColumnValues().elementAt(6) ;
System.out.println("DOC ist da5") ;
StringBuffer sb = new StringBuffer() ;
System.out.println("DOC ist da6") ;
//System.out.println("creator2 : " + creator );
for( int i = 0 ; i < purpose.length() ; i++ )
{
char c = purpose.charAt(i) ;
int ii = (int) c ;
if( c == 0 )
{
sb.append((char)0x0A) ;
}
else
sb.append(c) ;
}
purpose = sb.toString() ;
System.out.println("Name: " + name) ;
if( planerDb.getRowNb(row) == -1 )
{
// nö, müssen wir es anlegen!!!
planerDb.addRow(row);
}
URL docURL = null ;
try{
docURL = new URL(doc.getURL()) ;
}
catch( Exception ex ) {}
String addString[] = new String[1] ;
addString[0] = target ;
Slot slot = new Slot(planerDb,notesDateStart,notesDateEnd,row,
name,purpose,docURL,addString,null,null );
String kind = cat ;
slot.id = doc.getUniversalID() ;
//System.out.println(doc.getUniversalID()) ;
Color c = planerDb.getColor( cat ) ;
String username = applet.getParameter("ReadOnlyName") ;
if(( username != null ) && ( username.length() > 0 ))
{
if( !username.equalsIgnoreCase(slot.getSubject()) )
//if( !username.equalsIgnoreCase(creator))
slot.setReadOnly(true);
}
if( c == null )
{
System.out.println("Kind \"" + kind + "\"is undefined!") ;
}
else
{
//System.out.println( c.getRGB() ) ;
slot.setColor( planerDb.getColor( kind )) ;
planerDb.addSlot( slot ) ;
}
doc1 = doc ;
doc = view.getNextDocument(doc) ;
doc1.recycle() ;
}
System.out.println("OK 295") ;
}
catch( Exception ex )
{
ex.printStackTrace() ;
}
System.out.println("Vorbei 303") ;
}
Ralf_M_Petter:
Code sieht an und für sich nicht schlecht aus, aber das was ich sehen will, sehe ich immer noch nicht. Interessant ist, greift vielleicht bereits ein anderer Thread auf die Notesdaten zu, während Sie erstellt werden. Sprich läuft der Planer schon während du ihm die Daten reinschiesst. Generell würde ich überlegen, dass ganze nicht in einem Applet zu machen sondern in einem Agenten und die grafische Ausgabe in ein eigenes Fenster. Damit habe ich im Gegensatz zu den Aplletvarianten bessere Erfahrungen gemacht.
Grüße
Ralf
flaite:
--- Code: ---catch( Exception ex ) {}
--- Ende Code ---
tue da wenigsens ein System.out.println() rein oder ex.printStackTrace() in diese geschweiften Klammern. Das kann wirklich zu langen Suchaktionen führen!
Vielleicht siehst du die Ursache schon, wenn du das dort einfügtst.
Im übrigen würde ich daraus vermutlich mehrere Methoden wenn nicht gar Klassen machen.
Axel
Mandalor:
ich sehen den Fehler da nicht: wenn NSD kommt printet er ja nichts mehr!!! ich schau mal nach ob ein andererer Thread am arbeiten ist!
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln