# RMI Methodenaufrufe mit unterschiedlichen parametern liefern gleiche Ergebnisse



## Tobsen (10. Mai 2010)

Hi,
ich hab ein RMI programm geschrieben, welches an nen Server ne Matrix schickt und dort berechnungen durchführt und die ergebnisse zurückschickt, das klappt auch wunderbar, jetzt hab ich das problem, wenn ich die Methode mit ner anderen Matrix aufrufe bekomme ich die gleichen ergebnisse... was völliger schwachsinn ist...
jemand ne ahnung was das sein könnte?
Mal bischen entsprechenden Code:

```
import java.rmi.Naming;
import java.rmi.RMISecurityManager;
import java.rmi.registry.LocateRegistry;

public class ComputeServer
{
   public static void main(String args[])
   {
        RMISecurityManager sec=new RMISecurityManager();
        System.setSecurityManager(sec);
      try
      {
        
         LocateRegistry.createRegistry(port);
         System.out.println("create RemoteObject");
         ComputeInterfaceImpl remObj = new ComputeInterfaceImpl();
         System.out.println("try : naming RemoteObject");
         Naming.rebind("//wwwwwwww:port/Server", remObj);
         System.out.println("-- server ready, waiting for clients --");

      }
      catch(Exception ex)
      {
         ex.printStackTrace();
      }
   }
}
```

und 


```
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject ;
import matrix.*;

public class ComputeInterfaceImpl extends UnicastRemoteObject implements ComputeInterface
{
   public ComputeInterfaceImpl() throws RemoteException
   {
       super();
   }
    public double[][] eigv(double[][] A) throws RemoteException
   {
	return Matrix.geteigval(A);
   }
}
```

und Aufurf auf clientseite mit


```
ComputeInterface remRef =(ComputeInterface)Naming.lookup("//wwwwww:port/Server");
e1=remRef.eigv(matrixgen(20,19,19));
e2=remRef.eigv(matrixgen(30,29,29));
```

für e1 wird das richtige ergebnis berechnet, aber für e2 gibt er mir das gleiche zurück...
danke schonmal ich hoffe mir kann jemand helfen
mfg


----------



## Tobsen (10. Mai 2010)

kann vielleicht nen mod die angebenen URLs etwas verfälschen?...
hab ich trottel vergessen und nun kann ich nciht mehr editieren...


----------



## SlaterB (10. Mai 2010)

editiert

-----

bist du denn sicher, dass sich die Matrizen unterscheiden, Ausgabe vorher?

ach, und wenn du auch den Server unter Kontrolle hast, dann logge auch dort was ankommt,
Zwischenschritte der Berechnung usw.


----------



## Tobsen (10. Mai 2010)

Jo, ganz sicher, habs auch mit einer so generierten matrix und einheitsmatrix probiert...
und lokal mit dem selben eigenwertlöser gegengeprüft müssten vershciedene ergebnisse rauskommen...


----------



## SlaterB (10. Mai 2010)

Loggen willst du nicht?


----------



## ARadauer (10. Mai 2010)

zeig mal die Klasse Matrix


----------



## Tobsen (10. Mai 2010)

ich bin grad am loggen... sekunde


----------



## Tobsen (10. Mai 2010)

wie geil...
sry liegt an mir ...
kurz zur erklärung hab mir da jeztt aufm server auch paar sachen ausgeben lassen und folgendes festgestellt...
erstmal vorweg zum paket matrix, weiß nicht inwieweit ihr euch mit matrizzen auskennt, auf jeden fall ist das ne selbstgeschriebene bibliothek die alle möglichen dinge mit matrizzen anstellen kann....
uA eigenwerte berechnen oder invertieren oder sowas...
jetzt hab ich anstatt die eigenwerte zu berechnen mal invertiert und alles funktioniert 1A...
problem liegt also darin wie ich eigenwerte berechne dazu erstelle in matrix.*   eine Klasse in der eigenwerte/vektoren gespeichert sind und lese diese nur aus... und darin hab ich bissel ins klo gegriffen...
quasi wird das nicht neu berechnet diese interne klasse bei aufruf mit neuer matrix ...
naja aber danke trotzdem


----------



## SlaterB (10. Mai 2010)

wenn der Rückgabewert immer einundasselbe Array-Objekt ist, nur mit unterschiedlichen Inhalt,
dann kann es das Problem geben, dass in der zweiten Übertragung nur die Information 'dasselbe nochmal' steht
(edit: zumindest bei ObjectStreams in Java, aber ist ja nun egal)


----------

