我们正在使用 ASP.NET 3.5 应用程序中的 TIBCO EMS 作为外部系统的一个接口,它似乎工作得很好——除了运行另一端的人告诉我们,我们正在疯狂地建立连接,而且从来没有关闭它们......
我正在做的是通过单个类路由所有 TIBCO 流量,该类具有 TIBCOConnectionFactory
和Connection
自身的静态成员变量,被告知构造它们非常耗费资源和时间:
private static ConnectionFactory Factory
{
get
{
if (HttpContext.Current.Application["EMSConnectionFactory"] == null)
{
ConnectionFactory connectionFactory = CreateTibcoFactory();
HttpContext.Current.Application["EMSConnectionFactory"] = connectionFactory;
}
return HttpContext.Current.Application["EMSConnectionFactory"] as ConnectionFactory;
}
}
private static Connection EMSConnection
{
get
{
if (HttpContext.Current.Application["EMSConnection"] == null)
{
Connection connection = Factory.CreateConnection(*username*, *password*);
connection.ExceptionHandler += new EMSExceptionHandler(TibcoConnectionExceptionHandler);
connection.Start();
HttpContext.Current.Application["EMSConnection"] = connection;
}
return HttpContext.Current.Application["EMSConnection"] as Connection;
}
}
现在我的麻烦是:我在哪里以及如何
- 在不再需要时告诉 TIBCO 连接“自动关闭”(如使用
SqlConnection
) - 出现错误时关闭 TIBCO 连接
- 在我们的 ASP.NET 应用程序完成(或用户注销)之前关闭 TIBCO 连接
我似乎并没有从 C# / .NET 世界中找到很多关于如何使用 TIBCO EMS 的有用信息......任何接受者?谢谢!!