Java LoadCells Sehr Langsam

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Java LoadCells Sehr Langsam

    Hallo liebe SDK Nutzer,

    nichts ist schlimmer als ein Sourcecode, das fertig ist aber gravierend suboptimal.



    hier mein Problem:



    wir setzen Palo 3.1 bzw. 3.2 ein.

    Dabei setze ich meine Javaanwendung (mit entsprechendem PALO SDK) ein, womit ich die Daten an PALO übertrage.

    Nun erlebe ich, dass die Datensätze sehr langsam ins PALO geschrieben werden.

    Durch Zeitmessung innerhalb meiner Setdata war leicht festzustellen, wo der Zeitverfresser sitzt.

    Nämlich die Funktion:

    PaloICub[0].loadCells(IElementAuswahl2, Value,new CellLoadContext(SplashMode.SPLASH_DEFAULT,3,false,true));



    Die Zeitmessung zeigt, dass auf dem Lokalhost hin und wieder 15 Milisekunde für einen Datensatz verbraucht.

    Das Problem wird gravierende, sobald ich auf dem Netz die Zeitmessung vornehmen.

    Hier verbraucht für jeden einzigen Datensatz 15, 16, oder auch 30 Milisekunde.

    Für mich unerklärlich!

    Zu Mal weiß ich nicht, was eigentlich diese Funktion mit seinen Parameter verursacht.

    Ich habe verschiedene Einstellungen der Formalparameter vorgenommen und keins davon hat eine Verbesserung gebracht.



    Die Lösung von JEDOX war ebenfalls nicht die Richtige. ->

    PaloICub[0].loadCells(IElementAuswahl2, Value,new
    CellLoadContext(SplashMode.SPLASH_NOSPLASHING,100000,false,false));
    //Jedox Empfehlung leider nicht genutzt




    Wir können natürlich mit einem System wie PALO, die mit JAVA-SDK NICHT Performant genug ist, arbeiten.

    Daher steht der Projekt auf der Kippe. D.h., aus PALO aussteigen ja oder nein.

    Unter dieser Umstände wird wohl "ja" sein.

    Da ich bis jetzt mit PALO gut gefahren bin und PALO seit mehere Jahren einsetze, setze weiterhin auf PALO.

    Nicht desstotrotz hier meiner letzter Versuch euch um Hilfe zu bitten.

    Kennt jemand das Problem. Oder sieht jemand auf Anhieb, wo der Schuh drückt?

    Ich bin selbst der Meinung, dass der JAVA SDK einen Bugs hat.





    Viele Grüße

    Ebrahim



    Sourcecode:



    public boolean setdata(ICube[] PaloICub, IElement[] IElemAuswahl, Object Anzahl) {

    SimpleDateFormat s = new SimpleDateFormat("HH:mm:ss:SSS");

    s.setTimeZone(TimeZone.getTimeZone("GMT+00")); //Eigentlich muss
    GMT+01 sein, aber bei differnzrechnung hätte ich eine Stunde zuviel.

    long StartZeit, StopZeit;

    StartZeit = System.currentTimeMillis();





    IElementAuswahl2 = new IElement[1][ImportCubeSize];

    Object[] Value = null;

    Value = new Object[1];

    Value[0] = Anzahl;

    IElementAuswahl2[0] = IElemAuswahl;



    try {



    PaloICub[0].loadCells(IElementAuswahl2, Value,new CellLoadContext(SplashMode.SPLASH_DEFAULT,3,false,true)); //Meins

    //PaloICub[0].loadCells(IElementAuswahl2, Value,new
    CellLoadContext(SplashMode.SPLASH_NOSPLASHING,100000,false,false));
    //Jedox Empfehlung leider nicht genutzt



    StopZeit = System.currentTimeMillis();

    System.out.print("setdata dauert: " + s.format(StopZeit-StartZeit) + "\n");

    } catch (Exception PaloExeption) {

    StopZeit = System.currentTimeMillis();

    System.out.print("Mit Exception setdata dauert: " + s.format(StopZeit-StartZeit) + "\n");

    return false;

    }

    return true;



    }
  • Hi,
    these are my assigments

    i tried mit this one and that was too slow:
    PaloICub[0].loadCells(IElementAuswahl2, Value,new CellLoadContext(SplashMode.SPLASH_DEFAULT,3,false,true)); //Meins



    i tried mit this one and that was also too slow:
    PaloICub[0].loadCells(IElementAuswahl2, Value,new CellLoadContext(SplashMode.SPLASH_NOSPLASHING,100000,false,false));

    how would you write?

    best regards
    Ebrahim
  • Viele Cellen auf einmal beschreiben

    Hi,
    hier eine Funktion, womit ich viele Zelle gleichzeitlig beschreibe.
    Das beinhaltet leider einen Fehler, den ich nicht sehe. Vieleicht kann einer auf Anhieb erkennen.

    public boolean setdata_Block(ICube[] PaloICub, IElement[][] IElemAuswahl, Object[] Anzahl) {
    ICellLoadContext ICLC = new CellLoadContext(SplashMode.SPLASH_NOSPLASHING,Anzahl.length,false,false);

    try {
    PaloICub[0].loadCells(IElemAuswahl, Anzahl,ICLC);
    } catch (Exception PaloExeption) {
    return false;
    }
    return true;

    }
  • Brechtigungsvergabe in Palo

    Hi,
    ich habe diese Funktion (setdata_Block) auf bestimmte Cube-Auswahl angewendet und es hat funktioniert.
    Eins ist dann sicher, die Funktion ist richtig.
    Ich nehme stark an, dass ich die Berechtigungsvergabe in PALO überprüfen muss.
    Allerdings als admin dürfte ich, egal welche Konstellation (Elementauswahl), jede Zelle beschreiben können.
    Ich bekomme in Fehlerfall eine NULL und das ist als Message seitens PALOException ziemlich dürftig.

    Bei Blockweiser Übertragung muss ich bemängeln, dass die Fehlerbehandlung umständig geworden ist. Irgendeinen Datensatz in so einem Fall ist wohl nicht richtig bzw. nicht definiert.

    Ich habe übrigens, um Zeit zu gewinne, alle Kontrollfrage wie "ElementExist" herusgenommen.
    (Palo benötigt pro-Datensatzübertragung 15 Milli Sek.. Das ist leider ein bitter Fakt.)


    An dieser Stelle danke für den Hinweis für das Überschreiben der Zellen in großen Packeten.
    Ich sehe, dass die Lokalhost-Übertragung Zeitgewinnen mit sich bringt.
    Ob auch als Netzverbindung der Fall ist, werde ich bald testen müssen.


    Gruß
    Ebrahim
  • PALOException Message -> nicht aussagekräfig

    Hallo,
    ich bekomme "null". Wie ich schon beschrieben habe, scheint an der Berechtigung in PALO liegen.
    Was wiederum nicht stimmen kann, da ich als admin mich in Palo-Lokalhost anmelde.
    Ich habe mir alle Einstellungenin mittels PALO-Modeller angeschaut und finde dort keine Eintragung (W oder R).
    Nur leere Zellen.

    Unter dieser Einstellung funktioniert wiederum mit einem anderen Setdatapacket. Was beweist, dass meine Funktion eigentlich funktioniert.




    Gruß
    Ebrahim