[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Persistencia de referencias



Ola,
to com o seguinte problema: registro os objetos Livro e ExemplarDeLivro
num POA persistente (USER_ID, PERSISTENT, USE_SERVANT_MANAGER,
NON_RETAIN). Comeco a usar o cliente e obtenho uma referencia pra um
Livro no servidor. Dai, apos obter esta referencia, eu mato o servidor e
o reinicio. A partir desse momento se eu tento usar a referencia para o
Livro que eu obtive antes de matar o servidor, o JacORB dispara uma
excessao:

[jacorb] ERROR : java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
    at
java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
    at java.net.Socket.connect(Socket.java:452)
    at java.net.Socket.connect(Socket.java:402)
    at java.net.Socket.<init>(Socket.java:309)
    at java.net.Socket.<init>(Socket.java:124)
    at org.jacorb.orb.factory.DefaultSocketFactory.createSocket(Unknown
Source)
    at org.jacorb.orb.iiop.ClientIIOPConnection.createSocket(Unknown
Source)
    at org.jacorb.orb.iiop.ClientIIOPConnection.connect(Unknown Source)
    at org.jacorb.orb.giop.GIOPConnection.write(Unknown Source)
    at org.jacorb.orb.CDROutputStream.write(Unknown Source)
    at
org.jacorb.orb.giop.ServiceContextTransportingOutputStream.write_to(Unknown
Source)
    at org.jacorb.orb.giop.GIOPConnection.sendMessage(Unknown Source)
    at org.jacorb.orb.giop.GIOPConnection.sendRequest(Unknown Source)
    at org.jacorb.orb.giop.ClientConnection.sendRequest(Unknown Source)
    at org.jacorb.orb.giop.ClientConnection.sendRequest(Unknown Source)
    at org.jacorb.orb.Delegate.invoke_internal(Unknown Source)
    at org.jacorb.orb.Delegate.invoke(Unknown Source)
    at org.omg.CORBA.portable.ObjectImpl._invoke(Unknown Source)
    at Biblio._LivroStub.isbn(_LivroStub.java:76)
    at cliente.Cliente.main(Cliente.java:94)

Mas acho que isso nao devia acontecer, pois meu POA e PERSISTENT. Se eu
usasse indirect binding (repositorio de implementacoes) acho que esse
problema seria resolvido, mas ha algum jeito mais simples de se resolver
isso.

Nao sei se pode ser isso a causa do problema: inicialmente, o servidor
esta ouvindo em uma dada porta, e grava essa porta nas referencias
criadas. Quando eu mato o servidor e o reinicio, ele passa a escutar em
outra porta, e as referencias que apontam para a porta antiga tornam-se
inavlias. E isso mesmo o que ocorre?

Obrigado...

-- 
 Ivan Bittencourt de Araujo e S Neto   <ivanneto@linux.ime.usp.br>