How to reuse session and the port number in TCP-TLS communication using Cloudbees- TcpSyslogMessageSender

77 Views Asked by At

We have a syslog client in our application and it is implemented using Cloudbees- TcpSyslogMessageSender. We are creating the context and connHow to reuse the session and port number in TCP-TLS communication using Cloudbees- TcpSyslogMessageSender. Will it be handled by Cloudbees or we have to configure any settings explicitly. Here is our code. With this code, it is using a new port everytime.

           TcpSyslogMessageSender messageSendertcp = new TcpSyslogMessageSender();
            messageSendertcp.setSyslogServerHostname("localhost");
            messageSendertcp.setSyslogServerPort("6514");
            messageSendertcp.setMessageFormat(MessageFormat.RFC_5425);
            messageSendertcp.setDefaultMessageHostname(this.getHostName());
            messageSendertcp.setDefaultAppName("test");
            messageSendertcp.setDefaultFacility("local0"));
            messageSendertcp.setDefaultSeverity("notice");
            logger.info("entering getsslcontext");
            SSLContext context = getSSLContext(); //SSLContext is formed using client keystore and  trustores
            logger.info("context object");
            messageSendertcp.setSSLContext(context);
            messageSendertcp.setSsl(true);
            }
            try {
            
                logger.info("sending message tcp");
                messageSendertcp.sendMessage(syslogMessage);
            
            } catch (IOException e) {
            return false;
            } finally {
                try {
                    if (messageSendertcp != null)
                        messageSendertcp.close();
                } catch (IOException e) {
                    return false;
                }
            }
1

There are 1 best solutions below

1
Prasanna Hegde On

Here Every Time your code is closing TCP object and and whenever new message comes it is again creating and using new socket. So in order to send the message on same port do not close the socket(TCP object) and use the Server details cache. For example this cache implemented using map that contains Server Details as the map and TCP object as key. And do not close the TCP object.