15. juni 2004 - 16:38Der er
6 kommentarer og 1 løsning
RMI - frem og tilbage! (Registry-problem)
Hej Alle!
Jeg har et system (2 applikationer) som når de kører på 3 forskellige maskiner virker fint. Nu vil jeg så gerne have dem til at køre samme maskine (For at kunne vise det som demo), men det giver store problemer.
Systemet virker ved at jeg starter applikation #1 som starter RMI på port 1099 og venter....
applikation #2 startes så ... og vil først oprette en RMI på port 1098 (således at den kan være server også) og vil så connecte til applikation #1 og køre en metode der gør at #1 forbinder til #2 også...
Det betyder at man kan snakke begge veje via RMI. Det virker fint over netværk, men når jeg vil køre det på samme maskine, så får jeg noget RMI-fejl:
java.rmi.NotBoundException: MASKINENS_NAVN java.rmi.NotBoundException: MASKINENS_NAVN at sun.rmi.registry.RegistryImpl.lookupRegistryImpl.java:106)
Mit program kører sådan set stadig, og der er forbindelse fra #2 til #1 ... men, ikke omvendt!
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Jeg har engang fået at vide at der er et problem med to rmi registrys på samme maskine.
Den der starter sidst kan vel bruge den rmi registry den første har startet. Og ved lidt fiks catch af exception må det også kunne gøres symmetrisk, således at det er ligegyldigt hvilke af de 2 programmer der startes først.
Programmerne er færdigudviklet, og har virkelig ikke meget lyst til at skulle lave koden radikalt om bare for at få dem til at virke på 1 computer. (De er jo skrevet til at køre på 2 forskellige, og der virker de fint.)
- Hvordan skal de dele registry? - Hvad er callback ?
De kan sagtens dele registry, når de kører på samme maskine. Hvor enten rmiregistry startes separat. Eller kun den ene starter rmiregistry, hvis de altid startes i samme rækkefølge. Eller der laves noget try catch logik så de finder ud af om de skal starte deres egen eller bruge den andens rmiregistry, således at d ekan startes i vilkårlig rækkefølge. Det er altid godt at gøre rmistristry placering konfigurerbart.
callback er når client kalder en server metode med et objekt som server så kalder metoder på (pointen er at så bliver de udført i client). Jeg har skrevet lidt om det i min RMI artikel (den videregående).
Jeg fik det til at virke med at dele registry! - Tak for hjælpen!
Jeg vil læse mere om callback! Er altid rart at lære nye teknikker!
Hvis du vil have point, så skal du lige lave et svar! Sjovt nok så vidste jeg inden at jeg oprettede dette spørgsmål, at det var dig som ville komme med en brugbar 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.