J'essaie d'ouvrir une connexion de base vers un serveur HL7 où j'envoie une requête et obtiens la réponse ACK. Cela sera fait en continu.quand fermer et rouvrir le socket après l'envoi du message HL7
- Si cela se fait en continu, quand est-ce que je ferme le socket? Est-ce que je l'applique correctement, dans ce cas?
- Si je ferme le socket, comment l'ouvrir à nouveau? Les javadocs pour ConnectionHub indique ce qui suit:
attach(java.lang.String host, int port, Parser parser,
java.lang.Class<? extends LowerLayerProtocol> llpClass)
Retourne une connexion à l'adresse indiquée, l'ouverture de cette connexion si nécessaire.
Cependant, dans la réalité, il n'ouvrira pas une nouvelle connexion s'il était déjà fermé.
Patient patient = appt.getPatient();
Parser parser = new GenericParser();
Message hl7msg = parser.parse(wlp.getORMString(appt));
//Connect to listening servers
ConnectionHub connectionHub = ConnectionHub.getInstance();
// A connection object represents a socket attached to an HL7 server
Connection connection = connectionHub.attach(serverIP, serverPort,
new PipeParser(), MinLowerLayerProtocol.class);
if (!connection.isOpen()) {
System.out.println("CONNNECTION is CLOSED");
connection = connectionHub.attach(serverIP, serverPort, new PipeParser(),
MinLowerLayerProtocol.class);
if (!connection.isOpen()) {
System.out.println("CONNNECTION is still CLOSED");
}
}
Initiator initiator = connection.getInitiator();
Message response = initiator.sendAndReceive(hl7msg);
String responseString = parser.encode(response);
System.out.println("Received response:\n" + responseString);
connection.close();
Résultat: La première passe passe par parfaitement, à la demande envoyée et ACK reçu. Tout appel de cette méthode se traduit par java.net.SocketException: Socket closed
"du côté client. Si je retire l'appel connection.close()
, il fonctionnera bien pendant un certain laps de temps, puis la prise fermeront lui-même.
Merci pour votre réponse Dave. – don
Je vais mettre une sorte de bloc pour attendre l'accusé de réception du serveur. Juste quelques questions. Si je maintiens la connexion avec la prise, elle semble se déconnecter après un certain temps. Comment ré-ouvrir la prise dans ce cas? – don