Tag: sql server

BizTalk服务器问题

我们公司有一个biztalk服务器(一个虚拟的(1!)…)和一个保存数据的sql server。 现在我们有很多数据流量。 我说的是成千上万。 所以我实际上不确定一台服务器是否相当安全,但我们的公司并不那么容易说服。 最近我们遇到了很多问题。 请允许我详细说明,所以我没有遗漏任何东西: 我们的服务器有5个应用: 一个有3个编排,12个发送端口,16个接收位置。 一个有4个编排,32个发送端口,20个接收位置。 一个有4个编排,24个发送端口,20个接收位置。 一个有47个(是47个)编排,37个发送端口,6个接收位置。 一个具有几个资源的常见应用程序。 自从我们使用47个业务流程部署应用程序以来,我们遇到了问题。 很多这些编排使用赋值形状,使用c#代码进行映射。 这是因为我们使用HL7扩展,这有点特殊,所以通过使用c#code和xpath,映射更容易,因为很多这些模式看起来很相似。 c#读入通过xpath接收的XmlNodes,并返回XmlNode,然后再将其分配给biztalk消息。 我不确定这可能是原因,但我想我会提到它。 发送和接收端口有许多不同的类型:文件,MQSeries,SQL,MLLP,FTP。 每种类型都有不同的主机实例,以平衡负载。 我们的业务流程使用BiztalkApplication主机。 在这个服务器上还运行了几个脚本,主要是ftp上传脚本和拉链脚本,每天拉链文件每半小时压缩一次,并在一个月后删除zip文件。 我们在备份文件上使用这个zipscript(我们备份很多,备份也在我们的服务器上),我们这样做是因为服务器在将文件发送到有很多(很多)文件的位置时出现问题,所以之后文件减少到拉链它变得更好。 现在我们最近遇到的问题主要是两个主要问题: 我们最重要的问题如下。 我们在队列中保留了一个包含大量消息的接收位置以进行测试。 在我们启动这个使用47个业务流程的接收位置之后,正在运行的服务实例开始向天空摇滚。 好的,这很正常。 假设大约10000,然后我们停止接收位置以查看biztalk如何处理这10000个实例。 通常情况下,它们会很快下降,有时会发生故障,但过了一段时间它会开始“节流”,这意味着它们只是停止处理并且服务实例保持相同的数字,例如在30秒内它从10000下降到4000,然后它保持在4000并且它非常非常缓慢地降低,例如在5分钟或者30分钟内降低。 所以这意味着,其他应用程序的所有其他服务实例也都停留在这里,并且它们也没有被处理。 我们注意到在重新启动主机实例后,实例编号再次快速下降。 因此,我们尝试有选择地重新启动不同的主机实例以找到问题。 我们注意到最终重新启动文件发送/接收主机实例就可以了。 所以我们认为文件发送会成为问题。 结合我们做了很多备份。 所以我们用mqseries备份替换了文件类型备份。 发生同样的问题,有趣的是,重新启动文件发送/接收主机仍然可以解决问题。 在事件查看器中也找不到任何错误。 我们遇到的第二个问题是。 有时在早上6点左右,全部或部分主机实例正在停止。 在事件查看器中,我们注意到以下错误(这些错误不止一个): 具有URL“SQL:// ZNACDBPEG / mdnd0001 /”的接收位置“MdnBericht SQL”正在关闭。 详细信息:“已超出错误阈值。接收位置正在关闭。”。 消息传递引擎无法将具有URL“\ m2mservices \ Othello_import $ \ […]

使用Enterprise库将数据插入SQL Server数据库的代码

我是C#Windows应用程序编码和使用企业库的新手。 我想使用Enterprise Library 4.1将记录插入SQL Server 2008数据库 我在SQLCommand和DBCommand之间混淆了哪一个使用以及何时使用。

DacPac在导出或导入时排除用户和登录

我正在做一些自动化,并在将一些10-15个古老,古怪的脚本重写为一个单一且简单的单元,它可以: 在生产环境中从MsSql2012导出数据库方案 在开发环境中将数据库方案导入MsSql2012 我这样做使用Microsoft.SqlServer.Dac我可以导出/导入dac包。 它工作得很好:),但在完成所有TDD和测试之后,现在是真实的时间了,结果我完全错过了我的工作中有2个域。 这意味着当我在开发环境中导入dacpac时出现错误,因为我们的2个域没有完全双向信任,当然数据库也有来自两个域的用户。 特别是生产域用户。 我可以看到3个可行的解决方案 在环境之间获得完全信任。 但由于我的工作实施了高水平的安全性,因此不会发生这种情况。 在没有用户的情况下导入dacpac。 没有用户导出到dacpac。 我已经阅读了文档(当然这是模糊的),试图找到一组可以实现2)或3)的选项。 我测试了很多组合,但没有一个可以工作。 dac pac导入不断尝试创建用户并失败,因为生成用户无法在开发环境中进行validation。 我使用Deploy和Extract导出/导入。 可以在这里找到不同的选项: 提取: http : //technet.microsoft.com/en-us/library/microsoft.sqlserver.dac.dacextractoptions.aspx 部署: http : //technet.microsoft.com/en-us/library/microsoft.sqlserver.dac.dacdeployoptions.aspx 没有组合我找到了作品,我甚至读过post,表明它是DacPac中的一个错误。 但我不确定。 我现在正在研究的最后一个选项是使用GenerateScript方法,希望能够强制排除用户/登录,但我担心它也不会起作用。 见( http://technet.microsoft.com/en-us/library/hh753526.aspx )。 问题:如何在导出或导入中从我的dacpac中排除用户/登录? UPDATE 当前提取设置: IgnoreUserLoginMappings = true, VerifyExtraction = false, 当前部署设置: CreateNewDatabase = true, DeployDatabaseInSingleUserMode = true, DisableAndReenableDdlTriggers = true, IgnoreUserSettingsObjects = true, 更新 […]

Log4Net没有写入数据库

我检查了连接字符串(我从服务器资源管理器中获取)。 我在log4net config中检查了commandText。 我已经检查了数据库权限(集成安全性很好,并且在log4net类之外工作)。 我已经检查了存储库的配置属性(它已配置,它找到配置文件正常)。 我还检查了配置文件中定义的字段是否与数据库中表的属性(字段大小等)匹配。 有任何想法吗? 当我正在调试它似乎在所有正确的时间点击所有正确的方法,没有例外提出。 <!—-> …more parameters 它写的都不是appender。

使用Dapper映射SqlGeography

我有实体“点”,包含Id,文本和地理坐标。 CREATE TABLE [Point] ( [Id] INT IDENTITY CONSTRAINT [PK_Point_Id] PRIMARY KEY, [Coords] GEOGRAPHY NOT NULL, [Text] NVARCHAR(32) NOT NULL, [CreationDate] DATETIME NOT NULL, [IsDeleted] BIT NOT NULL DEFAULT(0) ) CREATE PROCEDURE [InsertPoint] @text NVARCHAR(MAX), @coords GEOGRAPHY AS BEGIN INSERT INTO [Point](Text, Coords, CreationDate) VALUES(@text, @coords, GETUTCDATE()) SELECT * FROM [Point] WHERE [Id] = SCOPE_IDENTITY() […]

SqlConnection vs Sql Session。 他们的生命一致吗?

我想为我的c# app中的某些进程应用一些sql-session级别设置。 例如,我想将某些后台进程的DEADLOCK_PRIORITY设置为LOW 。 问题是: 如果我打开一个新的SQL连接,那会启动一个新的sql-session吗? sql-session会一直存在,直到连接关闭? 如果我在打开SqlConnection后立即应用我的设置,它们对于在同一个SqlConnection上下文中执行的所有查询是否有效? 连接池怎么样? 这可能是我的SET DEADLOCK_PRIORITY LOW设置将被我的系统中的其他进程(我不想要)重用,因为SqlConnection实际上没有关闭( asp.net连接池决定重用它)。 谢谢!

在表更新时,触发我的.NET代码中的操作

我想知道这是否可行。 当更新特定表中的值时,我们希望函数在我们的.NET代码中工作。 这可以是记录插入或更新。 这可能吗? 如果没有,是否有替代流程?

EntityFramework 6 AddOrUpdate不使用复合或复合主键

这个问题一直是我周末的噩梦…我有一个表,其中AddOrUpdate无法正常工作,它不断添加但从不更新。 我想要做的就是当我使用AddOrUpdate向表中添加新实体时,我希望它检查AppointmentId和CompletionCodeId列,如果它们匹配而不是更新,否则添加。 表结构: CREATE TABLE [dbo].[AppointmentCodes] ( [Id] INT IDENTITY (1, 1) NOT NULL, [AppointmentId] INT NOT NULL, [Quantity] INT NOT NULL, [CompletionCodeId] INT NOT NULL, CONSTRAINT [PK_AppointmentCodes] PRIMARY KEY CLUSTERED ([Id] ASC, [AppointmentId] ASC)); ^^不确定这是否正确。 public void AddOrUpdate(T entity) { //uses DbContextExtensions to check value of primary key _context.AddOrUpdate(entity); Commit(); } 方法 public void […]

使用guid主键忽略LINQ to SQL实体列名称属性

我正在使用LINQ to SQL(SQL Server 2005 SP3 x64)的简单实体类。 [Table( Name=”TBL_REGISTRATION” )] public sealed class Registration : IDataErrorInfo { [Column( Name = “TBL_REGISTRATION_PK”, IsPrimaryKey = true, IsDbGenerated = true, AutoSync = AutoSync.OnInsert )] public Guid RegistrationID { get; private set; } /* other properties ommited for brevity */ } 这里只有两个有趣的事情: 类和属性名称与表名和列名不同 主键是Guid(uniqueidentifier) 这是表格的样子: create table dbo.TBL_REGISTRATION ( […]

使用SqlDataReader.IsDBNull时使用列名

您好我有这个从SQL DB读取数据的代码。 我不知道应该如何编辑它以便我可以使用原始列名而不是列索引。 string query = “SELECT * FROM zajezd WHERE event='” + thisrow+ “‘ AND year='” + klientClass.Year() + “‘”; SqlCommand cmd= new SqlCommand(query, spojeni); spojeni.Open(); SqlDataReader read= cmd.ExecuteReader(); if (read.Read()) { maskedTextBox2.Text = read.IsDBNull(24) ? string.Empty : read.GetDateTime(24).ToString(“MM/dd/yyyy”); 提前致谢。