首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java / GlassFish -线程和连接

问Java / GlassFish -线程和连接
EN

Stack Overflow用户
提问于 2011-01-12 20:49:17
回答 3查看 1.7K关注 0票数 1

场景:

我使用Java SE已经有相当长的一段时间了,使用线程等,尽管我对Java EE几乎没有经验。

我有一个连接到远程服务器的第三方Java库(在第三方公司)。该库创建了几个线程,并使连接本身保持活动状态。我不允许一次又一次地打开新的连接(通过创建库的新实例)。我需要保持相同的库实例,它将一直保持连接。

这在Java应用程序中非常简单。

现在,我想创建一个在公司内部使用的web服务(可能使用GlassFish或类似的服务),以便能够通过它的连接使用这个库的功能。换句话说,我需要在请求实例之间保持一个自定义远程连接(它不是由我的代码创建或管理的)。

问:这有可能实现吗?如果是这样,我应该看一下哪种技术?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-12 21:14:49

你可以使用connection pool.when来做这件事只要需要连接到远程服务器,从这个池中获取连接而不是实例化每个time.This将帮助你维护更好的内存占用空间,并且efficiency.If连接不再使用,你可以将连接返回到池中。

票数 2
EN

Stack Overflow用户

发布于 2011-01-12 21:03:01

我最近实现了一个类似的系统,使用Tomcat作为Servlet容器,使用Metro 2.0作为JAX-WS实现。我的服务维护到后端组件(在C++中实现)的套接字连接,并使用专有网络协议与它们通信。

我使用了一个“组件管理器”线程来管理与组件的高级通信(连接建立、握手等)。以及管理与组件的实际通信的“网络选择器”线程。这个“网络选择器”使用异步非阻塞套接字,使用Java Socket Selector系列的类--使用单线程与套接字选择器类进行交互是一个重要的点,因为一些Java平台在使用多线程时会出现错误。

到目前为止,它工作得很好,所以我可以告诉你,这肯定是可能的。如果您需要任何澄清,请在这里张贴或给我发电子邮件(请参阅我的个人资料)。

票数 1
EN

Stack Overflow用户

发布于 2011-01-12 23:45:15

您需要有一个工厂来维护这些连接,然后通过JNDI提供它,就像提供JDBC连接池一样。

然后,您需要确保将连接返回到所述工厂,然后将其集成到应用程序服务器生命周期中,以便通过编程将其拉起和拉下。

请注意,如果您不小心,这里就潜藏着一个严重的类加载器问题。你必须有一个工厂和客户端的公共类,如果它不在标准运行时库中,你将需要找出一种方法来正确地共享它,除非你想使用反射来获取方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4668976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档