Java 让与服务器的连接始终处于打开状态

Java 让与服务器的连接始终处于打开状态,java,memory-leaks,sms,smtp,jsmpp,Java,Memory Leaks,Sms,Smtp,Jsmpp,我正在为一家公司开发SMS应用程序,该应用程序发送SMS消息(SUBMIT_SM command)并接收来自SMSC的响应(SUBMIT_SM_RESP command),以指示是否已将其发送给客户。我正在使用 连接到SMSC服务器的最佳做法是什么?我是否应该打开一个连接(一个会话)并在整个应用程序中使用它来发送SMS消息(此处是否存在内存泄漏)?或者每次发送SMS消息时是否应连接/断开与SMSC服务器的连接(此处有延迟) 请注意,我们每小时发送大约1000-2000条短信。我还注意到JSMPP

我正在为一家公司开发SMS应用程序,该应用程序发送SMS消息(SUBMIT_SM command)并接收来自SMSC的响应(SUBMIT_SM_RESP command),以指示是否已将其发送给客户。我正在使用

连接到SMSC服务器的最佳做法是什么?我是否应该打开一个连接(一个会话)并在整个应用程序中使用它来发送SMS消息(此处是否存在内存泄漏)?或者每次发送SMS消息时是否应连接/断开与SMSC服务器的连接(此处有延迟)


请注意,我们每小时发送大约1000-2000条短信。我还注意到JSMPP API仅在连接打开时才接收响应消息(SUBMIT_SM_RESP)。

这取决于连接实现。如果您的连接在长时间中断期间不会“消失”,请使用一个连接,因为这样可以节省每次请求打开/关闭的时间


如果您的应用程序是多线程的(其中多个线程可以发送消息),我建议您实现连接池机制(或使用支持SMSC会话的可用机制)

+1谢谢你的回答!事实上,我的应用程序是多线程的。在所有线程中使用多个会话而不是使用单个会话有什么区别吗?另外,始终打开的连接是否存在内存泄漏问题?打开一个会话时没有内存泄漏问题(只要在课程结束时关闭)。它实际上是首选的,也是最简单的方法。但是,由于多个线程将使用该会话,您需要验证该会话是否已同步(请检查供应商文档,因为我无法保证此同步)