Avatar billede simonvalter Praktikant
08. marts 2004 - 23:38 Der er 1 kommentar og
1 løsning

JDO detach/attach object over rmi

nu har jeg ikke været så heldig i fortiden med at stille jdo spørgsmål, men jeg prøver aligevel igen, hvis der skulle være kommet nogen eksperter i det herinde ;)

det er dette jeg prøver at opnå
http://docs.solarmetric.com/ref_guide_detach.html
mere precist
http://docs.solarmetric.com/ref_guide_detach_behavior.html
Example 11.1. Detaching a Single Instance

jeg har forstået det sådan at jeg kan bede clienten bede om et persisteter objekt i en detached tilstand så den kan ændre det sende det tilbage hvor på det bliver attached igen.

dette gøres ved at clieten kalder denne metode over rmi

  // Find the object by ip on the server, detach it and send it to the
client
  public Server processClientRequest(String ip)
    {
        KodoPersistenceManager kpm = (KodoPersistenceManager) pm;
        ID key = new Server.ID(ip);
        Server server = (Server) pm.getObjectById(key, true);
        kpm.detach (server);
        return server;
    }


den ændrer objektet og sender det tilbage hvorpå det bliver attached

  // Recives a server object and attaches it
  public void notifyError(Server server) throws RemoteException
    {
        KodoPersistenceManager kpm = (KodoPersistenceManager) pm;
        kpm.currentTransaction ().begin ();
        kpm.attach (server);
        kpm.currentTransaction ().commit ();


  }

så skulle ændringerne gerne afspejles i databasen.

men det eneste jeg opnår er en

kodo.util.FatalDataStoreException: kodo.util.FatalDataStoreException: Invalid argument value,  message from server: "Duplicate entry '192.168.1.2' for key 1" {prepstmnt 6865516 INSERT INTO server (IP, JDOCLASS, JDOVERSION) VALUES (?, ?, ?) [reused=0]} [code=1062, state=S1009]


jeg havde forventet en UPDATE

så hvis der er nogen der kan se hvad jeg gør forkert eller har misforstået så sig til :)
Avatar billede simonvalter Praktikant
09. marts 2004 - 06:18 #1
;)

server = (server) pm.detach(server);
Avatar billede simonvalter Praktikant
10. marts 2004 - 08:00 #2
hvis der var nogen der fulgte med kan jeg da lige sige at jeg har fundet en meget nemmer løsning, nemlig at benytte mig af jdo genies implementation som understøtter remote persistence managers over rmi, hvilket gør at du ikke behøver at sidde og sende objekterne selv.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester