我需要提高通常在固定数据库用户上运行的 Web 应用程序的可追溯性。DBA 应该能够快速访问有关导致数据库性能下降的大量用户的信息。
5 年前,我实现了一个 .NET ORM 引擎,它使用 DBMS_APPLICATION_INFO 包生成用户和服务器的日志。使用连接管理器之上的包装器并使用以下代码:
DBMS_APPLICATION_INFO.SET_MODULE('" + User + " - " + appServerMachine + "','');
每次连接从池中获取连接时,都会执行该包以将信息记录在 V$SESSION 中。
有没有人使用 Toplink 或 Hibernate 发现或实现了这个问题的解决方案?这个问题有默认实现吗?
我在这里找到了 5 年前实施的解决方案,但我想知道是否有人有更好的解决方案并与 ORM 集成。
将 DBMS_APPLICATION_INFO 与 Jboss 一起使用
我的应用程序位于 Spring 之上,DAO 是使用 JPA(使用 hibernate)实现的,并且实际上直接在 Tomcat 中运行,计划(明年)迁移到 SAP Netwevare Application Server。
谢谢。
我想知道是否有一种方法可以使用ASP.net 3.5在不使用WMI的情况下枚举本地IIS服务器上的应用程序池集合(不是给定池中的应用程序 - 而是池本身),如果是这样,有人可以提供如何完成的链接或示例?
(我忘了添加IIS版本是6.0).
我运行的是IIS6.0。我有DefaultAppPool一个正在运行的网站。
如果我重置此应用程序池,是否会自动关闭网站正在使用的所有数据库连接?
希望这是有道理的,任何帮助表示赞赏。
我最好能告诉员工流程何时回收:
a)新的一个在旧的关闭之前旋转b)旧的一个关闭所有活动请求它的服务完成
以上是准确的吗?
如果是这样,一旦Application_End()从global.ascx文件触发,我就会在SQL中存储数据.当Application_Start()触发时,我将这些数据拉回来.
问题是基于我的测试,新的工作进程在我的旧工作进程有机会完成其Application_End()之前触发Application_Start().
处理这种情况的最佳做法是什么?
提前喝彩
编辑:我刚刚注意到IIS 7上的一个功能'禁用重叠回收' - 我猜这是最好的路线
回收 IIS7 应用程序池是否会终止任何当前正在执行的请求?还是等待所有请求完成(如排水管停止)?
我不希望回收规则导致我的 WCF 站点出现间歇性错误。
谢谢
如果已经加载了一个dll w3wp.exe并且我们将其替换它会发生什么?
当然我们可以替换一个DLL,因为asp.net使用缓存版本的Bin文件夹DLL,但是我想知道在更换dll时它是否会加载新的或者等到下一次回收或没有新的请求时.
编辑: DLL包含单例类
我是一名开发人员,我已经找到了一个Web服务身份验证问题的解决方案,该问题涉及确保由于多个网络跃点而维护Kerberos.简而言之:
是否有一种脚本语言可用于为此应用程序设置新的应用程序池,然后按照描述设置标识(而不是手动数据输入到IIS中的属性页)?
我认为我们的系统管理员对Powershell有一点了解,但有人可以帮助我为他提供一些东西(他需要在推出应用程序时在另外两台服务器上重复这一点).谢谢.
在我中,Application_Start我使用Unity-AutoRegistration工具配置Unity:
UnityFactory.Configure(config => config
.Include(If.ImplementsITypeName, Then.Register())
.ExcludeSystemAssemblies()
);
Run Code Online (Sandbox Code Playgroud)
我的UnityFactory课是静态的。Configure工作原理如下:
public static void Configure(Func<IAutoRegistration,IAutoRegistration> configuration)
{
// Store the configuration to be able to apply it again when needed
UnityFactory.configuration = configuration;
// Create new UnityContainer
container = new UnityContainer();
// Apply configuration
configuration(container.ConfigureAutoRegistration()).ApplyAutoRegistration();
}
Run Code Online (Sandbox Code Playgroud)
它在IIS7下运行,并且在启动时一切正常。
每当回收应用程序池时,它将停止工作。该配置以某种方式弄乱了,它不再能够解析我的类。然而,静态字段configuration的UnityFactory类仍然包含正如所提供的第一次配置。因此,类本身并没有改变。
Application_Start回收应用程序池后不会触发该方法,因此不会再次应用配置。
如果我设置了一个断点并再次手动应用该配置,那么所有这些都将再次起作用。
这是怎么回事 为什么Unity会忘记我的所有课程?是否有我可以订阅的事件,该事件可以让我知道何时回收池?
每当我从VS2017在本地IIS下启动ASP.net核心应用程序的调试器时,都会创建一个新的应用程序池。
我希望该应用程序在DefaultAppPool'Identity'下保持稳定,不要创建新的应用程序。
此设置在哪里影响?
我可以使用IIS管理控制台将其手动设置为旧值,但是它变得很烦人。
我有一个在 Windows 服务器上运行的 asp.net 核心应用程序。这是使用一些后台任务来使用外部服务来获取数据。我们面临一个问题,在我们的应用程序池回收/重新启动后,后台任务没有运行。这仅在我们访问应用程序后运行。我们找到了一篇关于此的文章。
由于本文描述了asp.net应用程序,下面的代码将在.net核心应用程序中替代上述解决方案
public class Startup
{
public void Configure(IApplicationBuilder app)
{
var applicationLifetime = app.ApplicationServices.GetRequiredService<IApplicationLifetime>();
applicationLifetime.ApplicationStopping.Register(OnShutdown);
}
private void OnShutdown()
{
// Do your cleanup here
}
}
Run Code Online (Sandbox Code Playgroud)
有没有其他工作可以解决这个问题?