-
Transfert de données
Bonjour
Mon probleme est le suivant:J'ai un serveur Weblogic sur lequel sont deployés des Ejbs.Un des Ejb possede une methode qui renvoie un tableau de bean.
Le probleme est que ce tableau est le resultat d'une requete en base il peut etre tres gros;et dans ce cas quand j'appelle cette methode j'obtiens l'erreur suivante depuis le client:
java.rmi.UnmarshalException: Broken pipe; nested exception is:
java.net.SocketException: Broken pipe
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:305)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:248)
at fr.edf.clint.ejb.ExportService_qytkeo_EOImpl_815_WLStub.getTypePDFExport(Unknown Source)
at fr.edf.clint.export.BatchExportUtil.doExport(BatchExportUtil.java:171)
at fr.edf.clint.export.BatchExport.main(BatchExport.java:93)
Caused by: java.net.SocketException: Broken pipe
at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:108)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:290)
... 4 more
Caused by: java.net.SocketException: Broken pipe
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at weblogic.socket.SocketMuxer.write(SocketMuxer.java:745)
at weblogic.rjvm.t3.T3JVMConnection.sendMsg(T3JVMConnection.java:936)
at weblogic.rjvm.MsgAbbrevJVMConnection.sendOutMsg(MsgAbbrevJVMConnection.java:269)
at weblogic.rjvm.MsgAbbrevJVMConnection.sendMsg(MsgAbbrevJVMConnection.java:167)
at weblogic.rjvm.ConnectionManager.sendMsg(ConnectionManager.java:549)
at weblogic.rjvm.RJVMImpl.send(RJVMImpl.java:909)
at weblogic.rjvm.MsgAbbrevOutputStream.flushAndSendRaw(MsgAbbrevOutputStream.java:292)
at weblogic.rjvm.MsgAbbrevOutputStream.flushAndSend(MsgAbbrevOutputStream.java:300)
at weblogic.rjvm.MsgAbbrevOutputStream.sendRecv(MsgAbbrevOutputStream.java:322)
at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:103)
... 5 more
Je voulais s'il existe un moyen d'augmenter la taille du pipe d'echange entre mon client et le serveur d'Ejb.Ou si je dois revoir la conception afin d'utiliser un autre "protocole" que rmi.Je précise que je ne souhaite pas decouper mon tableau et l'envoyer en plusieurs fois.
D'avance merci.
-
T'es sur que le problème est lié à la taille de la liste que tu retournes ?
As tu essayé de tronquer volontairement le résultat pour voir si une liste plus petite passait ?
Car je doute fortement que ce soit un problème de "taille de pipe"
-
Non je te confirme que cest bien la taille des données renvoyées qui pose un probleme.Pourquoi doutes tu de ce point?C'est pas forcement de taille du pipe dont il s'agit ,c'est peut etre le processus de marshalisation.